Fix addrspacecast with metadata globals

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198345 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matt Arsenault
2014-01-02 19:53:49 +00:00
parent ecc59f2299
commit 1085cc1262
2 changed files with 31 additions and 3 deletions

View File

@@ -2856,12 +2856,14 @@ static void setUsedInitializer(GlobalVariable &V,
return;
}
SmallVector<llvm::Constant *, 8> UsedArray;
PointerType *Int8PtrTy = Type::getInt8PtrTy(V.getContext());
// Type of pointer to the array of pointers.
PointerType *Int8PtrTy = Type::getInt8PtrTy(V.getContext(), 0);
SmallVector<llvm::Constant *, 8> UsedArray;
for (SmallPtrSet<GlobalValue *, 8>::iterator I = Init.begin(), E = Init.end();
I != E; ++I) {
Constant *Cast = llvm::ConstantExpr::getBitCast(*I, Int8PtrTy);
Constant *Cast
= ConstantExpr::getPointerBitCastOrAddrSpaceCast(*I, Int8PtrTy);
UsedArray.push_back(Cast);
}
// Sort to get deterministic order.