📄 builtin-noret-2.c
字号:
/* Test for builtin noreturn attributes when the visible declarations are function-local. Modified from builtin-noret-1.c by Zack Weinberg <zack@codesourcery.com>. *//* { dg-options "-multiply_defined suppress" { target powerpc-*-darwin* } } *//* { dg-do link } *//* { dg-require-weak "" } */extern void tabort (void);extern void texit (void);extern void t_exit (void);extern void t_Exit (void);extern void link_failure (void);intmain (void){ volatile int i = 0; extern void exit (int); if (i) tabort (); if (i) texit (); if (i) t_exit (); if (i) t_Exit (); exit (0);}voidtabort (void){ extern void abort (void); abort (); link_failure ();}voidtexit (void){ extern void exit (int); exit (1); link_failure ();}voidt_exit (void){ extern void _exit (int); /* Some non-Unix libcs have _exit, and won't allow it to be re-defined, so make it weak. */#pragma weak _exit _exit (1); link_failure ();}/* Some non-Unix libcs might not have _exit. *//* Some non-Unix libcs have _exit, and won't allow it to be re-defined, so make it weak. */#pragma weak _exitvoid_exit (int i){ extern void abort (void); abort ();}voidt_Exit (void){ extern void _Exit (int); /* Some libcs have _Exit, and won't allow it to be re-defined, so make it weak. */#pragma weak _Exit _Exit (1); link_failure ();}/* Some libcs might not have _Exit. *//* Some libcs have _Exit, and won't allow it to be re-defined, so make it weak. */#pragma weak _Exitvoid_Exit (int i){ extern void abort (void); abort ();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -