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

Reply via email to