https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105215
Bug ID: 105215 Summary: IA64: ICE on openssl-1.1.1n in create_block_for_bookkeeping, at sel-sched.cc:4549 -O3 -g3 Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: slyfox at gcc dot gnu.org Target Milestone: --- Target: ia64-unknown-linux-gnu Not sure yet if a regression or not. Also not sure if it's an ia64-specific failure of more generic problem. We have a few similar bugs on other targets. Reduced reproducer: int OPENSSL_sk_push(); void ERR_put_error(); typedef struct { int modified; } ASN1_ENCODING; int sk_X509_REVOKED_push(int *sk) { int ptr = 0; return OPENSSL_sk_push(sk, ptr); } struct X509_crl_info_st { int *revoked; ASN1_ENCODING enc; } X509_CRL_add0_revoked_crl; int X509_CRL_add0_revoked() { struct X509_crl_info_st *inf = &X509_CRL_add0_revoked_crl; if (inf->revoked == 0) ERR_put_error(); if (inf->revoked == 0 || sk_X509_REVOKED_push(inf->revoked)) { ERR_put_error(0, 0, ""); return 0; } inf->enc.modified = 1; return 1; } $ ia64-unknown-linux-gnu-gcc -Wall -O3 -c x_crl.o.c -o bug.o -g2 during RTL pass: mach x_crl.o.c: In function 'X509_CRL_add0_revoked': x_crl.o.c:25:1: internal compiler error: in create_block_for_bookkeeping, at sel-sched.cc:4549 25 | } | ^ 0x684775 create_block_for_bookkeeping ../../gcc-12-20220410/gcc/sel-sched.cc:4549 0x684775 find_place_for_bookkeeping ../../gcc-12-20220410/gcc/sel-sched.cc:4686 0x684775 generate_bookkeeping_insn ../../gcc-12-20220410/gcc/sel-sched.cc:4786 0x684775 move_op_at_first_insn ../../gcc-12-20220410/gcc/sel-sched.cc:6063 0xdbb488 code_motion_path_driver ../../gcc-12-20220410/gcc/sel-sched.cc:6657 0xdbb856 code_motion_process_successors ../../gcc-12-20220410/gcc/sel-sched.cc:6342 0xdbb856 code_motion_path_driver ../../gcc-12-20220410/gcc/sel-sched.cc:6608 0xdbbf48 move_op ../../gcc-12-20220410/gcc/sel-sched.cc:6702 0xdbbf48 move_exprs_to_boundary ../../gcc-12-20220410/gcc/sel-sched.cc:5223 0xdbbf48 schedule_expr_on_boundary ../../gcc-12-20220410/gcc/sel-sched.cc:5436 0xdbf843 fill_insns ../../gcc-12-20220410/gcc/sel-sched.cc:5578 0xdbf843 schedule_on_fences ../../gcc-12-20220410/gcc/sel-sched.cc:7353 0xdbf843 sel_sched_region_2 ../../gcc-12-20220410/gcc/sel-sched.cc:7491 0xdc0cc6 sel_sched_region_1 ../../gcc-12-20220410/gcc/sel-sched.cc:7533 0xdc22fb sel_sched_region(int) ../../gcc-12-20220410/gcc/sel-sched.cc:7634 0xdc22fb sel_sched_region(int) ../../gcc-12-20220410/gcc/sel-sched.cc:7619 0xdc24d9 run_selective_scheduling() ../../gcc-12-20220410/gcc/sel-sched.cc:7720 0x1163d7c ia64_reorg ../../gcc-12-20220410/gcc/config/ia64/ia64.cc:9859 0xd8e909 execute ../../gcc-12-20220410/gcc/reorg.cc:3927 $ ia64-unknown-linux-gnu-gcc -v |& unnix Using built-in specs. COLLECT_GCC=/<<NIX>>/ia64-unknown-linux-gnu-stage-final-gcc-debug-12.0.0/bin/ia64-unknown-linux-gnu-gcc COLLECT_LTO_WRAPPER=/<<NIX>>/ia64-unknown-linux-gnu-stage-final-gcc-debug-12.0.0/libexec/gcc/ia64-unknown-linux-gnu/12.0.1/lto-wrapper Target: ia64-unknown-linux-gnu Configured with: Thread model: posix Supported LTO compression algorithms: zlib gcc version 12.0.1 20220410 (experimental) (GCC)