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

            Bug ID: 116978
           Summary: ICE with -fdiagnostics-format=sarif-file when
                    main_input_filename is null
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: SARIF
          Severity: normal
          Priority: P3
         Component: other
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dmalcolm at gcc dot gnu.org
  Target Milestone: ---

Running cc1/cc1plus/etc directly like this ICEs:

$ ./cc1 -fdiagnostics-format=sarif-file

cc1: internal compiler error: Segmentation fault
0x2bb73ef internal_error(char const*, ...)
        ../../src/gcc/diagnostic-global-context.cc:517
0x15e35a1 crash_signal
        ../../src/gcc/toplev.cc:321
0x2c9d0a4 htab_hash_string
        ../../src/libiberty/hashtab.c:838
0xce6b71 string_hash::hash(char const*)
        ../../src/gcc/hash-traits.h:239
0x2bac2da simple_hashmap_traits<default_hash_traits<nofree_string_hash>,
sarif_artifact*>::hash(char const* const&)
        ../../src/gcc/hash-map-traits.h:50
0x2ba7580 hash_map<nofree_string_hash, sarif_artifact*,
simple_hashmap_traits<default_hash_traits<nofree_string_hash>, sarif_artifact*>
>::get(char const* const&)
        ../../src/gcc/hash-map.h:191
0x2ba1dc4 ordered_hash_map<nofree_string_hash, sarif_artifact*,
simple_hashmap_traits<default_hash_traits<nofree_string_hash>, sarif_artifact*>
>::get(char const* const&)
        ../../src/gcc/ordered-hash-map.h:76
0x2b98ec3 sarif_builder::get_or_create_artifact(char const*,
diagnostic_artifact_role, bool)
        ../../src/gcc/diagnostic-format-sarif.cc:2939
0x2b9506b sarif_builder::sarif_builder(diagnostic_context&, line_maps const*,
char const*, bool, sarif_version)
        ../../src/gcc/diagnostic-format-sarif.cc:1515
0x2b9db12 sarif_output_format::sarif_output_format(diagnostic_context&,
line_maps const*, char const*, bool, sarif_version)
        ../../src/gcc/diagnostic-format-sarif.cc:3202
0x2b9dc7b
sarif_file_output_format::sarif_file_output_format(diagnostic_context&,
line_maps const*, char const*, bool, sarif_version, char const*)
        ../../src/gcc/diagnostic-format-sarif.cc:3245
0x2b99e61 diagnostic_output_format_init_sarif_file(diagnostic_context&,
line_maps const*, char const*, bool, sarif_version, char const*)
        ../../src/gcc/diagnostic-format-sarif.cc:3447
0x2b8bca0 diagnostic_output_format_init(diagnostic_context&, char const*, char
const*, diagnostics_output_format, bool)
        ../../src/gcc/diagnostic.cc:1635
0x2b65d8a common_handle_option(gcc_options*, gcc_options*, cl_decoded_option
const*, unsigned int, int, unsigned int, cl_option_handlers const*,
diagnostic_context*, void (*)())
        ../../src/gcc/opts.cc:2968
0x2b6ce10 handle_option
        ../../src/gcc/opts-common.cc:1316
0x2b6db90 read_cmdline_option(gcc_options*, gcc_options*, cl_decoded_option*,
unsigned int, unsigned int, cl_option_handlers const*, diagnostic_context*)
        ../../src/gcc/opts-common.cc:1646
0x1495e0c read_cmdline_options
        ../../src/gcc/opts-global.cc:242
0x149604f decode_options(gcc_options*, gcc_options*, cl_decoded_option*,
unsigned int, unsigned int, diagnostic_context*, void (*)())
        ../../src/gcc/opts-global.cc:329
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

#6  0x0000000002b9506c in sarif_builder::sarif_builder (this=0x3d3d770,
context=..., line_maps=0x7ffff7ffb000, main_input_filename_=0x0, 
    formatted=true, version=sarif_version::v2_1_0) at
../../src/gcc/diagnostic-format-sarif.cc:1515
1515                              false);
(gdb) list
1510         since otherwise the "no diagnostics" case would quote the main
input
1511         file, and doing so noticeably bloated the output seen in analyzer
1512         integration testing (build directory went from 20G -> 21G).  */
1513      get_or_create_artifact (main_input_filename_,
1514                              diagnostic_artifact_role::analysis_target,
1515                              false);
1516    }

(gdb) p main_input_filename_
$3 = 0x0

Reply via email to