modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c (about) 1 /* Undefined behavior from a call to a function cast to a different 2 type does not appear until after the function designator and 3 arguments have been evaluated. PR 38483. */ 4 /* Origin: Joseph Myers <joseph@codesourcery.com> */ 5 /* { dg-require-effective-target untyped_assembly } */ 6 7 extern void exit (int); 8 extern void abort (void); 9 10 int 11 foo (void) 12 { 13 exit (0); 14 return 0; 15 } 16 17 void 18 bar (void) 19 { 20 } 21 22 int 23 main (void) 24 { 25 ((long (*)(int))bar) (foo ()); 26 abort (); 27 }