forked from OSchip/llvm-project
81 lines
2.6 KiB
C++
81 lines
2.6 KiB
C++
// RUN: %check_clang_tidy -std=c++17-or-later %s modernize-use-uncaught-exceptions %t
|
|
|
|
#define MACRO std::uncaught_exception
|
|
// CHECK-FIXES: #define MACRO std::uncaught_exception
|
|
|
|
bool uncaught_exception() {
|
|
return 0;
|
|
}
|
|
|
|
namespace std {
|
|
bool uncaught_exception() {
|
|
return false;
|
|
}
|
|
|
|
int uncaught_exceptions() {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
template <typename T>
|
|
bool doSomething(T t) {
|
|
return t();
|
|
// CHECK-FIXES: return t();
|
|
}
|
|
|
|
template <bool (*T)()>
|
|
bool doSomething2() {
|
|
return T();
|
|
// CHECK-MESSAGES: [[@LINE-1]]:10: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: return T();
|
|
}
|
|
|
|
void no_warn() {
|
|
|
|
uncaught_exception();
|
|
// CHECK-FIXES: uncaught_exception();
|
|
|
|
doSomething(uncaught_exception);
|
|
// CHECK-FIXES: doSomething(uncaught_exception);
|
|
}
|
|
|
|
void warn() {
|
|
|
|
std::uncaught_exception();
|
|
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: std::uncaught_exceptions();
|
|
|
|
using std::uncaught_exception;
|
|
// CHECK-MESSAGES: [[@LINE-1]]:14: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: using std::uncaught_exceptions;
|
|
|
|
uncaught_exception();
|
|
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: uncaught_exceptions();
|
|
|
|
bool b{uncaught_exception()};
|
|
// CHECK-MESSAGES: [[@LINE-1]]:10: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: bool b{std::uncaught_exceptions() > 0};
|
|
|
|
MACRO();
|
|
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: MACRO();
|
|
|
|
doSomething(std::uncaught_exception);
|
|
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: doSomething(std::uncaught_exception);
|
|
|
|
doSomething(uncaught_exception);
|
|
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: doSomething(uncaught_exception);
|
|
|
|
bool (*foo)();
|
|
foo = &uncaught_exception;
|
|
// CHECK-MESSAGES: [[@LINE-1]]:10: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: foo = &uncaught_exception;
|
|
|
|
doSomething2<uncaught_exception>();
|
|
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: 'std::uncaught_exception' is deprecated, use 'std::uncaught_exceptions' instead
|
|
// CHECK-FIXES: doSomething2<uncaught_exception>();
|
|
}
|