https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110643
--- Comment #15 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Well the cvise reduced testcase is undefined code: template <int __i, typename... _Elements> __tuple_element_t<__i, tuple<_Elements...>> get(tuple<_Elements...>) { double __trans_tmp_23{}; double *__trans_tmp_21 = &__trans_tmp_23; return __trans_tmp_21; } That returns a address to a local variable ... Which is why you get this warning: ``` <source>: In function 'void hwy::AssertVecEqual(Vec<Simd<double> >)': <source>:174:45: warning: '__trans_tmp_23' is used uninitialized [-Wuninitialized] 174 | __trans_tmp_20 = *actual_lanes.get(); | ^ <source>:42:10: note: '__trans_tmp_23' was declared here 42 | double __trans_tmp_23{}; | ^~~~~~~~~~~~~~ ```