Bug path

test_4
‘test_4’: events 1-2
39void test_4 (void)
^~~~~~
|
(1) entry to ‘test_4’
40{
41 char *s = called_by_test_4 (0);
~~~~~~~~~~~~~~~~~~~~
|
(2) calling ‘called_by_test_4’ from ‘test_4’
called_by_test_4
‘called_by_test_4’: events 3-5
31called_by_test_4 (int flag)
^~~~~~~~~~~~~~~~
|
(3) entry to ‘called_by_test_4’
32{
33 if (flag)
~
|
(4) following ‘false’ branch (when ‘flag == 0’)...
[...]
36 return (char *)"bar";
~~~~~~~~~~~~~
|
(5) ...to here
‘test_4’: events 6-7
41 char *s = called_by_test_4 (0);
^~~~~~~~~~~~~~~~~~~~
|
(6) returning to ‘test_4’ from ‘called_by_test_4’
42 s[1] = 'z'; /* { dg-warning "write to string literal" } */
~~~~~~~~~~
|
(7) write to string literal here