* config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
In gcc/testsuite/:
	* gcc.dg/ppc-ldstruct.c: New test.

From-SVN: r50503
This commit is contained in:
Geoffrey Keating 2002-03-09 19:14:15 +00:00 committed by Geoffrey Keating
parent 32c1620024
commit 79b51cd7d8
4 changed files with 27 additions and 8 deletions

View File

@ -1,3 +1,7 @@
2002-03-09 Geoffrey Keating <geoffk@redhat.com>
* config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
2002-03-09 Jakub Jelinek <jakub@redhat.com>
PR middle-end/5877

View File

@ -383,14 +383,6 @@ do { \
/* Real stack boundary as mandated by the appropriate ABI. */
#define ABI_STACK_BOUNDARY ((TARGET_EABI && !TARGET_ALTIVEC_ABI) ? 64 : 128)
/* No data type wants to be aligned rounder than this. */
/* FIXME: This should be keyed off of TARGET_ALTIVEC_ABI instead but
TARGET_ALTIVEC_ABI uses rs6000_altivec_abi which is only defined in
rs6000.c. Consequently, genconstants will fail to link because it
uses rtl.c which uses BIGGEST_ALIGNMENT. */
#undef BIGGEST_ALIGNMENT
#define BIGGEST_ALIGNMENT ((TARGET_EABI && !TARGET_ALTIVEC) ? 64 : 128)
/* An expression for the alignment of a structure field FIELD if the
alignment computed in the usual way is COMPUTED. */
#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \

View File

@ -1,3 +1,7 @@
2002-03-09 Geoffrey Keating <geoffk@redhat.com>
* gcc.dg/ppc-ldstruct.c: New test.
2002-03-09 Jakub Jelinek <jakub@redhat.com>
* gcc.c-torture/execute/va-arg-22.c: New test.

View File

@ -0,0 +1,19 @@
/* { dg-do run { target powerpc*-*-eabi* powerpc*-*-elf* powerpc*-*-linux* } } */
/* { dg-options "-O -mlong-double-128" } */
/* SVR4 and EABI both specify that 'long double' is aligned to a 128-bit
boundary in structures. */
struct {
int x;
long double d;
} s;
int main(void)
{
if (sizeof (s) != 32)
abort ();
if ((char *)&s.d - (char *)&s != 16)
abort ();
exit (0);
}