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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|needs-reduction             |

--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
Reduced test-case:

$ cat godot.ii
class A {
public:
  float m_floats;
  A() {}
};
class B {
public:
  A operator[](int);
};
class C {
  B m_basis;

public:
  A operator()(A) {
    m_basis[1] = m_basis[2];
    A a;
    return a;
  }
};
class D {
public:
  C m_fn1();
};
class F {
  A m_pivotInB;
  F(D &, const A &);
};
F::F(D &p1, const A &p2) : m_pivotInB(p1.m_fn1()(p2)) {}

$ g++ godot.ii -O2 -flto -shared -m32
godot.ii: In member function ‘__ct_base ’:
godot.ii:28:1: error: ‘component_ref’ LHS in clobber statement
   28 | F::F(D &p1, const A &p2) : m_pivotInB(p1.m_fn1()(p2)) {}
      | ^
*this_2(D).m_pivotInB
# .MEM_16 = VDEF <.MEM_15>
*this_2(D).m_pivotInB ={v} {CLOBBER};
during GIMPLE pass: fixup_cfg
godot.ii:28:1: internal compiler error: verify_gimple failed
0xcd23f1 verify_gimple_in_cfg(function*, bool)
        /home/marxin/Programming/gcc/gcc/tree-cfg.c:5426
0xbb212f execute_function_todo
        /home/marxin/Programming/gcc/gcc/passes.c:1963
0xbb305e execute_todo
        /home/marxin/Programming/gcc/gcc/passes.c:2017
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.
lto-wrapper: fatal error: g++ returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status

Reply via email to