Bug path

free_a_list_badly
‘free_a_list_badly’: events 1-4
8 while (n) {
^
|
(1) following ‘true’ branch (when ‘n’ is non-NULL)...
9 free(n); /* { dg-message "freed here" } */
~~~~~~~
|
(2) ...to here
(3) freed here
10 n = n->next; /* { dg-warning "use after 'free' of 'n'" } */
~~~~~~~~~~~
|
(4) use after ‘free’ of ‘n’; freed at (3)