diagnostic.h has a couple of macros (diagnostic_last_module_changed and diagnostic_set_last_module) which are only used within diagnostic_report_current_module.
This patch eliminates the macros in favor of static functions within diagnostic.c. No functional change intended. Successfully bootstrapped®rtested on x86_64-pc-linux-gnu. Committed to trunk as r247664. gcc/ChangeLog: * diagnostic.c (last_module_changed_p): New function. (set_last_module): New function. (diagnostic_report_current_module): Convert macro usage to the above functions. * diagnostic.h (diagnostic_context::last_module): Strengthen from const line_map * to const line_map_ordinary *. (diagnostic_last_module_changed): Delete macro. (diagnostic_set_last_module): Delete macro. --- gcc/diagnostic.c | 23 +++++++++++++++++++++-- gcc/diagnostic.h | 12 +----------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index 815bdb0..1585196 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -534,6 +534,25 @@ diagnostic_action_after_output (diagnostic_context *context, } } +/* True if the last module or file in which a diagnostic was reported is + different from the current one. */ + +static bool +last_module_changed_p (diagnostic_context *context, + const line_map_ordinary *map) +{ + return context->last_module != map; +} + +/* Remember the current module or file as being the last one in which we + report a diagnostic. */ + +static void +set_last_module (diagnostic_context *context, const line_map_ordinary *map) +{ + context->last_module = map; +} + void diagnostic_report_current_module (diagnostic_context *context, location_t where) { @@ -552,9 +571,9 @@ diagnostic_report_current_module (diagnostic_context *context, location_t where) LRK_MACRO_DEFINITION_LOCATION, &map); - if (map && diagnostic_last_module_changed (context, map)) + if (map && last_module_changed_p (context, map)) { - diagnostic_set_last_module (context, map); + set_last_module (context, map); if (! MAIN_FILE_P (map)) { map = INCLUDED_FROM (line_table, map); diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h index 846a158..89d5a08 100644 --- a/gcc/diagnostic.h +++ b/gcc/diagnostic.h @@ -189,7 +189,7 @@ struct diagnostic_context /* Used to detect when the input file stack has changed since last described. */ - const struct line_map *last_module; + const line_map_ordinary *last_module; int lock; @@ -241,16 +241,6 @@ diagnostic_inhibit_notes (diagnostic_context * context) /* Same as output_prefixing_rule. Works on 'diagnostic_context *'. */ #define diagnostic_prefixing_rule(DC) ((DC)->printer->wrapping.rule) -/* True if the last module or file in which a diagnostic was reported is - different from the current one. */ -#define diagnostic_last_module_changed(DC, MAP) \ - ((DC)->last_module != MAP) - -/* Remember the current module or file as being the last one in which we - report a diagnostic. */ -#define diagnostic_set_last_module(DC, MAP) \ - (DC)->last_module = MAP - /* Raise SIGABRT on any diagnostic of severity DK_ERROR or higher. */ #define diagnostic_abort_on_error(DC) \ (DC)->abort_on_error = true -- 1.8.5.3