https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100090
Bug ID: 100090 Summary: ICE in regcprop.c (find_oldest_value_reg) Product: gcc Version: 10.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: andrewdkaster at gmail dot com Target Milestone: --- Host: x86_64-linux-gnu Target: i686-pc-serenity Encountered an ICE when trying to port OpenJDK to the Serenity operating system. G++ used has these patches applied to provide spec files for the OS: https://github.com/SerenityOS/serenity/blob/b6093ae2e362aa1f9cf7e87bc829b37b24250d25/Toolchain/Patches/gcc.patch Test case was reduced with cvise 1.6.0 (ubuntu 20.04), which seems to be the cause of like.. all the warnings. ==== ~/bugs$ ../serenity/Toolchain/Local/i686/bin/i686-pc-serenity-g++ -v -std=c++11 -save-temps -g -O2 -fpermissive -S -c testcase.i Using built-in specs. COLLECT_GCC=../serenity/Toolchain/Local/i686/bin/i686-pc-serenity-g++ Target: i686-pc-serenity Configured with: /home/andrew/serenity/Toolchain/Tarballs/gcc-10.3.0/configure --prefix=/home/andrew/serenity/Toolchain/Local/i686 --target=i686-pc-serenity --with-sysroot=/home/andrew/serenity/Toolchain/../Build/i686/Root --disable-nls --with-newlib --enable-shared --enable-languages=c,c++ --enable-default-pie --enable-lto Thread model: single Supported LTO compression algorithms: zlib gcc version 10.3.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-std=c++11' '-save-temps' '-g' '-O2' '-fpermissive' '-S' '-c' '-mtune=generic' '-march=pentiumpro' /home/andrew/serenity/Toolchain/Local/i686/libexec/gcc/i686-pc-serenity/10.3.0/cc1plus -fpreprocessed testcase.i -fno-exceptions -ftls-model=initial-exec -quiet -dumpbase testcase.i -mtune=generic -march=pentiumpro -auxbase testcase -g -O2 -std=c++11 -version -fpermissive -o testcase.s -fno-exceptions -ftls-model=initial-exec GNU C++11 (GCC) version 10.3.0 (i686-pc-serenity) compiled by GNU C version 10.2.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++11 (GCC) version 10.3.0 (i686-pc-serenity) compiled by GNU C version 10.2.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: cf67ba5e5efa94a26d76866548722b70 testcase.i:12:3: warning: ISO C++ forbids declaration of 'ab' with no type [-fpermissive] 12 | ab(a); | ^~ testcase.i:18:3: warning: ISO C++ forbids declaration of 'm' with no type [-fpermissive] 18 | m() { return ag; } | ^ testcase.i:19:4: warning: ISO C++ forbids declaration of 'ag' with no type [-fpermissive] 19 | *ag; | ^~ testcase.i: In member function 'int k::m()': testcase.i:18:16: warning: invalid conversion from 'int*' to 'int' [-fpermissive] 18 | m() { return ag; } | ^~ | | | int* testcase.i: At global scope: testcase.i:30:3: warning: ISO C++ forbids declaration of 'aj' with no type [-fpermissive] 30 | aj(ah ak) { | ^~ testcase.i: In member function 'int n::aj(n::ah)': testcase.i:34:3: warning: no return statement in function returning non-void [-Wreturn-type] 34 | } | ^ testcase.i: In constructor 'ao::ao(k*)': testcase.i:48:23: warning: invalid conversion from 'int' to 'n*' [-fpermissive] 48 | ao(k *aq) : ao(aq->m(), aq) {} | ~~~~~^~ | | | int testcase.i:45:9: note: initializing argument 1 of 'ao::ao(n*, k*)' 45 | ao(n *ai, k *) : ap(ai) {} | ~~~^~ testcase.i: At global scope: testcase.i:67:3: warning: ISO C++ forbids declaration of 'bc' with no type [-fpermissive] 67 | bc(az, bool); | ^~ testcase.i:76:3: warning: ISO C++ forbids declaration of 'bg' with no type [-fpermissive] 76 | bg(b, e, d &, g &); | ^~ testcase.i:95:3: warning: ISO C++ forbids declaration of 'bq' with no type [-fpermissive] 95 | bq(b); | ^~ testcase.i:102:11: warning: ISO C++ forbids declaration of 'bu' with no type [-fpermissive] 102 | virtual bu(); | ^~ testcase.i:120:11: warning: ISO C++ forbids declaration of 'bg' with no type [-fpermissive] 120 | virtual bg(b ce) { | ^~ testcase.i: In constructor 'ca::ca(ca::bf, ar*, bp*, bl*, at*)': testcase.i:119:36: warning: anachronistic old-style base class initializer [-fpermissive] 119 | ca(bf, ar *, bp *, bl *, at *) : ("") {} | ^ testcase.i:119:37: warning: invalid conversion from 'const char*' to 'char' [-fpermissive] 119 | ca(bf, ar *, bp *, bl *, at *) : ("") {} | ^~ | | | const char* testcase.i:63:6: note: initializing argument 1 of 'az::az(char)' 63 | az(char); | ^~~~ testcase.i:119:3: warning: uninitialized reference member in 'ca::bf&' {aka 'class be::bf&'} [-fpermissive] 119 | ca(bf, ar *, bp *, bl *, at *) : ("") {} | ^~ testcase.i:113:7: note: 'ca::bf& ca::cb' should be initialized 113 | bf &cb; | ^~ testcase.i: In member function 'virtual int ca::bg(b)': testcase.i:123:20: warning: invalid conversion from 'int' to 'bd*' [-fpermissive] 123 | bd *bt = bw->bq(ce); | ~~~~~~^~~~ | | | int testcase.i:127:3: warning: no return statement in function returning non-void [-Wreturn-type] 127 | } | ^ testcase.i: In member function 'void bv::bz(be::bf&, b)': testcase.i:132:10: warning: invalid conversion from 'ca*' to 'char' [-fpermissive] 132 | by->bc(&q, ck); | ^~ | | | ca* testcase.i:63:6: note: initializing argument 1 of 'az::az(char)' 63 | az(char); | ^~~~ during RTL pass: pro_and_epilogue testcase.i: In member function 'virtual int ca::bg(b)': testcase.i:127:3: internal compiler error: in find_oldest_value_reg, at regcprop.c:438 127 | } | ^ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions.