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

--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
template <typename T> struct S {
  S(T *);
  ~S();
};
struct X {
  struct C {
    S<unsigned> d;
    float e;
  };
  X();
};
S<unsigned> f(S<const char>);
X::X() { C a[]{f("")}; }

$ ./cc1plus -quiet 93033.C
93033.C: In constructor ‘X::X()’:
93033.C:13:1: error: incorrect sharing of tree nodes
   13 | X::X() { C a[]{f("")}; }
      | ^
*D.2489
D.2489->d = f (&D.2492); [return slot optimization]
during GIMPLE pass: cfg
93033.C:13:1: internal compiler error: verify_gimple failed
0x1525a5a verify_gimple_in_cfg(function*, bool)
        /home/mpolacek/src/gcc/gcc/tree-cfg.c:5445
0x1351abd execute_function_todo
        /home/mpolacek/src/gcc/gcc/passes.c:1983
0x1350a9a do_per_function
        /home/mpolacek/src/gcc/gcc/passes.c:1638
0x1351cad execute_todo
        /home/mpolacek/src/gcc/gcc/passes.c:2037

Reply via email to