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{};
      |          ^~~~~~~~~~~~~~
```

Reply via email to