================
Comment at: lib/AST/MicrosoftMangle.cpp:485-492
@@ +484,10 @@
+
+          // Mangle local lambda in the form
+          // <lambda_n>
+          // where n is the lambda id.
+          SmallString<64> Str;
+          Str += "<lambda_";
+          Str += llvm::utostr(ID);
+          Str += ">";
+          Out << Str.str();
+          break;
----------------
Charles Davis wrote:
> Are you sure we should deviate from VC's behavior here? I thought the whole 
> point of Microsoft ABI support was so we could compile a program with Clang 
> against a DLL compiled with VC (and //vice versa//), and have it all just 
> work. (At least, that's what I had in mind when I started all this :).
> 
> I do admit, this might be a bit nicer if we were the ones driving the ABI 
> "spec" (inasmuch as there even //is// one to follow), but we're not. (Then 
> again, they do only have internal linkage...)
> 
> On a related note, I now know I need to investigate VC's behavior when a 
> mangled name refers to multiple unnamed tag types (if it's even possible...).
Hi!

I fully agree what you said I didn't try to deviate from MSVC - the <lambda> 
tag is what VC would emit for lambda with internal linkage (and probably with 
external linkage as well.) based on what I observed. Since there is no spec, my 
understanding may be inaccurate. 

As for the MS ABI spec, I am also curious to know if there is any public 
documents on how closure types should be mangled. All the existing documents 
about MS name mangling I can find seems dated and wrote before lambda got into 
standard and VC.





http://llvm-reviews.chandlerc.com/D774
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to