On Fri, Oct 11, 2019 at 11:48:27PM +0200, Paolo Carlini wrote: > --- decl.c (revision 276903) > +++ decl.c (working copy) > @@ -9328,7 +9328,6 @@ grokfndecl (tree ctype, > } > /* 17.6.3.3.5 */ > if (suffix[0] != '_' > - && !in_system_header_at (location) > && !current_function_decl && !(friendp && !funcdef_flag)) > warning_at (location, OPT_Wliteral_suffix, > "literal operator suffixes not preceded by %<_%>"
This should make no functional difference. > @@ -10036,8 +10035,6 @@ compute_array_index_type_loc (location_t name_loc, > indicated by the state of complain), so that > another substitution can be found. */ > return error_mark_node; > - else if (in_system_header_at (input_location)) > - /* Allow them in system headers because glibc uses them. */; > else if (name) > pedwarn (loc, OPT_Wpedantic, > "ISO C++ forbids zero-size array %qD", name); But this one is unclear, in_system_header_at is testing a different location from what will be used by pedwarn, so if input_location is in system header and loc is not, it didn't pedwarn before and now it will. Similarly various other spots in the patch. I haven't tried to check in detail what exactly we want in each case, all I want to say is that some cases are obvious, other cases are not. Jakub