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

David Malcolm <dmalcolm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dmalcolm at gcc dot gnu.org

--- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
It seems you want the diagnostic to read:

FILENAME-FROM-DIRECTIVE.c: some message
(content from .i file goes here)

We're encoding file/line information into location_t values.  Currently we
encode the filename given by the line directive.

Maybe it's implementable.  line_table_dump shows the LC_RENAME_VERBATIM for the
# line directive:

Map #0 [0x7ffff189e000] - LOC: 32 - REASON: LC_ENTER - SYSP: no
File: a.i:1
Included from: [-1] None

Map #1 [0x7ffff189e020] - LOC: 4128 - REASON: LC_RENAME_VERBATIM - SYSP: no
File: a.c:1
Included from: [-1] None

Perhaps the LC_RENAME_VERBATIM linemap could store the location of the
directive that created it, and we could then map back and apply an offset,
giving the line and column within the .i file.   Though am not sure exactly how
we'd encode it (e.g. what if there are very wide lines? etc).

Maybe some kind of variant of expand_location that ignores directives like
this?  (and then diagnostic_show_locus would use it).

Reply via email to