https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122860
Bug ID: 122860
Summary: ICE: in expand_expr_addr_expr_1, at expr.cc
Product: gcc
Version: 15.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: 522024330006 at smail dot nju.edu.cn
Target Milestone: ---
The details can be found here: https://godbolt.org/z/M3PMqTK4e
Program:
```c
#include <stdio.h>
extern int lo_sum(int reg, int offset);
int main() {
// Simulated address split into high and low parts
int high = 0x1234;
int low = 0x5678;
register unsigned long val asm("r9") = (unsigned long)(&val);
asm volatile (
"add %0, %1\n\t"
: "+r"(val)
: "i" (lo_sum(high, low)), "r"(high)
:
);
return 0;
}
```
The traceback:
38549.fuzz
during RTL pass: expand
/workspace/exps/featurefuzz/random_combine_feature_set_1_exp/cases/38549.fuzz:
In function 'int main()':
/workspace/exps/featurefuzz/random_combine_feature_set_1_exp/cases/38549.fuzz:15:28:
internal compiler error: in expand_expr_addr_expr_1, at expr.cc:9237
15 | register unsigned long val asm("r9") = (unsigned long)(&val);
| ^~~
0x5da1dc8 internal_error(char const*, ...)
/workspace/install/gcc/src/gcc/gcc/diagnostic-global-context.cc:517
0x5d3f858 fancy_abort(char const*, int, char const*)
/workspace/install/gcc/src/gcc/gcc/diagnostic.cc:1749
0x1cc205c expand_expr_addr_expr_1
/workspace/install/gcc/src/gcc/gcc/expr.cc:9237
0x1cc301d expand_expr_addr_expr
/workspace/install/gcc/src/gcc/gcc/expr.cc:9350
0x1cdeeff expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/workspace/install/gcc/src/gcc/gcc/expr.cc:12745
0x1cc3d08 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
/workspace/install/gcc/src/gcc/gcc/expr.cc:9538
0x1947500 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier)
/workspace/install/gcc/src/gcc/gcc/expr.h:323
0x1cc615e expand_expr_real_2(separate_ops const*, rtx_def*, machine_mode,
expand_modifier)
/workspace/install/gcc/src/gcc/gcc/expr.cc:9869
0x1cd0a61 expand_expr_real_gassign(gassign*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/workspace/install/gcc/src/gcc/gcc/expr.cc:11203
0x1cd1fb1 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/workspace/install/gcc/src/gcc/gcc/expr.cc:11385
0x1cc3d08 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
/workspace/install/gcc/src/gcc/gcc/expr.cc:9538
0x1cafc71 store_expr(tree_node*, rtx_def*, int, bool, bool)
/workspace/install/gcc/src/gcc/gcc/expr.cc:6771
0x1cace6a expand_assignment(tree_node*, tree_node*, bool)
/workspace/install/gcc/src/gcc/gcc/expr.cc:6492
0x199bcc7 expand_gimple_stmt_1
/workspace/install/gcc/src/gcc/gcc/cfgexpand.cc:4284
0x199c322 expand_gimple_stmt
/workspace/install/gcc/src/gcc/gcc/cfgexpand.cc:4365
0x19ab6fc expand_gimple_basic_block
/workspace/install/gcc/src/gcc/gcc/cfgexpand.cc:6483
0x19b0003 execute
/workspace/install/gcc/src/gcc/gcc/cfgexpand.cc:7232
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.
The gcc version I used is:
Using built-in specs.
COLLECT_GCC=/workspace/install/gcc/install_15.2.0/bin/gcc
COLLECT_LTO_WRAPPER=/workspace/install/gcc/install_15.2.0/libexec/gcc/x86_64-pc-linux-gnu/15.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /workspace/install/gcc/src/gcc/configure --enable-coverage
--enable-checking --disable-multilib --disable-shared --disable-bootstrap
--enable-languages=c,c++ --prefix=/workspace/install/gcc/install_15.2.0
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 15.2.0 (GCC)