3 extern void foo (void);
4 extern void bar (void);
6 void test_1 (int flag
, int n
);
8 void caller_1_of_test_1 (int n
)
10 test_1 (1, n
); /* { dg-bogus "test_1" } */
11 test_1 (0, n
); /* { dg-bogus "test_1" } */
14 void __attribute__((noinline
))
15 test_1 (int flag
, int n
)
17 int *ptr
= (int *)malloc (sizeof (int));
22 for (i
= 0; i
< n
; i
++)
29 free (ptr
); /* { dg-warning "double-'free'" } */
30 /* FIXME: we get duplicates intraprocedurally, as there are two paths
32 The calls in test_2 also generate additional duplicates.
33 How to verify lack of duplicates?
34 Putting a bogus on the interprocedual one detects that, at least. */
42 void caller_2_of_test_1 (int n
)
44 test_1 (1, n
); /* { dg-bogus "test_1" } */
45 test_1 (0, n
); /* { dg-bogus "test_1" } */