0207f9ab667acffae40068dc51791cf789ad58ea
[platform/upstream/gcc.git] / gcc / testsuite / g++.dg / ext / builtin-object-size3.C
1 // { dg-do compile }
2 // { dg-options "-O2" }
3
4 void baz (int *, int *);
5
6 #define MEMCPY(d,s,l) __builtin___memcpy_chk (d, s, l, __builtin_object_size (d, 0))
7
8 int
9 foo ()
10 {
11   int *p = new int;
12   int *q = new int[4];
13   MEMCPY (p, "abcdefghijklmnopqrstuvwxyz", sizeof (int));
14   MEMCPY (q, "abcdefghijklmnopqrstuvwxyz", 4 * sizeof (int));
15   baz (p, q);
16 }
17
18 int
19 bar ()
20 {
21   int *p = new int;
22   int *q = new int[4];
23   MEMCPY (p, "abcdefghijklmnopqrstuvwxyz", sizeof (int) + 1);           // { dg-warning "writing" }
24   MEMCPY (q, "abcdefghijklmnopqrstuvwxyz", 4 * sizeof (int) + 1);       // { dg-warning "writing" }
25   baz (p, q);
26 }