mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
50 lines
639 B
C++
50 lines
639 B
C++
typedef int jmp_buf;
|
|
void longjmp(jmp_buf env, int val);
|
|
|
|
|
|
[[noreturn]]
|
|
void noReturn0();
|
|
|
|
void noReturn1() {
|
|
noReturn0();
|
|
}
|
|
|
|
void noReturn2() {
|
|
do {
|
|
noReturn0();
|
|
}
|
|
while (0);
|
|
}
|
|
|
|
void noReturn3(int i) {
|
|
if (i > 0) {
|
|
noReturn1();
|
|
} else {
|
|
noReturn2();
|
|
}
|
|
}
|
|
|
|
void noReturn4() {
|
|
while (true) { }
|
|
}
|
|
|
|
void mayReturn(int i) {
|
|
if (i > 0) {
|
|
noReturn0();
|
|
}
|
|
}
|
|
|
|
#define mayReturnMacro(i) \
|
|
do { if (i > 0) { noReturn0(); } } while (0);
|
|
|
|
void noReturn5() {
|
|
mayReturnMacro(1);
|
|
}
|
|
|
|
void noReturn6() {
|
|
longjmp(0, 0);
|
|
}
|
|
|
|
void noReturn7() { // NOT REPORTED
|
|
throw 42;
|
|
} |