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.

Reply via email to