OSDN Git Service

* gcc.dg/vect/vect-105.c: Prevent compiler from hoisting abort
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr37908.c
1 /* { dg-do run } */
2 /* { dg-require-effective-target sync_char_short } */
3 /* { dg-options "-Wsync-nand" } */
4 /* { dg-options "-Wsync-nand -march=i486" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
5 /* { dg-options "-Wsync-nand -mcpu=v9" { target sparc*-*-* } } */
6
7
8 extern void abort (void);
9
10 int main (void)
11 {
12
13   short xLoc;
14   short xIn, xOut, xExpect, i = 1;
15
16   xLoc = xIn = ~ (1 << i);
17   xExpect = ~ (xIn & 0x7F);
18
19   xOut = __sync_nand_and_fetch (&xLoc, 0x7F); /* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" } */
20
21   if (xOut != xExpect)
22     abort ();
23
24   return 0;
25 }