diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-none.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-none.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-none.c b/gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-none.c new file mode 100644 index 000000000000..0a29f676cf70 --- /dev/null +++ b/gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-none.c @@ -0,0 +1,43 @@ +/* { dg-do compile } */ +/* { dg-options "-fdiagnostics-path-format=none" } */ + +#include <stdlib.h> + +void *wrapped_malloc (size_t size) +{ + return malloc (size); +} + +void wrapped_free (void *ptr) +{ + free (ptr); /* { dg-warning "double-free of 'ptr' \\\[CWE-415\\]" } */ +} + +typedef struct boxed_int +{ + int i; +} boxed_int; + +boxed_int * +make_boxed_int (int i) +{ + boxed_int *result = (boxed_int *)wrapped_malloc (sizeof (boxed_int)); + result->i = i; + return result; +} + +void +free_boxed_int (boxed_int *bi) +{ + wrapped_free (bi); +} + +void test (int i) +{ + boxed_int *obj = make_boxed_int (i); + + free_boxed_int (obj); + + free_boxed_int (obj); +} + |