]> granicus.if.org Git - clang/commitdiff
Fix test failure when building Clang with g++4.7 -- don't use a Twine temporary
authorRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 3 Dec 2012 22:39:14 +0000 (22:39 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 3 Dec 2012 22:39:14 +0000 (22:39 +0000)
after its lifetime has ended!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169170 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGExpr.cpp

index ef17bdc1dedd0d0fc3d03bd5216cb0d5739f33b7..0c2feda419e8ccb751fb81c39cf40234d7d8fd90 100644 (file)
@@ -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);