1  /* { dg-require-effective-target signal } */
       2  #include <stdio.h>
       3  #include <signal.h>
       4  #include <stdlib.h>
       5  
       6  extern void body_of_program(void);
       7  
       8  void custom_logger(const char *msg)
       9  {
      10    fprintf(stderr, "LOG: %s", msg); /* { dg-warning "call to 'fprintf' from within signal handler" } */
      11  }
      12  
      13  static void handler(int signum)
      14  {
      15    custom_logger("got signal");
      16  }
      17  
      18  void test (void)
      19  {
      20    void *ptr = malloc (1024);
      21    signal(SIGINT, handler); /* { dg-message "registering 'handler' as signal handler" } */
      22    body_of_program();
      23    free (ptr);
      24  }