noreturn-1.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 60 行

C
60
字号
/* Check for various valid and erroneous "noreturn" cases. *//* { dg-do compile } *//* { dg-options "-O2 -Wmissing-noreturn" } */extern void exit (int);extern void foo1(void) __attribute__ ((__noreturn__));voidfoo1(void){ /* { dg-warning "`noreturn' function does return" "detect falling off end of noreturn" } */}extern void foo2(void) __attribute__ ((__noreturn__));voidfoo2(void){  exit(0);} /* { dg-bogus "warning:" "this function should not get any warnings" } */extern void foo3(void);voidfoo3(void){} /* { dg-bogus "warning:" "this function should not get any warnings" } */extern void foo4(void);voidfoo4(void){  exit(0);} /* { dg-warning "candidate for attribute `noreturn'" "detect noreturn candidate" } */extern void foo5(void) __attribute__ ((__noreturn__));voidfoo5(void){  return; /* { dg-warning "`noreturn' has a `return' statement" "detect invalid return" } */} /* { dg-warning "`noreturn' function does return" "detect return from noreturn" } */extern void foo6(void);voidfoo6(void){  return;} /* { dg-bogus "warning:" "this function should not get any warnings" } */extern void foo7(void);voidfoo7(void){  foo6();} /* { dg-bogus "warning:" "this function should not get any warnings" } */extern void foo8(void) __attribute__ ((__noreturn__));voidfoo8(void){  foo7();} /* { dg-warning "`noreturn' function does return" "detect return from tail call" } */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?