[PATCH] MS ABI: Mangle member pointer template arguments

Reid Kleckner rnk at google.com
Wed Feb 5 08:38:53 PST 2014


  I switched over to the class template mangling of memptrs as discussed, because it's unambiguous.  We just won't be ABI compatible for function templates instantiated with null data member pointers.  Oh well.  :)


================
Comment at: lib/CodeGen/CGCXXABI.h:46
@@ -45,3 +45,3 @@
 
-  CGCXXABI(CodeGenModule &CGM)
-    : CGM(CGM), MangleCtx(CGM.getContext().createMangleContext()) {}
+  CGCXXABI(CodeGenModule &CGM, MangleContext *MangleCtx)
+    : CGM(CGM), MangleCtx(MangleCtx) {}
----------------
David Majnemer wrote:
> Why did this constructor change? I can't find a place where `MangleCtx` isn't `CGM.getContext().createMangleContext()`.
Ah, that should be reverted.

================
Comment at: lib/Sema/SemaTemplate.cpp:4542
@@ +4541,3 @@
+          << Arg->getSourceRange();
+      S.Diag(Param->getLocation(), diag::note_template_param_here);
+    }
----------------
David Majnemer wrote:
> How hard would it be to make this an error when the mangling is truly erroneous?
This is gone now, because we eliminated the ambiguous mangling.


http://llvm-reviews.chandlerc.com/D2695



More information about the cfe-commits mailing list