[PATCH] D40929: Unblock Swift Calling Convention Mangling on Windows

Thomas Roughton via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 15 00:59:18 PST 2017


troughton marked an inline comment as done.
troughton added a comment.

> Which, I think is just adding something wacky like `@swiftcc at __Swift@@` which would demangle as `__Swift::swiftcc` if the demangler expected an NNS there. Of course, it doesn't, so it won't demangle, but at least you can overload between cdecl and swiftcc then.

Could we do a combination of these? Use the `A` prefix for the CC slot but then append the `@swiftcc at __Swift@@` at the end of the qualified name? That way you could still distinguish a SwiftCC function and have it correctly demangle with existing tools.

As for emitting a proper diagnostic: we definitely can do something better here. I wasn't sure what to base it off so went with the simplest option, but given that `CodeGenModule::ErrorUnsupported` example I'll take a look and try to implement something similar.



================
Comment at: lib/AST/MicrosoftMangle.cpp:2133
+      llvm::errs() << "Unsupported CC for mangling: " << CC << ".\n";
     case CC_Win64:
     case CC_X86_64SysV:
----------------
smeenai wrote:
> You still need the default label, right?
Oops, yes. Thanks. I've added it back.


Repository:
  rC Clang

https://reviews.llvm.org/D40929





More information about the cfe-commits mailing list