[PATCH] [ms-cxxabi] Mangle nullptr template arguments

Richard Smith richard at metafoo.co.uk
Sun Aug 4 11:44:41 PDT 2013

Comment at: lib/AST/MicrosoftMangle.cpp:894
@@ +893,3 @@
+  case TemplateArgument::NullPtr: {
+    mangleIntegerLiteral(llvm::APSInt(/*BitWidth=*/64), /*IsBoolean=*/false);
+    break;
Sending nullptr_t through the integer literal codepath seems unnecessary. All we really know here is that nullptr_t appears to be mangled as A@, so maybe just emit that directly.

Comment at: lib/AST/MicrosoftMangle.cpp:889
@@ -888,4 +888,3 @@
   case TemplateArgument::Integral:
-    mangleIntegerLiteral(TA.getAsIntegral(),
-                         TA.getIntegralType()->isBooleanType());
+    mangleIntegerLiteral(TA.getAsIntegral(), /*IsBoolean=*/false);
What's the reason for this change? If it's OK to pass false here, do we need the IsBoolean parameter at all?


More information about the cfe-commits mailing list