https://github.com/martinboehme created 
https://github.com/llvm/llvm-project/pull/66197:

Before, we were silently letting the test pass, which masks test bugs; for an
example, see https://github.com/llvm/llvm-project/pull/66195.


>From 5a827c9ea1543a5c52a89dbc15667e04b25df6d1 Mon Sep 17 00:00:00 2001
From: Martin Braenne <mboe...@google.com>
Date: Wed, 13 Sep 2023 11:57:16 +0000
Subject: [PATCH] [clang][dataflow] In tests, error out if we didn't find any
 matching target functions.

Before, we were silently letting the test pass, which masks test bugs; for an
example, see https://github.com/llvm/llvm-project/pull/66195.
---
 .../Analysis/FlowSensitive/TestingSupport.h       | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/clang/unittests/Analysis/FlowSensitive/TestingSupport.h 
b/clang/unittests/Analysis/FlowSensitive/TestingSupport.h
index 0cf66c218f43fdc..44d962d5da9a97b 100644
--- a/clang/unittests/Analysis/FlowSensitive/TestingSupport.h
+++ b/clang/unittests/Analysis/FlowSensitive/TestingSupport.h
@@ -240,12 +240,15 @@ checkDataflow(AnalysisInputs<AnalysisT> AI,
     };
   }
 
-  for (const ast_matchers::BoundNodes &BN :
-       ast_matchers::match(ast_matchers::functionDecl(
-                               ast_matchers::hasBody(ast_matchers::stmt()),
-                               AI.TargetFuncMatcher)
-                               .bind("target"),
-                           Context)) {
+  SmallVector<ast_matchers::BoundNodes, 1> MatchResult = ast_matchers::match(
+      ast_matchers::functionDecl(ast_matchers::hasBody(ast_matchers::stmt()),
+                                 AI.TargetFuncMatcher)
+          .bind("target"),
+      Context);
+  if (MatchResult.empty())
+    return llvm::createStringError(llvm::inconvertibleErrorCode(),
+                                   "didn't find any matching target 
functions");
+  for (const ast_matchers::BoundNodes &BN : MatchResult) {
     // Get the AST node of the target function.
     const FunctionDecl *Target = BN.getNodeAs<FunctionDecl>("target");
     if (Target == nullptr)

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to