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