Skip to content

Conversation

fmayer
Copy link
Contributor

@fmayer fmayer commented Oct 18, 2025

Reverts #162932

Failed Tests (1):
  Clang-Unit :: ./AllClangUnitTests/failed_to_discover_tests_from_gtest

@llvmbot llvmbot added clang Clang issues not falling into any other category clang:dataflow Clang Dataflow Analysis framework - https://clang.llvm.org/docs/DataFlowAnalysisIntro.html clang:analysis labels Oct 18, 2025
@fmayer fmayer enabled auto-merge (squash) October 18, 2025 01:45
@llvmbot
Copy link
Member

llvmbot commented Oct 18, 2025

@llvm/pr-subscribers-clang

@llvm/pr-subscribers-clang-analysis

Author: Florian Mayer (fmayer)

Changes

Reverts llvm/llvm-project#162932

Failed Tests (1):
  Clang-Unit :: ./AllClangUnitTests/failed_to_discover_tests_from_gtest

Patch is 88.11 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/164040.diff

9 Files Affected:

  • (removed) clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h (-112)
  • (modified) clang/lib/Analysis/FlowSensitive/Models/CMakeLists.txt (-1)
  • (removed) clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp (-295)
  • (modified) clang/unittests/Analysis/FlowSensitive/CMakeLists.txt (-2)
  • (removed) clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTest.cpp (-34)
  • (removed) clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp (-2518)
  • (removed) clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.h (-157)
  • (modified) llvm/utils/gn/secondary/clang/lib/Analysis/FlowSensitive/Models/BUILD.gn (-1)
  • (modified) llvm/utils/gn/secondary/clang/unittests/Analysis/FlowSensitive/BUILD.gn (-2)
diff --git a/clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h b/clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
deleted file mode 100644
index cb619fb0cb5bb..0000000000000
--- a/clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+++ /dev/null
@@ -1,112 +0,0 @@
-//===- UncheckedStatusOrAccessModel.h -------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CLANG_ANALYSIS_FLOWSENSITIVE_MODELS_UNCHECKEDSTATUSORACCESSMODEL_H
-#define CLANG_ANALYSIS_FLOWSENSITIVE_MODELS_UNCHECKEDSTATUSORACCESSMODEL_H
-
-#include "clang/AST/Type.h"
-#include "clang/ASTMatchers/ASTMatchers.h"
-#include "clang/Analysis/CFG.h"
-#include "clang/Analysis/FlowSensitive/CFGMatchSwitch.h"
-#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
-#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
-#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
-#include "clang/Analysis/FlowSensitive/NoopLattice.h"
-#include "clang/Analysis/FlowSensitive/StorageLocation.h"
-#include "clang/Analysis/FlowSensitive/Value.h"
-#include "clang/Basic/SourceLocation.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/StringMap.h"
-#include "llvm/ADT/StringRef.h"
-
-namespace clang::dataflow::statusor_model {
-
-// The helper functions exported here are for use of downstream vendor
-// extensions of this model.
-
-// Match declaration of `absl::StatusOr<T>` and bind `T` to "T".
-clang::ast_matchers::DeclarationMatcher statusOrClass();
-// Match declaration of `absl::Status`.
-clang::ast_matchers::DeclarationMatcher statusClass();
-// Match declaration of `absl::internal_statusor::OperatorBase`.
-clang::ast_matchers::DeclarationMatcher statusOrOperatorBaseClass();
-clang::ast_matchers::TypeMatcher statusOrType();
-
-// Get RecordStorageLocation for the `Status` contained in the `StatusOr`
-RecordStorageLocation &locForStatus(RecordStorageLocation &StatusOrLoc);
-// Get the StorageLocation for the OK boolean in the `Status`
-StorageLocation &locForOk(RecordStorageLocation &StatusLoc);
-// Get the OK boolean in the `Status`, and initialize it if necessary.
-BoolValue &valForOk(RecordStorageLocation &StatusLoc, Environment &Env);
-// Get synthetic fields for the types modelled by
-// `UncheckedStatusOrAccessModel`.
-llvm::StringMap<QualType> getSyntheticFields(QualType Ty, QualType StatusType,
-                                             const CXXRecordDecl &RD);
-
-// Initialize the synthetic fields of the `StatusOr`.
-// N.B. if it is already initialized, the value gets reset.
-BoolValue &initializeStatusOr(RecordStorageLocation &StatusOrLoc,
-                              Environment &Env);
-// Initialize the synthetic fields of the `Status`.
-// N.B. if it is already initialized, the value gets reset.
-BoolValue &initializeStatus(RecordStorageLocation &StatusLoc, Environment &Env);
-
-bool isRecordTypeWithName(QualType Type, llvm::StringRef TypeName);
-// Return true if `Type` is instantiation of `absl::StatusOr<T>`
-bool isStatusOrType(QualType Type);
-// Return true if `Type` is `absl::Status`
-bool isStatusType(QualType Type);
-
-// Get `QualType` for `absl::Status`, or default-constructed
-// QualType if it does not exist.
-QualType findStatusType(const ASTContext &Ctx);
-
-struct UncheckedStatusOrAccessModelOptions {};
-
-// Dataflow analysis that discovers unsafe uses of StatusOr values.
-class UncheckedStatusOrAccessModel
-    : public DataflowAnalysis<UncheckedStatusOrAccessModel, NoopLattice> {
-public:
-  explicit UncheckedStatusOrAccessModel(ASTContext &Ctx, Environment &Env);
-
-  static Lattice initialElement() { return {}; }
-
-  void transfer(const CFGElement &Elt, Lattice &L, Environment &Env);
-
-private:
-  CFGMatchSwitch<TransferState<Lattice>> TransferMatchSwitch;
-};
-
-using LatticeTransferState =
-    TransferState<UncheckedStatusOrAccessModel::Lattice>;
-
-// Extend the Builder with the transfer functions for
-// `UncheckedStatusOrAccessModel`. This is useful to write downstream models
-// that extend the model.
-CFGMatchSwitch<LatticeTransferState>
-buildTransferMatchSwitch(ASTContext &Ctx,
-                         CFGMatchSwitchBuilder<LatticeTransferState> Builder);
-
-class UncheckedStatusOrAccessDiagnoser {
-public:
-  explicit UncheckedStatusOrAccessDiagnoser(
-      UncheckedStatusOrAccessModelOptions Options = {});
-
-  llvm::SmallVector<SourceLocation> operator()(
-      const CFGElement &Elt, ASTContext &Ctx,
-      const TransferStateForDiagnostics<UncheckedStatusOrAccessModel::Lattice>
-          &State);
-
-private:
-  CFGMatchSwitch<const Environment, llvm::SmallVector<SourceLocation>>
-      DiagnoseMatchSwitch;
-};
-
-} // namespace clang::dataflow::statusor_model
-
-#endif // CLANG_ANALYSIS_FLOWSENSITIVE_MODELS_UNCHECKEDSTATUSORACCESSMODEL_H
diff --git a/clang/lib/Analysis/FlowSensitive/Models/CMakeLists.txt b/clang/lib/Analysis/FlowSensitive/Models/CMakeLists.txt
index d1236f5714881..89bbe8791eb2c 100644
--- a/clang/lib/Analysis/FlowSensitive/Models/CMakeLists.txt
+++ b/clang/lib/Analysis/FlowSensitive/Models/CMakeLists.txt
@@ -1,7 +1,6 @@
 add_clang_library(clangAnalysisFlowSensitiveModels
   ChromiumCheckModel.cpp
   UncheckedOptionalAccessModel.cpp
-  UncheckedStatusOrAccessModel.cpp
 
   LINK_LIBS
   clangAnalysis
diff --git a/clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp b/clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
deleted file mode 100644
index 75b0959491c22..0000000000000
--- a/clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+++ /dev/null
@@ -1,295 +0,0 @@
-//===- UncheckedStatusOrAccessModel.cpp -----------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h"
-
-#include <cassert>
-#include <utility>
-
-#include "clang/AST/DeclCXX.h"
-#include "clang/AST/DeclTemplate.h"
-#include "clang/AST/Expr.h"
-#include "clang/AST/ExprCXX.h"
-#include "clang/AST/TypeBase.h"
-#include "clang/ASTMatchers/ASTMatchFinder.h"
-#include "clang/ASTMatchers/ASTMatchers.h"
-#include "clang/ASTMatchers/ASTMatchersInternal.h"
-#include "clang/Analysis/CFG.h"
-#include "clang/Analysis/FlowSensitive/CFGMatchSwitch.h"
-#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
-#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
-#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
-#include "clang/Analysis/FlowSensitive/StorageLocation.h"
-#include "clang/Analysis/FlowSensitive/Value.h"
-#include "clang/Basic/LLVM.h"
-#include "clang/Basic/SourceLocation.h"
-#include "llvm/ADT/StringMap.h"
-
-namespace clang::dataflow::statusor_model {
-namespace {
-
-using ::clang::ast_matchers::MatchFinder;
-using ::clang::ast_matchers::StatementMatcher;
-
-} // namespace
-
-static bool namespaceEquals(const NamespaceDecl *NS,
-                            clang::ArrayRef<clang::StringRef> NamespaceNames) {
-  while (!NamespaceNames.empty() && NS) {
-    if (NS->getName() != NamespaceNames.consume_back())
-      return false;
-    NS = dyn_cast_or_null<NamespaceDecl>(NS->getParent());
-  }
-  return NamespaceNames.empty() && !NS;
-}
-
-// TODO: move this to a proper place to share with the rest of clang
-static bool isTypeNamed(QualType Type, clang::ArrayRef<clang::StringRef> NS,
-                        StringRef Name) {
-  if (Type.isNull())
-    return false;
-  if (auto *RD = Type->getAsRecordDecl())
-    if (RD->getName() == Name)
-      if (const auto *N = dyn_cast_or_null<NamespaceDecl>(RD->getDeclContext()))
-        return namespaceEquals(N, NS);
-  return false;
-}
-
-static bool isStatusOrOperatorBaseType(QualType Type) {
-  return isTypeNamed(Type, {"absl", "internal_statusor"}, "OperatorBase");
-}
-
-static bool isSafeUnwrap(RecordStorageLocation *StatusOrLoc,
-                         const Environment &Env) {
-  if (!StatusOrLoc)
-    return false;
-  auto &StatusLoc = locForStatus(*StatusOrLoc);
-  auto *OkVal = Env.get<BoolValue>(locForOk(StatusLoc));
-  return OkVal != nullptr && Env.proves(OkVal->formula());
-}
-
-static ClassTemplateSpecializationDecl *
-getStatusOrBaseClass(const QualType &Ty) {
-  auto *RD = Ty->getAsCXXRecordDecl();
-  if (RD == nullptr)
-    return nullptr;
-  if (isStatusOrType(Ty) ||
-      // In case we are analyzing code under OperatorBase itself that uses
-      // operator* (e.g. to implement operator->).
-      isStatusOrOperatorBaseType(Ty))
-    return cast<ClassTemplateSpecializationDecl>(RD);
-  if (!RD->hasDefinition())
-    return nullptr;
-  for (const auto &Base : RD->bases())
-    if (auto *QT = getStatusOrBaseClass(Base.getType()))
-      return QT;
-  return nullptr;
-}
-
-static QualType getStatusOrValueType(ClassTemplateSpecializationDecl *TRD) {
-  return TRD->getTemplateArgs().get(0).getAsType();
-}
-
-static auto isStatusOrMemberCallWithName(llvm::StringRef member_name) {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return cxxMemberCallExpr(
-      on(expr(unless(cxxThisExpr()))),
-      callee(cxxMethodDecl(
-          hasName(member_name),
-          ofClass(anyOf(statusOrClass(), statusOrOperatorBaseClass())))));
-}
-
-static auto isStatusOrOperatorCallWithName(llvm::StringRef operator_name) {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return cxxOperatorCallExpr(
-      hasOverloadedOperatorName(operator_name),
-      callee(cxxMethodDecl(
-          ofClass(anyOf(statusOrClass(), statusOrOperatorBaseClass())))));
-}
-
-static auto valueCall() {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return anyOf(isStatusOrMemberCallWithName("value"),
-               isStatusOrMemberCallWithName("ValueOrDie"));
-}
-
-static auto valueOperatorCall() {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return expr(anyOf(isStatusOrOperatorCallWithName("*"),
-                    isStatusOrOperatorCallWithName("->")));
-}
-
-static auto
-buildDiagnoseMatchSwitch(const UncheckedStatusOrAccessModelOptions &Options) {
-  return CFGMatchSwitchBuilder<const Environment,
-                               llvm::SmallVector<SourceLocation>>()
-      // StatusOr::value, StatusOr::ValueOrDie
-      .CaseOfCFGStmt<CXXMemberCallExpr>(
-          valueCall(),
-          [](const CXXMemberCallExpr *E,
-             const ast_matchers::MatchFinder::MatchResult &,
-             const Environment &Env) {
-            if (!isSafeUnwrap(getImplicitObjectLocation(*E, Env), Env))
-              return llvm::SmallVector<SourceLocation>({E->getExprLoc()});
-            return llvm::SmallVector<SourceLocation>();
-          })
-
-      // StatusOr::operator*, StatusOr::operator->
-      .CaseOfCFGStmt<CXXOperatorCallExpr>(
-          valueOperatorCall(),
-          [](const CXXOperatorCallExpr *E,
-             const ast_matchers::MatchFinder::MatchResult &,
-             const Environment &Env) {
-            RecordStorageLocation *StatusOrLoc =
-                Env.get<RecordStorageLocation>(*E->getArg(0));
-            if (!isSafeUnwrap(StatusOrLoc, Env))
-              return llvm::SmallVector<SourceLocation>({E->getOperatorLoc()});
-            return llvm::SmallVector<SourceLocation>();
-          })
-      .Build();
-}
-
-UncheckedStatusOrAccessDiagnoser::UncheckedStatusOrAccessDiagnoser(
-    UncheckedStatusOrAccessModelOptions Options)
-    : DiagnoseMatchSwitch(buildDiagnoseMatchSwitch(Options)) {}
-
-llvm::SmallVector<SourceLocation> UncheckedStatusOrAccessDiagnoser::operator()(
-    const CFGElement &Elt, ASTContext &Ctx,
-    const TransferStateForDiagnostics<UncheckedStatusOrAccessModel::Lattice>
-        &State) {
-  return DiagnoseMatchSwitch(Elt, Ctx, State.Env);
-}
-
-BoolValue &initializeStatus(RecordStorageLocation &StatusLoc,
-                            Environment &Env) {
-  auto &OkVal = Env.makeAtomicBoolValue();
-  Env.setValue(locForOk(StatusLoc), OkVal);
-  return OkVal;
-}
-
-BoolValue &initializeStatusOr(RecordStorageLocation &StatusOrLoc,
-                              Environment &Env) {
-  return initializeStatus(locForStatus(StatusOrLoc), Env);
-}
-
-clang::ast_matchers::DeclarationMatcher statusOrClass() {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return classTemplateSpecializationDecl(
-      hasName("absl::StatusOr"),
-      hasTemplateArgument(0, refersToType(type().bind("T"))));
-}
-
-clang::ast_matchers::DeclarationMatcher statusClass() {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return cxxRecordDecl(hasName("absl::Status"));
-}
-
-clang::ast_matchers::DeclarationMatcher statusOrOperatorBaseClass() {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return classTemplateSpecializationDecl(
-      hasName("absl::internal_statusor::OperatorBase"));
-}
-
-clang::ast_matchers::TypeMatcher statusOrType() {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return hasCanonicalType(qualType(hasDeclaration(statusOrClass())));
-}
-
-bool isRecordTypeWithName(QualType Type, llvm::StringRef TypeName) {
-  return Type->isRecordType() &&
-         Type->getAsCXXRecordDecl()->getQualifiedNameAsString() == TypeName;
-}
-
-bool isStatusOrType(QualType Type) {
-  return isTypeNamed(Type, {"absl"}, "StatusOr");
-}
-
-bool isStatusType(QualType Type) {
-  return isTypeNamed(Type, {"absl"}, "Status");
-}
-
-llvm::StringMap<QualType> getSyntheticFields(QualType Ty, QualType StatusType,
-                                             const CXXRecordDecl &RD) {
-  if (auto *TRD = getStatusOrBaseClass(Ty))
-    return {{"status", StatusType}, {"value", getStatusOrValueType(TRD)}};
-  if (isStatusType(Ty) || (RD.hasDefinition() &&
-                           RD.isDerivedFrom(StatusType->getAsCXXRecordDecl())))
-    return {{"ok", RD.getASTContext().BoolTy}};
-  return {};
-}
-
-RecordStorageLocation &locForStatus(RecordStorageLocation &StatusOrLoc) {
-  return cast<RecordStorageLocation>(StatusOrLoc.getSyntheticField("status"));
-}
-
-StorageLocation &locForOk(RecordStorageLocation &StatusLoc) {
-  return StatusLoc.getSyntheticField("ok");
-}
-
-BoolValue &valForOk(RecordStorageLocation &StatusLoc, Environment &Env) {
-  if (auto *Val = Env.get<BoolValue>(locForOk(StatusLoc)))
-    return *Val;
-  return initializeStatus(StatusLoc, Env);
-}
-
-static void transferStatusOrOkCall(const CXXMemberCallExpr *Expr,
-                                   const MatchFinder::MatchResult &,
-                                   LatticeTransferState &State) {
-  RecordStorageLocation *StatusOrLoc =
-      getImplicitObjectLocation(*Expr, State.Env);
-  if (StatusOrLoc == nullptr)
-    return;
-
-  auto &OkVal = valForOk(locForStatus(*StatusOrLoc), State.Env);
-  State.Env.setValue(*Expr, OkVal);
-}
-
-CFGMatchSwitch<LatticeTransferState>
-buildTransferMatchSwitch(ASTContext &Ctx,
-                         CFGMatchSwitchBuilder<LatticeTransferState> Builder) {
-  using namespace ::clang::ast_matchers; // NOLINT: Too many names
-  return std::move(Builder)
-      .CaseOfCFGStmt<CXXMemberCallExpr>(isStatusOrMemberCallWithName("ok"),
-                                        transferStatusOrOkCall)
-      .Build();
-}
-
-QualType findStatusType(const ASTContext &Ctx) {
-  for (Type *Ty : Ctx.getTypes())
-    if (isStatusType(QualType(Ty, 0)))
-      return QualType(Ty, 0);
-
-  return QualType();
-}
-
-UncheckedStatusOrAccessModel::UncheckedStatusOrAccessModel(ASTContext &Ctx,
-                                                           Environment &Env)
-    : DataflowAnalysis<UncheckedStatusOrAccessModel,
-                       UncheckedStatusOrAccessModel::Lattice>(Ctx),
-      TransferMatchSwitch(buildTransferMatchSwitch(Ctx, {})) {
-  QualType StatusType = findStatusType(Ctx);
-  Env.getDataflowAnalysisContext().setSyntheticFieldCallback(
-      [StatusType](QualType Ty) -> llvm::StringMap<QualType> {
-        CXXRecordDecl *RD = Ty->getAsCXXRecordDecl();
-        if (RD == nullptr)
-          return {};
-
-        if (auto Fields = getSyntheticFields(Ty, StatusType, *RD);
-            !Fields.empty())
-          return Fields;
-        return {};
-      });
-}
-
-void UncheckedStatusOrAccessModel::transfer(const CFGElement &Elt, Lattice &L,
-                                            Environment &Env) {
-  LatticeTransferState State(L, Env);
-  TransferMatchSwitch(Elt, getASTContext(), State);
-}
-
-} // namespace clang::dataflow::statusor_model
diff --git a/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt b/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
index 1d932ec6e8a96..35082387b46e9 100644
--- a/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
+++ b/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
@@ -25,8 +25,6 @@ add_clang_unittest(ClangAnalysisFlowSensitiveTests
   TransferTest.cpp
   TypeErasedDataflowAnalysisTest.cpp
   UncheckedOptionalAccessModelTest.cpp
-  UncheckedStatusOrAccessModelTest.cpp
-  UncheckedStatusOrAccessModelTestFixture.cpp
   ValueTest.cpp
   WatchedLiteralsSolverTest.cpp
   CLANG_LIBS
diff --git a/clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTest.cpp b/clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTest.cpp
deleted file mode 100644
index 07d3f2412e842..0000000000000
--- a/clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTest.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//===- UncheckedStatusOrAccessModelTest.cpp -------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <utility>
-
-#include "UncheckedStatusOrAccessModelTestFixture.h"
-#include "clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h"
-#include "gtest/gtest.h"
-
-namespace clang::dataflow::statusor_model {
-namespace {
-
-INSTANTIATE_TEST_SUITE_P(
-    UncheckedStatusOrAccessModelTest, UncheckedStatusOrAccessModelTest,
-    testing::Values(
-        std::make_pair(new UncheckedStatusOrAccessModelTestExecutor<
-                           UncheckedStatusOrAccessModel>(),
-                       UncheckedStatusOrAccessModelTestAliasKind::kUnaliased),
-        std::make_pair(
-            new UncheckedStatusOrAccessModelTestExecutor<
-                UncheckedStatusOrAccessModel>(),
-            UncheckedStatusOrAccessModelTestAliasKind::kPartiallyAliased),
-        std::make_pair(
-            new UncheckedStatusOrAccessModelTestExecutor<
-                UncheckedStatusOrAccessModel>(),
-            UncheckedStatusOrAccessModelTestAliasKind::kFullyAliased)));
-} // namespace
-
-} // namespace clang::dataflow::statusor_model
diff --git a/clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp b/clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
deleted file mode 100644
index 4827cc1d0a7e9..0000000000000
--- a/clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+++ /dev/null
@@ -1,2518 +0,0 @@
-//===- UncheckedStatusOrAccessModelTestFixture.cpp ------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "UncheckedStatusOrAccessModelTestFixture.h"
-#include "MockHeaders.h"
-#include "llvm/Support/ErrorHandling.h"
-
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "gtest/gtest.h"
-
-namespace clang::dataflow::statusor_model {
-namespace {
-
-TE...
[truncated]

@fmayer fmayer merged commit eed8d3a into main Oct 18, 2025
13 of 14 checks passed
@fmayer fmayer deleted the revert-162932-users/fmayer/spr/flowsensitive-statusor-1n-add-minimal-model branch October 18, 2025 02:07
@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 18, 2025

LLVM Buildbot has detected a new failure on builder flang-x86_64-windows running on minipc-ryzen-win while building clang,llvm at step 7 "test-build-unified-tree-check-flang".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/166/builds/3107

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-flang) failure: test (failure)
...
3.472 [208/6/43] Linking CXX executable tools\flang\unittests\Evaluate\real.test.exe
3.505 [208/5/44] Building LinalgInterfaces.h.inc...
3.815 [48/6/45] Building CXX object tools\flang\unittests\Frontend\CMakeFiles\FlangFrontendTests.dir\CodeGenActionTest.cpp.obj
3.935 [47/6/46] Linking CXX executable tools\flang\unittests\Evaluate\expression.test.exe
4.002 [46/6/47] Linking CXX executable tools\flang\unittests\Evaluate\intrinsics.test.exe
4.085 [45/6/48] Building CXX object tools\flang\unittests\Frontend\CMakeFiles\FlangFrontendTests.dir\CompilerInstanceTest.cpp.obj
4.190 [44/6/49] Building CXX object tools\flang\unittests\Frontend\CMakeFiles\FlangFrontendTests.dir\FrontendActionTest.cpp.obj
4.301 [43/6/50] Linking CXX executable bin\llvm-objdump.exe
4.619 [43/5/51] Linking CXX executable tools\flang\unittests\Evaluate\folding.test.exe
41.022 [43/4/52] Building CXX object tools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\Builder\CharacterTest.cpp.obj
FAILED: [code=2] tools/flang/unittests/Optimizer/CMakeFiles/FlangOptimizerTests.dir/Builder/CharacterTest.cpp.obj 
ccache C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe  /nologo /TP -DFLANG_INCLUDE_TESTS=1 -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\flang-x86_64-windows\build\tools\flang\unittests\Optimizer -IC:\buildbot\flang-x86_64-windows\llvm-project\flang\unittests\Optimizer -IC:\buildbot\flang-x86_64-windows\llvm-project\flang\include -IC:\buildbot\flang-x86_64-windows\build\tools\flang\include -IC:\buildbot\flang-x86_64-windows\build\include -IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\include -IC:\buildbot\flang-x86_64-windows\llvm-project\third-party\unittest\googletest\include -IC:\buildbot\flang-x86_64-windows\llvm-project\third-party\unittest\googlemock\include -external:IC:\buildbot\flang-x86_64-windows\llvm-project\flang\..\mlir\include -external:IC:\buildbot\flang-x86_64-windows\build\tools\mlir\include -external:IC:\buildbot\flang-x86_64-windows\build\tools\clang\include -external:IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\..\clang\include -external:W0 /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Fotools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\Builder\CharacterTest.cpp.obj /Fdtools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\ /FS -c C:\buildbot\flang-x86_64-windows\llvm-project\flang\unittests\Optimizer\Builder\CharacterTest.cpp
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2143: syntax error: missing ';' before '?'
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2059: syntax error: '?'
41.359 [43/3/53] Building CXX object tools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\Builder\DoLoopHelperTest.cpp.obj
FAILED: [code=2] tools/flang/unittests/Optimizer/CMakeFiles/FlangOptimizerTests.dir/Builder/DoLoopHelperTest.cpp.obj 
ccache C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe  /nologo /TP -DFLANG_INCLUDE_TESTS=1 -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\flang-x86_64-windows\build\tools\flang\unittests\Optimizer -IC:\buildbot\flang-x86_64-windows\llvm-project\flang\unittests\Optimizer -IC:\buildbot\flang-x86_64-windows\llvm-project\flang\include -IC:\buildbot\flang-x86_64-windows\build\tools\flang\include -IC:\buildbot\flang-x86_64-windows\build\include -IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\include -IC:\buildbot\flang-x86_64-windows\llvm-project\third-party\unittest\googletest\include -IC:\buildbot\flang-x86_64-windows\llvm-project\third-party\unittest\googlemock\include -external:IC:\buildbot\flang-x86_64-windows\llvm-project\flang\..\mlir\include -external:IC:\buildbot\flang-x86_64-windows\build\tools\mlir\include -external:IC:\buildbot\flang-x86_64-windows\build\tools\clang\include -external:IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\..\clang\include -external:W0 /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Fotools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\Builder\DoLoopHelperTest.cpp.obj /Fdtools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\ /FS -c C:\buildbot\flang-x86_64-windows\llvm-project\flang\unittests\Optimizer\Builder\DoLoopHelperTest.cpp
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2143: syntax error: missing ';' before '?'
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2059: syntax error: '?'
41.415 [43/2/54] Building CXX object tools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\Builder\ComplexTest.cpp.obj
FAILED: [code=2] tools/flang/unittests/Optimizer/CMakeFiles/FlangOptimizerTests.dir/Builder/ComplexTest.cpp.obj 
ccache C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe  /nologo /TP -DFLANG_INCLUDE_TESTS=1 -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\flang-x86_64-windows\build\tools\flang\unittests\Optimizer -IC:\buildbot\flang-x86_64-windows\llvm-project\flang\unittests\Optimizer -IC:\buildbot\flang-x86_64-windows\llvm-project\flang\include -IC:\buildbot\flang-x86_64-windows\build\tools\flang\include -IC:\buildbot\flang-x86_64-windows\build\include -IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\include -IC:\buildbot\flang-x86_64-windows\llvm-project\third-party\unittest\googletest\include -IC:\buildbot\flang-x86_64-windows\llvm-project\third-party\unittest\googlemock\include -external:IC:\buildbot\flang-x86_64-windows\llvm-project\flang\..\mlir\include -external:IC:\buildbot\flang-x86_64-windows\build\tools\mlir\include -external:IC:\buildbot\flang-x86_64-windows\build\tools\clang\include -external:IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\..\clang\include -external:W0 /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Fotools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\Builder\ComplexTest.cpp.obj /Fdtools\flang\unittests\Optimizer\CMakeFiles\FlangOptimizerTests.dir\ /FS -c C:\buildbot\flang-x86_64-windows\llvm-project\flang\unittests\Optimizer\Builder\ComplexTest.cpp
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2143: syntax error: missing ';' before '?'
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2059: syntax error: '?'
42.015 [43/1/55] Building CXX object tools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\LinalgOps.cpp.obj
FAILED: [code=2] tools/mlir/lib/Dialect/Linalg/IR/CMakeFiles/obj.MLIRLinalgDialect.dir/LinalgOps.cpp.obj 
ccache C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\lib\Dialect\Linalg\IR -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\lib\Dialect\Linalg\IR -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\include -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\include -IC:\buildbot\flang-x86_64-windows\build\include -IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Fotools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\LinalgOps.cpp.obj /Fdtools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\ /FS -c C:\buildbot\flang-x86_64-windows\llvm-project\mlir\lib\Dialect\Linalg\IR\LinalgOps.cpp
..\llvm-project\mlir\include\mlir/IR/BuiltinAttributes.h(359): warning C4996: 'std::complex<llvm::APFloat>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2143: syntax error: missing ';' before '?'
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2059: syntax error: '?'
tools\mlir\include\mlir/Dialect/Complex/IR/ComplexAttributes.h.inc(34): warning C4996: 'std::complex<llvm::APFloat>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
ninja: build stopped: subcommand failed.
Cache directory:      C:\Users\buildbot-worker\AppData\Local\ccache
Config file:          C:\Users\buildbot-worker\AppData\Local\ccache\ccache.conf
System config file:   C:\ProgramData\ccache\ccache.conf
Stats updated:        10/17/25 19:30:17
Cacheable calls:         21 /  25 (84.00%)
  Hits:                  21 /  21 (100.0%)
    Direct:              21 /  21 (100.0%)
    Preprocessed:         0 /  21 ( 0.00%)
  Misses:                 0 /  21 ( 0.00%)
Uncacheable calls:        4 /  25 (16.00%)
  Compilation failed:     4 /   4 (100.0%)
Successful lookups:
  Direct:                21 /  25 (84.00%)
  Preprocessed:           0 /   4 ( 0.00%)
Local storage:
  Cache size (GB):      5.0 / 5.0 (99.92%)
  Files:              20744
Step 8 (test-build-unified-tree-check-flang-rt) failure: test (failure)
...
2.330 [2/6/126] Building C object CMakeFiles/clang_rt.builtins-x86_64.dir/truncdfbf2.c.obj
2.332 [2/5/127] Building C object CMakeFiles/clang_rt.builtins-x86_64.dir/trunctfbf2.c.obj
2.363 [2/4/128] Building C object CMakeFiles/clang_rt.builtins-x86_64.dir/truncsfbf2.c.obj
2.595 [2/3/129] Building C object CMakeFiles/clang_rt.builtins-x86_64.dir/enable_execute_stack.c.obj
3.377 [2/2/130] Building C object CMakeFiles/clang_rt.builtins-x86_64.dir/emutls.c.obj
3.529 [2/1/131] Building C object CMakeFiles/clang_rt.builtins-x86_64.dir/cpu_model/x86.c.obj
3.587 [1/1/132] Linking C static library C:\buildbot\flang-x86_64-windows\build\lib\clang\22\lib\windows\clang_rt.builtins-x86_64.lib
15.011 [6/2/13] No install step for 'builtins'
15.126 [5/2/15] Completed 'builtins'
39.366 [5/1/16] Building CXX object tools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\LinalgOps.cpp.obj
FAILED: [code=2] tools/mlir/lib/Dialect/Linalg/IR/CMakeFiles/obj.MLIRLinalgDialect.dir/LinalgOps.cpp.obj 
ccache C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\lib\Dialect\Linalg\IR -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\lib\Dialect\Linalg\IR -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\include -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\include -IC:\buildbot\flang-x86_64-windows\build\include -IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Fotools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\LinalgOps.cpp.obj /Fdtools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\ /FS -c C:\buildbot\flang-x86_64-windows\llvm-project\mlir\lib\Dialect\Linalg\IR\LinalgOps.cpp
..\llvm-project\mlir\include\mlir/IR/BuiltinAttributes.h(359): warning C4996: 'std::complex<llvm::APFloat>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2143: syntax error: missing ';' before '?'
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2059: syntax error: '?'
tools\mlir\include\mlir/Dialect/Complex/IR/ComplexAttributes.h.inc(34): warning C4996: 'std::complex<llvm::APFloat>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
ninja: build stopped: subcommand failed.
Cache directory:      C:\Users\buildbot-worker\AppData\Local\ccache
Config file:          C:\Users\buildbot-worker\AppData\Local\ccache\ccache.conf
System config file:   C:\ProgramData\ccache\ccache.conf
Stats updated:        10/17/25 19:30:58
Cacheable calls:          0 /   1 ( 0.00%)
  Hits:                   0
    Direct:               0
    Preprocessed:         0
  Misses:                 0
Uncacheable calls:        1 /   1 (100.0%)
  Compilation failed:     1 /   1 (100.0%)
Successful lookups:
  Direct:                 0 /   1 ( 0.00%)
  Preprocessed:           0 /   1 ( 0.00%)
Local storage:
  Cache size (GB):      5.0 / 5.0 (99.92%)
  Files:              20744
  Hits:                   0
  Misses:                 0
  Reads:                  2
  Writes:                 0
Step 9 (install-build-unified-treeall) failure: build (failure)
...
12.446 [60/6/31] Linking CXX executable bin\f18-parse-demo.exe
15.066 [59/6/32] Linking CXX executable bin\bugpoint.exe
15.074 [58/6/33] Linking CXX executable bin\dsymutil.exe
15.944 [57/6/34] Generating export list for LLVM-C
16.011 [56/6/35] Creating export file for LLVM-C
16.983 [55/6/36] Linking CXX executable bin\llvm-cfi-verify.exe
17.591 [54/6/37] Linking CXX executable bin\llvm-c-test.exe
18.072 [53/6/38] Linking CXX executable bin\llvm-debuginfo-analyzer.exe
19.041 [52/6/39] Linking CXX executable bin\llc.exe
19.348 [51/6/40] Building CXX object tools\mlir\test\lib\Dialect\TestIRDLToCpp\CMakeFiles\MLIRTestIRDLToCppDialect.dir\TestIRDLToCppDialect.cpp.obj
FAILED: [code=2] tools/mlir/test/lib/Dialect/TestIRDLToCpp/CMakeFiles/MLIRTestIRDLToCppDialect.dir/TestIRDLToCppDialect.cpp.obj 
ccache C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DMLIR_INCLUDE_TESTS -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\test\lib\Dialect\TestIRDLToCpp -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\test\lib\Dialect\TestIRDLToCpp -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\include -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\include -IC:\buildbot\flang-x86_64-windows\build\include -IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Fotools\mlir\test\lib\Dialect\TestIRDLToCpp\CMakeFiles\MLIRTestIRDLToCppDialect.dir\TestIRDLToCppDialect.cpp.obj /Fdtools\mlir\test\lib\Dialect\TestIRDLToCpp\CMakeFiles\MLIRTestIRDLToCppDialect.dir\MLIRTestIRDLToCppDialect.pdb /FS -c C:\buildbot\flang-x86_64-windows\llvm-project\mlir\test\lib\Dialect\TestIRDLToCpp\TestIRDLToCppDialect.cpp
..\llvm-project\mlir\include\mlir/IR/BuiltinAttributes.h(359): warning C4996: 'std::complex<llvm::APFloat>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2143: syntax error: missing ';' before '?'
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2059: syntax error: '?'
19.580 [51/5/41] Linking CXX executable bin\clang-repl.exe
20.175 [51/4/42] Linking CXX executable bin\llvm-dwarfutil.exe
20.527 [51/3/43] Linking CXX executable bin\llvm-dwp.exe
21.825 [51/2/44] Linking CXX executable bin\llvm-exegesis.exe
40.820 [51/1/45] Building CXX object tools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\LinalgOps.cpp.obj
FAILED: [code=2] tools/mlir/lib/Dialect/Linalg/IR/CMakeFiles/obj.MLIRLinalgDialect.dir/LinalgOps.cpp.obj 
ccache C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\lib\Dialect\Linalg\IR -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\lib\Dialect\Linalg\IR -IC:\buildbot\flang-x86_64-windows\build\tools\mlir\include -IC:\buildbot\flang-x86_64-windows\llvm-project\mlir\include -IC:\buildbot\flang-x86_64-windows\build\include -IC:\buildbot\flang-x86_64-windows\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -std:c++17 -MD  /EHs-c- /GR- -UNDEBUG /showIncludes /Fotools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\LinalgOps.cpp.obj /Fdtools\mlir\lib\Dialect\Linalg\IR\CMakeFiles\obj.MLIRLinalgDialect.dir\ /FS -c C:\buildbot\flang-x86_64-windows\llvm-project\mlir\lib\Dialect\Linalg\IR\LinalgOps.cpp
..\llvm-project\mlir\include\mlir/IR/BuiltinAttributes.h(359): warning C4996: 'std::complex<llvm::APFloat>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2143: syntax error: missing ';' before '?'
tools\mlir\include\mlir/Dialect/Arith/IR/ArithOps.h.inc(3049): error C2059: syntax error: '?'
tools\mlir\include\mlir/Dialect/Complex/IR/ComplexAttributes.h.inc(34): warning C4996: 'std::complex<llvm::APFloat>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
ninja: build stopped: subcommand failed.
Cache directory:      C:\Users\buildbot-worker\AppData\Local\ccache
Config file:          C:\Users\buildbot-worker\AppData\Local\ccache\ccache.conf
System config file:   C:\ProgramData\ccache\ccache.conf
Stats updated:        10/17/25 19:31:41
Cacheable calls:          0 /   2 ( 0.00%)
  Hits:                   0
    Direct:               0
    Preprocessed:         0
  Misses:                 0
Uncacheable calls:        2 /   2 (100.0%)
  Compilation failed:     2 /   2 (100.0%)
Successful lookups:
  Direct:                 0 /   2 ( 0.00%)
  Preprocessed:           0 /   2 ( 0.00%)
Local storage:
  Cache size (GB):      5.0 / 5.0 (99.92%)
  Files:              20744
  Hits:                   0
  Misses:                 0
  Reads:                  4
  Writes:                 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang:analysis clang:dataflow Clang Dataflow Analysis framework - https://clang.llvm.org/docs/DataFlowAnalysisIntro.html clang Clang issues not falling into any other category

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants