http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50760
--- Comment #2 from dodji at seketeli dot org <dodji at seketeli dot org> 2011-10-17 18:28:46 UTC --- I am testing this patch, maybe you could help with your big fast iron? Thanks. diff --git a/gcc/input.c b/gcc/input.c index 41842b7..8138a65 100644 --- a/gcc/input.c +++ b/gcc/input.c @@ -99,46 +99,46 @@ dump_line_table_statistics (void) + s.macro_maps_used_size + s.macro_maps_locations_size; - fprintf (stderr, "Number of expanded macros: %5lu\n", - s.num_expanded_macros); + fprintf (stderr, "Number of expanded macros: %5ld\n", + (long)s.num_expanded_macros); if (s.num_expanded_macros != 0) - fprintf (stderr, "Average number of tokens per macro expansion: %5lu\n", - s.num_macro_tokens / s.num_expanded_macros); + fprintf (stderr, "Average number of tokens per macro expansion: %5ld\n", + (long)s.num_macro_tokens / s.num_expanded_macros); fprintf (stderr, "\nLine Table allocations during the " "compilation process\n"); - fprintf (stderr, "Number of ordinary maps used: %5lu%c\n", - SCALE (s.num_ordinary_maps_used), + fprintf (stderr, "Number of ordinary maps used: %5ld%c\n", + (long)SCALE (s.num_ordinary_maps_used), STAT_LABEL (s.num_ordinary_maps_used)); - fprintf (stderr, "Ordinary map used size: %5lu%c\n", - SCALE (s.ordinary_maps_used_size), + fprintf (stderr, "Ordinary map used size: %5ld%c\n", + (long)SCALE (s.ordinary_maps_used_size), STAT_LABEL (s.ordinary_maps_used_size)); - fprintf (stderr, "Number of ordinary maps allocated: %5lu%c\n", - SCALE (s.num_ordinary_maps_allocated), + fprintf (stderr, "Number of ordinary maps allocated: %5ld%c\n", + (long)SCALE (s.num_ordinary_maps_allocated), STAT_LABEL (s.num_ordinary_maps_allocated)); - fprintf (stderr, "Ordinary maps allocated size: %5lu%c\n", - SCALE (s.ordinary_maps_allocated_size), + fprintf (stderr, "Ordinary maps allocated size: %5ld%c\n", + (long)SCALE (s.ordinary_maps_allocated_size), STAT_LABEL (s.ordinary_maps_allocated_size)); - fprintf (stderr, "Number of macro maps used: %5lu%c\n", - SCALE (s.num_macro_maps_used), + fprintf (stderr, "Number of macro maps used: %5ld%c\n", + (long)SCALE (s.num_macro_maps_used), STAT_LABEL (s.num_macro_maps_used)); - fprintf (stderr, "Macro maps used size: %5lu%c\n", - SCALE (s.macro_maps_used_size), + fprintf (stderr, "Macro maps used size: %5ld%c\n", + (long)SCALE (s.macro_maps_used_size), STAT_LABEL (s.macro_maps_used_size)); - fprintf (stderr, "Macro maps locations size: %5lu%c\n", - SCALE (s.macro_maps_locations_size), + fprintf (stderr, "Macro maps locations size: %5ld%c\n", + (long)SCALE (s.macro_maps_locations_size), STAT_LABEL (s.macro_maps_locations_size)); - fprintf (stderr, "Macro maps size: %5lu%c\n", - SCALE (macro_maps_size), + fprintf (stderr, "Macro maps size: %5ld%c\n", + (long)SCALE (macro_maps_size), STAT_LABEL (macro_maps_size)); - fprintf (stderr, "Duplicated maps locations size: %5lu%c\n", - SCALE (s.duplicated_macro_maps_locations_size), + fprintf (stderr, "Duplicated maps locations size: %5ld%c\n", + (long)SCALE (s.duplicated_macro_maps_locations_size), STAT_LABEL (s.duplicated_macro_maps_locations_size)); - fprintf (stderr, "Total allocated maps size: %5lu%c\n", - SCALE (total_allocated_map_size), + fprintf (stderr, "Total allocated maps size: %5ld%c\n", + (long)SCALE (total_allocated_map_size), STAT_LABEL (total_allocated_map_size)); - fprintf (stderr, "Total used maps size: %5lu%c\n", - SCALE (total_used_map_size), + fprintf (stderr, "Total used maps size: %5ld%c\n", + (long)SCALE (total_used_map_size), STAT_LABEL (total_used_map_size)); fprintf (stderr, "\n"); } diff --git a/libcpp/macro.c b/libcpp/macro.c index 2d0eeaa..f313959 100644 --- a/libcpp/macro.c +++ b/libcpp/macro.c @@ -1278,6 +1278,10 @@ macro_arg_token_iter_init (macro_arg_token_iter *iter, iter->track_macro_exp_p = track_macro_exp_p; iter->kind = kind; iter->token_ptr = token_ptr; + /* Unconditionally initialize this so that the compiler doesn't warn + about iter->location_ptr being possibly uninitialized later after + this code has been inlined somewhere. */ + iter->location_ptr = NULL; if (track_macro_exp_p) iter->location_ptr = get_arg_token_location (arg, kind); #ifdef ENABLE_CHECKING