https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110228
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note the original code definitely has an uninitialized variable in it. The enum is defined as: enum class SymbolLookupFlags { RequiredSymbol, WeaklyReferencedSymbol }; Which always has an underlying type so all values (not just 0/1) are valid for SymbolLookupFlags .