blob: 1bf5444ffcc157d48386ac64b78e4d05dcaa65c9 [file] [log] [blame]
// RUN: %check_clang_tidy %s cert-err52-cpp %t -- -- -std=c++11
typedef void *jmp_buf;
extern int __setjmpimpl(jmp_buf);
#define setjmp(x) __setjmpimpl(x)
[[noreturn]] extern void longjmp(jmp_buf, int);
namespace std {
using ::jmp_buf;
using ::longjmp;
}
static jmp_buf env;
void g() {
std::longjmp(env, 1);
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not call 'longjmp'; consider using exception handling instead [cert-err52-cpp]
::longjmp(env, 1);
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not call 'longjmp'; consider using exception handling instead
longjmp(env, 1);
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: do not call 'longjmp'; consider using exception handling instead
}
void f() {
(void)setjmp(env);
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: do not call 'setjmp'; consider using exception handling instead
}