Xamarin Public Jenkins (auto-signing) 468663ddbb Imported Upstream version 6.10.0.49
Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
2020-01-16 16:38:04 +00:00

27 lines
850 B
C++

// 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
}