On Fri, Nov 21, 2014 at 8:56 AM, Jakub Jelinek <ja...@redhat.com> wrote: > On Thu, Nov 20, 2014 at 11:30:11PM +0100, Mark Wielaard wrote: >> --- a/gcc/config/avr/avr-c.c >> +++ b/gcc/config/avr/avr-c.c >> @@ -386,7 +386,8 @@ avr_cpu_cpp_builtins (struct cpp_reader *pfile) >> (as mentioned in ISO/IEC DTR 18037; Annex F.2) which is not >> implemented in GCC up to now. */ >> >> - if (!strcmp (lang_hooks.name, "GNU C")) >> + if (strncmp (lang_hooks.name, "GNU C", 5) == 0 >> + && strncmp (lang_hooks.name, "GNU C++", 7) != 0) > > I wonder if the tests for C language shouldn't be better done > as (strncmp (lang_hooks.name, "GNU C", 5) == 0 > && strchr ("0123456789", lang_hooks.name[5]) != NULL) > or (strncmp (lang_hooks.name, "GNU C", 5) == 0 > && (ISDIGIT (lang_hooks.name[5]) || lang_hooks.name[5] == '\0')) > to make it explicit what we are looking for, not what we aren't.
Or even make that a helper function in langhooks.[ch] lang_GNU_C (), lang_GNU_CXX () >> + either, so for now use 0. Match GNU C++ first, since it needs to >> + be compared with strncmp, like GNU C, which has the same prefix. */ >> + if (! strncmp (language_string, "GNU C++", 7) >> + || ! strcmp (language_string, "GNU Objective-C++")) > > Wrong formatting, || should be below ! on the previous line. > >> + i = 9; >> + else if (! strncmp (language_string, "GNU C", 5) >> || ! strcmp (language_string, "GNU GIMPLE") >> || ! strcmp (language_string, "GNU Go")) > > And here too. But if you use a different check for C (see above), you could > avoid moving the C++ case first. > >> --- a/gcc/langhooks.h >> +++ b/gcc/langhooks.h >> @@ -261,7 +261,8 @@ struct lang_hooks_for_lto >> >> struct lang_hooks >> { >> - /* String identifying the front end. e.g. "GNU C++". */ >> + /* String identifying the front end. e.g. "GNU C++". >> + Might include language version being used. */ > > As we no longer have GNU C++ as any name, using it as an example > is weird. So, > /* String identifying the front end and optionally language standard > version, e.g. "GNU C++98" or "GNU Java". */ > ? > > LGTM otherwise. Yes, otherwise looks good. Thanks, Richard. > Jakub