https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119153
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2025-09-02
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed. There are 2 different "constant" pools inside GCC. At least on
aarch64 the 2 constants could be the same.
There will always be one copy on the stack though. because you could have:
```
template <std::size_t N> void g( int const (&il)[N],
std::initializer_list<int>);
void t()
{
g({3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}, {3, 1, 4, 1, 5, 9, 2, 6, 5, 3,
5});
}
```
So the first argument and the address of the initializer_list's data can't be
the same.