builtin-noret-2.c

来自「用于进行gcc测试」· C语言 代码 · 共 90 行

C
90
字号
/* 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 + =
减小字号Ctrl + -
显示快捷键?