EricWF added inline comments.

================
Comment at: lib/AST/ItaniumMangle.cpp:3250-3251
 
-  mangleType(T->getBaseType());
+  for (auto Ty : T->getArgs())
+    mangleType(Ty);
 }
----------------
EricWF wrote:
> rsmith wrote:
> > We need manglings to be self-delimiting, and we can't tell where the end of 
> > the argument list is with this mangling approach. :(
> > 
> > (Eg, `f(__raw_invocation_type(T1, T2, T3))` and 
> > `f(__raw_invocation_type(T1, T2), T3)` would mangle the same with this 
> > mangling.)
> > 
> > Maybe drop an `E` on the end? (Or maybe do that only for traits that don't 
> > require exactly one argument, but that would create pain for demanglers....)
> Makes sense. Thanks for the explanation. I'll go ahead and drop and E on the 
> end.
> 
> However, will this cause ABI issues? Either with existing code or with GCC? 
> If so, perhaps we should maintain the current mangling for 
> `__underlying_type`.
To answer my own question, GCC doesn't mangle `__underlying_type` yet. And I 
doubt that people are currently depending on the dependent mangling of 
`__underlying_type`. Perhaps I'm wrong about that last assumption though.


https://reviews.llvm.org/D45131



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to