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

            Bug ID: 97577
           Summary: [11 Regression] ICE: Segmentation fault (in
                    get_location_from_adhoc_loc)
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: error-recovery, ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: preprocessor
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

gcc-11.0.0-alpha20201025 snapshot (g:308e40331f9d2820f8286769b5fc764671187364)
ICEs when compiling the following testcase, reduced from
test/Preprocessor/annotate_in_macro_arg.c from the clang 10.0.1 test suite:

#define M1()

M1(

#if M1()
#endif
#pragma pack()

% MALLOC_PERTURB_=1 MALLOC_CHECK_=3 gcc-11.0.0 -c ifhvkm83.c
ifhvkm83.c:5:9: error: #if with no expression
    5 | #if M1()
      |         ^

ifhvkm83.c:7:9: internal compiler error: Segmentation fault
    7 | #pragma pack()
      |         ^~~~
0xdbaf3f crash_signal
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/toplev.c:330
0x192e151 get_location_from_adhoc_loc(line_maps const*, unsigned int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/line-map.c:257
0x192e151 linemap_resolve_location(line_maps*, unsigned int,
location_resolution_kind, line_map_ordinary const**)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/line-map.c:1540
0x18e8933 diagnostic_report_current_module(diagnostic_context*, unsigned int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/diagnostic.c:683
0xe15071 diagnostic_report_current_function(diagnostic_context*,
diagnostic_info*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-diagnostic.c:39
0xe150d0 default_tree_diagnostic_starter
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-diagnostic.c:48
0x18e6a27 diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/diagnostic.c:1206
0x885aaa c_cpp_diagnostic(cpp_reader*, cpp_diagnostic_level,
cpp_warning_reason, rich_location*, char const*, __va_list_tag (*) [1])
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/c-family/c-common.c:6364
0x191df49 cpp_diagnostic_at
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/errors.c:42
0x191df49 cpp_diagnostic
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/errors.c:75
0x191e06e cpp_error(cpp_reader*, cpp_diagnostic_level, char const*, ...)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/errors.c:89
0x1931f58 collect_args
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/macro.c:1267
0x1931f58 funlike_invocation_p
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/macro.c:1326
0x1931f58 enter_macro_context
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/macro.c:1401
0x19326e2 cpp_get_token_1
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/libcpp/macro.c:2890
0x89fe80 c_lex_with_flags(tree_node**, unsigned int*, unsigned char*, int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/c-family/c-lex.c:457
0x81d67a c_lex_one_token
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/c/c-parser.c:279
0x85005a c_parser_peek_token(c_parser*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/c/c-parser.c:483
0x85005a c_parse_file()
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/c/c-parser.c:21819
0x8abe2d c_common_parse_file()
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/c-family/c-opts.c:1188

I've failed to reproduce it w/ valgrind so far.

Reply via email to