20 lines
468 B
C
20 lines
468 B
C
/* { dg-do run } */
|
|
/* { dg-require-effective-target size32plus } */
|
|
/* { dg-options "-fstrict-volatile-bitfields" } */
|
|
|
|
extern void abort (void);
|
|
|
|
#pragma pack(1)
|
|
volatile struct S0 {
|
|
signed a : 7;
|
|
unsigned b : 28; /* b can't be fetched with an aligned 32-bit access, */
|
|
/* but it certainly can be fetched with an unaligned access */
|
|
} g = {0,0xfffffff};
|
|
|
|
int main() {
|
|
unsigned b = g.b;
|
|
if (b != 0xfffffff)
|
|
abort ();
|
|
return 0;
|
|
}
|