[PATCH] [-cxx-abi microsoft] Mangle __uuidof correctly into template parameters

Reid Kleckner rnk at google.com
Mon Aug 12 15:40:50 PDT 2013


  Richard, is there any precedent for synthesizing VarDecls and things like this?  Is it worth taking the time to model these globals in the AST, or should we keep synthesizing them in codegen?


================
Comment at: lib/CodeGen/CodeGenModule.cpp:1052
@@ -1062,2 +1051,3 @@
+  StringRef Uuid = E->getUuidAsStringRef(Context);
   std::string Name = "_GUID_" + Uuid.lower();
   std::replace(Name.begin(), Name.end(), '-', '_');
----------------
It seems unfortunate that we're duplicating this computation.  We could raise it up into CXXUuidOfExpr.

================
Comment at: lib/AST/MicrosoftMangle.cpp:867
@@ +866,3 @@
+  if (UE) {
+    StringRef Uuid = UE->getUuidAsStringRef(Context.getASTContext());
+    std::string Name = "_GUID_" + Uuid.lower();
----------------
Please put a comment here about what mangling we're emulating.  It's a DeclRefExpr to a global struct of type __s_GUID with the uuid in the name?


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



More information about the cfe-commits mailing list