This patch initializes input_location at the same spot where the line table is initialized. Without this, it's possible to crash when emitting a diagnostic in a reinvocation of the compiler, because input_location refers to a location that is no longer valid. --- gcc/ChangeLog.jit | 4 ++++ gcc/toplev.c | 1 + 2 files changed, 5 insertions(+)
diff --git a/gcc/ChangeLog.jit b/gcc/ChangeLog.jit index ee1df88..a9b0817 100644 --- a/gcc/ChangeLog.jit +++ b/gcc/ChangeLog.jit @@ -1,5 +1,9 @@ 2014-03-19 Tom Tromey <tro...@redhat.com> + * toplev.c (general_init): Initialize input_location. + +2014-03-19 Tom Tromey <tro...@redhat.com> + * timevar.h (auto_timevar): New class. 2014-03-19 Tom Tromey <tro...@redhat.com> diff --git a/gcc/toplev.c b/gcc/toplev.c index b257ab2..1febc2e 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1161,6 +1161,7 @@ general_init (const char *argv0) table. */ init_ggc (); init_stringpool (); + input_location = 0; line_table = ggc_alloc_line_maps (); linemap_init (line_table); line_table->reallocator = realloc_for_line_map; -- 1.8.5.3