| #include <stdlib.h> |
| |
| typedef struct _krb5_data { |
| char *data; |
| } krb5_data; |
| |
| void |
| test_1 (krb5_data inbuf, int flag) |
| { |
| free(inbuf.data); /* { dg-message "first 'free' here" } */ |
| free(inbuf.data); /* { dg-warning "double-'free' of 'inbuf.data'" } */ |
| } |
| |
| void |
| test_2 (krb5_data inbuf, int flag) |
| { |
| if (flag) { |
| free(inbuf.data); /* { dg-message "first 'free' here" } */ |
| } |
| free(inbuf.data); /* { dg-warning "double-'free' of 'inbuf.data'" } */ |
| } |
| |
| void |
| test_3 (krb5_data inbuf, int flag) |
| { |
| if (flag) { |
| free((char *)inbuf.data); /* { dg-message "first 'free' here" } */ |
| } |
| free((char *)inbuf.data); /* { dg-warning "double-'free' of 'inbuf.data'" } */ |
| } |