📄 noreturn-1.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -