Either use SmallString, or just use two twine chains? Jordan
On Apr 21, 2014, at 15:29 , Reid Kleckner <[email protected]> wrote: > Author: rnk > Date: Mon Apr 21 17:29:45 2014 > New Revision: 206804 > > URL: http://llvm.org/viewvc/llvm-project?rev=206804&view=rev > Log: > Try to fix bad Twine usage in r206791 with std::string > > I'm pretty sure I was referencing destroyed temporaries here. I'm open > to suggestions on how to write this better. > > Modified: > cfe/trunk/lib/Basic/Targets.cpp > > Modified: cfe/trunk/lib/Basic/Targets.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=206804&r1=206803&r2=206804&view=diff > ============================================================================== > --- cfe/trunk/lib/Basic/Targets.cpp (original) > +++ cfe/trunk/lib/Basic/Targets.cpp Mon Apr 21 17:29:45 2014 > @@ -3103,7 +3103,9 @@ static void addMinGWDefines(const LangOp > // x64 as well as x86, even though they have no effect. > const char *CCs[] = {"cdecl", "stdcall", "fastcall", "thiscall", > "pascal"}; > for (const char *CC : CCs) { > - Twine GCCSpelling = Twine("__attribute__((__") + CC + Twine("__))"); > + std::string GCCSpelling = "__attribute__((__"; > + GCCSpelling += CC; > + GCCSpelling += "__))"; > Builder.defineMacro(Twine("_") + CC, GCCSpelling); > Builder.defineMacro(Twine("__") + CC, GCCSpelling); > } > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
