https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94999
David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED Blocks| |95006 --- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Thanks for filing this. I'm able to reproduce this with the revision in question (f883c46b4877f637e0fa5025b4d6b5c9040ec566), but it's fixed in GCC 10.1 It's an assertion failure here: #1 0x000000000242ee44 in ana::saved_diagnostic::saved_diagnostic (this=0x3c6ca60, sm=0x0, enode=0x3ce0b20, snode=0x332a110, stmt=0x0, stmt_finder=0x0, var=<tree 0x0>, state=0, d=0x3cff4e0) at ../../src/gcc/analyzer/diagnostic-manager.cc:84 84 gcc_assert (m_stmt || m_stmt_finder); when handling a false positive from -Wanalyzer-use-of-uninitialized-value, which I removed in r10-8012-g78b9783774bfd3540f38f5b1e3c7fc9f719653d7. The diagnostic is generated when analyzing the return from mk_entry to memory_ensure_mapped_range on this code: static struct entry mk_entry(uint64_t start, uint64_t end) { return (struct entry) {safe_calloc(end - start, 1), start, end}; } I think -fanalyzer is failing to handle a CONSTRUCTOR tree code (on those {...}), and thus is erroneously treating the return value as uninitialized, when the code looks correct to me. The failure to handle CONSTRUCTOR tree codes is PR analyzer/94447, so I'm going to close this out as a duplicate of that bug; clearly it needs to be fixed in order to reimplement -Wanalyzer-use-of-uninitialized-value; adding to the analyzer-uninit tracker bug. *** This bug has been marked as a duplicate of bug 94447 *** Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95006 [Bug 95006] Reimplement -Wanalyzer-use-of-uninitialized-value