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