Revert r232454 and r232456: "Fix the LLVM type used when lowering initializer list reference temporaries to global variables."
This caused PR22940.
llvm-svn: 232496
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 9209875..35275e5 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -316,16 +316,13 @@
GV->setAlignment(
CGF.getContext().getTypeAlignInChars(M->getType()).getQuantity());
// FIXME: Should we put the new global into a COMDAT?
- return llvm::ConstantExpr::getBitCast(
- GV, CGF.ConvertTypeForMem(Inner->getType())->getPointerTo());
+ return GV;
}
return CGF.CreateMemTemp(Inner->getType(), "ref.tmp");
case SD_Thread:
case SD_Static:
- return llvm::ConstantExpr::getBitCast(
- CGF.CGM.GetAddrOfGlobalTemporary(M, Inner),
- CGF.ConvertTypeForMem(Inner->getType())->getPointerTo());
+ return CGF.CGM.GetAddrOfGlobalTemporary(M, Inner);
case SD_Dynamic:
llvm_unreachable("temporary can't have dynamic storage duration");