From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2153) id 734773858D28; Fri, 1 Apr 2022 09:50:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 734773858D28 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jakub Jelinek To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-7951] testsuite: Add further zero size elt passing tests [PR102024] X-Act-Checkin: gcc X-Git-Author: Jakub Jelinek X-Git-Refname: refs/heads/master X-Git-Oldrev: 215c8c5826c688eaebce4d9cd0d52e9da7bc208f X-Git-Newrev: e0ce885851dfd926c0cfe6f23a2debc87ea2bb9d Message-Id: <20220401095013.734773858D28@sourceware.org> Date: Fri, 1 Apr 2022 09:50:13 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Apr 2022 09:50:13 -0000 https://gcc.gnu.org/g:e0ce885851dfd926c0cfe6f23a2debc87ea2bb9d commit r12-7951-ge0ce885851dfd926c0cfe6f23a2debc87ea2bb9d Author: Jakub Jelinek Date: Fri Apr 1 11:49:40 2022 +0200 testsuite: Add further zero size elt passing tests [PR102024] As discussed in PR102024, zero width bitfields might not be the only ones causing ABI issues at least on mips, zero size arrays or (in C only) zero sized (empty) structures can be problematic too. The following patch adds some coverage for it too. Tested on x86_64-linux with make check-gcc check-g++ RUNTESTFLAGS='ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ --target_board=unix\{-m32,-m64\} compat.exp=pr102024*' make check-gcc check-g++ RUNTESTFLAGS='ALT_CC_UNDER_TEST=clang ALT_CXX_UNDER_TEST=clang++ --target_board=unix\{-m32,-m64\} compat.exp=pr102024*' with gcc/g++ 10.3 and clang 11. Everything but (expectedly) FAIL: gcc.dg/compat/pr102024 c_compat_x_tst.o-c_compat_y_alt.o execute FAIL: gcc.dg/compat/pr102024 c_compat_x_alt.o-c_compat_y_tst.o execute for -m64 ALT_CC_UNDER_TEST=gcc passes. 2022-04-01 Jakub Jelinek PR target/102024 * gcc.dg/compat/pr102024_test.h: Add further tests with zero sized structures and arrays. * g++.dg/compat/pr102024_test.h: Add further tests with zero sized arrays. Diff: --- gcc/testsuite/g++.dg/compat/pr102024_test.h | 6 ++++++ gcc/testsuite/gcc.dg/compat/pr102024_test.h | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gcc/testsuite/g++.dg/compat/pr102024_test.h b/gcc/testsuite/g++.dg/compat/pr102024_test.h index d8f4103f63c..488a8ea188a 100644 --- a/gcc/testsuite/g++.dg/compat/pr102024_test.h +++ b/gcc/testsuite/g++.dg/compat/pr102024_test.h @@ -4,3 +4,9 @@ T(2,int:0;float a;,F(2,a,2.25f,16.5f)) T(3,double a;long long:0;double b;,F(3,a,42.0,43.125)F(3,b,-17.5,35.75)) T(4,double a;long long:0;,F(4,a,1.0,17.125)) T(5,long long:0;double a;,F(5,a,2.25,16.5)) +T(6,float a;struct{}b[0];float c;,F(6,a,42.0f,43.125f)F(6,c,-17.5f,35.75f)) +T(7,float a;struct{}b[0];;,F(7,a,1.0f,17.125f)) +T(8,int a[0];float b;,F(8,b,2.25f,16.5f)) +T(9,double a;long long b[0];double c;,F(9,a,42.0,43.125)F(9,c,-17.5,35.75)) +T(10,double a;struct{}b[0];,F(10,a,1.0,17.125)) +T(11,struct{}a[0];double b;,F(11,b,2.25,16.5)) diff --git a/gcc/testsuite/gcc.dg/compat/pr102024_test.h b/gcc/testsuite/gcc.dg/compat/pr102024_test.h index d8f4103f63c..d610dbdf54f 100644 --- a/gcc/testsuite/gcc.dg/compat/pr102024_test.h +++ b/gcc/testsuite/gcc.dg/compat/pr102024_test.h @@ -4,3 +4,9 @@ T(2,int:0;float a;,F(2,a,2.25f,16.5f)) T(3,double a;long long:0;double b;,F(3,a,42.0,43.125)F(3,b,-17.5,35.75)) T(4,double a;long long:0;,F(4,a,1.0,17.125)) T(5,long long:0;double a;,F(5,a,2.25,16.5)) +T(6,float a;struct{}b;float c;,F(6,a,42.0f,43.125f)F(6,c,-17.5f,35.75f)) +T(7,float a;struct{}b[0];;,F(7,a,1.0f,17.125f)) +T(8,int a[0];float b;,F(8,b,2.25f,16.5f)) +T(9,double a;long long b[0];double c;,F(9,a,42.0,43.125)F(9,c,-17.5,35.75)) +T(10,double a;struct{}b;,F(10,a,1.0,17.125)) +T(11,struct{}a[0];double b;,F(11,b,2.25,16.5))