Bug path

test_2
‘test_2’: events 1-2
19void test_2 (struct foo f_outer)
^~~~~~
|
(1) entry to ‘test_2’
20{
21 called_by_test_2 (f_outer);
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
(2) calling ‘called_by_test_2’ from ‘test_2’
called_by_test_2
‘called_by_test_2’: events 3-5
14static void called_by_test_2 (struct foo f_inner)
^~~~~~~~~~~~~~~~
|
(3) entry to ‘called_by_test_2’
15{
16 free (f_inner.ptr);
~~~~~~~~~~~~~~~~~~
|
(4) first ‘free’ here
17 free (f_inner.ptr); /* { dg-warning "double-'free' of 'f_outer.ptr'" } */
~~~~~~~~~~~~~~~~~~
|
(5) second ‘free’ here; first ‘free’ was at (4)