1 typedef __SIZE_TYPE__
size_t;
4 void *malloc(__SIZE_TYPE__
);
8 void test_supersedes ()
10 int *p
= (int *)malloc(sizeof(int));
12 int x
= *p
+ 4; /* { dg-warning "use after 'free' of 'p'" } */
13 /* { dg-bogus "use of uninitialized value '\\*p" "" { target *-*-* } .-1 } */
16 int *called_by_test0()
21 p
= (int *)malloc(sizeof(int));
26 return (int *)malloc(sizeof(int));
31 int *y
= called_by_test0();
34 x
= *y
; /* { dg-warning "use after 'free' of 'y'" } */
35 /* { dg-warning "use of uninitialized value '\\*y'" "don't supersede warnings with incompatible cfg path" { target *-*-* } .-1 } */
36 free(y
); /* { dg-warning "double-'free'" } */
44 p
= (int *)malloc(sizeof(int));
48 p
= (int *)malloc(sizeof(int));
52 x
= *p
; /* { dg-warning "use after 'free' of 'p'" } */
53 /* { dg-warning "use of uninitialized value '\\*p'" "don't supersede warnings with incompatible cfg path" { target *-*-* } .-1 } */
54 free(p
); /* { dg-warning "double-'free'" } */
60 p
= (int *)malloc(sizeof(int));
66 x
= *p
; /* { dg-warning "use after 'free' of 'p'" } */
67 /* { dg-warning "use of uninitialized value '\\*p'" "don't supersede warnings with incompatible cfg path" { target *-*-* } .-1 } */
68 free(p
); /* { dg-warning "double-'free'" } */
74 p
= (int *)malloc(sizeof(int));
80 x
= *p
; /* { dg-warning "use after 'free' of 'p'" } */
81 /* { dg-warning "use of uninitialized value '\\*p'" "don't supersede warnings with incompatible cfg path" { target *-*-* } .-1 } */
82 p
= (int *)malloc(sizeof(int));
86 free(p
); /* { dg-warning "double-'free'" } */
95 p
= (int *) malloc(sizeof(int));
108 x
= *p
; /* { dg-warning "use after 'free' of 'p'" } */
109 /* { dg-warning "use of uninitialized value '\\*p'" "" { target *-*-* } .-1 } */
110 free(p
); /* { dg-warning "double-'free'" } */