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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |5.2.0
           Keywords|                            |ice-on-invalid-code
   Last reconfirmed|                            |2019-02-20
                 CC|                            |msebor at gcc dot gnu.org
     Ever confirmed|0                           |1
            Summary|internal compiler error: in |[7/8/9 Regression] ICE in
                   |calculate_line_spans, at    |calculate_line_spans, at
                   |diagnostic-show-locus.c:123 |diagnostic-show-locus.c:123
                   |7 after #line               |7 after #line
      Known to fail|                            |6.4.0, 7.3.0, 8.2.0, 9.0

--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
Confirmed with the styack trace below.  According to my bisection the ICE was
introduced into GCC 6 by r233386:

r233386 | dmalcolm | 2016-02-12 14:18:03 -0500 (Fri, 12 Feb 2016) | 51 lines

PR other/69554: avoid excessive source printing for widely-separated locations


u.c: In function ‘main’:
u.c:3:2: warning: #warning first [-Wcpp]
    3 | #warning first
      |  ^~~~~~~
u.c:-737418241:2: warning: #warning second [-Wcpp]
u.c:-737418240:7: warning: line number out of range
u.c:478333951:2: warning: #warning third [-Wcpp]
u.c:478333952:7: warning: line number out of range
u.c:478333951:2: warning: #warning fifth [-Wcpp]
u.c:478333952:7: warning: line number out of range
u.c:-991952897:2: warning: #warning sixth [-Wcpp]
u.c:-991952896:7: warning: line number out of range
u.c:-1:2: warning: #warning seventh [-Wcpp]

u.c:-1: internal compiler error: in calculate_line_spans, at
diagnostic-show-locus.c:1237

Internal compiler error: Error reporting routines re-entered.
0x20eff48 calculate_line_spans
        /src/gcc/svn/gcc/diagnostic-show-locus.c:1237
0x20ef134 layout
        /src/gcc/svn/gcc/diagnostic-show-locus.c:871
0x20f1e82 diagnostic_show_locus(diagnostic_context*, rich_location*,
diagnostic_t)
        /src/gcc/svn/gcc/diagnostic-show-locus.c:2282
0x93fe57 c_diagnostic_finalizer
        /src/gcc/svn/gcc/c-family/c-opts.c:171
0x20e7f33 diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*)
        /src/gcc/svn/gcc/diagnostic.c:1020
0x20e84b0 diagnostic_impl
        /src/gcc/svn/gcc/diagnostic.c:1159
0x20e9ceb internal_error(char const*, ...)
        /src/gcc/svn/gcc/diagnostic.c:1540
0x20e9f53 fancy_abort(char const*, int, char const*)
        /src/gcc/svn/gcc/diagnostic.c:1607
0x20eff48 calculate_line_spans
        /src/gcc/svn/gcc/diagnostic-show-locus.c:1237
0x20ef134 layout
        /src/gcc/svn/gcc/diagnostic-show-locus.c:871
0x20f1e82 diagnostic_show_locus(diagnostic_context*, rich_location*,
diagnostic_t)
        /src/gcc/svn/gcc/diagnostic-show-locus.c:2282
0x93fe57 c_diagnostic_finalizer
        /src/gcc/svn/gcc/c-family/c-opts.c:171
0x20e7f33 diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*)
        /src/gcc/svn/gcc/diagnostic.c:1020
0x9078cf c_cpp_diagnostic(cpp_reader*, cpp_diagnostic_level,
cpp_warning_reason, rich_location*, char const*, __va_list_tag (*) [1])
        /src/gcc/svn/gcc/c-family/c-common.c:6320
0x212ffac cpp_diagnostic_with_line
        /src/gcc/svn/libcpp/errors.c:163
0x2130311 cpp_warning_with_line_syshdr(cpp_reader*, cpp_warning_reason,
unsigned int, unsigned int, char const*, ...)
        /src/gcc/svn/libcpp/errors.c:238
0x212bce5 do_diagnostic
        /src/gcc/svn/libcpp/directives.c:1147
0x212bda9 do_warning
        /src/gcc/svn/libcpp/directives.c:1165
0x212a9af _cpp_handle_directive
        /src/gcc/svn/libcpp/directives.c:541
0x213ec23 _cpp_lex_token
        /src/gcc/svn/libcpp/lex.c:2609
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to