On Thu, Oct 10, 2019 at 02:34:36PM +0200, Jakub Jelinek wrote: > On Thu, Oct 10, 2019 at 08:24:29AM -0400, Nathan Sidwell wrote: > > In addressing 91770, I need to emit a warning for a location inside a system > > header file[1]. The diagnostics machinery elides warnings when the location > > is in a system header :( > > > > As I happen to have located the appropriate line_map in the process of > > determining the nested extern "C", I could clear the map's in-system-header > > flag around the warning emission. But that's, well, urgh:( > > > > Is there a neater way? > > bool save_warn_system_headers = global_dc->dc_warn_system_headers; > global_dc->dc_warn_system_headers = 1; > ... > global_dc->dc_warn_system_headers = save_warn_system_headers; > > ? > > I'm afraid warning_sentinel can't be used here, because that clears, rather > than sets it.
We also have temp_override, that looks like it could be used instead. Marek