https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97695
Bug ID: 97695 Summary: wrong code at -O3 on x86_64-pc-linux-gnu Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zhendong.su at inf dot ethz.ch Target Milestone: --- [508] % gcctk -v Using built-in specs. COLLECT_GCC=gcctk COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk/configure --disable-bootstrap --prefix=/local/suz-local/software/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib --with-system-zlib Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.0.0 20201103 (experimental) [master revision 682ed7ad230:259379fab27:0caf400a865cb771f76bf1025cfc2a83e8ef00ed] (GCC) [509] % [509] % gcctk -O2 small.c; ./a.out [510] % [510] % gcctk -O3 small.c; ./a.out Floating point exception [511] % [511] % cat small.c int *a, b, **c = &a, d, e; int f(int g, int h) { return !h || (g && h == 1) ? 0 : g / h; } static void *i(int g) { while (e < 2) if (!f(g, 9)) { while (b) ; return 0; } return 0; } void j() { i(1); *c = i(d); } int main() { j(); return 0; }