https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93355
--- Comment #8 from David Malcolm <dmalcolm at gcc dot gnu.org> --- (In reply to David Malcolm from comment #4) > (a) It happens to successfully explore enough of the graph to find the leak, > but hits complexity limits at 1 program point: > > pr93355-localealias.c:263:41: warning: terminating analysis for this program > point: callstring: [(SN: 66 -> SN: 85 in _nl_expand_alias)] before (SN: 21 > stmt: 0): _7 = *cp_107;EN: 163, EN: 170, EN: 177, EN: 370, EN: 557, EN: > 794, EN: 801, EN: 808 [-Wanalyzer-too-complex] > 263 | while (isspace ((unsigned char) cp[0])) > | ~~^~~ If I get rid of _nl_expand_alias then the state explosion goes away. There are 2 enodes at the callsite to read_alias_file, so the entrypoint starts with 3 enodes (both calls, plus independent analysis) Hence there's already a 3x for that function. Without that 3x, things seem reasonable within read_alias_file. So (a) may be really "just" a call summarization problem.