Merge from mainline (167278:168000).
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / ext / strncpy-chk1.C
blob7770ba931270013e87b001c55ca77b59651d55c6
1 // PR c++/40502
2 // { dg-do compile }
3 // { dg-options "-O2" }
5 struct A { char x[12], y[35]; };
6 struct B { char z[50]; };
8 inline void
9 foo (char *dest, const char *__restrict src, __SIZE_TYPE__ n)
11   __builtin___strncpy_chk (dest, src, n, __builtin_object_size (dest, 0));      // { dg-warning "will always overflow" }
14 void bar (const char *, int);
16 inline void
17 baz (int i)
19   char s[128], t[32];
20   bar (s, 0);
21   bar (t, i);
22   A a;
23   B b;
24   foo (a.y, b.z, 36);
27 void
28 test ()
30   baz (0);