2018-04-09 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / free-1.c
blob5496c84fdb82e38cfc3bee12d9fcdcc6e428bec3
1 /* PR c/36970 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2" } */
5 extern void free (void *);
7 char *p, buf3[10], d;
8 struct S { char a; int b; } *r;
10 void foo (void)
12 char buf[10], buf2[10], c;
13 static char buf4[10], e;
14 char *q = buf;
15 free (p);
16 free (q); /* { dg-warning "attempt to free a non-heap object" } */
17 free (buf2); /* { dg-warning "attempt to free a non-heap object" } */
18 free (&c); /* { dg-warning "attempt to free a non-heap object" } */
19 free (buf3); /* { dg-warning "attempt to free a non-heap object" } */
20 free (&d); /* { dg-warning "attempt to free a non-heap object" } */
21 free (buf4); /* { dg-warning "attempt to free a non-heap object" } */
22 free (&e); /* { dg-warning "attempt to free a non-heap object" } */
23 free (&r->a);
24 free ("abcd"); /* { dg-warning "attempt to free a non-heap object" } */
25 free (L"abcd"); /* { dg-warning "attempt to free a non-heap object" } */