rjmccall added a comment. This revision now requires changes to proceed. You can't just change the top-level mangling of the symbol because this is used as part of the function type mangling, and those can appear at more-or-less arbitrary positions.
I cannot possibly imagine Microsoft actually officially adding mangling support for every extension we support in Clang. The closest you can reasonably expect is that they will add an official "vendor-extended" mangling. Until then, picking an arbitrary string and acknowledging that it is not stable and will not correctly demangle is a reasonable thing to do. The llvm_unreachable in this function is not an appropriate use of llvm_unreachable, by the way, unless there's something in the frontend that actually prevents creating such things on MS targets. The uses of unreachable in ItaniumMangle are (according to our beliefs, anyway) *actually* impossible to reach, like an Objective-C selector being mangled as part of an unresolved-name. A more acceptable approach when the mangling does not implement a case is to do something like what ItaniumMangle does on unsupported expression nodes: emit a (bad) diagnostic and continue. https://reviews.llvm.org/D31372 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits