Skip to content

Commit 82f755c

Browse files
author
David Chisnall
committed
Remove the use of aliases in outputted code from ObjC (GNU runtime).
llvm-svn: 118498
1 parent 30d9396 commit 82f755c

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

clang/lib/CodeGen/CGObjCGNU.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -435,15 +435,15 @@ llvm::Constant *CGObjCGNU::MakeGlobal(const llvm::StructType *Ty,
435435
llvm::GlobalValue::LinkageTypes linkage) {
436436
llvm::Constant *C = llvm::ConstantStruct::get(Ty, V);
437437
return new llvm::GlobalVariable(TheModule, Ty, false,
438-
llvm::GlobalValue::InternalLinkage, C, Name);
438+
linkage, C, Name);
439439
}
440440

441441
llvm::Constant *CGObjCGNU::MakeGlobal(const llvm::ArrayType *Ty,
442442
std::vector<llvm::Constant*> &V, llvm::StringRef Name,
443443
llvm::GlobalValue::LinkageTypes linkage) {
444444
llvm::Constant *C = llvm::ConstantArray::get(Ty, V);
445445
return new llvm::GlobalVariable(TheModule, Ty, false,
446-
llvm::GlobalValue::InternalLinkage, C, Name);
446+
linkage, C, Name);
447447
}
448448

449449
/// Generate an NSConstantString object.
@@ -1586,13 +1586,15 @@ void CGObjCGNU::GenerateClass(const ObjCImplementationDecl *OID) {
15861586

15871587
// Resolve the class aliases, if they exist.
15881588
if (ClassPtrAlias) {
1589-
ClassPtrAlias->setAliasee(
1589+
ClassPtrAlias->replaceAllUsesWith(
15901590
llvm::ConstantExpr::getBitCast(ClassStruct, IdTy));
1591+
ClassPtrAlias->eraseFromParent();
15911592
ClassPtrAlias = 0;
15921593
}
15931594
if (MetaClassPtrAlias) {
1594-
MetaClassPtrAlias->setAliasee(
1595+
MetaClassPtrAlias->replaceAllUsesWith(
15951596
llvm::ConstantExpr::getBitCast(MetaClassStruct, IdTy));
1597+
MetaClassPtrAlias->eraseFromParent();
15961598
MetaClassPtrAlias = 0;
15971599
}
15981600

0 commit comments

Comments
 (0)