diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/c-c++-common/cxxbitfields-3.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/c-c++-common/cxxbitfields-3.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/c-c++-common/cxxbitfields-3.c b/gcc-4.9/gcc/testsuite/c-c++-common/cxxbitfields-3.c new file mode 100644 index 000000000..fc423ea8b --- /dev/null +++ b/gcc-4.9/gcc/testsuite/c-c++-common/cxxbitfields-3.c @@ -0,0 +1,22 @@ +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 --param allow-store-data-races=0" } */ + +/* Make sure we don't narrow down to a QI or HI to store into VAR.J, + but instead use an SI. */ + +struct S +{ + volatile int i: 4; + volatile int j: 4; + volatile int k: 8; + volatile int l: 8; + volatile int m: 8; +} var; + +void setit() +{ + var.j = 5; +} + +/* { dg-final { scan-assembler "movl.*, _?var" { target nonpic } } } */ +/* { dg-final { scan-assembler "movl.*, (_?var|\\(%)" { target { ! nonpic } } } } */ |