annotate gcc/testsuite/g++.dg/ext/strncpy-chk1.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1 // PR c++/40502 - [4.5 Regression] crash in cp_diagnostic_starter
111
kono
parents:
diff changeset
2 // { dg-do compile }
kono
parents:
diff changeset
3 // { dg-options "-O2" }
kono
parents:
diff changeset
4 // { dg-skip-if "packed attribute missing for struct A" { "epiphany-*-*" } }
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 struct A { char x[12], y[35]; };
kono
parents:
diff changeset
7 struct B { char z[50]; };
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 inline void
kono
parents:
diff changeset
10 foo (char *dest, const char *__restrict src, __SIZE_TYPE__ n)
kono
parents:
diff changeset
11 {
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
12 // This triggers a -Wstringop-overflow warning (pruned below).
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
13 __builtin___strncpy_chk (dest, src, n, __builtin_object_size (dest, 0));
111
kono
parents:
diff changeset
14 }
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 void bar (const char *, int);
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 inline void
kono
parents:
diff changeset
19 baz (int i)
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 char s[128], t[32];
kono
parents:
diff changeset
22 bar (s, 0);
kono
parents:
diff changeset
23 bar (t, i);
kono
parents:
diff changeset
24 A a;
kono
parents:
diff changeset
25 B b;
kono
parents:
diff changeset
26 foo (a.y, b.z, 36);
kono
parents:
diff changeset
27 }
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 void
kono
parents:
diff changeset
30 test ()
kono
parents:
diff changeset
31 {
kono
parents:
diff changeset
32 baz (0);
kono
parents:
diff changeset
33 }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
34
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
35 // { dg-prune-output "\\\[-Wstringop-overflow=]" }