Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/gcc.dg/Wrestrict-3.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/gcc.dg/Wrestrict-3.c Thu Oct 25 07:37:49 2018 +0900 @@ -0,0 +1,17 @@ +/* Test to verify that the call below with the out-of-bounds offset + doesn't trigger an internal assertion and is diagnosed. + { dg-do compile } + { dg-options "-O2 -Wrestrict" } */ + +#define DIFF_MAX __PTRDIFF_MAX__ + +void test_no_ice (int *d, __PTRDIFF_TYPE__ i, __SIZE_TYPE__ n) +{ + if (i < DIFF_MAX / sizeof *d - 1 || DIFF_MAX / sizeof *d + 2 < i) + i = DIFF_MAX / sizeof *d - 1; + + if (n < DIFF_MAX) + n = DIFF_MAX / sizeof *d; + + __builtin_strncpy ((char*)(d + i), (char*)d, n); /* { dg-warning "\\\[-Wrestrict]" } */ +}