Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/torture/pr87248.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
/* PR middle-end/87248 */ /* { dg-do run } */ void foo (signed char *p, int q) { *p = q & (-__SCHAR_MAX__ - 1) ? (-__SCHAR_MAX__ - 1) : 0; } int bar (long long x) { return x & (-__INT_MAX__ - 1) ? (-__INT_MAX__ - 1) : 0; } int main () { #if __INT_MAX__ > 4 * __SCHAR_MAX__ signed char a[4]; foo (a, __SCHAR_MAX__ + 1U); foo (a + 1, 2 * (__SCHAR_MAX__ + 1U)); foo (a + 2, -__INT_MAX__ - 1); foo (a + 3, (__SCHAR_MAX__ + 1U) / 2); if (a[0] != (-__SCHAR_MAX__ - 1) || a[1] != a[0] || a[2] != a[0] || a[3] != 0) __builtin_abort (); #endif #if __LONG_LONG_MAX__ > 4 * __INT_MAX__ if (bar (__INT_MAX__ + 1LL) != (-__INT_MAX__ - 1) || bar (2 * (__INT_MAX__ + 1LL)) != (-__INT_MAX__ - 1) || bar (-__LONG_LONG_MAX__ - 1) != (-__INT_MAX__ - 1) || bar ((__INT_MAX__ + 1LL) / 2) != 0) __builtin_abort (); #endif return 0; }