r206804 - Try to fix bad Twine usage in r206791 with std::string

Jordan Rose jordan_rose at apple.com
Tue Apr 22 13:20:40 PDT 2014


Either use SmallString, or just use two twine chains?

Jordan


On Apr 21, 2014, at 15:29 , Reid Kleckner <reid at kleckner.net> 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
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list