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

            Bug ID: 109643
           Summary: [14 Regression] IPA inline ICE on pkg-config-0.29.2
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: slyfox at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

Noticed ICE on pkg-config-0.29.2 when was building with gcc from master.

Minimal example:

//$ cat bug.c.c
int g_variant_type_info_basic_table[1];
int g_variant_type_info_check__g_boolean_var_, g_variant_type_info_get_index;
int *g_variant_type_info_get_info;
int g_assertion_message_expr();
void g_variant_type_info_check(int *info) {
  int index = info - g_variant_type_info_basic_table;
  if (index)
    g_variant_type_info_check__g_boolean_var_ = 1;
  g_assertion_message_expr();
}
void g_variant_type_info_get() {
  g_variant_type_info_get_info =
      g_variant_type_info_basic_table + g_variant_type_info_get_index;
  g_variant_type_info_check(g_variant_type_info_get_info);
}


Crash:

$ gcc -c bug.c.c -o bug.o -O2
during IPA pass: inline
bug.c.c:15:1: internal compiler error: Segmentation fault
   15 | }
      | ^
0x1afc249 diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char
const*, __va_list_tag (*) [1], diagnostic_t)
0x1afd0b9 internal_error(char const*, ...)
0xc9239f crash_signal(int)
0xf997f4 canonize(long*, unsigned int, unsigned int)
0xbe16b4 range_operator::wi_fold_in_parts(irange&, tree_node*,
generic_wide_int<wide_int_storage> const&, generic_wide_int<wide_int_storage>
const&, generic_wide_int<wide_int_storage> const&,
generic_wide_int<wide_int_storage> const&) const
0xbe1fb4 range_operator::fold_range(irange&, tree_node*, irange const&, irange
const&, relation_trio) const
0xa1ea8a evaluate_conditions_for_known_args(cgraph_node*, bool,
ipa_auto_call_arg_values*, unsigned int*, unsigned int*)
0xa236ae evaluate_properties_for_edge(cgraph_edge*, bool, unsigned int*,
unsigned int*, ipa_auto_call_arg_values*, bool)
0xa37972 do_estimate_edge_size(cgraph_edge*) [clone .part.63]
0xa391fa do_estimate_growth_1(cgraph_node*, void*)
0xa39719 estimate_growth(cgraph_node*)
0x19d3931 inline_small_functions()
0x19d47a2 (anonymous namespace)::pass_ipa_inline::execute(function*)

gcc is built from r14-283-g95d4c0d2e6318a:

$ gcc -v
Using built-in specs.
COLLECT_GCC=/<<NIX>>/xgcc-14.0.0/bin/gcc
COLLECT_LTO_WRAPPER=/<<NIX>>/xgcc-14.0.0/libexec/gcc/x86_64-unknown-linux-gnu/14.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with:
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.0.0 99999999 (experimental) (GCC)

Reply via email to