URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [bitfld-3.c] - Rev 154
Compare with Previous | Blame | View Log
/* Test for bitfield alignment in structs and unions. */ /* { dg-do run { target pcc_bitfield_type_matters } } */ /* { dg-options "-O2" } */ extern void abort (void); extern void exit (int); typedef long la __attribute__((aligned (8))); struct A { char a; union UA { char x; la y : 6; } b; char c; } a; struct B { char a; union UB { char x; long y : 6 __attribute__((aligned (8))); } b; char c; } b; struct C { char a; struct UC { la y : 6; } b; char c; } c; struct D { char a; struct UD { long y : 6 __attribute__((aligned (8))); } b; char c; } d; int main (void) { if (sizeof (a) != sizeof (b)) abort (); if (sizeof (a) != sizeof (c)) abort (); if (sizeof (a) != sizeof (d)) abort (); if ((&a.c - &a.a) != (&b.c - &b.a)) abort (); if ((&a.c - &a.a) != (&c.c - &c.a)) abort (); if ((&a.c - &a.a) != (&d.c - &d.a)) abort (); exit (0); }