Andreas Tobler <a.tobler@schweiz.ch>
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / builtin-noret-2.c
blob9b94a4c2a8e88c21bd17110e5c1af48085d579e1
1 /* Test for builtin noreturn attributes when the visible declarations
2 are function-local. Modified from builtin-noret-1.c by Zack Weinberg
3 <zack@codesourcery.com>. */
4 /* { dg-options "-multiply_defined suppress" { target powerpc-*-darwin* } } */
5 /* { dg-do link } */
7 extern void tabort (void);
8 extern void texit (void);
9 extern void t_exit (void);
10 extern void t_Exit (void);
12 extern void link_failure (void);
14 int
15 main (void)
17 volatile int i = 0;
18 if (i)
19 tabort ();
20 if (i)
21 texit ();
22 if (i)
23 t_exit ();
24 if (i)
25 t_Exit ();
26 exit (0);
29 void
30 tabort (void)
32 extern void abort (void);
33 abort ();
34 link_failure ();
37 void
38 texit (void)
40 extern void exit (int);
41 exit (1);
42 link_failure ();
45 void
46 t_exit (void)
48 extern void _exit (int);
49 _exit (1);
50 link_failure ();
53 /* Some non-Unix libcs might not have _exit. */
54 void
55 _exit (int i)
57 abort ();
60 void
61 t_Exit (void)
63 extern void _Exit (int);
64 _Exit (1);
65 link_failure ();
68 /* Some libcs might not have _Exit. */
69 void
70 _Exit (int i)
72 abort ();