Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.c-torture/execute/pr91635.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
/* PR target/91635 */ #if __CHAR_BIT__ == 8 && __SIZEOF_SHORT__ == 2 \ && __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8 unsigned short b, c; int u, v, w, x; __attribute__ ((noipa)) int foo (unsigned short c) { c <<= __builtin_add_overflow (-c, -1, &b); c >>= 1; return c; } __attribute__ ((noipa)) int bar (unsigned short b) { b <<= -14 & 15; b = b >> -~1; return b; } __attribute__ ((noipa)) int baz (unsigned short e) { e <<= 1; e >>= __builtin_add_overflow (8719476735, u, &v); return e; } __attribute__ ((noipa)) int qux (unsigned int e) { c = ~1; c *= e; c = c >> (-15 & 5); return c + w + x; } #endif int main () { #if __CHAR_BIT__ == 8 && __SIZEOF_SHORT__ == 2 \ && __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8 if (foo (0xffff) != 0x7fff) __builtin_abort (); if (bar (5) != 5) __builtin_abort (); if (baz (~0) != 0x7fff) __builtin_abort (); if (qux (2) != 0x7ffe) __builtin_abort (); #endif return 0; }