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

Reply via email to