Bug path

test
‘test’: events 1-2
28void test (void)
^~~~
|
(1) entry to ‘test’
29{
30 register_handler ();
~~~~~~~~~~~~~~~~~~~
|
(2) calling ‘register_handler’ from ‘test’
register_handler
‘register_handler’: events 3-4
23static void register_handler ()
^~~~~~~~~~~~~~~~
|
(3) entry to ‘register_handler’
24{
25 signal(SIGINT, int_handler);
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
(4) registering ‘int_handler’ as signal handler
event 5
(5): later on, when the signal is delivered to the process
int_handler
‘int_handler’: events 6-7
18static void int_handler(int signum)
^~~~~~~~~~~
|
(6) entry to ‘int_handler’
19{
20 custom_logger("got signal");
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
(7) calling ‘custom_logger’ from ‘int_handler’
custom_logger
‘custom_logger’: events 8-9
13void custom_logger(const char *msg)
^~~~~~~~~~~~~
|
(8) entry to ‘custom_logger’
14{
15 fprintf(stderr, "LOG: %s", msg); /* { dg-warning "call to 'fprintf' from within signal handler" } */
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
(9) call to ‘fprintf’ from within signal handler