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-*-* } && ia32 } } } */ 5 /* { dg-options "-Wsync-nand -mcpu=v9" { target sparc*-*-* } } */ 6 7 8 extern void abort (void); 9 main(void)10int 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 } 26