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

--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #1)
> Test case (seems as if the file name of the included file matters):

It may be that the threshold for triggering the bug is length of token >= 32:
libcpp uses location_t to store range information for tokens and expressions,
and uses 5 bits of location_t to store short ranges.  i.e. for tokens of up to
31 chars length, it can store them directly in location_t; for 32 and above it
needs to use an ad-hoc location.

> $ g++ TDICmds.cc
> 
> TDICmds.cc:1:24: warning: #pragma implementation for
> ‘create_defect_script_SCDBase.cc’ appears after file is included
>  #pragma implementation "create_defect_script_SCDBase.cc"
>                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FWIW, this token is 32 chars long (including the quotes), and so would have its
location stored as an ad-hoc location.

Reply via email to