Created attachment 49484 [details] Testcase gfortran-11.0.0-alpha20201101 snapshot (g:590febb5f6624f78b36402a7c9a9c318978f1efa) ICEs when compiling the attached testcase w/ -O1 -fanalyzer: % powerpc-e300c3-linux-gnu-gfortran-11.0.0 -std=legacy -O1 -fanalyzer -c d9xjyayq.f during IPA pass: analyzer d9xjyayq.f:6:16: 6 | DO 136 IG=IS,1 | ^ internal compiler error: in cmp_cst, at analyzer/svalue.cc:283 0x71ef8e cmp_cst /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/svalue.cc:283 0x18aca58 cmp1<sort_ctx> /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:153 0x18acab4 netsort<sort_ctx> /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:170 0x18acab4 mergesort<sort_ctx> /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:207 0x18ad0f2 gcc_qsort(void*, unsigned long, unsigned long, int (*)(void const*, void const*)) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:266 0x183636a ana::constraint_manager::canonicalize() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/constraint-manager.cc:1713 0x1211e95 ana::program_state::prune_for_point(ana::exploded_graph&, ana::program_point const&, ana::exploded_node const*) const /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/program-state.cc:1049 0x11fcf02 ana::exploded_graph::get_or_create_node(ana::program_point const&, ana::program_state const&, ana::exploded_node const*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:2045 0x11ffae4 ana::exploded_graph::process_node(ana::exploded_node*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:2850 0x1200672 ana::exploded_graph::process_worklist() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:2523 0x120282b ana::impl_run_checkers(ana::logger*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:4658 0x1203721 ana::run_checkers() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:4729 0x11f6748 execute /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/analyzer-pass.cc:84 (While my target here is powerpc, the ICE should not be target-specific.)
Confirmed, started with r11-4435-gbf1b5dae440de888.
Finally, a C testcase: void wb (_Complex double jh) { _Complex double af = 0.0; do { af += jh; } while (af != 0.0); } _Complex double o6 (void) { _Complex double ba = 0.0; for (;;) { wb (ba); ba = 1.0; } return ba; } % gcc-11.0.0 -O1 -fanalyzer -c nzttegjf.c during IPA pass: analyzer nzttegjf.c: In function 'wb': nzttegjf.c:20:7: internal compiler error: in cmp_cst, at analyzer/svalue.cc:283 20 | wb (ba); | ^~~~~~~ 0x73dc66 cmp_cst /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/svalue.cc:283 0x19296e0 cmp1<sort_ctx> /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:153 0x1929734 netsort<sort_ctx> /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:170 0x1929734 mergesort<sort_ctx> /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:207 0x1929cc2 gcc_qsort(void*, unsigned long, unsigned long, int (*)(void const*, void const*)) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/sort.cc:266 0x18c2311 vec<ana::svalue const*, va_heap, vl_embed>::qsort(int (*)(void const*, void const*)) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/vec.h:1138 0x18c2311 vec<ana::svalue const*, va_heap, vl_ptr>::qsort(int (*)(void const*, void const*)) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/vec.h:2031 0x18c2311 ana::equiv_class::canonicalize() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/constraint-manager.cc:431 0x18c2311 ana::constraint_manager::canonicalize() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/constraint-manager.cc:1713 0x115d881 ana::program_state::prune_for_point(ana::exploded_graph&, ana::program_point const&, ana::exploded_node const*) const /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/program-state.cc:1049 0x1149245 ana::exploded_graph::get_or_create_node(ana::program_point const&, ana::program_state const&, ana::exploded_node const*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:2045 0x114c6cd ana::exploded_graph::process_node(ana::exploded_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:2850 0x114d47a ana::exploded_graph::process_worklist() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:2523 0x114f59a ana::impl_run_checkers(ana::logger*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:4658 0x115036c ana::run_checkers() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/engine.cc:4729 0x11424e8 execute /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/analyzer/analyzer-pass.cc:84
The master branch has been updated by David Malcolm <dmalcolm@gcc.gnu.org>: https://gcc.gnu.org/g:54cbdb528df16686290ad26e2130a1896915639d commit r11-4740-g54cbdb528df16686290ad26e2130a1896915639d Author: David Malcolm <dmalcolm@redhat.com> Date: Thu Nov 5 09:54:58 2020 -0500 analyzer: fix ICE comparing COMPLEX_CSTs [PR97668] gcc/analyzer/ChangeLog: PR analyzer/97668 * svalue.cc (cmp_cst): Handle COMPLEX_CST. gcc/testsuite/ChangeLog: PR analyzer/97668 * gcc.dg/analyzer/pr97668.c: New test. * gfortran.dg/analyzer/pr97668.f: New test.
Thanks for filing this. Should be fixed by the above commit.