https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90939
Bug ID: 90939 Summary: ICE in meet_with, at ipa-cp.c:1073 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: jamborm at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- I see the ICE in chromium package with gcc9 package. It won't be so easy to reduce a test-case, I ended up with 15 object files. I can reproduce that with 72fa547fbac7c8dc58c5caf53e35d4b68432c08c revision and diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 4367928a515..d5908cd609b 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1829,7 +1829,7 @@ lto_read_decls (struct lto_file_decl_data *decl_data, const void *data, { /* Pickle stray references. */ t = lto_input_tree_1 (&ib_main, data_in, tag, 0); - gcc_assert (t && data_in->reader_cache->nodes.length () == from); +// gcc_assert (t && data_in->reader_cache->nodes.length () == from); } } data_in->location_cache.apply_location_cache (); Files: https://drive.google.com/file/d/1gvsG3VUsJTYBoSJP0ZMhurpukHoxUocv/view?usp=sharing $ g++ *.o during IPA pass: cp lto1: internal compiler error: in meet_with, at ipa-cp.c:1073 0x1b27f6a ipcp_bits_lattice::meet_with(ipcp_bits_lattice&, unsigned int, signop, tree_code, tree_node*) ../../gcc/ipa-cp.c:1073 0x1b29cfa propagate_bits_across_jump_function(cgraph_edge*, int, ipa_jump_func*, ipcp_bits_lattice*) ../../gcc/ipa-cp.c:1862 0x1b2ac99 propagate_constants_across_call ../../gcc/ipa-cp.c:2287 0x1b2d292 propagate_constants_topo ../../gcc/ipa-cp.c:3183 0x1b2d61b ipcp_propagate_stage ../../gcc/ipa-cp.c:3296 0x1b316cb ipcp_driver ../../gcc/ipa-cp.c:5080 0x1b318b0 execute ../../gcc/ipa-cp.c:5173 $ (gdb) bt #0 ipcp_bits_lattice::meet_with (this=0x32794e8, other=..., precision=64, sgn=UNSIGNED, code=MAX_EXPR, operand=0x7ffff3d4d4f8) at ../../gcc/ipa-cp.c:1073 #1 0x0000000001b29cfb in propagate_bits_across_jump_function (cs=0x7ffff45062d8, idx=0, jfunc=0x7ffff3d34778, dest_lattice=0x32794e8) at ../../gcc/ipa-cp.c:1862 #2 0x0000000001b2ac9a in propagate_constants_across_call (cs=0x7ffff45062d8) at ../../gcc/ipa-cp.c:2287 #3 0x0000000001b2d293 in propagate_constants_topo (topo=0x7fffffffd850) at ../../gcc/ipa-cp.c:3183 #4 0x0000000001b2d61c in ipcp_propagate_stage (topo=0x7fffffffd850) at ../../gcc/ipa-cp.c:3296 #5 0x0000000001b316cc in ipcp_driver () at ../../gcc/ipa-cp.c:5080 #6 0x0000000001b318b1 in (anonymous namespace)::pass_ipa_cp::execute (this=0x28e9100) at ../../gcc/ipa-cp.c:5173 #7 0x0000000000d8fd71 in execute_one_pass (pass=0x28e9100) at ../../gcc/passes.c:2487 #8 0x0000000000d90cbb in execute_ipa_pass_list (pass=0x28e9100) at ../../gcc/passes.c:2927 #9 0x000000000084a52d in do_whole_program_analysis () at ../../gcc/lto/lto.c:3174 #10 0x000000000084a9aa in lto_main () at ../../gcc/lto/lto.c:3399 #11 0x0000000000edc5a6 in compile_file () at ../../gcc/toplev.c:456 #12 0x0000000000edf1c5 in do_compile () at ../../gcc/toplev.c:2205 #13 0x0000000000edf4aa in toplev::main (this=0x7fffffffda8e, argc=34, argv=0x28bfe40) at ../../gcc/toplev.c:2340 #14 0x0000000001c12f6c in main (argc=20, argv=0x7fffffffdb88) at ../../gcc/main.c:39 $ (gdb) p debug_tree(operand) <integer_cst 0x7ffff3d4d4f8 type <pointer_type 0x7ffff68bce70> constant 0> $1 = void So it's a MAX_EXPR with a pointer_type: (gdb) p debug_tree((tree)0x7ffff68bce70) <pointer_type 0x7ffff68bce70 type <record_type 0x7ffff6c47540 NGInlineNode BLK size <integer_cst 0x7ffff772fbb8 constant 128> unit-size <integer_cst 0x7ffff772fbd0 constant 16> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6c47540 fields <field_decl 0x7ffff6c04d10 D.45019 type <record_type 0x7ffff6c47498 NGLayoutInputNode> ignored TI ../../third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h:28:19 size <integer_cst 0x7ffff756a9c0 constant 72> unit-size <integer_cst 0x7ffff7547ed0 constant 9> align:64 warn_if_not_align:0 offset_align 128 offset <integer_cst 0x7ffff772fba0 constant 0> bit-offset <integer_cst 0x7ffff772fbe8 constant 0> context <record_type 0x7ffff6c47540 NGInlineNode>> context <namespace_decl 0x7ffff7260c78 blink> pointer_to_this <pointer_type 0x7ffff68bce70>> public unsigned DI size <integer_cst 0x7ffff772fb70 type <integer_type 0x7ffff77440a8 bitsizetype> constant 64> unit-size <integer_cst 0x7ffff772fb88 type <integer_type 0x7ffff7744000 sizetype> constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality> $2 = void Can you Martin please take a look?