https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117564
Bug ID: 117564 Summary: a-comp.c:649:1: internal compiler error: in plus_constant, at explow.cc:102 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: danglin at gcc dot gnu.org Target Milestone: --- Created attachment 59591 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59591&action=edit Preprocessed source. dave@mx3210:~/debian/ardour/ardour-8.10.0+ds/build$ cat xx.sh /home/dave/opt/gnu/gcc/gcc-15/libexec/gcc/hppa-linux-gnu/15.0.0/cc1 -fpreprocessed /home/dave/debian/ardour/ardour-8.10.0+ds/build/libs/plugins/a-comp.lv2/a-comp.c.5.i -quiet -dumpdir /home/dave/debian/ardour/ardour-8.10.0+ds/build/libs/plugins/a-comp.lv2/ -dumpbase a-comp.c.5.c -dumpbase-ext .c -g -O2 -O3 -Werror=implicit-function-declaration -Wformat=1 -Werror=format-security -Wall -Wpointer-arith -Wcast-qual -Wcast-align -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wdate-time -std=c99 -version -ffile-prefix-map=/home/dave/debian/ardour/ardour-8.10.0+ds=. -fshow-column -fomit-frame-pointer -ffast-math -fPIC -o /home/dave/debian/ardour/ardour-8.10.0+ds/build/libs/plugins/a-comp.lv2/a-comp.c.5.s dave@mx3210:~/debian/ardour/ardour-8.10.0+ds/build$ sh xx.sh GNU C99 (GCC) version 15.0.0 20241112 (experimental) [master r15-5122-gd976daa9316] (hppa-linux-gnu) compiled by GNU C version 15.0.0 20241112 (experimental) [master r15-5122-gd976daa9316], GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 12114e5f3d081ce33a97759332252bea during RTL pass: vartrack ../libs/plugins/a-comp.lv2/a-comp.c: In function ‘render_inline’: ../libs/plugins/a-comp.lv2/a-comp.c:649:1: internal compiler error: in plus_constant, at explow.cc:102 649 | } | ^ 0x17c1bf7 internal_error(char const*, ...) ../../gcc/gcc/diagnostic-global-context.cc:518 0x1fd14b fancy_abort(char const*, int, char const*) ../../gcc/gcc/diagnostic.cc:1696 0x4cc06b plus_constant(machine_mode, rtx_def*, poly_int<1u, long long>, bool) ../../gcc/gcc/explow.cc:102 0xd15c13 vt_canonicalize_addr ../../gcc/gcc/var-tracking.cc:2240 0xd15cab get_addr_from_local_cache ../../gcc/gcc/var-tracking.cc:2127 0xd15cab vt_canonicalize_addr ../../gcc/gcc/var-tracking.cc:2209 0xd1623b vt_canon_true_dep ../../gcc/gcc/var-tracking.cc:2255 0xd1623b drop_overlapping_mem_locs(variable**, overlapping_mems*) ../../gcc/gcc/var-tracking.cc:2294 0xd16483 void hash_table<variable_hasher, false, xcallocator>::traverse_noresize<overlapping_mems*, &(drop_overlapping_mem_locs(variable**, overlapping_mems*))>(overlapping_mems*) ../../gcc/gcc/var-tracking.cc:2360 0xd16483 void hash_table<variable_hasher, false, xcallocator>::traverse<overlapping_mems*, &(drop_overlapping_mem_locs(variable**, overlapping_mems*))>(overlapping_mems*) ../../gcc/gcc/hash-table.h:1194 0xd16483 clobber_overlapping_mems ../../gcc/gcc/var-tracking.cc:2360 0xd1655b val_bind ../../gcc/gcc/var-tracking.cc:2471 0xd178bf compute_bb_dataflow ../../gcc/gcc/var-tracking.cc:6947 0xd1933b vt_find_locations ../../gcc/gcc/var-tracking.cc:7186 0xd19e87 variable_tracking_main_1 ../../gcc/gcc/var-tracking.cc:10526 0xd1a073 variable_tracking_main() ../../gcc/gcc/var-tracking.cc:10572 0xd1a073 execute ../../gcc/gcc/var-tracking.cc:10609 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. dave@mx3210:~/debian/ardour/ardour-8.10.0+ds/build$ cat xx.sh /home/dave/opt/gnu/gcc/gcc-15/libexec/gcc/hppa-linux-gnu/15.0.0/cc1 -fpreprocessed /home/dave/debian/ardour/ardour-8.10.0+ds/build/libs/plugins/a-comp.lv2/a-comp.c.5.i -quiet -dumpdir /home/dave/debian/ardour/ardour-8.10.0+ds/build/libs/plugins/a-comp.lv2/ -dumpbase a-comp.c.5.c -dumpbase-ext .c -g -O2 -O3 -Werror=implicit-function-declaration -Wformat=1 -Werror=format-security -Wall -Wpointer-arith -Wcast-qual -Wcast-align -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wdate-time -std=c99 -version -ffile-prefix-map=/home/dave/debian/ardour/ardour-8.10.0+ds=. -fshow-column -fomit-frame-pointer -ffast-math -fPIC -o /home/dave/debian/ardour/ardour-8.10.0+ds/build/libs/plugins/a-comp.lv2/a-comp.c.5.s Breakpoint 1, plus_constant (mode=E_DImode, x=0xf8d6da80, c=..., inplace=<optimized out>) at ../../gcc/gcc/explow.cc:102 102 gcc_assert (GET_MODE (x) == VOIDmode || GET_MODE (x) == mode); (gdb) cond 1 x==0xf8d6da80 (gdb) p *x $1 = {mode = E_SImode, code = ENTRY_VALUE, jump = 0, call = 0, unchanging = 0, volatil = 0, in_struct = 0, used = 0, frame_related = 0, return_val = 0, u2 = {original_regno = 0, insn_uid = 0, symbol_ref_flags = 0, var_location_status = VAR_INIT_STATUS_UNKNOWN, num_elem = 0, const_vector = {npatterns = 0, nelts_per_pattern = 0, unused = 0}}, u = { fld = {{rt_int = -115915096, rt_uint = 4179052200, rt_subreg = {coeffs = { 63767}}, rt_str = 0xf91746a8 "", rt_rtx = 0xf91746a8, rt_rtvec = 0xf91746a8, rt_type = 4179052200, rt_addr_diff_vec_flags = { min_align = 249, base_after_vec = 0, min_after_vec = 0, max_after_vec = 0, min_after_base = 1, max_after_base = 0, offset_unsigned = 1, scale = 70}, rt_cselib = 0xf91746a8, rt_tree = 0xf91746a8, rt_bb = 0xf91746a8, rt_mem = 0xf91746a8, rt_constant = 0xf91746a8, rt_cfi = 0xf91746a8}}, hwint = { -497851546432700416}, reg = {regno = 4179052200, nregs = 0, unused = 0, attrs = 0x72c00}, block_sym = {fld = {{rt_int = -115915096, rt_uint = 4179052200, rt_subreg = {coeffs = {63767}}, rt_str = 0xf91746a8 "", rt_rtx = 0xf91746a8, rt_rtvec = 0xf91746a8, rt_type = 4179052200, rt_addr_diff_vec_flags = {min_align = 249, base_after_vec = 0, min_after_vec = 0, max_after_vec = 0, min_after_base = 1, max_after_base = 0, offset_unsigned = 1, scale = 70}, rt_cselib = 0xf91746a8, rt_tree = 0xf91746a8, rt_bb = 0xf91746a8, rt_mem = 0xf91746a8, rt_constant = 0xf91746a8, rt_cfi = 0xf91746a8}, {rt_int = 0, rt_uint = 0, rt_subreg = { --Type <RET> for more, q to quit, c to continue without paging--q Quit (gdb) bt #0 plus_constant (mode=E_DImode, x=0xf8d6da80, c=..., inplace=<optimized out>) at ../../gcc/gcc/explow.cc:102 #1 0x00d15c14 in vt_canonicalize_addr (set=0x1df52f8, oloc=0xf8d6f3e0) at ../../gcc/gcc/var-tracking.cc:2240 #2 0x00d15cac in get_addr_from_local_cache (set=0x1df52f8, loc=<optimized out>) at ../../gcc/gcc/var-tracking.cc:2127 #3 vt_canonicalize_addr (set=0x1df52f8, oloc=0xf8d6f3e0) at ../../gcc/gcc/var-tracking.cc:2209 #4 0x00d1623c in vt_canon_true_dep (set=<optimized out>, mloc=<optimized out>, maddr=<optimized out>, loc=<optimized out>) at ../../gcc/gcc/var-tracking.cc:2255 #5 drop_overlapping_mem_locs (slot=0xf9b02050, coms=<optimized out>) at ../../gcc/gcc/var-tracking.cc:2294 #6 0x00d16484 in hash_table<variable_hasher, false, xcallocator>::traverse_noresize<overlapping_mems*, &(drop_overlapping_mem_locs(variable**, overlapping_mems*))> (this=<optimized out>, argument=0xf9b01e88) at ../../gcc/gcc/var-tracking.cc:2360 #7 hash_table<variable_hasher, false, xcallocator>::traverse<overlapping_mems*, &(drop_overlapping_mem_locs(variable**, overlapping_mems*))> ( this=<optimized out>, argument=0xf9b01e88) at ../../gcc/gcc/hash-table.h:1194 #8 clobber_overlapping_mems (set=0xfffffe8c, loc=<optimized out>) at ../../gcc/gcc/var-tracking.cc:2360 --Type <RET> for more, q to quit, c to continue without paging--q rtx plus_constant (machine_mode mode, rtx x, poly_int64 c, bool inplace) RTX_CODE code; rtx y; rtx tem; int all_constant = 0; gcc_assert (GET_MODE (x) == VOIDmode || GET_MODE (x) == mode); mode is DImode and mode of x is SImode, so assert triggers.