1 /* Example of other bad calls within a signal handler.  */
2 /* { dg-require-effective-target signal } */
3 
4 #include <stdlib.h>
5 #include <signal.h>
6 
7 extern void do_stuff (void *ptr);
8 extern void body_of_program(void);
9 
handler(int signum)10 static void handler(int signum)
11 {
12   void *ptr = malloc (1024); /* { dg-warning "call to 'malloc' from within signal handler" } */
13   do_stuff (ptr);
14   free (ptr); /* { dg-warning "call to 'free' from within signal handler" } */
15 }
16 
main(int argc,const char * argv)17 int main(int argc, const char *argv)
18 {
19   signal(SIGINT, handler); /* { dg-message "registering 'handler' as signal handler" } */
20   body_of_program();
21   return 0;
22 }
23