On August 6, 2016 12:15:26 PM GMT+02:00, Aldy Hernandez <al...@redhat.com> wrote: >On 08/05/2016 04:07 PM, Richard Biener wrote: >> On August 5, 2016 8:15:54 PM GMT+02:00, Oleg Endo ><oleg.e...@t-online.de> wrote: >>> On Fri, 2016-08-05 at 19:55 +0200, Richard Biener wrote: >>> >>>> >>>> Please don't use std::string. For string building you can use >>>> obstacks. >>>> >>> >>> Just out of curiosity ... why? I remember there was some discussion >>> about it, what was the conclusion? Is that now a general rule or >does >>> it depend on the context where strings are used? >> >> Because you make a messy mix of string handling variants. >Std::string is not powerful enough to capture all uses, it is vastly >more expensive to embed into structs and it pulls in too much headers. >> (Oh, and I hate I/o streams even more) > >Oh, and there is prior use in ipa-chkp.c, although I suppose it >could've >crept in:
Definitely. > > std::string s; > > /* called_as_built_in checks DECL_NAME to identify calls to > builtins. We want instrumented calls to builtins to be > recognized by called_as_built_in. Therefore use original > DECL_NAME for cloning with no prefixes. */ > s = IDENTIFIER_POINTER (DECL_NAME (fndecl)); > s += ".chkp"; > DECL_NAME (new_decl) = get_identifier (s.c_str ()); > >You can't tell me obstacks are easier on the eyes for this ;-). Even strcat is shorter and cheaper. Richard. >Aldy