diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2015-03-17 02:21:31 +0000 |
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2015-03-17 02:21:31 +0000 |
| commit | cf191adaf5647f32d62cee7eda8e1775666ddba2 (patch) | |
| tree | 2d26cc7a4863a4675155b9b4fbd308be7d7d9a3e /clang/lib | |
| parent | d9c4c2487f42265f6c64102d99c006903f7499b8 (diff) | |
| download | bcm5719-llvm-cf191adaf5647f32d62cee7eda8e1775666ddba2.tar.gz bcm5719-llvm-cf191adaf5647f32d62cee7eda8e1775666ddba2.zip | |
Fix the LLVM type used when lowering initializer list reference temporaries to global variables.
llvm-svn: 232454
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 35275e58e93..92098752cb9 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -316,13 +316,16 @@ createReferenceTemporary(CodeGenFunction &CGF, GV->setAlignment( CGF.getContext().getTypeAlignInChars(M->getType()).getQuantity()); // FIXME: Should we put the new global into a COMDAT? - return GV; + return llvm::ConstantExpr::getBitCast( + GV, CGF.ConvertTypeForMem(Inner->getType())->getPointerTo()); } return CGF.CreateMemTemp(Inner->getType(), "ref.tmp"); case SD_Thread: case SD_Static: - return CGF.CGM.GetAddrOfGlobalTemporary(M, Inner); + return llvm::ConstantExpr::getBitCast( + CGF.CGM.GetAddrOfGlobalTemporary(M, Inner), + CGF.ConvertTypeForMem(Inner->getType())->getPointerTo()); case SD_Dynamic: llvm_unreachable("temporary can't have dynamic storage duration"); |

