https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69650

--- Comment #6 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
Note that it is ok to completely ignore such an invalid line directive and:

line-map.c: file "<stdin>" left but not entered

should actually be an error or an ICE. As the code says:

      /* Depending upon whether we are handling preprocessed input or
         not, this can be a user error or an ICE.  */
      if (error)
        fprintf (stderr, "line-map.c: file \"%s\" left but not entered\n",
                 to_file);

The problem is that nobody so far has done the work of adding diagnostics/ICE
reporting support to line-maps.c, so that the above can be a proper ICE or
diagnostic (perhaps the error should be reported by the caller, who presumably
knows whether this comes from preprocessed input?).

There is also:

  /* Depending upon whether we are handling preprocessed input or
     not, this can be a user error or an ICE.  */
  for (map = LINEMAPS_LAST_ORDINARY_MAP (set);
       ! MAIN_FILE_P (map);
       map = INCLUDED_FROM (set, map))
    fprintf (stderr, "line-map.c: file \"%s\" entered but not left\n",
             ORDINARY_MAP_FILE_NAME (map));

Reply via email to