diff mbox

fix #69573 - FAIL: gcc.dg/pr61053.c

Message ID 56AD6D42.1000009@gmail.com
State New
Headers show

Commit Message

Martin Sebor Jan. 31, 2016, 2:11 a.m. UTC
While doing some research into the aligned attribute I came across
c/61053 that had been reopened after the regression test added with
the fix had started to fail on a couple of targets.  Since the bug
is fixed and the test failure is due to the added test I resolved
it as fixed and opened a new one for the test failure (to avoid
giving the impression there's still a problem with _Alignas).

The attached patch should fix these outstanding test failures on
the two targets (x86_64-apple-darwin15.3.0 and x86_64-w64-mingw32).
I don't have access to either but I verified it on x86_64 by
running the test with the following:

RUNTESTFLAGS='--target_board=unix/-m32/-m128bit-long-double 
dg.exp=pr61053.c'

Martin

Comments

Marek Polacek Feb. 1, 2016, 11:49 a.m. UTC | #1
On Sat, Jan 30, 2016 at 07:11:14PM -0700, Martin Sebor wrote:
> While doing some research into the aligned attribute I came across
> c/61053 that had been reopened after the regression test added with
> the fix had started to fail on a couple of targets.  Since the bug
> is fixed and the test failure is due to the added test I resolved
> it as fixed and opened a new one for the test failure (to avoid
> giving the impression there's still a problem with _Alignas).
 
Right.  This is a testsuite-only issue; I've never gotten to fixing it.

> The attached patch should fix these outstanding test failures on
> the two targets (x86_64-apple-darwin15.3.0 and x86_64-w64-mingw32).
> I don't have access to either but I verified it on x86_64 by
> running the test with the following:
> 
> RUNTESTFLAGS='--target_board=unix/-m32/-m128bit-long-double
> dg.exp=pr61053.c'
 
Thanks for looking into this.  I guess I'm ok with this as long as the
test still passes on all non-weirdo targets ;).

	Marek
diff mbox

Patch

PR testsuite/69573 - FAIL: gcc.dg/pr61053.c (test for excess errors)

gcc/testsuite/ChangeLog:
2016-01-30  Martin Sebor  <msebor@redhat.com>

	PR testsuite/69573
	* gcc.dg/pr61053.c: Tweaked test to avoid bogus failures.

diff --git a/gcc/testsuite/gcc.dg/pr61053.c b/gcc/testsuite/gcc.dg/pr61053.c
index e270420..1c090e0 100644
--- a/gcc/testsuite/gcc.dg/pr61053.c
+++ b/gcc/testsuite/gcc.dg/pr61053.c
@@ -67,9 +67,19 @@  _Alignas (long double) double dld;
 
 _Alignas (char) long double ldc; /* { dg-error "cannot reduce alignment" } */
 _Alignas (short int) long double lds; /* { dg-error "cannot reduce alignment" } */
-_Alignas (int) long double ldi; /* { dg-error "cannot reduce alignment" "" { target { ! { ia32 } } } } */
-_Alignas (long int) long double ldl; /* { dg-error "cannot reduce alignment" "" { target { ! { ia32 } } } } */
-_Alignas (long long int) long double ldll; /* { dg-error "cannot reduce alignment" "" { target { ! { ia32 } } } } */
-_Alignas (float) long double ldf; /* { dg-error "cannot reduce alignment" "" { target { ! { ia32 } } } } */
-_Alignas (double) long double ldd; /* { dg-error "cannot reduce alignment" "" { target { ! { ia32 } } } } */
+
+#if __SIZEOF_LONG_DOUBLE__ == 12
+/* Get around PR testsuite/69573 - FAIL: gcc.dg/pr61053.c (test for excess
+   errors) on targets such as x86_64-apple-darwin15.3.0 where long double
+   is 16 bytes wide even in LP32.  */
+#  define X(T)   short
+#else
+#  define X(T)   T
+#endif
+
+_Alignas (X (int)) long double ldi; /* { dg-error "cannot reduce alignment" } */
+_Alignas (X (long int)) long double ldl; /* { dg-error "cannot reduce alignment" } */
+_Alignas (X (long long int)) long double ldll; /* { dg-error "cannot reduce alignment" } */
+_Alignas (X (float)) long double ldf; /* { dg-error "cannot reduce alignment" } */
+_Alignas (X (double)) long double ldd; /* { dg-error "cannot reduce alignment" } */
 _Alignas (long double) long double ldld;