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

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
I believe this bug (and other existing dups) are about the C++ FE for array
initializers not emitting a loop for initialization but an initializer for each
element.  It does that via

;; Function constexpr Bar::Bar() (null)
;; enabled by -tree-original


{
  <<cleanup_point <<< Unknown tree: expr_stmt
  (void) (((struct Bar *) this)->foo = <<< Unknown tree: vec_init_expr
  D.2381
   >>>) >>>>>;
}

which eventually is gimplified to

Bar::Bar (struct Bar * const this)
{
  this->foo[0].a = 10;
  this->foo[0].b = 11;
  this->foo[0].c = 12;
  this->foo[0].d = 13;
  this->foo[1].a = 10;
  this->foo[1].b = 11;
...

via cp_gimplify_expr.

Reply via email to