From 0acf19ed539597dcb2bb920093c84844a3094d2d Mon Sep 17 00:00:00 2001 From: Szabolcs Sipos Date: Sat, 23 May 2015 14:21:01 +0000 Subject: [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 --- clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp') diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp index c56262b90cf..ed9367c8a21 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"))), -- cgit v1.2.3