IRGen: Generate runtime type manglings using ObjC runtime names.

In order for the runtime demangler to be able to find ObjC classes and protocols, it needs to
have the runtime name of the declaration be in the mangled name. Only do this for runtime manglings,
to minimize the potential ABI impact for symbol names that already have the source-level names of
ObjC entities baked in. Fixes SR-12169 | rdar://59306590.
This commit is contained in:
Joe Groff
2020-03-05 14:08:26 -08:00
parent b58ea4bb37
commit fe1186447b
5 changed files with 53 additions and 10 deletions

View File

@@ -39,8 +39,8 @@ protected:
bool OptimizeProtocolNames = true;
/// If enabled, use Objective-C runtime names when mangling @objc Swift
/// protocols.
bool UseObjCProtocolNames = false;
/// protocols and classes.
bool UseObjCRuntimeNames = false;
/// If enabled, non-canonical types are allowed and type alias types get a
/// special mangling.