avikivity wrote: > > ActOnEnumBody only runs for enum definitions that are parsed in the current > > translation unit, so an EnumDecl deserialized from a PCH never gets a cache > > entry and DenseMap::at() dereferences end(), crashing clang in builds > > without assertions. > > Can we instead insert into the cache when deserializing from PCH? Is this > also a problem for modules?
I'm afraid I don't know this code at all. > > The change you want to revert is needed for another (in-flight) patch - to > properly diagnose missing/invalid bitwise operators for scoped flag_enums, we > need some sort of work list. The existing flag_enum cache was _almost_ usable > for that, except that we previously didn't have any sorts of guarantees that > it will be populated (since populating was done lazily). IMO not breaking existing code takes precedence. Maybe I'm biased because it's my code that's getting broken. > > Thanks for pointing this out though, I was not aware that this was missing > one reachable path (that wasn't as visible before the followup cleanup wrt > gnu::flag_enum, but is problematic either way). https://github.com/llvm/llvm-project/pull/223244 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
