diff options
author | Szabolcs Sipos <szabolcs.sipos@ericsson.com> | 2015-05-23 14:21:01 +0000 |
---|---|---|
committer | Szabolcs Sipos <szabolcs.sipos@ericsson.com> | 2015-05-23 14:21:01 +0000 |
commit | 0acf19ed539597dcb2bb920093c84844a3094d2d (patch) | |
tree | dd142de0748fb2589e1ee168ce5872e985b8b985 /clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp | |
parent | 5f2a1379ef0f66a906e4beaa30fa3918cb1779d8 (diff) | |
download | llvm-0acf19ed539597dcb2bb920093c84844a3094d2d.zip llvm-0acf19ed539597dcb2bb920093c84844a3094d2d.tar.gz llvm-0acf19ed539597dcb2bb920093c84844a3094d2d.tar.bz2 |
[clang-tidy] Fix for llvm.org/PR23572
misc-static-assert won't report asserts whose conditions contain calls to non constexpr functions.
llvm-svn: 238098
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp index c56262b..ed9367c 100644 --- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp @@ -39,11 +39,13 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) { anyOf(binaryOperator(hasEitherOperand(IsAlwaysFalseWithCast)), anything())).bind("assertExprRoot"), IsAlwaysFalse); + auto NonConstexprFunctionCall = + callExpr(hasDeclaration(functionDecl(unless(isConstexpr())))); auto Condition = expr(anyOf( expr(ignoringParenCasts(anyOf( AssertExprRoot, unaryOperator(hasUnaryOperand(ignoringParenCasts(AssertExprRoot)))))), - anything())); + anything()), unless(findAll(NonConstexprFunctionCall))); Finder->addMatcher( stmt(anyOf(conditionalOperator(hasCondition(Condition.bind("condition"))), |