https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395
Bug ID: 96395 Summary: gcc.dg/analyzer/explode-2.c fails when compiled as C++ Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: sandra at gcc dot gnu.org Target Milestone: --- gcc.dg/analyzer/explode-2.c triggers a -Wanalyzer-too-complex diagnostic when compiled as C++, but not as C: $ x86_64-linux-gnu-g++ /path/to/gcc/testsuite/gcc.dg/analyzer/explode-2.c -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -fdiagnostics-urls=never -fanalyzer -fdiagnostics-path-format=separate-events -Wanalyzer-too-complex -fanalyzer-call-summaries --param analyzer-max-enodes-per-program-point=200 --param analyzer-bb-explosion-factor=50 -S cc1plus: warning: analysis bailed out early (701 'after-snode' enodes; 2762 enodes) [-Wanalyzer-too-complex] ... Increasing both of the params specified in the test case by a factor of 5 didn't seem to help. I ran into this problem in connection with my patches to unify loop representations in the C and C++ front ends https://gcc.gnu.org/pipermail/gcc-patches/2020-March/541954.html but it can be reproduced separately without those patches just by compiling with g++ instead of gcc.