diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-03 22:39:14 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-03 22:39:14 +0000 |
commit | 78f6b03edc402900b3957b22d95bf98e0eebfd54 (patch) | |
tree | 3ce4017b2d48d2e79711f25328cb6e02dc64e300 /clang/lib | |
parent | 742f201e306010319f679f85f2c61b02561e5996 (diff) | |
download | bcm5719-llvm-78f6b03edc402900b3957b22d95bf98e0eebfd54.tar.gz bcm5719-llvm-78f6b03edc402900b3957b22d95bf98e0eebfd54.zip |
Fix test failure when building Clang with g++4.7 -- don't use a Twine temporary
after its lifetime has ended!
llvm-svn: 169170
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index ef17bdc1ded..0c2feda419e 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -2068,11 +2068,11 @@ void CodeGenFunction::EmitCheck(llvm::Value *Checked, StringRef CheckName, // Checks that have two variants use a suffix to differentiate them bool NeedsAbortSuffix = (RecoverKind != CRK_Unrecoverable) && !CGM.getCodeGenOpts().SanitizeRecover; - Twine FunctionName = "__ubsan_handle_" + CheckName + - Twine(NeedsAbortSuffix? "_abort" : ""); - llvm::Value *Fn = CGM.CreateRuntimeFunction(FnType, FunctionName.str(), - llvm::Attributes::get(getLLVMContext(), - B)); + std::string FunctionName = ("__ubsan_handle_" + CheckName + + (NeedsAbortSuffix? "_abort" : "")).str(); + llvm::Value *Fn = + CGM.CreateRuntimeFunction(FnType, FunctionName, + llvm::Attributes::get(getLLVMContext(), B)); llvm::CallInst *HandlerCall = Builder.CreateCall(Fn, Args); if (Recover) { Builder.CreateBr(Cont); |