https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101566
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- f.0_1 = f_8(D); tuple = t; _11 = &tuple.__ts#2; tuple ={v} {CLOBBER}; template<Size N, typename T> constexpr decltype(auto) get(T tuple) { return *tuple(Get<N>{}); } I think the above function (get) is broken and is returning a reference to the argument and that would be invalid.