While I'm here, resync a %select with the enum definition it selects on.
authorNico Weber <nicolasweber@gmx.de>
Wed, 3 Oct 2012 06:57:02 +0000 (06:57 +0000)
committerNico Weber <nicolasweber@gmx.de>
Wed, 3 Oct 2012 06:57:02 +0000 (06:57 +0000)
* nullptr used to be mapped to ERROR, now mapped to nullptr
* integral was missing
* expressions now have their own error message, so they won't reach
  this. Map them to ERROR.

Note that clang usually crashes before emitting this diagnostic anyway
(see PR13984), so this change alone doesn't have an observable effect.
It makes the code more correct though.

llvm-svn: 165095

clang/lib/AST/MicrosoftMangle.cpp

index 19ceca5..072ad06 100644 (file)
@@ -830,8 +830,8 @@ MicrosoftCXXNameMangler::mangleTemplateArgs(
       // Issue a diagnostic.
       DiagnosticsEngine &Diags = Context.getDiags();
       unsigned DiagID = Diags.getCustomDiagID(DiagnosticsEngine::Error,
-        "cannot mangle this %select{ERROR|ERROR|pointer/reference|ERROR|"
-        "template|template pack expansion|expression|parameter pack}0 "
+        "cannot mangle this %select{ERROR|ERROR|pointer/reference|nullptr|"
+        "integral|template|template pack expansion|ERROR|parameter pack}0 "
         "template argument yet");
       Diags.Report(TAL.getLocation(), DiagID)
         << TA.getKind()