https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110468
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |10.4.0, 11.4.0 Target Milestone|--- |12.4 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed|2023-06-28 00:00:00 |2023-06-29 Known to fail| |12.1.0, 12.3.0, 13.1.0, | |14.0 --- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Note in the reduced testcase, m needs to be a template, variant needs to be a template but not depedent and hh<T>::value needs to be a value depedent. Also note it works with -std=c++11 . Slightly more reduced, changing `hh<T>::value` to just `T>0` as mentioned it just needs to be value depedent: ``` template <int T> struct variant { variant() noexcept(T>0) {} }; template <int> struct m { variant<1> def{}; }; struct v { v(m<1>); }; v t = {{}}; ```