[prev in list] [next in list] [prev in thread] [next in thread]
List: cfe-commits
Subject: [clang-tools-extra] r246495 - Allow the static assert clang-tidy checker to run over C code.
From: Aaron Ballman via cfe-commits <cfe-commits () lists ! llvm ! org>
Date: 2015-08-31 21:54:42
Message-ID: 20150831215442.A3EDF2A6C02C () llvm ! org
[Download RAW message or body]
Author: aaronballman
Date: Mon Aug 31 16:54:42 2015
New Revision: 246495
URL: http://llvm.org/viewvc/llvm-project?rev=246495&view=rev
Log:
Allow the static assert clang-tidy checker to run over C code.
Added:
clang-tools-extra/trunk/test/clang-tidy/misc-static-assert.c
Modified:
clang-tools-extra/trunk/clang-tidy/misc/StaticAssertCheck.cpp
Modified: clang-tools-extra/trunk/clang-tidy/misc/StaticAssertCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/StaticAssertCheck.cpp?rev=246495&r1=246494&r2=246495&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/StaticAssertCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/StaticAssertCheck.cpp Mon Aug 31 16:54:42 \
2015 @@ -27,10 +27,9 @@ StaticAssertCheck::StaticAssertCheck(Str
: ClangTidyCheck(Name, Context) {}
void StaticAssertCheck::registerMatchers(MatchFinder *Finder) {
- // FIXME: I don't see why this checker couldn't also be interesting for
- // _Static_assert in C11, or static_assert if <assert.h> has been included,
- // but it is currently only enabled for C++11. Investigate.
- if (!getLangOpts().CPlusPlus11)
+ // This checker only makes sense for languages that have static assertion
+ // capabilities: C++11 and C11.
+ if (!(getLangOpts().CPlusPlus11 || getLangOpts().C11))
return;
auto IsAlwaysFalse = expr(ignoringParenImpCasts(
Added: clang-tools-extra/trunk/test/clang-tidy/misc-static-assert.c
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-static-assert.c?rev=246495&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-static-assert.c (added)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-static-assert.c Mon Aug 31 16:54:42 \
2015 @@ -0,0 +1,27 @@
+// RUN: %python %S/check_clang_tidy.py %s misc-static-assert %t -- -std=c11
+// RUN: clang-tidy %s -checks=-*,misc-static-assert -- -std=c99 | count 0
+
+void abort() {}
+#ifdef NDEBUG
+#define assert(x) 1
+#else
+#define assert(x) \
+ if (!(x)) \
+ abort()
+#endif
+
+void f(void) {
+ int x = 1;
+ assert(x == 0);
+ // CHECK-FIXES: {{^ }}assert(x == 0);
+
+ #define static_assert(x, msg) _Static_assert(x, msg)
+ assert(11 == 5 + 6);
+ // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: found assert() that could be
+ // CHECK-FIXES: {{^ }}static_assert(11 == 5 + 6, "");
+ #undef static_assert
+
+ assert(10 == 5 + 5);
+ // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: found assert() that could be
+ // CHECK-FIXES: {{^ }}static_assert(10 == 5 + 5, "");
+}
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic