[PATCH] D42768: AST: add an extension to support SwiftCC on MS ABI

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 2 14:45:19 PST 2018


erichkeane added inline comments.


================
Comment at: lib/AST/MicrosoftMangle.cpp:1717
+        Out << '8';
+        for (const char *NS : {"__swift_cc", "__Swift"})
+          mangleSourceName(NS);
----------------
compnerd wrote:
> erichkeane wrote:
> > rsmith wrote:
> > > erichkeane wrote:
> > > > When I implemented regcall, it was brought up that this was likely a bad idea, and to just choose a letter for mangleCallingConvention.  It is a really stable list as it is, and if you avoid ones in the immediate pattern, you'll be fine.
> > > If you can get someone at Microsoft to sign off on us using a specific letter, that seems fine. Otherwise, because we don't define the ABI, we don't get to invent extensions to it, and we should instead pick something (like this) that we can be confident won't conflict with future official mangling extensions
> > Hmm... well, when we did it with RegCall, we didn't get them to 'sign off' so to speak, but simply alerted them about it after the fact and they promised to keep an eye on it.
> This is a fairly well established technique within clang, we already use this for a large number of C types (e.g. `_Complex`, `_Atomic`, etc) which MSVC does not yet support and may at some point.
Types are WAAAY different from calling conventions IMO.  putting a type in a __clang namespace makes a lot of sense.  Putting a function into an arbitrary namespace is way different.


Repository:
  rC Clang

https://reviews.llvm.org/D42768





More information about the cfe-commits mailing list