diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/exprstmt1.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/exprstmt1.C | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/exprstmt1.C b/gcc/testsuite/g++.old-deja/g++.other/exprstmt1.C new file mode 100644 index 000000000..abe072999 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/exprstmt1.C @@ -0,0 +1,26 @@ +// { dg-do run } +// { dg-options "-O" } +// { dg-error "limited range of data type" "16-bit target" { target xstormy16-*-* } 0 } +// { dg-error "shift count >=" "16-bit target" { target xstormy16-*-* } 0 } + +int main() +{ + unsigned int x = 1381237248; + + if (sizeof (x) != 4) + return 0; + + x = + ({ + unsigned int y = x; + ({ + unsigned int z = y; + (unsigned int) + ((((unsigned int)z & (unsigned int)0x000000ffUL) << 24) + | (((unsigned int)z & (unsigned int)0x0000ff00UL) << 8) + | (((unsigned int)z & (unsigned int)0x00ff0000UL) >> 8) + | (((unsigned int)z & (unsigned int)0xff000000UL) >> 24)); + }); + }); + return x != 152658; +} |