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