https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93544
--- Comment #3 from Arseny Solokha <asolokha at gmx dot com> --- (In reply to David Malcolm from comment #2) > (In reply to Arseny Solokha from comment #0) > > (BTW, w/o -O1 the analysis seems to be wrong in that double-free happens > > following "false" branch, but that's a different issue.) > > I'm not sure what you mean by the above I'm not sure either now. I bet I've seen | 11 | bs = dx = !!ja ? qd () : 0; | | ~~~~~~~~~~~~~~~~~~^~~ | | | | | | | | | (1) following 'false' branch... (maybe at some point during testcase reduction?) but I cannot reproduce it now. Will try tomorrow on the machine that yielded the testcase and file a separate PR if it'll turn to be real. Meanwhile, passing -xc++ along w/ -fanalyzer-fine-grained, yet unsupported, makes the output fully correct.