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.

Reply via email to