majnemer added inline comments.
================ Comment at: lib/AST/MicrosoftMangle.cpp:888-891 auto EnumeratorI = ED->enumerator_begin(); - assert(EnumeratorI != ED->enumerator_end()); - Name += "<unnamed-enum-"; - Name += EnumeratorI->getName(); + if (EnumeratorI == ED->enumerator_end()) { + Name += "<unnamed-tag"; + } else { ---------------- Thinking about it some more, it'd be better if we handled this like the else case: Name += "<unnamed-type-$S"; Name += llvm::utostr(Context.getAnonymousStructId(TD) + 1); Reason being that something like: struct S { enum {}; enum {}; }; Would otherwise end up with two identical mangles. This would also make us more consistent with other mangles, for example: enum {} x; struct {} y; These are mangled as: <unnamed-type-x> and <unnamed-type-y>. https://reviews.llvm.org/D47875 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits