summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2016-01-25 20:00:53 +0000
committerAaron Ballman <aaron@aaronballman.com>2016-01-25 20:00:53 +0000
commita5d55a46176a97b260e89fba55b8cf217e390422 (patch)
tree85dab61d6fc404f946d35aebc504bb45ba38da5c /clang-tools-extra/test
parent92f0f7c2f394e31a21f77ec3d43569c26154f6e1 (diff)
downloadbcm5719-llvm-a5d55a46176a97b260e89fba55b8cf217e390422.tar.gz
bcm5719-llvm-a5d55a46176a97b260e89fba55b8cf217e390422.zip
Add support to the misc-assert-side-effect check for MSVC-style assert macros, which use !! instead of an if statement or a conditional operator.
llvm-svn: 258714
Diffstat (limited to 'clang-tools-extra/test')
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp b/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp
index b4abadeb6cf..8cb4ebffa54 100644
--- a/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp
+++ b/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-assert-side-effect %t -- -config="{CheckOptions: [{key: misc-assert-side-effect.CheckFunctionCalls, value: 1}, {key: misc-assert-side-effect.AssertMacros, value: 'assert,assert2,my_assert,convoluted_assert'}]}" -- -fexceptions
+// RUN: %check_clang_tidy %s misc-assert-side-effect %t -- -config="{CheckOptions: [{key: misc-assert-side-effect.CheckFunctionCalls, value: 1}, {key: misc-assert-side-effect.AssertMacros, value: 'assert,assert2,my_assert,convoluted_assert,msvc_assert'}]}" -- -fexceptions
//===--- assert definition block ------------------------------------------===//
int abort() { return 0; }
@@ -35,6 +35,12 @@ void print(...);
#define wrap2(x) wrap1(x)
#define convoluted_assert(x) wrap2(x)
+#define msvc_assert(expression) (void)( \
+ (!!(expression)) || \
+ (abort(), 0) \
+ )
+
+
//===----------------------------------------------------------------------===//
class MyClass {
@@ -101,5 +107,8 @@ int main() {
assert2(1 == 2 - 1);
+ msvc_assert(mc2 = mc);
+ // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: found msvc_assert() with side effect
+
return 0;
}
OpenPOWER on IntegriCloud