[cfe-commits] r169170 - /cfe/trunk/lib/CodeGen/CGExpr.cpp

Richard Smith richard-llvm at metafoo.co.uk
Mon Dec 3 14:39:14 PST 2012


Author: rsmith
Date: Mon Dec  3 16:39:14 2012
New Revision: 169170

URL: http://llvm.org/viewvc/llvm-project?rev=169170&view=rev
Log:
Fix test failure when building Clang with g++4.7 -- don't use a Twine temporary
after its lifetime has ended!

Modified:
    cfe/trunk/lib/CodeGen/CGExpr.cpp

Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=169170&r1=169169&r2=169170&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp Mon Dec  3 16:39:14 2012
@@ -2068,11 +2068,11 @@
   // 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);





More information about the cfe-commits mailing list