I've noticed this testcase FAILs on i686-linux with
-fstack-protector-strong.
sizeof (auto_vec<int, 8>) == 16, which in this case contains
4-byte m_vec (which points to to m_auto), then 8-byte m_auto
which contains just 8-byte m_vecpfx and finally 1 byte m_data,
rest is padding. We then try to push 2 ints to it, so 8 bytes,
starting at the end of m_vecpfx aka address of m_data, but there
is just 1 byte + 3 bytes of padding.
In the lp64 case, I think sizeof (auto_vec<int, 8>) == 24,
because there is 8-byte m_vec, 8-byte m_vecpfx and 1-byte m_char
all with 8-byte alignment.
2023-03-20 Jakub Jelinek <jakub@redhat.com>
* g++.dg/torture/
20230313.C (auto_vec): Change m_data type
from char to char [2 * sizeof (int)].