https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110682
Bug ID: 110682
Summary: GCC, ICE: internal compiler error: in gimplify_expr,
at gimplify.cc:16771
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: 141242068 at smail dot nju.edu.cn
Target Milestone: ---
When compiling below program using gcc-14 with option `gcc-14 -Ofast a.c`,
gcc-14 crashes:
```
struct a {
const signed char b;
};
void f(volatile struct a *c) {
c - 0 % c->b;
struct a c = {1};
}
```
GCC's output is pasted below:
```
<source>: In function 'f':
<source>:7:12: error: 'c' redeclared as different kind of symbol
7 | struct a c = {1};
| ^
<source>:5:27: note: previous definition of 'c' with type 'volatile struct a *'
5 | void f(volatile struct a *c) {
| ~~~~~~~~~~~~~~~~~~~^
<source>:6:5: internal compiler error: in gimplify_expr, at gimplify.cc:16771
6 | c - 0 % c->b;
| ~~^~~~~~~~~~
0x2150dee internal_error(char const*, ...)
???:0
0x9ce06c fancy_abort(char const*, int, char const*)
???:0
0xd7057a gimplify_stmt(tree_node**, gimple**)
???:0
0xd6d9ba gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
???:0
0xd7057a gimplify_stmt(tree_node**, gimple**)
???:0
0xd6e4eb gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
???:0
0xd7057a gimplify_stmt(tree_node**, gimple**)
???:0
0xd6d954 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
???:0
0xd7057a gimplify_stmt(tree_node**, gimple**)
???:0
0xd71a13 gimplify_body(tree_node*, bool)
???:0
0xd71e6f gimplify_function_tree(tree_node*)
???:0
0xbaebe7 cgraph_node::analyze()
???:0
0xbb2731 symbol_table::finalize_compilation_unit()
???:0
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
```
This can be verified by visiting the Compiler Explorer:
https://gcc.godbolt.org/z/5951jvono