Message ID | 570CE0FB.8020409@redhat.com |
---|---|
State | New |
Headers | show |
On Tue, Apr 12, 2016 at 01:50:19PM +0200, Bernd Schmidt wrote: > PR preprocessor/69650 > * directives.c (do_linemarker): Reread map after calling > cpp_get_token. Ok, thanks. > --- libcpp/directives.c (revision 234831) > +++ libcpp/directives.c (working copy) > @@ -1048,6 +1048,9 @@ do_linemarker (cpp_reader *pfile) > > if (reason == LC_LEAVE) > { > + /* Reread map since cpp_get_token can invalidate it with a > + reallocation. */ > + map = LINEMAPS_LAST_ORDINARY_MAP (line_table); > const line_map_ordinary *from; > if (MAIN_FILE_P (map) > || (new_file > @@ -1055,7 +1058,8 @@ do_linemarker (cpp_reader *pfile) > && filename_cmp (ORDINARY_MAP_FILE_NAME (from), new_file) != 0)) > { > cpp_warning (pfile, CPP_W_NONE, > - "file \"%s\" linemarker ignored due to incorrect nesting", new_file); > + "file \"%s\" linemarker ignored due to " > + "incorrect nesting", new_file); > return; > } > } Jakub
PR preprocessor/69650 * directives.c (do_linemarker): Reread map after calling cpp_get_token. Index: libcpp/directives.c =================================================================== --- libcpp/directives.c (revision 234831) +++ libcpp/directives.c (working copy) @@ -1048,6 +1048,9 @@ do_linemarker (cpp_reader *pfile) if (reason == LC_LEAVE) { + /* Reread map since cpp_get_token can invalidate it with a + reallocation. */ + map = LINEMAPS_LAST_ORDINARY_MAP (line_table); const line_map_ordinary *from; if (MAIN_FILE_P (map) || (new_file @@ -1055,7 +1058,8 @@ do_linemarker (cpp_reader *pfile) && filename_cmp (ORDINARY_MAP_FILE_NAME (from), new_file) != 0)) { cpp_warning (pfile, CPP_W_NONE, - "file \"%s\" linemarker ignored due to incorrect nesting", new_file); + "file \"%s\" linemarker ignored due to " + "incorrect nesting", new_file); return; } }