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

            Bug ID: 98744
           Summary: [11 Regression] ICE in gimple_call_arg, at
                    gimple.h:3246 since r11-6735-g424deca72b63e644
           Product: gcc
           Version: 11.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, jason at gcc dot gnu.org,
                    marxin at gcc dot gnu.org
  Target Milestone: ---

I see the following ICE for:

$ cat elide.C
struct A {};
struct B : virtual A {};
struct C : B {
  C() : B(B()) {}
};
int main() { C c; return 0; }

$ g++ elide.C -c -Wmaybe-uninitialized -fno-inline -O2 -c
during GIMPLE pass: uninit
elide.C: In constructor ‘C::C()’:
elide.C:4:3: internal compiler error: in gimple_call_arg, at gimple.h:3246
    4 |   C() : B(B()) {}
      |   ^
0x85ddd8 gimple_call_arg
        /home/marxin/Programming/gcc/gcc/gimple.h:3246
0x85ddd8 gimple_call_arg
        /home/marxin/Programming/gcc/gcc/gimple.h:3244
0x85ddd8 maybe_warn_pass_by_reference
        /home/marxin/Programming/gcc/gcc/tree-ssa-uninit.c:515
0x85ddd8 warn_uninitialized_vars
        /home/marxin/Programming/gcc/gcc/tree-ssa-uninit.c:648
0x1382507 execute
        /home/marxin/Programming/gcc/gcc/tree-ssa-uninit.c:3019
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

What happens is that:
#2  0x0000000001383cef in maybe_warn_pass_by_reference (stmt=0x7ffff7552630,
wlims=...) at /home/marxin/Programming/gcc/gcc/tree-ssa-uninit.c:531

(gdb) p debug_gimple_stmt(stmt)
B::__ct_base .isra (_1);

which is an ISRA clone, but the gimple_call_fntype function declaration has 2
arguments:

(gdb) pct(fntype)

void B::<T3e0> (struct B *, const void *)

@Martin: Is it expected or should be the decl adjusted after IPA SRA is done?

Reply via email to