Skip to content

[clang][dataflow] Add matchers for smart pointer accessors to be cached #120102

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Dec 20, 2024

Conversation

jvoung
Copy link
Contributor

@jvoung jvoung commented Dec 16, 2024

This is part 1 of caching for smart pointer accessors, building on top
of the CachedConstAccessorsLattice, which caches "normal" accessors.

Smart pointer accessors are a bit different in that they may:

  • have aliases to access the same underlying data (but potentially
    returning slightly different types like & vs *). Within a
    "checked" sequence users may mix uses of the different aliases and the
    check should apply to any of the spellings.
  • may have non-const overloads in addition to the const version, where
    the non-const doesn't actually modify the container

Part 2 will follow and add transfer functions utilities. It will also
add a user UncheckedOptionalAccessModel. We'd seen false positives when
nesting StatusOr<optional> and optional<StatusOr>, etc. which this
can help address.

This is part 1 of caching for smart pointer accessors, building on top
of the CachedConstAccessorsLattice, which caches "normal" accessors.

Smart pointer accessors are a bit different in that they may:
- have aliases to access the same underlying data (but potentially
  returning slightly different types like `&` vs `*`). Within a
  "checked" sequence users may mix uses of the different aliases and the
  check should apply to any of the spellings.
- may have non-const overloads in addition to the const version, where
  the non-const doesn't actually modify the container

Part 2 will follow and add transfer functions utilities. It will also
add a user UncheckedOptionalAccessModel. We'd seen false positives when
nesting StatusOr<optional<T>> and optional<StatusOr<T>>, etc. which this
can help address.
@jvoung jvoung marked this pull request as ready for review December 16, 2024 17:57
@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 Dec 16, 2024
@jvoung jvoung requested review from fmayer and ymand December 16, 2024 17:57
@llvmbot
Copy link
Member

llvmbot commented Dec 16, 2024

@llvm/pr-subscribers-clang-analysis

@llvm/pr-subscribers-clang

Author: Jan Voung (jvoung)

Changes

This is part 1 of caching for smart pointer accessors, building on top
of the CachedConstAccessorsLattice, which caches "normal" accessors.

Smart pointer accessors are a bit different in that they may:

  • have aliases to access the same underlying data (but potentially
    returning slightly different types like &amp; vs *). Within a
    "checked" sequence users may mix uses of the different aliases and the
    check should apply to any of the spellings.
  • may have non-const overloads in addition to the const version, where
    the non-const doesn't actually modify the container

Part 2 will follow and add transfer functions utilities. It will also
add a user UncheckedOptionalAccessModel. We'd seen false positives when
nesting StatusOr<optional<T>> and optional<StatusOr<T>>, etc. which this
can help address.


Full diff: https://github.com/llvm/llvm-project/pull/120102.diff

5 Files Affected:

  • (added) clang/include/clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h (+63)
  • (modified) clang/lib/Analysis/FlowSensitive/CMakeLists.txt (+1)
  • (added) clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp (+134)
  • (modified) clang/unittests/Analysis/FlowSensitive/CMakeLists.txt (+1)
  • (added) clang/unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.cpp (+194)
diff --git a/clang/include/clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h b/clang/include/clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h
new file mode 100644
index 00000000000000..1adb63af4e724b
--- /dev/null
+++ b/clang/include/clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h
@@ -0,0 +1,63 @@
+//===-- SmartPointerAccessorCaching.h ---------------------------*- C++ -*-===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines utilities to help cache accessors for smart pointer
+// like objects.
+//
+// These should be combined with CachedConstAccessorsLattice.
+// Beyond basic const accessors, smart pointers may have the following two
+// additional issues:
+//
+// 1) There may be multiple accessors for the same underlying object, e.g.
+//    `operator->`, `operator*`, and `get`. Users may use a mixture of these
+//    accessors, so the cache should unify them.
+//
+// 2) There may be non-const overloads of accessors. They are still safe to
+//    cache, as they don't modify the container object.
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_SMARTPOINTERACCESSORCACHING_H
+#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_SMARTPOINTERACCESSORCACHING_H
+
+#include <cassert>
+
+#include "clang/AST/Decl.h"
+#include "clang/AST/Stmt.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+
+namespace clang::dataflow {
+
+/// Matchers:
+/// For now, these match on any class with an `operator*` or `operator->`
+/// where the return types have a similar shape as std::unique_ptr
+/// and std::optional.
+///
+/// - `*` returns a reference to a type `T`
+/// - `->` returns a pointer to `T`
+/// - `get` returns a pointer to `T`
+/// - `value` returns a reference `T`
+///
+/// (1) The `T` should all match across the accessors (ignoring qualifiers).
+///
+/// (2) The specific accessor used in a call isn't required to be const,
+///     but the class must have a const overload of each accessor.
+///
+/// For now, we don't have customization to ignore certain classes.
+/// For example, if writing a ClangTidy check for `std::optional`, these
+/// would also match `std::optional`. In order to have special handling
+/// for `std::optional`, we assume the (Matcher, TransferFunction) case
+/// with custom handling is ordered early so that these generic cases
+/// do not trigger.
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeOperatorStar();
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeOperatorArrow();
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeValueMethodCall();
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeGetMethodCall();
+
+} // namespace clang::dataflow
+
+#endif // LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_SMARTPOINTERACCESSORCACHING_H
diff --git a/clang/lib/Analysis/FlowSensitive/CMakeLists.txt b/clang/lib/Analysis/FlowSensitive/CMakeLists.txt
index 05cdaa7e27823d..0c30df8b4b194f 100644
--- a/clang/lib/Analysis/FlowSensitive/CMakeLists.txt
+++ b/clang/lib/Analysis/FlowSensitive/CMakeLists.txt
@@ -10,6 +10,7 @@ add_clang_library(clangAnalysisFlowSensitive
   Logger.cpp
   RecordOps.cpp
   SimplifyConstraints.cpp
+  SmartPointerAccessorCaching.cpp
   Transfer.cpp
   TypeErasedDataflowAnalysis.cpp
   Value.cpp
diff --git a/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp b/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
new file mode 100644
index 00000000000000..967455322b57fe
--- /dev/null
+++ b/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
@@ -0,0 +1,134 @@
+#include "clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h"
+
+#include "clang/AST/CanonicalType.h"
+#include "clang/AST/DeclCXX.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+#include "clang/Basic/OperatorKinds.h"
+
+namespace clang::dataflow {
+
+namespace {
+
+using ast_matchers::callee;
+using ast_matchers::cxxMemberCallExpr;
+using ast_matchers::cxxMethodDecl;
+using ast_matchers::cxxOperatorCallExpr;
+using ast_matchers::hasName;
+using ast_matchers::hasOverloadedOperatorName;
+using ast_matchers::ofClass;
+using ast_matchers::parameterCountIs;
+using ast_matchers::pointerType;
+using ast_matchers::referenceType;
+using ast_matchers::returns;
+
+bool hasSmartPointerClassShape(const CXXRecordDecl &RD, bool &HasGet,
+                               bool &HasValue) {
+  // We may want to cache this search, but in current profiles it hasn't shown
+  // up as a hot spot (possibly because there aren't many hits, relatively).
+  bool HasArrow = false;
+  bool HasStar = false;
+  CanQualType StarReturnType, ArrowReturnType, GetReturnType, ValueReturnType;
+  for (const auto *MD : RD.methods()) {
+    // We only consider methods that are const and have zero parameters.
+    // It may be that there is a non-const overload for the method, but
+    // there should at least be a const overload as well.
+    if (!MD->isConst() || MD->getNumParams() != 0) {
+      continue;
+    }
+    if (MD->getOverloadedOperator() == OO_Star &&
+        MD->getReturnType()->isReferenceType()) {
+      HasStar = true;
+      StarReturnType = MD->getReturnType()
+                           .getNonReferenceType()
+                           ->getCanonicalTypeUnqualified();
+    } else if (MD->getOverloadedOperator() == OO_Arrow &&
+               MD->getReturnType()->isPointerType()) {
+      HasArrow = true;
+      ArrowReturnType =
+          MD->getReturnType()->getPointeeType()->getCanonicalTypeUnqualified();
+    } else {
+      IdentifierInfo *II = MD->getIdentifier();
+      if (II == nullptr)
+        continue;
+      if (II->isStr("get") && MD->getReturnType()->isPointerType()) {
+        HasGet = true;
+        GetReturnType = MD->getReturnType()
+                            ->getPointeeType()
+                            ->getCanonicalTypeUnqualified();
+      } else if (II->isStr("value") && MD->getReturnType()->isReferenceType()) {
+        HasValue = true;
+        ValueReturnType = MD->getReturnType()
+                              .getNonReferenceType()
+                              ->getCanonicalTypeUnqualified();
+      }
+    }
+  }
+
+  if (!HasStar || !HasArrow || StarReturnType != ArrowReturnType)
+    return false;
+  HasGet = HasGet && (GetReturnType == StarReturnType);
+  HasValue = HasValue && (ValueReturnType == StarReturnType);
+  return true;
+}
+
+} // namespace
+} // namespace clang::dataflow
+
+// AST_MATCHER macros create an "internal" namespace, so we put it in
+// its own anonymous namespace instead of in clang::dataflow.
+namespace {
+
+AST_MATCHER(clang::CXXRecordDecl, smartPointerClassWithGet) {
+  bool HasGet = false;
+  bool HasValue = false;
+  bool HasStarAndArrow =
+      clang::dataflow::hasSmartPointerClassShape(Node, HasGet, HasValue);
+  return HasStarAndArrow && HasGet;
+}
+
+AST_MATCHER(clang::CXXRecordDecl, smartPointerClassWithValue) {
+  bool HasGet = false;
+  bool HasValue = false;
+  bool HasStarAndArrow =
+      clang::dataflow::hasSmartPointerClassShape(Node, HasGet, HasValue);
+  return HasStarAndArrow && HasValue;
+}
+
+AST_MATCHER(clang::CXXRecordDecl, smartPointerClassWithGetOrValue) {
+  bool HasGet = false;
+  bool HasValue = false;
+  bool HasStarAndArrow =
+      clang::dataflow::hasSmartPointerClassShape(Node, HasGet, HasValue);
+  return HasStarAndArrow && (HasGet || HasValue);
+}
+
+} // namespace
+
+namespace clang::dataflow {
+
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeOperatorStar() {
+  return cxxOperatorCallExpr(
+      hasOverloadedOperatorName("*"),
+      callee(cxxMethodDecl(parameterCountIs(0), returns(referenceType()),
+                           ofClass(smartPointerClassWithGetOrValue()))));
+}
+
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeOperatorArrow() {
+  return cxxOperatorCallExpr(
+      hasOverloadedOperatorName("->"),
+      callee(cxxMethodDecl(parameterCountIs(0), returns(pointerType()),
+                           ofClass(smartPointerClassWithGetOrValue()))));
+}
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeValueMethodCall() {
+  return cxxMemberCallExpr(callee(
+      cxxMethodDecl(parameterCountIs(0), returns(referenceType()),
+                    hasName("value"), ofClass(smartPointerClassWithValue()))));
+}
+
+ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeGetMethodCall() {
+  return cxxMemberCallExpr(callee(
+      cxxMethodDecl(parameterCountIs(0), returns(pointerType()), hasName("get"),
+                    ofClass(smartPointerClassWithGet()))));
+}
+
+} // namespace clang::dataflow
diff --git a/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt b/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
index 4e1819bfa166a8..6c01ae8fc2e541 100644
--- a/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
+++ b/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt
@@ -21,6 +21,7 @@ add_clang_unittest(ClangAnalysisFlowSensitiveTests
   SignAnalysisTest.cpp
   SimplifyConstraintsTest.cpp
   SingleVarConstantPropagationTest.cpp
+  SmartPointerAccessorCachingTest.cpp
   TestingSupport.cpp
   TestingSupportTest.cpp
   TransferBranchTest.cpp
diff --git a/clang/unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.cpp b/clang/unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.cpp
new file mode 100644
index 00000000000000..a69d606cdb85ea
--- /dev/null
+++ b/clang/unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.cpp
@@ -0,0 +1,194 @@
+//===- unittests/Analysis/FlowSensitive/SmartPointerAccessorCachingTest.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/SmartPointerAccessorCaching.h"
+
+#include "clang/ASTMatchers/ASTMatchFinder.h"
+#include "clang/Testing/TestAST.h"
+#include "llvm/ADT/StringRef.h"
+#include "gtest/gtest.h"
+
+namespace clang::dataflow {
+namespace {
+
+using clang::ast_matchers::match;
+
+template <typename MatcherT>
+bool matches(llvm::StringRef Decls, llvm::StringRef TestInput,
+             MatcherT Matcher) {
+  TestAST InputAST(Decls.str() + TestInput.str());
+  return !match(Matcher, InputAST.context()).empty();
+}
+
+TEST(SmartPointerAccessorCachingTest, MatchesClassWithStarArrowGet) {
+  llvm::StringRef Decls(R"cc(
+    namespace std {
+    template <class T>
+    struct unique_ptr {
+      T* operator->() const;
+      T& operator*() const;
+      T* get() const;
+    };
+    }  // namespace std
+
+    template <class T>
+    using UniquePtrAlias = std::unique_ptr<T>;
+
+    struct S { int i; };
+  )cc");
+
+  EXPECT_TRUE(matches(Decls,
+                      "int target(std::unique_ptr<S> P) { return (*P).i; }",
+                      isSmartPointerLikeOperatorStar()));
+  EXPECT_TRUE(matches(Decls,
+                      "int target(std::unique_ptr<S> P) { return P->i; }",
+                      isSmartPointerLikeOperatorArrow()));
+  EXPECT_TRUE(matches(Decls,
+                      "int target(std::unique_ptr<S> P) { return P.get()->i; }",
+                      isSmartPointerLikeGetMethodCall()));
+
+  EXPECT_TRUE(matches(Decls, "int target(UniquePtrAlias<S> P) { return P->i; }",
+                      isSmartPointerLikeOperatorArrow()));
+}
+
+TEST(SmartPointerAccessorCachingTest, NoMatchIfUnexpectedReturnTypes) {
+  llvm::StringRef Decls(R"cc(
+    namespace std {
+    // unique_ptr isn't really like this, but we aren't matching by name
+    template <class T, class U>
+    struct unique_ptr {
+      U* operator->() const;
+      T& operator*() const;
+      T* get() const;
+    };
+    }  // namespace std
+
+    struct S { int i; };
+    struct T { int j; };
+  )cc");
+
+  EXPECT_FALSE(matches(Decls,
+                       "int target(std::unique_ptr<S, T> P) { return (*P).i; }",
+                       isSmartPointerLikeOperatorStar()));
+  EXPECT_FALSE(matches(Decls,
+                       "int target(std::unique_ptr<S, T> P) { return P->j; }",
+                       isSmartPointerLikeOperatorArrow()));
+  // The class matching arguably accidentally matches, just because the
+  // instantiation is with S, S. Hopefully doesn't happen too much in real code
+  // with such operator* and operator-> overloads.
+  EXPECT_TRUE(matches(Decls,
+                      "int target(std::unique_ptr<S, S> P) { return P->i; }",
+                      isSmartPointerLikeOperatorArrow()));
+}
+
+TEST(SmartPointerAccessorCachingTest, NoMatchIfBinaryStar) {
+  llvm::StringRef Decls(R"cc(
+    namespace std {
+    template <class T>
+    struct unique_ptr {
+      T* operator->() const;
+      T& operator*(int x) const;
+      T* get() const;
+    };
+    }  // namespace std
+
+    struct S { int i; };
+  )cc");
+
+  EXPECT_FALSE(
+      matches(Decls, "int target(std::unique_ptr<S> P) { return (P * 10).i; }",
+              isSmartPointerLikeOperatorStar()));
+}
+
+TEST(SmartPointerAccessorCachingTest, NoMatchIfNoConstOverloads) {
+  llvm::StringRef Decls(R"cc(
+    namespace std {
+    template <class T>
+    struct unique_ptr {
+      T* operator->();
+      T& operator*();
+      T* get();
+    };
+    }  // namespace std
+
+    struct S { int i; };
+  )cc");
+
+  EXPECT_FALSE(matches(Decls,
+                       "int target(std::unique_ptr<S> P) { return (*P).i; }",
+                       isSmartPointerLikeOperatorStar()));
+  EXPECT_FALSE(matches(Decls,
+                       "int target(std::unique_ptr<S> P) { return P->i; }",
+                       isSmartPointerLikeOperatorArrow()));
+  EXPECT_FALSE(
+      matches(Decls, "int target(std::unique_ptr<S> P) { return P.get()->i; }",
+              isSmartPointerLikeGetMethodCall()));
+}
+
+TEST(SmartPointerAccessorCachingTest, NoMatchIfNoStarMethod) {
+  llvm::StringRef Decls(R"cc(
+    namespace std {
+    template <class T>
+    struct unique_ptr {
+      T* operator->();
+      T* get();
+    };
+    }  // namespace std
+
+    struct S { int i; };
+  )cc");
+
+  EXPECT_FALSE(matches(Decls,
+                       "int target(std::unique_ptr<S> P) { return P->i; }",
+                       isSmartPointerLikeOperatorArrow()));
+  EXPECT_FALSE(matches(Decls,
+                       "int target(std::unique_ptr<S> P) { return P->i; }",
+                       isSmartPointerLikeGetMethodCall()));
+}
+
+TEST(SmartPointerAccessorCachingTest, MatchesWithValueAndNonConstOverloads) {
+  llvm::StringRef Decls(R"cc(
+    namespace std {
+    template <class T>
+    struct optional {
+      const T* operator->() const;
+      T* operator->();
+      const T& operator*() const;
+      T& operator*();
+      const T& value() const;
+      T& value();
+    };
+    }  // namespace std
+
+    struct S { int i; };
+  )cc");
+
+  EXPECT_TRUE(matches(
+      Decls, "int target(std::optional<S> &NonConst) { return (*NonConst).i; }",
+      isSmartPointerLikeOperatorStar()));
+  EXPECT_TRUE(matches(
+      Decls, "int target(const std::optional<S> &Const) { return (*Const).i; }",
+      isSmartPointerLikeOperatorStar()));
+  EXPECT_TRUE(matches(
+      Decls, "int target(std::optional<S> &NonConst) { return NonConst->i; }",
+      isSmartPointerLikeOperatorArrow()));
+  EXPECT_TRUE(matches(
+      Decls, "int target(const std::optional<S> &Const) { return Const->i; }",
+      isSmartPointerLikeOperatorArrow()));
+  EXPECT_TRUE(matches(
+      Decls,
+      "int target(std::optional<S> &NonConst) { return NonConst.value().i; }",
+      isSmartPointerLikeValueMethodCall()));
+  EXPECT_TRUE(matches(
+      Decls,
+      "int target(const std::optional<S> &Const) { return Const.value().i; }",
+      isSmartPointerLikeValueMethodCall()));
+}
+
+} // namespace
+} // namespace clang::dataflow
\ No newline at end of file


namespace clang::dataflow {

ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeOperatorStar() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure how these matchers would be used but I wonder if we end up doing a lot of duplicated work using this paradigm. Alternatively, we could just match the smart pointer class once in one matcher, and bound all points of interests to certain names. The user can later on use these names to check if there was a match for the operators we are interested in or not.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yes, it wasn't clear how these are used! I uploaded a draft of the user to https://github.com/llvm/llvm-project/pull/120249/files#diff-068c9724d855a9686b7ca6573bf3e966d856f2e4200d0eba45db0738e9c9e7afR1038 in case that helps (source examples in the test there).

I'm not too sure how to match the smart pointer class once and reuse (not as familiar with the matcher binding yet!) across different call ASTs, but I can imagine doing a pre-pass that computed smart pointer classes and then use that in the matcher.

So far, I hadn't seen the naive approach be slow in profiles, so I hadn't tried optimizing. If the matchers short circuit, then maybe it doesn't try to do the smart pointer class checks often? For example, if it has to match the 0 param check, and match the name first? With the names being disjoint, on an example call ptr.get().x.value(); it would match the hasName("get") and then do the smart pointer class match on the type of ptr but it wouldn't have passed the hasOverloadedOperatorName("->") check and wouldn't redundantly try to check the class for that case (or * or value)?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In case this hasn't showed up in profiles yet, I am OK with the current approach. Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks -- will keep the idea of matching once and reusing the result in mind if performance becomes an issue later!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure our choice to use matchers in our analyses in general is costly, but I don't think that this particular use of matchers will likely have much impact. That said, jvoung -- do any of our performance benchmarks exercise these cases? I would expect that code with heavy use of smart pointers could see some impact from repeatedly computing smartPointerClassWithGetOrValue. But, I agree that we should only optimize if we have evidence of it being a problem.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes in the profiles I am seeing more time in matchers generally and not much in the .*martPointer.* functions.

I tried running before/after on ~20 internal files (some with ~5000 lines of code + 100 direct #includes). The geomean diff is 0.01%, though for two files the time increased by 20% (~1s wall time). For most files there is a minor decrease (perhaps caching reduces the work later?) and for one file the checker time decreased by 15% (~0.4s wall time). In the profile of one of the 20% increases, it seems the solver time increased (maybe the formulas get more complicated in some way). The smartPointerClassWithGetOrValue function is only called about 300 times in that example.

I also tried removing the check filter for HasOptionalCallDescendant here

to simulate using this infrastructure in another checker that doesn't filter as much ahead of time and to stress the 20% case more. In that case, it is still about a 1s wall time diff (diff is still in the solver) but overall time is more like 22s vs 23s, so relatively less.

Copy link

github-actions bot commented Dec 17, 2024

✅ With the latest revision this PR passed the C/C++ code formatter.

jvoung added a commit to jvoung/llvm-project that referenced this pull request Dec 17, 2024
…essor

Part 2 (and final part) following llvm#120102
Allows users to do things like:

```
if (o->x.has_value()) {
  ((*o).x).value();
}
```
where the `->` and `*` are operator overload calls.

A user could instead extract the nested optional into a local variable
once instead of doing two accessor calls back to back, but currently
they are unsure why the code is flagged.
/// for `std::optional`, we assume the (Matcher, TransferFunction) case
/// with custom handling is ordered early so that these generic cases
/// do not trigger.
ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeOperatorStar();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe use the alias ast_matchers::StatementMatcher instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, thanks! done


namespace clang::dataflow {

ast_matchers::internal::Matcher<Stmt> isSmartPointerLikeOperatorStar() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure our choice to use matchers in our analyses in general is costly, but I don't think that this particular use of matchers will likely have much impact. That said, jvoung -- do any of our performance benchmarks exercise these cases? I would expect that code with heavy use of smart pointers could see some impact from repeatedly computing smartPointerClassWithGetOrValue. But, I agree that we should only optimize if we have evidence of it being a problem.

// there should at least be a const overload as well.
if (!MD->isConst() || MD->getNumParams() != 0)
continue;
if (MD->getOverloadedOperator() == OO_Star &&
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: consider a switch on MD->getOverloadedOperator(). As is, for OO_Star and OO_Arrow, when the second clause fails, you'll fall through to the "else" case, but really want to just continue, so the switch is a little more "correct" from that perspective.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point! done

@jvoung jvoung merged commit 54309b1 into llvm:main Dec 20, 2024
8 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 20, 2024

LLVM Buildbot has detected a new failure on builder clangd-ubuntu-tsan running on clangd-ubuntu-clang while building clang at step 2 "checkout".

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

Here is the relevant piece of the build log for the reference
Step 2 (checkout) failure: update (failure)
git version 2.17.1
fatal: unable to access 'https://github.com/llvm/llvm-project.git/': Could not resolve host: github.com
fatal: unable to access 'https://github.com/llvm/llvm-project.git/': Could not resolve host: github.com

@DavidSpickett
Copy link
Collaborator

FYI:

/home/david.spickett/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/david.spickett/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break;
1 warning generated.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 20, 2024

LLVM Buildbot has detected a new failure on builder sanitizer-x86_64-linux-android running on sanitizer-buildbot-android while building clang at step 2 "annotate".

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

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[4244/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/BlockInCriticalSectionChecker.cpp.o
[4245/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/BuiltinFunctionChecker.cpp.o
[4246/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CStringChecker.cpp.o
[4247/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CallAndMessageChecker.cpp.o
[4248/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CStringSyntaxChecker.cpp.o
[4249/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckPlacementNew.cpp.o
[4250/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CastToStructChecker.cpp.o
[4251/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckObjCDealloc.cpp.o
[4252/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/ChrootChecker.cpp.o
[4253/5338] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/tools/clang/lib/Analysis/FlowSensitive -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/tools/clang/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4254/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CastSizeChecker.cpp.o
[4255/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckerDocumentation.cpp.o
[4256/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CastValueChecker.cpp.o
[4257/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckSecuritySyntaxOnly.cpp.o
[4258/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckObjCInstMethSignature.cpp.o
[4259/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CloneChecker.cpp.o
[4260/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/ContainerModeling.cpp.o
[4261/5338] Building RISCVGenSubtargetInfo.inc...
[4262/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CXXSelfAssignmentChecker.cpp.o
[4263/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CXXDeleteChecker.cpp.o
[4264/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/ConversionChecker.cpp.o
[4265/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/DeadStoresChecker.cpp.o
[4266/5338] Building InstCombineTables.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild

@@@STEP_FAILURE@@@
Step 8 (bootstrap clang) failure: bootstrap clang (failure)
...
[4244/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/BlockInCriticalSectionChecker.cpp.o
[4245/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/BuiltinFunctionChecker.cpp.o
[4246/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CStringChecker.cpp.o
[4247/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CallAndMessageChecker.cpp.o
[4248/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CStringSyntaxChecker.cpp.o
[4249/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckPlacementNew.cpp.o
[4250/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CastToStructChecker.cpp.o
[4251/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckObjCDealloc.cpp.o
[4252/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/ChrootChecker.cpp.o
[4253/5338] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/tools/clang/lib/Analysis/FlowSensitive -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/tools/clang/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4254/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CastSizeChecker.cpp.o
[4255/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckerDocumentation.cpp.o
[4256/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CastValueChecker.cpp.o
[4257/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckSecuritySyntaxOnly.cpp.o
[4258/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CheckObjCInstMethSignature.cpp.o
[4259/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CloneChecker.cpp.o
[4260/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/ContainerModeling.cpp.o
[4261/5338] Building RISCVGenSubtargetInfo.inc...
[4262/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CXXSelfAssignmentChecker.cpp.o
[4263/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/CXXDeleteChecker.cpp.o
[4264/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/ConversionChecker.cpp.o
[4265/5338] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/DeadStoresChecker.cpp.o
[4266/5338] Building InstCombineTables.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
program finished with exit code 2
elapsedTime=170.665804

@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 20, 2024

LLVM Buildbot has detected a new failure on builder sanitizer-aarch64-linux running on sanitizer-buildbot7 while building clang at step 2 "annotate".

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

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[4727/5363] Linking CXX executable bin/clang-import-test
[4728/5363] Linking CXX static library lib/libclangHandleLLVM.a
[4729/5363] Linking CXX static library lib/libLLVMX86AsmParser.a
[4730/5363] Linking CXX static library lib/libclangInterpreter.a
[4731/5363] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4732/5363] Linking CXX static library lib/libLLVMX86CodeGen.a
[4733/5363] Linking CXX static library lib/libLLVMExegesisX86.a
[4734/5363] Building AMDGPUGenInstrInfo.inc...
[4735/5363] Linking CXX executable bin/lli
[4736/5363] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4737/5363] Building AMDGPUGenGlobalISel.inc...
[4738/5363] Building AMDGPUGenAsmWriter.inc...
[4739/5363] Building RISCVGenSubtargetInfo.inc...
[4740/5363] Building AMDGPUGenDAGISel.inc...
[4741/5363] Building AMDGPUGenRegisterBank.inc...
[4742/5363] Building AMDGPUGenAsmMatcher.inc...
[4743/5363] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild

@@@STEP_FAILURE@@@
@@@BUILD_STEP test compiler-rt symbolizer@@@
ninja: Entering directory `build_default'
[1/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVAsmPrinter.cpp.o
[2/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVCallingConv.cpp.o
[3/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVCodeGenPrepare.cpp.o
[4/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVConstantPoolValue.cpp.o
[5/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVDeadRegisterDefinitions.cpp.o
[6/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVMakeCompressible.cpp.o
[7/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVExpandAtomicPseudoInsts.cpp.o
[8/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVExpandPseudoInsts.cpp.o
[9/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVFrameLowering.cpp.o
[10/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVGatherScatterLowering.cpp.o
[11/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVIndirectBranchTracking.cpp.o
[12/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVInsertVSETVLI.cpp.o
[13/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVInsertReadWriteCSR.cpp.o
[14/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVInsertWriteVXRM.cpp.o
[15/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVInstrInfo.cpp.o
Step 8 (build compiler-rt symbolizer) failure: build compiler-rt symbolizer (failure)
...
[4727/5363] Linking CXX executable bin/clang-import-test
[4728/5363] Linking CXX static library lib/libclangHandleLLVM.a
[4729/5363] Linking CXX static library lib/libLLVMX86AsmParser.a
[4730/5363] Linking CXX static library lib/libclangInterpreter.a
[4731/5363] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4732/5363] Linking CXX static library lib/libLLVMX86CodeGen.a
[4733/5363] Linking CXX static library lib/libLLVMExegesisX86.a
[4734/5363] Building AMDGPUGenInstrInfo.inc...
[4735/5363] Linking CXX executable bin/lli
[4736/5363] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4737/5363] Building AMDGPUGenGlobalISel.inc...
[4738/5363] Building AMDGPUGenAsmWriter.inc...
[4739/5363] Building RISCVGenSubtargetInfo.inc...
[4740/5363] Building AMDGPUGenDAGISel.inc...
[4741/5363] Building AMDGPUGenRegisterBank.inc...
[4742/5363] Building AMDGPUGenAsmMatcher.inc...
[4743/5363] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 9 (test compiler-rt symbolizer) failure: test compiler-rt symbolizer (failure)
...
[1942/1946] Generating Msan-aarch64-with-call-Test
[1943/1946] Generating FuzzerTestObjects.FuzzerUnittest.cpp.aarch64.o
[1944/1946] Generating FuzzerTestObjects.gtest-all.cc.aarch64.o
[1945/1946] Generating Fuzzer-aarch64-Test
[1945/1946] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/discovery.py:276: warning: input '/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/interception/Unit' contained no tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/discovery.py:276: warning: input '/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/sanitizer_common/Unit' contained no tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:72: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 6168 tests, 72 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 
FAIL: TypeSanitizer-aarch64 :: anon-same-struct.c (5003 of 6168)
******************** TEST 'TypeSanitizer-aarch64 :: anon-same-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 
FAIL: TypeSanitizer-aarch64 :: anon-struct.c (5004 of 6168)
******************** TEST 'TypeSanitizer-aarch64 :: anon-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 
FAIL: TypeSanitizer-aarch64 :: constexpr-subobject.cpp (5007 of 6168)
******************** TEST 'TypeSanitizer-aarch64 :: constexpr-subobject.cpp' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
Step 10 (build compiler-rt debug) failure: build compiler-rt debug (failure)
...
[4727/5363] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFTargetStreamer.cpp.o
[4728/5363] Linking CXX static library lib/libLLVMX86Info.a
[4729/5363] Building CXX object tools/llvm-exegesis/lib/X86/CMakeFiles/LLVMExegesisX86.dir/Target.cpp.o
[4730/5363] Linking CXX static library lib/libLLVMX86Disassembler.a
[4731/5363] Linking CXX static library lib/libLLVMX86Desc.a
[4732/5363] Linking CXX static library lib/libLLVMX86AsmParser.a
[4733/5363] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4734/5363] Linking CXX static library lib/libLLVMX86CodeGen.a
[4735/5363] Linking CXX static library lib/libLLVMExegesisX86.a
[4736/5363] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4737/5363] Building AMDGPUGenAsmMatcher.inc...
[4738/5363] Building AMDGPUGenRegisterBank.inc...
[4739/5363] Building RISCVGenSubtargetInfo.inc...
[4740/5363] Building AMDGPUGenDAGISel.inc...
[4741/5363] Building AMDGPUGenGlobalISel.inc...
[4742/5363] Building AMDGPUGenInstrInfo.inc...
[4743/5363] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 11 (test compiler-rt debug) failure: test compiler-rt debug (failure)
...
[1940/1944] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.aarch64-with-call.o
[1941/1944] Generating Msan-aarch64-with-call-Test
[1942/1944] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.aarch64.o
[1943/1944] Generating Msan-aarch64-Test
[1943/1944] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/discovery.py:276: warning: input '/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/interception/Unit' contained no tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/discovery.py:276: warning: input '/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/sanitizer_common/Unit' contained no tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:72: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 3142 of 6169 tests, 72 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70
FAIL: TypeSanitizer-aarch64 :: anon-same-struct.c (2381 of 3142)
******************** TEST 'TypeSanitizer-aarch64 :: anon-same-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70
FAIL: TypeSanitizer-aarch64 :: anon-struct.c (2382 of 3142)
******************** TEST 'TypeSanitizer-aarch64 :: anon-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70
FAIL: TypeSanitizer-aarch64 :: constexpr-subobject.cpp (2383 of 3142)
******************** TEST 'TypeSanitizer-aarch64 :: constexpr-subobject.cpp' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
Step 12 (build compiler-rt tsan_debug) failure: build compiler-rt tsan_debug (failure)
...
[4773/5344] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMCObjectFileInfo.cpp.o
[4774/5344] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVELFStreamer.cpp.o
[4775/5344] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMatInt.cpp.o
[4776/5344] Building CXX object lib/Target/RISCV/MCA/CMakeFiles/LLVMRISCVTargetMCA.dir/RISCVCustomBehaviour.cpp.o
[4777/5344] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVTargetStreamer.cpp.o
[4778/5344] Linking CXX static library lib/libLLVMRISCVInfo.a
[4779/5344] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVISelDAGToDAG.cpp.o
[4780/5344] Building CXX object tools/llvm-exegesis/lib/RISCV/CMakeFiles/LLVMExegesisRISCV.dir/Target.cpp.o
[4781/5344] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMCTargetDesc.cpp.o
[4782/5344] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4783/5344] Linking CXX static library lib/libLLVMRISCVDesc.a
[4784/5344] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVInstructionSelector.cpp.o
[4785/5344] Building AMDGPUGenRegisterBank.inc...
[4786/5344] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 13 (build compiler-rt default) failure: build compiler-rt default (failure)
...
[4727/5363] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4728/5363] Linking CXX static library lib/libLLVMX86AsmParser.a
[4729/5363] Linking CXX static library lib/libclangInterpreter.a
[4730/5363] Linking CXX static library lib/libclangHandleLLVM.a
[4731/5363] Linking CXX static library lib/libLLVMExegesisAArch64.a
[4732/5363] Linking CXX static library lib/libLLVMX86CodeGen.a
[4733/5363] Linking CXX static library lib/libLLVMExegesisX86.a
[4734/5363] Linking CXX executable bin/lli
[4735/5363] Building AMDGPUGenAsmMatcher.inc...
[4736/5363] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4737/5363] Building RISCVGenSubtargetInfo.inc...
[4738/5363] Building AMDGPUGenRegisterBank.inc...
[4739/5363] Building AMDGPUGenAsmWriter.inc...
[4740/5363] Building AMDGPUGenGlobalISel.inc...
[4741/5363] Building AMDGPUGenDAGISel.inc...
[4742/5363] Building AMDGPUGenInstrInfo.inc...
[4743/5363] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 14 (test compiler-rt default) failure: test compiler-rt default (failure)
...
[1940/1944] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.aarch64-with-call.o
[1941/1944] Generating Msan-aarch64-with-call-Test
[1942/1944] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.aarch64.o
[1943/1944] Generating Msan-aarch64-Test
[1943/1944] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/discovery.py:276: warning: input '/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/interception/Unit' contained no tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/discovery.py:276: warning: input '/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/sanitizer_common/Unit' contained no tests
llvm-lit: /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:72: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 6168 tests, 72 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 
FAIL: TypeSanitizer-aarch64 :: anon-same-struct.c (4995 of 6168)
******************** TEST 'TypeSanitizer-aarch64 :: anon-same-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-same-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 
FAIL: TypeSanitizer-aarch64 :: constexpr-subobject.cpp (4997 of 6168)
******************** TEST 'TypeSanitizer-aarch64 :: constexpr-subobject.cpp' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/constexpr-subobject.cpp.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 
FAIL: TypeSanitizer-aarch64 :: anon-struct.c (4998 of 6168)
******************** TEST 'TypeSanitizer-aarch64 :: anon-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp &&  /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp >/home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-aarch64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 /home/b/sanitizer-aarch64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-aarch64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/AARCH64Config/Output/anon-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-aarch64-linux/build/build_default/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory

@jvoung
Copy link
Contributor Author

jvoung commented Dec 20, 2024

-Wimplicit-fallthrough

Ack sorry about that.
#120739
otherwise happy to rollback as well.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 20, 2024

LLVM Buildbot has detected a new failure on builder ppc64le-lld-multistage-test running on ppc64le-lld-multistage-test while building clang at step 12 "build-stage2-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 12 (build-stage2-unified-tree) failure: build (failure)
...
248.549 [1315/1154/3906] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySelectionDAGInfo.cpp.o
248.589 [1314/1154/3907] Building CXX object tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/XRayLists.cpp.o
248.621 [1313/1154/3908] Building CXX object lib/Target/AVR/CMakeFiles/LLVMAVRCodeGen.dir/AVRInstrInfo.cpp.o
248.649 [1312/1154/3909] Building CXX object lib/Target/Lanai/AsmParser/CMakeFiles/LLVMLanaiAsmParser.dir/LanaiAsmParser.cpp.o
248.691 [1311/1154/3910] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/obj.clangStaticAnalyzerCheckers.dir/Iterator.cpp.o
248.739 [1310/1154/3911] Building CXX object lib/Target/AVR/CMakeFiles/LLVMAVRCodeGen.dir/AVRRegisterInfo.cpp.o
248.769 [1309/1154/3912] Building CXX object lib/Target/AVR/CMakeFiles/LLVMAVRCodeGen.dir/AVRTargetMachine.cpp.o
248.789 [1308/1154/3913] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetMachine.cpp.o
248.811 [1307/1154/3914] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/MacroPPCallbacks.cpp.o
248.831 [1306/1154/3915] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
ccache /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/install/stage1/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage2/tools/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage2/tools/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage2/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
248.940 [1306/1153/3916] Building CXX object tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/FileManager.cpp.o
248.943 [1306/1152/3917] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVVMIntrRange.cpp.o
248.961 [1306/1151/3918] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcFrameLowering.cpp.o
248.962 [1306/1150/3919] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetObjectFile.cpp.o
248.991 [1306/1149/3920] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o
249.041 [1306/1148/3921] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMIChecking.cpp.o
249.161 [1306/1147/3922] Building CXX object lib/Target/LoongArch/CMakeFiles/LLVMLoongArchCodeGen.dir/LoongArchAsmPrinter.cpp.o
249.200 [1306/1146/3923] Building CXX object tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/ProfileList.cpp.o
249.280 [1306/1145/3924] Building CXX object tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/CSKY.cpp.o
249.421 [1306/1144/3925] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelDAGToDAG.cpp.o
249.440 [1306/1143/3926] Building CXX object lib/Target/LoongArch/CMakeFiles/LLVMLoongArchCodeGen.dir/LoongArchOptWInstrs.cpp.o
249.501 [1306/1142/3927] Building CXX object tools/clang/lib/Analysis/CMakeFiles/obj.clangAnalysis.dir/ReachableCode.cpp.o
249.502 [1306/1141/3928] Building CXX object lib/Target/Hexagon/Disassembler/CMakeFiles/LLVMHexagonDisassembler.dir/HexagonDisassembler.cpp.o
249.570 [1306/1140/3929] Building CXX object tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/XCore.cpp.o
249.601 [1306/1139/3930] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySetP2AlignOperands.cpp.o
249.671 [1306/1138/3931] Building CXX object tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/M68k.cpp.o
249.690 [1306/1137/3932] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXImageOptimizer.cpp.o
249.740 [1306/1136/3933] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcInstrInfo.cpp.o
249.761 [1306/1135/3934] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonVectorPrint.cpp.o
249.791 [1306/1134/3935] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsRegisterInfo.cpp.o
249.810 [1306/1133/3936] Building CXX object lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/MachOLinkGraphBuilder.cpp.o
249.850 [1306/1132/3937] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430FrameLowering.cpp.o
249.853 [1306/1131/3938] Building CXX object tools/clang/lib/Analysis/CMakeFiles/obj.clangAnalysis.dir/PathDiagnostic.cpp.o
249.898 [1306/1130/3939] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsMCInstLower.cpp.o
249.901 [1306/1129/3940] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyInstrInfo.cpp.o
249.902 [1306/1128/3941] Building CXX object tools/clang/tools/amdgpu-arch/CMakeFiles/amdgpu-arch.dir/AMDGPUArchByHIP.cpp.o
249.931 [1306/1127/3942] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFSelectionDAGInfo.cpp.o
250.001 [1306/1126/3943] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreRegisterInfo.cpp.o
250.012 [1306/1125/3944] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsOptimizePICCall.cpp.o

DavidSpickett pushed a commit that referenced this pull request Dec 20, 2024
@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 20, 2024

LLVM Buildbot has detected a new failure on builder sanitizer-x86_64-linux running on sanitizer-buildbot2 while building clang at step 2 "annotate".

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

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[4729/5367] Linking CXX static library lib/libLLVMExegesisMips.a
[4730/5367] Linking CXX static library lib/libclangFrontendTool.a
[4731/5367] Linking CXX static library lib/libclangInterpreter.a
[4732/5367] Linking CXX executable bin/lli-child-target
[4733/5367] Linking CXX executable bin/llvm-link
[4734/5367] Linking CXX executable bin/llvm-extract
[4735/5367] Building RISCVGenGlobalISel.inc...
[4736/5367] Linking CXX executable bin/lli
[4737/5367] Linking CXX executable bin/clang-import-test
[4738/5367] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-x86_64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/include -I/home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4739/5367] Building RISCVGenDAGISel.inc...
[4740/5367] Building AMDGPUGenAsmWriter.inc...
[4741/5367] Building AMDGPUGenAsmMatcher.inc...
[4742/5367] Building AMDGPUGenGlobalISel.inc...
[4743/5367] Building AMDGPUGenInstrInfo.inc...
[4744/5367] Building AMDGPUGenDAGISel.inc...
[4745/5367] Building RISCVGenSubtargetInfo.inc...
[4746/5367] Building AMDGPUGenRegisterBank.inc...
[4747/5367] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild

@@@STEP_FAILURE@@@
@@@BUILD_STEP test compiler-rt symbolizer@@@
ninja: Entering directory `build_default'
[1/392] Building CXX object lib/Target/RISCV/TargetInfo/CMakeFiles/LLVMRISCVInfo.dir/RISCVTargetInfo.cpp.o
[2/392] Linking CXX static library lib/libLLVMRISCVInfo.a
[3/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMCExpr.cpp.o
[4/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMatInt.cpp.o
[5/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVBaseInfo.cpp.o
[6/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMCCodeEmitter.cpp.o
[7/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVGatherScatterLowering.cpp.o
[8/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVELFObjectWriter.cpp.o
[9/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMCAsmInfo.cpp.o
[10/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMCObjectFileInfo.cpp.o
[11/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVDeadRegisterDefinitions.cpp.o
[12/392] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVMCTargetDesc.cpp.o
[13/392] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVMoveMerger.cpp.o
Step 8 (build compiler-rt symbolizer) failure: build compiler-rt symbolizer (failure)
...
[4729/5367] Linking CXX static library lib/libLLVMExegesisMips.a
[4730/5367] Linking CXX static library lib/libclangFrontendTool.a
[4731/5367] Linking CXX static library lib/libclangInterpreter.a
[4732/5367] Linking CXX executable bin/lli-child-target
[4733/5367] Linking CXX executable bin/llvm-link
[4734/5367] Linking CXX executable bin/llvm-extract
[4735/5367] Building RISCVGenGlobalISel.inc...
[4736/5367] Linking CXX executable bin/lli
[4737/5367] Linking CXX executable bin/clang-import-test
[4738/5367] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-x86_64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/include -I/home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4739/5367] Building RISCVGenDAGISel.inc...
[4740/5367] Building AMDGPUGenAsmWriter.inc...
[4741/5367] Building AMDGPUGenAsmMatcher.inc...
[4742/5367] Building AMDGPUGenGlobalISel.inc...
[4743/5367] Building AMDGPUGenInstrInfo.inc...
[4744/5367] Building AMDGPUGenDAGISel.inc...
[4745/5367] Building RISCVGenSubtargetInfo.inc...
[4746/5367] Building AMDGPUGenRegisterBank.inc...
[4747/5367] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 9 (test compiler-rt symbolizer) failure: test compiler-rt symbolizer (failure)
...
+ sort -u
+ cut -f 1,2 -d ' '
+ sort -u
+ grep -Ev '^#|^$' /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
+ grep -E '^\+[^+]'
+ diff -u expected.new undefined.new
+ cp -f symbolizer.o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/lib/sanitizer_common/symbolizer/RTSanitizerCommonSymbolizerInternal.x86_64.o
+ echo 'Success!'
Success!
[2222/2586] Generating Nsan-x86_64-Test
FAILED: compiler-rt/lib/nsan/tests/Nsan-x86_64-Test /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/lib/nsan/tests/Nsan-x86_64-Test 
cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/lib/nsan/tests && /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang++ NsanTestObjects.NSanUnitTest.cpp.x86_64.o NsanTestObjects.nsan_unit_test_main.cpp.x86_64.o NsanTestObjects.gtest-all.cc.x86_64.o -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/lib/nsan/tests/./Nsan-x86_64-Test -fuse-ld=lld -Wl,--color-diagnostics -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -resource-dir=/home/b/sanitizer-x86_64-linux/build/build_default/./lib/../lib/clang/20 -lstdc++ -fsanitize=numerical -m64
ld.lld: error: cannot open /home/b/sanitizer-x86_64-linux/build/build_default/./lib/../lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.nsan.a: No such file or directory
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
FAILED: runtimes/CMakeFiles/check-compiler-rt /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/CMakeFiles/check-compiler-rt 
cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins && /usr/bin/cmake --build /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/ --target check-compiler-rt --config Release
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 10 (build compiler-rt debug) failure: build compiler-rt debug (failure)
...
[4729/5367] Linking CXX static library lib/libLLVMX86Disassembler.a
[4730/5367] Linking CXX static library lib/libLLVMX86AsmParser.a
[4731/5367] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4732/5367] Linking CXX static library lib/libLLVMX86CodeGen.a
[4733/5367] Linking CXX static library lib/libLLVMExegesisX86.a
[4734/5367] Linking CXX static library lib/libclangInterpreter.a
[4735/5367] Linking CXX static library lib/libclangHandleLLVM.a
[4736/5367] Linking CXX executable bin/lli
[4737/5367] Building RISCVGenGlobalISel.inc...
[4738/5367] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-x86_64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/include -I/home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4739/5367] Building RISCVGenDAGISel.inc...
[4740/5367] Building AMDGPUGenDAGISel.inc...
[4741/5367] Building AMDGPUGenAsmMatcher.inc...
[4742/5367] Building AMDGPUGenGlobalISel.inc...
[4743/5367] Building AMDGPUGenAsmWriter.inc...
[4744/5367] Building RISCVGenSubtargetInfo.inc...
[4745/5367] Building AMDGPUGenInstrInfo.inc...
[4746/5367] Building AMDGPUGenRegisterBank.inc...
[4747/5367] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 11 (test compiler-rt debug) failure: test compiler-rt debug (failure)
...
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:248: warning: COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=ON, but this test suite does not support testing the just-built runtime libraries when the test compiler is configured to use different runtime libraries. Either modify this test suite to support this test configuration, or set COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=OFF to test the runtime libraries included in the compiler instead.
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:259: note: Testing using libraries in "/home/b/sanitizer-x86_64-linux/build/build_default/./lib/../lib/clang/20/lib/i386-unknown-linux-gnu"
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:237: warning: Compiler lib dir != compiler-rt lib dir
Compiler libdir:     "/home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/i386-unknown-linux-gnu"
compiler-rt libdir:  "/home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu"
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:248: warning: COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=ON, but this test suite does not support testing the just-built runtime libraries when the test compiler is configured to use different runtime libraries. Either modify this test suite to support this test configuration, or set COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=OFF to test the runtime libraries included in the compiler instead.
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:259: note: Testing using libraries in "/home/b/sanitizer-x86_64-linux/build/build_default/./lib/../lib/clang/20/lib/x86_64-unknown-linux-gnu"
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:72: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 4745 of 10520 tests, 88 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70
FAIL: TypeSanitizer-x86_64 :: anon-same-struct.c (3451 of 4745)
******************** TEST 'TypeSanitizer-x86_64 :: anon-same-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  -m64  -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-same-struct.c.tmp &&  /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-same-struct.c.tmp >/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-same-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/anon-same-struct.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-same-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70
FAIL: TypeSanitizer-x86_64 :: anon-struct.c (3454 of 4745)
******************** TEST 'TypeSanitizer-x86_64 :: anon-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  -m64  -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp &&  /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp >/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70
FAIL: TypeSanitizer-x86_64 :: constexpr-subobject.cpp (3457 of 4745)
******************** TEST 'TypeSanitizer-x86_64 :: constexpr-subobject.cpp' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  -m64  -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp &&  /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp >/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp.out 2>&1
+ /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp
ld: error: cannot open /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
Step 12 (build compiler-rt tsan_debug) failure: build compiler-rt tsan_debug (failure)
...
[4711/5348] Linking CXX static library lib/libLLVMX86CodeGen.a
[4712/5348] Linking CXX static library lib/libLLVMExegesisX86.a
[4713/5348] Linking CXX static library lib/libclangHandleLLVM.a
[4714/5348] Linking CXX static library lib/libclangInterpreter.a
[4715/5348] Building AMDGPUGenDisassemblerTables.inc...
[4716/5348] Building AMDGPUGenSubtargetInfo.inc...
[4717/5348] Linking CXX executable bin/lli
[4718/5348] Building AMDGPUGenSearchableTables.inc...
[4719/5348] Building RISCVGenDAGISel.inc...
[4720/5348] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-x86_64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/include -I/home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4721/5348] Building AMDGPUGenAsmWriter.inc...
[4722/5348] Building RISCVGenSubtargetInfo.inc...
[4723/5348] Building AMDGPUGenGlobalISel.inc...
[4724/5348] Building AMDGPUGenDAGISel.inc...
[4725/5348] Building AMDGPUGenAsmMatcher.inc...
[4726/5348] Building AMDGPUGenInstrInfo.inc...
[4727/5348] Building AMDGPUGenRegisterInfo.inc...
[4728/5348] Building AMDGPUGenRegisterBank.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 13 (build compiler-rt default) failure: build compiler-rt default (failure)
...
[4729/5367] Linking CXX static library lib/libLLVMX86Desc.a
[4730/5367] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4731/5367] Linking CXX static library lib/libLLVMX86Disassembler.a
[4732/5367] Linking CXX static library lib/libLLVMX86AsmParser.a
[4733/5367] Linking CXX static library lib/libLLVMX86CodeGen.a
[4734/5367] Linking CXX static library lib/libLLVMExegesisX86.a
[4735/5367] Linking CXX static library lib/libclangInterpreter.a
[4736/5367] Linking CXX static library lib/libclangHandleLLVM.a
[4737/5367] Linking CXX executable bin/lli
[4738/5367] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/b/sanitizer-x86_64-linux/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/tools/clang/include -I/home/b/sanitizer-x86_64-linux/build/build_default/include -I/home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/b/sanitizer-x86_64-linux/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[4739/5367] Building RISCVGenDAGISel.inc...
[4740/5367] Building AMDGPUGenAsmWriter.inc...
[4741/5367] Building RISCVGenSubtargetInfo.inc...
[4742/5367] Building AMDGPUGenDAGISel.inc...
[4743/5367] Building AMDGPUGenAsmMatcher.inc...
[4744/5367] Building AMDGPUGenGlobalISel.inc...
[4745/5367] Building AMDGPUGenRegisterBank.inc...
[4746/5367] Building AMDGPUGenInstrInfo.inc...
[4747/5367] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 14 (test compiler-rt default) failure: test compiler-rt default (failure)
...
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:248: warning: COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=ON, but this test suite does not support testing the just-built runtime libraries when the test compiler is configured to use different runtime libraries. Either modify this test suite to support this test configuration, or set COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=OFF to test the runtime libraries included in the compiler instead.
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:259: note: Testing using libraries in "/home/b/sanitizer-x86_64-linux/build/build_default/./lib/../lib/clang/20/lib/i386-unknown-linux-gnu"
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:237: warning: Compiler lib dir != compiler-rt lib dir
Compiler libdir:     "/home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/i386-unknown-linux-gnu"
compiler-rt libdir:  "/home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu"
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:248: warning: COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=ON, but this test suite does not support testing the just-built runtime libraries when the test compiler is configured to use different runtime libraries. Either modify this test suite to support this test configuration, or set COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=OFF to test the runtime libraries included in the compiler instead.
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lit.common.cfg.py:259: note: Testing using libraries in "/home/b/sanitizer-x86_64-linux/build/build_default/./lib/../lib/clang/20/lib/x86_64-unknown-linux-gnu"
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:72: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 10537 tests, 88 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70..
FAIL: TypeSanitizer-x86_64 :: anon-struct.c (8242 of 10537)
******************** TEST 'TypeSanitizer-x86_64 :: anon-struct.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  -m64  -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp &&  /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp >/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp.out 2>&1
+ /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/anon-struct.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/anon-struct.c.tmp
ld: error: cannot open /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70..
FAIL: TypeSanitizer-x86_64 :: constexpr-subobject.cpp (8245 of 10537)
******************** TEST 'TypeSanitizer-x86_64 :: constexpr-subobject.cpp' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  -m64  -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp &&  /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp >/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp.out 2>&1
+ /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/constexpr-subobject.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/constexpr-subobject.cpp.tmp
ld: error: cannot open /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

--

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70..
FAIL: TypeSanitizer-x86_64 :: global.c (8250 of 10537)
******************** TEST 'TypeSanitizer-x86_64 :: global.c' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang  -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  -m64  -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/global.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/global.c.tmp &&  /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/global.c.tmp >/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/global.c.tmp.out 2>&1
+ /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -fsanitize=type -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -O0 /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/tysan/global.c -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/tysan/X86_64Config/Output/global.c.tmp
ld: error: cannot open /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory

@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 20, 2024

LLVM Buildbot has detected a new failure on builder sanitizer-ppc64le-linux running on ppc64le-sanitizer while building clang at step 2 "annotate".

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

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[3751/4119] Building CXX object tools/clang/tools/clang-refactor/CMakeFiles/clang-refactor.dir/ClangRefactor.cpp.o
[3752/4119] Building CXX object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o
[3753/4119] Building CXX object tools/clang/tools/clang-repl/CMakeFiles/clang-repl.dir/ClangRepl.cpp.o
[3754/4119] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o
[3755/4119] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXExtractAPI.cpp.o
[3756/4119] Building CXX object tools/clang/tools/clang-check/CMakeFiles/clang-check.dir/ClangCheck.cpp.o
[3757/4119] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
[3758/4119] Building CXX object tools/clang/tools/clang-scan-deps/CMakeFiles/clang-scan-deps.dir/ClangScanDeps.cpp.o
[3759/4119] Building CXX object tools/clang/tools/clang-installapi/CMakeFiles/clang-installapi.dir/ClangInstallAPI.cpp.o
[3760/4119] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[3761/4119] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
[3762/4119] Building CXX object tools/clang/lib/Driver/CMakeFiles/obj.clangDriver.dir/ToolChains/HIPUtility.cpp.o
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild

@@@STEP_FAILURE@@@
@@@BUILD_STEP test compiler-rt debug@@@
ninja: Entering directory `build_default'
[1/240] Linking CXX static library lib/libLLVMMCParser.a
[2/240] Linking CXX static library lib/libLLVMPowerPCAsmParser.a
[3/240] Linking CXX static library lib/libLLVMObject.a
[4/240] Linking CXX static library lib/libLLVMLibDriver.a
[5/240] Linking CXX static library lib/libLLVMObjCopy.a
[6/240] Linking CXX static library lib/libLLVMDebugInfoDWARF.a
[7/240] Linking CXX static library lib/libLLVMRuntimeDyld.a
[8/240] Linking CXX static library lib/libLLVMDlltoolDriver.a
[9/240] Linking CXX static library lib/libLLVMXRay.a
[10/240] Linking CXX static library lib/libLLVMObjectYAML.a
[11/240] Linking CXX static library lib/libLLVMDebugInfoPDB.a
[12/240] Linking CXX static library lib/libLLVMJITLink.a
[13/240] Linking CXX static library lib/libLLVMTextAPIBinaryReader.a
[14/240] Linking CXX static library lib/libLLVMSymbolize.a
[15/240] Linking CXX static library lib/libLLVMDebuginfod.a
[16/240] Linking CXX static library lib/libLLVMProfileData.a
[17/240] Linking CXX static library lib/libLLVMCoverage.a
[18/240] Linking CXX static library lib/libLLVMAnalysis.a
[19/240] Linking CXX static library lib/libLLVMIRPrinter.a
[20/240] Linking CXX static library lib/libLLVMBitWriter.a
Step 8 (build compiler-rt debug) failure: build compiler-rt debug (failure)
...
[3751/4119] Building CXX object tools/clang/tools/clang-refactor/CMakeFiles/clang-refactor.dir/ClangRefactor.cpp.o
[3752/4119] Building CXX object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o
[3753/4119] Building CXX object tools/clang/tools/clang-repl/CMakeFiles/clang-repl.dir/ClangRepl.cpp.o
[3754/4119] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o
[3755/4119] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXExtractAPI.cpp.o
[3756/4119] Building CXX object tools/clang/tools/clang-check/CMakeFiles/clang-check.dir/ClangCheck.cpp.o
[3757/4119] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
[3758/4119] Building CXX object tools/clang/tools/clang-scan-deps/CMakeFiles/clang-scan-deps.dir/ClangScanDeps.cpp.o
[3759/4119] Building CXX object tools/clang/tools/clang-installapi/CMakeFiles/clang-installapi.dir/ClangInstallAPI.cpp.o
[3760/4119] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[3761/4119] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
[3762/4119] Building CXX object tools/clang/lib/Driver/CMakeFiles/obj.clangDriver.dir/ToolChains/HIPUtility.cpp.o
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 10 (build compiler-rt tsan_debug) failure: build compiler-rt tsan_debug (failure)
...
[3733/4100] Linking CXX static library lib/libLLVMIRReader.a
[3734/4100] Linking CXX executable bin/llvm-bcanalyzer
[3735/4100] Linking CXX executable bin/llvm-dis
[3736/4100] Linking CXX executable bin/llvm-stress
[3737/4100] Linking CXX executable bin/llvm-diff
[3738/4100] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXExtractAPI.cpp.o
[3739/4100] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o
[3740/4100] Building CXX object tools/clang/tools/clang-scan-deps/CMakeFiles/clang-scan-deps.dir/ClangScanDeps.cpp.o
[3741/4100] Building CXX object tools/clang/tools/clang-installapi/CMakeFiles/clang-installapi.dir/ClangInstallAPI.cpp.o
[3742/4100] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[3743/4100] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
Step 11 (build compiler-rt default) failure: build compiler-rt default (failure)
...
[3752/4119] Building CXX object tools/clang/tools/clang-check/CMakeFiles/clang-check.dir/ClangCheck.cpp.o
[3753/4119] Linking CXX executable bin/llvm-bcanalyzer
[3754/4119] Linking CXX executable bin/llvm-stress
[3755/4119] Building CXX object tools/clang/tools/clang-scan-deps/CMakeFiles/clang-scan-deps.dir/ClangScanDeps.cpp.o
[3756/4119] Linking CXX executable bin/llvm-dis
[3757/4119] Linking CXX executable bin/llvm-diff
[3758/4119] Building CXX object tools/clang/tools/clang-repl/CMakeFiles/clang-repl.dir/ClangRepl.cpp.o
[3759/4119] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXExtractAPI.cpp.o
[3760/4119] Building CXX object tools/clang/tools/clang-installapi/CMakeFiles/clang-installapi.dir/ClangInstallAPI.cpp.o
[3761/4119] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm_build0/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/tools/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/build_default/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/buildbots/llvm-external-buildbots/workers/ppc64le-sanitizer/sanitizer-ppc64le/build/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
[3762/4119] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild

@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 20, 2024

LLVM Buildbot has detected a new failure on builder clang-ppc64le-rhel running on ppc64le-clang-rhel-test while building clang at step 5 "build-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
39.361 [2513/192/3639] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCCompound.cpp.o
39.364 [2512/192/3640] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCDuplexInfo.cpp.o
39.370 [2511/192/3641] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCELFStreamer.cpp.o
39.375 [2510/192/3642] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCExpr.cpp.o
39.378 [2509/192/3643] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCInstrInfo.cpp.o
39.383 [2508/192/3644] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCShuffler.cpp.o
39.390 [2507/192/3645] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCTargetDesc.cpp.o
39.397 [2506/192/3646] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonShuffler.cpp.o
39.401 [2505/192/3647] Building CXX object lib/Target/Hexagon/TargetInfo/CMakeFiles/LLVMHexagonInfo.dir/HexagonTargetInfo.cpp.o
39.412 [2504/192/3648] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
ccache /home/docker/llvm-external-buildbots/clang.17.0.6/bin/clang++ --gcc-toolchain=/gcc-toolchain/usr -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/tools/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/tools/clang/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/build/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-rhel-test/clang-ppc64le-rhel/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
39.415 [2504/191/3649] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitTracker.cpp.o
39.418 [2504/190/3650] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBranchRelaxation.cpp.o
39.422 [2504/189/3651] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonConstPropagation.cpp.o
39.426 [2504/188/3652] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCopyHoisting.cpp.o
39.430 [2504/187/3653] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCopyToCombine.cpp.o
39.435 [2504/186/3654] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonEarlyIfConv.cpp.o
39.439 [2504/185/3655] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFixupHwLoops.cpp.o
39.443 [2504/184/3656] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenExtract.cpp.o
39.448 [2504/183/3657] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenInsert.cpp.o
39.452 [2504/182/3658] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenMemAbsolute.cpp.o
39.457 [2504/181/3659] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenPredicate.cpp.o
39.460 [2504/180/3660] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonHardwareLoops.cpp.o
39.465 [2504/179/3661] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonHazardRecognizer.cpp.o
39.468 [2504/178/3662] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonInstrInfo.cpp.o
39.472 [2504/177/3663] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelDAGToDAG.cpp.o
39.476 [2504/176/3664] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelDAGToDAGHVX.cpp.o
39.481 [2504/175/3665] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelLowering.cpp.o
39.484 [2504/174/3666] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelLoweringHVX.cpp.o
39.488 [2504/173/3667] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonLoopAlign.cpp.o
39.492 [2504/172/3668] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonLoopIdiomRecognition.cpp.o
39.495 [2504/171/3669] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMachineScheduler.cpp.o
39.499 [2504/170/3670] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMask.cpp.o
39.503 [2504/169/3671] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMCInstLower.cpp.o
39.507 [2504/168/3672] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonNewValueJump.cpp.o
39.511 [2504/167/3673] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptAddrMode.cpp.o
39.514 [2504/166/3674] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptimizeSZextends.cpp.o
39.518 [2504/165/3675] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonPeephole.cpp.o
39.521 [2504/164/3676] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRDFOpt.cpp.o
39.525 [2504/163/3677] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRegisterInfo.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 25, 2024

LLVM Buildbot has detected a new failure on builder clang-ppc64-aix running on aix-ppc64 while building clang at step 3 "clean-build-dir".

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

Here is the relevant piece of the build log for the reference
Step 3 (clean-build-dir) failure: Delete failed. (failure) (timed out)
Step 5 (build-unified-tree) failure: build (failure)
...
4799.980 [1109/10/4111] Building CXX object tools/clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeFiles/CheckerOptionHandlingAnalyzerPlugin.dir/CheckerOptionHandling.cpp.o
4806.130 [1108/10/4112] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SimplifyConstraints.cpp.o
4807.202 [1107/10/4113] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/ASTOps.cpp.o
4808.591 [1106/10/4114] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/Logger.cpp.o
4808.932 [1105/10/4115] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/HTMLLogger.cpp.o
4809.148 [1104/10/4116] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/RecordOps.cpp.o
4813.064 [1103/10/4117] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/WatchedLiteralsSolver.cpp.o
4813.208 [1102/10/4118] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/Value.cpp.o
4813.435 [1101/10/4119] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/DataflowAnalysisContext.cpp.o
4814.830 [1100/10/4120] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o 
/usr/local/clang-17.0.2/bin/clang++ -DCLANG_EXPORTS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_LARGE_FILE_API -D_XOPEN_SOURCE=700 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/build/tools/clang/lib/Analysis/FlowSensitive -I/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/llvm-project/clang/lib/Analysis/FlowSensitive -I/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/llvm-project/clang/include -I/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/build/tools/clang/include -I/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/build/include -I/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/llvm-project/llvm/include -mcmodel=large -fPIC -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -MF tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o.d -o tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/SmartPointerAccessorCaching.cpp.o -c /home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp
/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
   75 |     default:
      |     ^
/home/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/llvm-project/clang/lib/Analysis/FlowSensitive/SmartPointerAccessorCaching.cpp:75:5: note: insert 'break;' to avoid fall-through
   75 |     default:
      |     ^
      |     break; 
1 error generated.
4815.495 [1100/9/4121] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/DebugSupport.cpp.o
4818.237 [1100/8/4122] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/DataflowEnvironment.cpp.o
4820.273 [1100/7/4123] Building CXX object tools/clang/lib/Edit/CMakeFiles/obj.clangEdit.dir/Commit.cpp.o
4821.196 [1100/6/4124] Building CXX object tools/clang/lib/Edit/CMakeFiles/obj.clangEdit.dir/EditedSource.cpp.o
4826.824 [1100/5/4125] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/Transfer.cpp.o
4832.142 [1100/4/4126] Building CXX object tools/clang/lib/Analysis/FlowSensitive/Models/CMakeFiles/obj.clangAnalysisFlowSensitiveModels.dir/ChromiumCheckModel.cpp.o
4836.046 [1100/3/4127] Building CXX object tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/TypeErasedDataflowAnalysis.cpp.o
4837.249 [1100/2/4128] Building CXX object tools/clang/lib/Analysis/CMakeFiles/obj.clangAnalysis.dir/UnsafeBufferUsage.cpp.o
4856.447 [1100/1/4129] Building CXX object tools/clang/lib/Analysis/FlowSensitive/Models/CMakeFiles/obj.clangAnalysisFlowSensitiveModels.dir/UncheckedOptionalAccessModel.cpp.o
ninja: build stopped: subcommand failed.

jvoung added a commit that referenced this pull request Jan 8, 2025
…essor (#120249)

Part 2 (and final part) following
#120102
Allows users to do things like:

```
if (o->x.has_value()) {
  ((*o).x).value();
}
```
where the `->` and `*` are operator overload calls.

A user could instead extract the nested optional into a local variable
once instead of doing two accessor calls back to back, but currently
they are unsure why the code is flagged.
github-actions bot pushed a commit to arm/arm-toolchain that referenced this pull request Jan 10, 2025
…Wimplicit-fallthrough (#120739)

Missed when changing code in
llvm/llvm-project#120102
github-actions bot pushed a commit to arm/arm-toolchain that referenced this pull request Jan 10, 2025
…ptional accessor (#120249)

Part 2 (and final part) following
llvm/llvm-project#120102
Allows users to do things like:

```
if (o->x.has_value()) {
  ((*o).x).value();
}
```
where the `->` and `*` are operator overload calls.

A user could instead extract the nested optional into a local variable
once instead of doing two accessor calls back to back, but currently
they are unsure why the code is flagged.
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.

7 participants