From: Jakub Jelinek Date: Mon, 20 Mar 2023 11:38:43 +0000 (+0100) Subject: testsuite: Fix up 20230313.C test X-Git-Tag: basepoints/gcc-14~447 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e19234f464676efea383c8ef34c61dd18f2da108;p=thirdparty%2Fgcc.git testsuite: Fix up 20230313.C test I've noticed this testcase FAILs on i686-linux with -fstack-protector-strong. sizeof (auto_vec) == 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) == 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 * g++.dg/torture/20230313.C (auto_vec): Change m_data type from char to char [2 * sizeof (int)]. --- diff --git a/gcc/testsuite/g++.dg/torture/20230313.C b/gcc/testsuite/g++.dg/torture/20230313.C index d1f348003bdd..99887ab0a3b0 100644 --- a/gcc/testsuite/g++.dg/torture/20230313.C +++ b/gcc/testsuite/g++.dg/torture/20230313.C @@ -60,7 +60,7 @@ struct auto_vec : vec this->release (); } vec m_auto; - char m_data; + char m_data[2 * sizeof (int)]; }; template struct vec