https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106180
David Binderman <dcb314 at hotmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dcb314 at hotmail dot com --- Comment #5 from David Binderman <dcb314 at hotmail dot com> --- I have something similar: struct PointT { double y; }; template <int _Nm> struct __array_traits { using _Type = PointT[_Nm]; }; template <int _Nm> struct array { typename __array_traits<_Nm>::_Type _M_elems; }; float SampleGrid_low, SampleGrid_high; using QuadrilateralF = array<4>; struct PerspectiveTransform { PerspectiveTransform(QuadrilateralF, QuadrilateralF); }; void SampleGrid() { PerspectiveTransform{ {SampleGrid_high, SampleGrid_low, SampleGrid_high, SampleGrid_high}, {}}; } which won't compile on x86_64 with flags -O2 -ffloat-store -std=c++17.