diff options
author | Akira Hatanaka <ahatanaka@apple.com> | 2018-04-03 22:50:16 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@apple.com> | 2018-04-03 22:50:16 +0000 |
commit | 0c194461b5acf968e1eba0e029382cc2ca6b1383 (patch) | |
tree | 7c0c260469e200472b61b724266c7f10fb58678b /clang/lib/CodeGen/CGObjCMac.cpp | |
parent | d9189d1e76dd0d2640b13b5c2aa4cfb47ea7d808 (diff) | |
download | bcm5719-llvm-0c194461b5acf968e1eba0e029382cc2ca6b1383.tar.gz bcm5719-llvm-0c194461b5acf968e1eba0e029382cc2ca6b1383.zip |
[ObjC] Use the name specified by objc_runtime_name instead of the class
identifier.
This patch fixes a few places in CGObjCMac.cpp where the class
identifier was used instead of the name specified by objc_runtime_name.
rdar://problem/37910822
Differential Revision: https://reviews.llvm.org/D45101
llvm-svn: 329128
Diffstat (limited to 'clang/lib/CodeGen/CGObjCMac.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGObjCMac.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index 64f40e1a069..5b3db0371ed 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -3401,7 +3401,9 @@ static bool hasMRCWeakIvars(CodeGenModule &CGM, See EmitClassExtension(); */ void CGObjCMac::GenerateClass(const ObjCImplementationDecl *ID) { - DefinedSymbols.insert(ID->getIdentifier()); + IdentifierInfo *RuntimeName = + &CGM.getContext().Idents.get(ID->getObjCRuntimeNameAsString()); + DefinedSymbols.insert(RuntimeName); std::string ClassName = ID->getNameAsString(); // FIXME: Gross @@ -4980,7 +4982,9 @@ llvm::Value *CGObjCMac::EmitClassRef(CodeGenFunction &CGF, if (ID->hasAttr<ObjCRuntimeVisibleAttr>()) return EmitClassRefViaRuntime(CGF, ID, ObjCTypes); - return EmitClassRefFromId(CGF, ID->getIdentifier()); + IdentifierInfo *RuntimeName = + &CGM.getContext().Idents.get(ID->getObjCRuntimeNameAsString()); + return EmitClassRefFromId(CGF, RuntimeName); } llvm::Value *CGObjCMac::EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) { |