Skip to content

Conversation

@HendrikHuebner
Copy link
Contributor

This PR Upstreams the structure for the LibOpt pass

cc @bcardosolopes

@llvmbot llvmbot added clang Clang issues not falling into any other category ClangIR Anything related to the ClangIR project labels Dec 16, 2025
@llvmbot
Copy link
Member

llvmbot commented Dec 16, 2025

@llvm/pr-subscribers-clangir

Author: Hendrik Hübner (HendrikHuebner)

Changes

This PR Upstreams the structure for the LibOpt pass

cc @bcardosolopes


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

10 Files Affected:

  • (modified) clang/include/clang/CIR/CIRToCIRPasses.h (+2-1)
  • (modified) clang/include/clang/CIR/Dialect/Passes.h (+2)
  • (modified) clang/include/clang/CIR/Dialect/Passes.td (+19)
  • (modified) clang/include/clang/Frontend/FrontendOptions.h (+3)
  • (modified) clang/include/clang/Options/Options.td (+8-1)
  • (modified) clang/lib/CIR/Dialect/Transforms/CMakeLists.txt (+1)
  • (added) clang/lib/CIR/Dialect/Transforms/LibOpt.cpp (+108)
  • (modified) clang/lib/CIR/FrontendAction/CIRGenAction.cpp (+4-1)
  • (modified) clang/lib/CIR/Lowering/CIRPasses.cpp (+15-1)
  • (added) clang/test/CIR/Transforms/lib-opt.cpp (+3)
diff --git a/clang/include/clang/CIR/CIRToCIRPasses.h b/clang/include/clang/CIR/CIRToCIRPasses.h
index 4a23790ee8b76..ed82fe4477e82 100644
--- a/clang/include/clang/CIR/CIRToCIRPasses.h
+++ b/clang/include/clang/CIR/CIRToCIRPasses.h
@@ -33,7 +33,8 @@ mlir::LogicalResult runCIRToCIRPasses(mlir::ModuleOp theModule,
                                       mlir::MLIRContext &mlirCtx,
                                       clang::ASTContext &astCtx,
                                       bool enableVerifier,
-                                      bool enableCIRSimplify);
+                                      bool enableCIRSimplify,
+                                      llvm::StringRef libOptOptions);
 
 } // namespace cir
 
diff --git a/clang/include/clang/CIR/Dialect/Passes.h b/clang/include/clang/CIR/Dialect/Passes.h
index 32c3e27d07dfb..dbd6fb198b845 100644
--- a/clang/include/clang/CIR/Dialect/Passes.h
+++ b/clang/include/clang/CIR/Dialect/Passes.h
@@ -27,6 +27,8 @@ std::unique_ptr<Pass> createHoistAllocasPass();
 std::unique_ptr<Pass> createLoweringPreparePass();
 std::unique_ptr<Pass> createLoweringPreparePass(clang::ASTContext *astCtx);
 std::unique_ptr<Pass> createGotoSolverPass();
+std::unique_ptr<Pass> createLibOptPass();
+std::unique_ptr<Pass> createLibOptPass(clang::ASTContext *astCtx);
 
 void populateCIRPreLoweringPasses(mlir::OpPassManager &pm);
 
diff --git a/clang/include/clang/CIR/Dialect/Passes.td b/clang/include/clang/CIR/Dialect/Passes.td
index 0f5783945f8ae..043292377bbed 100644
--- a/clang/include/clang/CIR/Dialect/Passes.td
+++ b/clang/include/clang/CIR/Dialect/Passes.td
@@ -93,4 +93,23 @@ def LoweringPrepare : Pass<"cir-lowering-prepare"> {
   let dependentDialects = ["cir::CIRDialect"];
 }
 
+def LibOpt : Pass<"cir-lib-opt"> {
+  let summary = "Optimize C/C++ library calls";
+  let description = [{
+    By using higher level information from `cir-idiom-recognize`, this pass
+    apply transformations to CIR based on specific C/C++ library semantics.
+
+    Transformations done by this pass can be inspected by users by using
+    remarks. Currently supported are `all` and `transforms`.
+  }];
+  let constructor = "mlir::createLibOptPass()";
+  let dependentDialects = ["cir::CIRDialect"];
+
+  let options = [
+    ListOption<"remarksList", "remarks", "std::string",
+               "Diagnostic remarks to enable"
+               " Supported styles: {all|transforms}", "llvm::cl::ZeroOrMore">,
+  ];
+}
+
 #endif // CLANG_CIR_DIALECT_PASSES_TD
diff --git a/clang/include/clang/Frontend/FrontendOptions.h b/clang/include/clang/Frontend/FrontendOptions.h
index ba7da56cb9fce..6cee55f09c47d 100644
--- a/clang/include/clang/Frontend/FrontendOptions.h
+++ b/clang/include/clang/Frontend/FrontendOptions.h
@@ -422,6 +422,9 @@ class FrontendOptions {
   LLVM_PREFERRED_TYPE(bool)
   unsigned ClangIRDisableCIRVerifier : 1;
 
+  // Options to control ClangIR library optimization
+  std::string clangIRLibOptOptions;
+
   CodeCompleteOptions CodeCompleteOpts;
 
   /// Specifies the output format of the AST.
diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td
index 756d6deed7130..c4230a9c3bab4 100644
--- a/clang/include/clang/Options/Options.td
+++ b/clang/include/clang/Options/Options.td
@@ -3181,7 +3181,14 @@ def clangir_disable_verifier : Flag<["-"], "clangir-disable-verifier">,
   Visibility<[ClangOption, CC1Option]>,
   HelpText<"ClangIR: Disable MLIR module verifier">,
   MarshallingInfoFlag<FrontendOpts<"ClangIRDisableCIRVerifier">>;
-
+def fclangir_lib_opt_EQ : Joined<["-"], "fclangir-lib-opt=">,
+  Visibility<[ClangOption, CC1Option]>, Group<f_Group>,
+  HelpText<"Enable C/C++ library based optimizations (with options)">,
+  MarshallingInfoString<FrontendOpts<"clangIRLibOptOptions">>;
+def fclangir_lib_opt : Flag<["-"], "fclangir-lib-opt">,
+  Visibility<[ClangOption, CC1Option]>, Group<f_Group>,
+  Alias<fclangir_lib_opt_EQ>, AliasArgs<[""]>,
+  HelpText<"Enable C/C++ library based optimizations">;
 defm clangir : BoolFOption<"clangir",
   FrontendOpts<"UseClangIRPipeline">, DefaultFalse,
   PosFlag<SetTrue, [], [ClangOption, CC1Option], "Use the ClangIR pipeline to compile">,
diff --git a/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt b/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
index 3fc5b06b74e4d..b11695172d12e 100644
--- a/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
+++ b/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
@@ -6,6 +6,7 @@ add_clang_library(MLIRCIRTransforms
   LoweringPrepare.cpp
   LoweringPrepareItaniumCXXABI.cpp
   GotoSolver.cpp
+  LibOpt.cpp
 
   DEPENDS
   MLIRCIRPassIncGen
diff --git a/clang/lib/CIR/Dialect/Transforms/LibOpt.cpp b/clang/lib/CIR/Dialect/Transforms/LibOpt.cpp
new file mode 100644
index 0000000000000..6b75d961ce4b0
--- /dev/null
+++ b/clang/lib/CIR/Dialect/Transforms/LibOpt.cpp
@@ -0,0 +1,108 @@
+//===- LibOpt.cpp - Optimize CIR raised C/C++ library idioms --------------===//
+//
+// 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 pass optimizes C/C++ standard library idioms in Clang IR.
+//
+//===----------------------------------------------------------------------===//
+
+#include "PassDetail.h"
+#include "mlir/Dialect/Func/IR/FuncOps.h"
+#include "mlir/IR/BuiltinAttributes.h"
+#include "mlir/IR/Region.h"
+#include "clang/AST/ASTContext.h"
+#include "clang/AST/Mangle.h"
+#include "clang/Basic/Module.h"
+#include "clang/CIR/Dialect/Builder/CIRBaseBuilder.h"
+#include "clang/CIR/Dialect/IR/CIRDialect.h"
+#include "clang/CIR/Dialect/Passes.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringMap.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/Twine.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/Path.h"
+
+using cir::CIRBaseBuilderTy;
+using namespace mlir;
+using namespace cir;
+
+namespace mlir {
+#define GEN_PASS_DEF_LIBOPT
+#include "clang/CIR/Dialect/Passes.h.inc"
+} // namespace mlir
+
+namespace {
+
+struct LibOptPass : public impl::LibOptBase<LibOptPass> {
+  LibOptPass() = default;
+  void runOnOperation() override;
+
+  class PassOptions {
+    enum : unsigned {
+      None = 0,
+      RemarkTransforms = 1,
+      RemarkAll = 1 << 1,
+    };
+
+  public:
+    void parseOption(const llvm::StringRef remark) {
+      value |= StringSwitch<unsigned>(remark)
+                   .Case("transforms", RemarkTransforms)
+                   .Case("all", RemarkAll)
+                   .Default(None);
+    }
+
+    void parseOptions(LibOptPass &pass) {
+      if (isOptionsParsed)
+        return;
+
+      for (const llvm::StringRef &remark : pass.remarksList)
+        parseOption(remark);
+
+      isOptionsParsed = true;
+    }
+
+    bool emitRemarkAll() { return value & RemarkAll; }
+    bool emitRemarkTransforms() {
+      return emitRemarkAll() || value & RemarkTransforms;
+    }
+
+  private:
+    unsigned value = None;
+    bool isOptionsParsed = false;
+  };
+
+  PassOptions passOptions;
+
+  ///
+  /// AST related
+  /// -----------
+  clang::ASTContext *astCtx;
+  void setASTContext(clang::ASTContext *c) { astCtx = c; }
+
+  /// Tracks current module.
+  ModuleOp theModule;
+};
+} // namespace
+
+void LibOptPass::runOnOperation() {
+  passOptions.parseOptions(*this);
+  auto *op = getOperation();
+  if (isa<::mlir::ModuleOp>(op))
+    theModule = cast<::mlir::ModuleOp>(op);
+}
+
+std::unique_ptr<Pass> mlir::createLibOptPass() {
+  return std::make_unique<LibOptPass>();
+}
+
+std::unique_ptr<Pass> mlir::createLibOptPass(clang::ASTContext *astCtx) {
+  auto pass = std::make_unique<LibOptPass>();
+  pass->setASTContext(astCtx);
+  return std::move(pass);
+}
diff --git a/clang/lib/CIR/FrontendAction/CIRGenAction.cpp b/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
index 67bb5657d4001..de4e3b176edfe 100644
--- a/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+++ b/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
@@ -108,11 +108,14 @@ class CIRGenConsumer : public clang::ASTConsumer {
     mlir::ModuleOp MlirModule = Gen->getModule();
     mlir::MLIRContext &MlirCtx = Gen->getMLIRContext();
 
+
     if (!FEOptions.ClangIRDisablePasses) {
+      std::string libOptOptions = FEOptions.clangIRLibOptOptions;
+
       // Setup and run CIR pipeline.
       if (runCIRToCIRPasses(MlirModule, MlirCtx, C,
                             !FEOptions.ClangIRDisableCIRVerifier,
-                            CGO.OptimizationLevel > 0)
+                            CGO.OptimizationLevel > 0, libOptOptions)
               .failed()) {
         CI.getDiagnostics().Report(diag::err_cir_to_cir_transform_failed);
         return;
diff --git a/clang/lib/CIR/Lowering/CIRPasses.cpp b/clang/lib/CIR/Lowering/CIRPasses.cpp
index ccc838717e421..9b292fb4502b1 100644
--- a/clang/lib/CIR/Lowering/CIRPasses.cpp
+++ b/clang/lib/CIR/Lowering/CIRPasses.cpp
@@ -21,16 +21,30 @@ mlir::LogicalResult runCIRToCIRPasses(mlir::ModuleOp theModule,
                                       mlir::MLIRContext &mlirContext,
                                       clang::ASTContext &astContext,
                                       bool enableVerifier,
-                                      bool enableCIRSimplify) {
+                                      bool enableCIRSimplify,
+                                      llvm::StringRef libOptOptions) {
 
   llvm::TimeTraceScope scope("CIR To CIR Passes");
 
+  // TODO(CIR): Make this actually propagate errors correctly. This is stubbed
+  // in to get rebases going.
+
+  auto errorHandler = [](const llvm::Twine &) -> mlir::LogicalResult {
+    return mlir::LogicalResult::failure();
+  };
+
   mlir::PassManager pm(&mlirContext);
   pm.addPass(mlir::createCIRCanonicalizePass());
 
   if (enableCIRSimplify)
     pm.addPass(mlir::createCIRSimplifyPass());
 
+  auto libOpPass = mlir::createLibOptPass();
+  if (libOpPass->initializeOptions(libOptOptions, errorHandler).failed()) {
+    return mlir::failure();
+  }
+
+  pm.addPass(std::move(libOpPass));
   pm.addPass(mlir::createLoweringPreparePass(&astContext));
 
   pm.enableVerifier(enableVerifier);
diff --git a/clang/test/CIR/Transforms/lib-opt.cpp b/clang/test/CIR/Transforms/lib-opt.cpp
new file mode 100644
index 0000000000000..ea4c265a1a584
--- /dev/null
+++ b/clang/test/CIR/Transforms/lib-opt.cpp
@@ -0,0 +1,3 @@
+// RUN: %clang_cc1 -fclangir -emit-cir -mmlir --mlir-print-ir-after-all %s -o - 2>&1 | FileCheck %s -check-prefix=CIR
+
+// CIR: IR Dump After LibOpt (cir-lib-opt)

@llvmbot
Copy link
Member

llvmbot commented Dec 16, 2025

@llvm/pr-subscribers-clang

Author: Hendrik Hübner (HendrikHuebner)

Changes

This PR Upstreams the structure for the LibOpt pass

cc @bcardosolopes


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

10 Files Affected:

  • (modified) clang/include/clang/CIR/CIRToCIRPasses.h (+2-1)
  • (modified) clang/include/clang/CIR/Dialect/Passes.h (+2)
  • (modified) clang/include/clang/CIR/Dialect/Passes.td (+19)
  • (modified) clang/include/clang/Frontend/FrontendOptions.h (+3)
  • (modified) clang/include/clang/Options/Options.td (+8-1)
  • (modified) clang/lib/CIR/Dialect/Transforms/CMakeLists.txt (+1)
  • (added) clang/lib/CIR/Dialect/Transforms/LibOpt.cpp (+108)
  • (modified) clang/lib/CIR/FrontendAction/CIRGenAction.cpp (+4-1)
  • (modified) clang/lib/CIR/Lowering/CIRPasses.cpp (+15-1)
  • (added) clang/test/CIR/Transforms/lib-opt.cpp (+3)
diff --git a/clang/include/clang/CIR/CIRToCIRPasses.h b/clang/include/clang/CIR/CIRToCIRPasses.h
index 4a23790ee8b76..ed82fe4477e82 100644
--- a/clang/include/clang/CIR/CIRToCIRPasses.h
+++ b/clang/include/clang/CIR/CIRToCIRPasses.h
@@ -33,7 +33,8 @@ mlir::LogicalResult runCIRToCIRPasses(mlir::ModuleOp theModule,
                                       mlir::MLIRContext &mlirCtx,
                                       clang::ASTContext &astCtx,
                                       bool enableVerifier,
-                                      bool enableCIRSimplify);
+                                      bool enableCIRSimplify,
+                                      llvm::StringRef libOptOptions);
 
 } // namespace cir
 
diff --git a/clang/include/clang/CIR/Dialect/Passes.h b/clang/include/clang/CIR/Dialect/Passes.h
index 32c3e27d07dfb..dbd6fb198b845 100644
--- a/clang/include/clang/CIR/Dialect/Passes.h
+++ b/clang/include/clang/CIR/Dialect/Passes.h
@@ -27,6 +27,8 @@ std::unique_ptr<Pass> createHoistAllocasPass();
 std::unique_ptr<Pass> createLoweringPreparePass();
 std::unique_ptr<Pass> createLoweringPreparePass(clang::ASTContext *astCtx);
 std::unique_ptr<Pass> createGotoSolverPass();
+std::unique_ptr<Pass> createLibOptPass();
+std::unique_ptr<Pass> createLibOptPass(clang::ASTContext *astCtx);
 
 void populateCIRPreLoweringPasses(mlir::OpPassManager &pm);
 
diff --git a/clang/include/clang/CIR/Dialect/Passes.td b/clang/include/clang/CIR/Dialect/Passes.td
index 0f5783945f8ae..043292377bbed 100644
--- a/clang/include/clang/CIR/Dialect/Passes.td
+++ b/clang/include/clang/CIR/Dialect/Passes.td
@@ -93,4 +93,23 @@ def LoweringPrepare : Pass<"cir-lowering-prepare"> {
   let dependentDialects = ["cir::CIRDialect"];
 }
 
+def LibOpt : Pass<"cir-lib-opt"> {
+  let summary = "Optimize C/C++ library calls";
+  let description = [{
+    By using higher level information from `cir-idiom-recognize`, this pass
+    apply transformations to CIR based on specific C/C++ library semantics.
+
+    Transformations done by this pass can be inspected by users by using
+    remarks. Currently supported are `all` and `transforms`.
+  }];
+  let constructor = "mlir::createLibOptPass()";
+  let dependentDialects = ["cir::CIRDialect"];
+
+  let options = [
+    ListOption<"remarksList", "remarks", "std::string",
+               "Diagnostic remarks to enable"
+               " Supported styles: {all|transforms}", "llvm::cl::ZeroOrMore">,
+  ];
+}
+
 #endif // CLANG_CIR_DIALECT_PASSES_TD
diff --git a/clang/include/clang/Frontend/FrontendOptions.h b/clang/include/clang/Frontend/FrontendOptions.h
index ba7da56cb9fce..6cee55f09c47d 100644
--- a/clang/include/clang/Frontend/FrontendOptions.h
+++ b/clang/include/clang/Frontend/FrontendOptions.h
@@ -422,6 +422,9 @@ class FrontendOptions {
   LLVM_PREFERRED_TYPE(bool)
   unsigned ClangIRDisableCIRVerifier : 1;
 
+  // Options to control ClangIR library optimization
+  std::string clangIRLibOptOptions;
+
   CodeCompleteOptions CodeCompleteOpts;
 
   /// Specifies the output format of the AST.
diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td
index 756d6deed7130..c4230a9c3bab4 100644
--- a/clang/include/clang/Options/Options.td
+++ b/clang/include/clang/Options/Options.td
@@ -3181,7 +3181,14 @@ def clangir_disable_verifier : Flag<["-"], "clangir-disable-verifier">,
   Visibility<[ClangOption, CC1Option]>,
   HelpText<"ClangIR: Disable MLIR module verifier">,
   MarshallingInfoFlag<FrontendOpts<"ClangIRDisableCIRVerifier">>;
-
+def fclangir_lib_opt_EQ : Joined<["-"], "fclangir-lib-opt=">,
+  Visibility<[ClangOption, CC1Option]>, Group<f_Group>,
+  HelpText<"Enable C/C++ library based optimizations (with options)">,
+  MarshallingInfoString<FrontendOpts<"clangIRLibOptOptions">>;
+def fclangir_lib_opt : Flag<["-"], "fclangir-lib-opt">,
+  Visibility<[ClangOption, CC1Option]>, Group<f_Group>,
+  Alias<fclangir_lib_opt_EQ>, AliasArgs<[""]>,
+  HelpText<"Enable C/C++ library based optimizations">;
 defm clangir : BoolFOption<"clangir",
   FrontendOpts<"UseClangIRPipeline">, DefaultFalse,
   PosFlag<SetTrue, [], [ClangOption, CC1Option], "Use the ClangIR pipeline to compile">,
diff --git a/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt b/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
index 3fc5b06b74e4d..b11695172d12e 100644
--- a/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
+++ b/clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
@@ -6,6 +6,7 @@ add_clang_library(MLIRCIRTransforms
   LoweringPrepare.cpp
   LoweringPrepareItaniumCXXABI.cpp
   GotoSolver.cpp
+  LibOpt.cpp
 
   DEPENDS
   MLIRCIRPassIncGen
diff --git a/clang/lib/CIR/Dialect/Transforms/LibOpt.cpp b/clang/lib/CIR/Dialect/Transforms/LibOpt.cpp
new file mode 100644
index 0000000000000..6b75d961ce4b0
--- /dev/null
+++ b/clang/lib/CIR/Dialect/Transforms/LibOpt.cpp
@@ -0,0 +1,108 @@
+//===- LibOpt.cpp - Optimize CIR raised C/C++ library idioms --------------===//
+//
+// 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 pass optimizes C/C++ standard library idioms in Clang IR.
+//
+//===----------------------------------------------------------------------===//
+
+#include "PassDetail.h"
+#include "mlir/Dialect/Func/IR/FuncOps.h"
+#include "mlir/IR/BuiltinAttributes.h"
+#include "mlir/IR/Region.h"
+#include "clang/AST/ASTContext.h"
+#include "clang/AST/Mangle.h"
+#include "clang/Basic/Module.h"
+#include "clang/CIR/Dialect/Builder/CIRBaseBuilder.h"
+#include "clang/CIR/Dialect/IR/CIRDialect.h"
+#include "clang/CIR/Dialect/Passes.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringMap.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/Twine.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/Path.h"
+
+using cir::CIRBaseBuilderTy;
+using namespace mlir;
+using namespace cir;
+
+namespace mlir {
+#define GEN_PASS_DEF_LIBOPT
+#include "clang/CIR/Dialect/Passes.h.inc"
+} // namespace mlir
+
+namespace {
+
+struct LibOptPass : public impl::LibOptBase<LibOptPass> {
+  LibOptPass() = default;
+  void runOnOperation() override;
+
+  class PassOptions {
+    enum : unsigned {
+      None = 0,
+      RemarkTransforms = 1,
+      RemarkAll = 1 << 1,
+    };
+
+  public:
+    void parseOption(const llvm::StringRef remark) {
+      value |= StringSwitch<unsigned>(remark)
+                   .Case("transforms", RemarkTransforms)
+                   .Case("all", RemarkAll)
+                   .Default(None);
+    }
+
+    void parseOptions(LibOptPass &pass) {
+      if (isOptionsParsed)
+        return;
+
+      for (const llvm::StringRef &remark : pass.remarksList)
+        parseOption(remark);
+
+      isOptionsParsed = true;
+    }
+
+    bool emitRemarkAll() { return value & RemarkAll; }
+    bool emitRemarkTransforms() {
+      return emitRemarkAll() || value & RemarkTransforms;
+    }
+
+  private:
+    unsigned value = None;
+    bool isOptionsParsed = false;
+  };
+
+  PassOptions passOptions;
+
+  ///
+  /// AST related
+  /// -----------
+  clang::ASTContext *astCtx;
+  void setASTContext(clang::ASTContext *c) { astCtx = c; }
+
+  /// Tracks current module.
+  ModuleOp theModule;
+};
+} // namespace
+
+void LibOptPass::runOnOperation() {
+  passOptions.parseOptions(*this);
+  auto *op = getOperation();
+  if (isa<::mlir::ModuleOp>(op))
+    theModule = cast<::mlir::ModuleOp>(op);
+}
+
+std::unique_ptr<Pass> mlir::createLibOptPass() {
+  return std::make_unique<LibOptPass>();
+}
+
+std::unique_ptr<Pass> mlir::createLibOptPass(clang::ASTContext *astCtx) {
+  auto pass = std::make_unique<LibOptPass>();
+  pass->setASTContext(astCtx);
+  return std::move(pass);
+}
diff --git a/clang/lib/CIR/FrontendAction/CIRGenAction.cpp b/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
index 67bb5657d4001..de4e3b176edfe 100644
--- a/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+++ b/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
@@ -108,11 +108,14 @@ class CIRGenConsumer : public clang::ASTConsumer {
     mlir::ModuleOp MlirModule = Gen->getModule();
     mlir::MLIRContext &MlirCtx = Gen->getMLIRContext();
 
+
     if (!FEOptions.ClangIRDisablePasses) {
+      std::string libOptOptions = FEOptions.clangIRLibOptOptions;
+
       // Setup and run CIR pipeline.
       if (runCIRToCIRPasses(MlirModule, MlirCtx, C,
                             !FEOptions.ClangIRDisableCIRVerifier,
-                            CGO.OptimizationLevel > 0)
+                            CGO.OptimizationLevel > 0, libOptOptions)
               .failed()) {
         CI.getDiagnostics().Report(diag::err_cir_to_cir_transform_failed);
         return;
diff --git a/clang/lib/CIR/Lowering/CIRPasses.cpp b/clang/lib/CIR/Lowering/CIRPasses.cpp
index ccc838717e421..9b292fb4502b1 100644
--- a/clang/lib/CIR/Lowering/CIRPasses.cpp
+++ b/clang/lib/CIR/Lowering/CIRPasses.cpp
@@ -21,16 +21,30 @@ mlir::LogicalResult runCIRToCIRPasses(mlir::ModuleOp theModule,
                                       mlir::MLIRContext &mlirContext,
                                       clang::ASTContext &astContext,
                                       bool enableVerifier,
-                                      bool enableCIRSimplify) {
+                                      bool enableCIRSimplify,
+                                      llvm::StringRef libOptOptions) {
 
   llvm::TimeTraceScope scope("CIR To CIR Passes");
 
+  // TODO(CIR): Make this actually propagate errors correctly. This is stubbed
+  // in to get rebases going.
+
+  auto errorHandler = [](const llvm::Twine &) -> mlir::LogicalResult {
+    return mlir::LogicalResult::failure();
+  };
+
   mlir::PassManager pm(&mlirContext);
   pm.addPass(mlir::createCIRCanonicalizePass());
 
   if (enableCIRSimplify)
     pm.addPass(mlir::createCIRSimplifyPass());
 
+  auto libOpPass = mlir::createLibOptPass();
+  if (libOpPass->initializeOptions(libOptOptions, errorHandler).failed()) {
+    return mlir::failure();
+  }
+
+  pm.addPass(std::move(libOpPass));
   pm.addPass(mlir::createLoweringPreparePass(&astContext));
 
   pm.enableVerifier(enableVerifier);
diff --git a/clang/test/CIR/Transforms/lib-opt.cpp b/clang/test/CIR/Transforms/lib-opt.cpp
new file mode 100644
index 0000000000000..ea4c265a1a584
--- /dev/null
+++ b/clang/test/CIR/Transforms/lib-opt.cpp
@@ -0,0 +1,3 @@
+// RUN: %clang_cc1 -fclangir -emit-cir -mmlir --mlir-print-ir-after-all %s -o - 2>&1 | FileCheck %s -check-prefix=CIR
+
+// CIR: IR Dump After LibOpt (cir-lib-opt)

@github-actions
Copy link

⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️

You can test this locally with the following command:
git-clang-format --diff origin/main HEAD --extensions h,cpp -- clang/lib/CIR/Dialect/Transforms/LibOpt.cpp clang/test/CIR/Transforms/lib-opt.cpp clang/include/clang/CIR/CIRToCIRPasses.h clang/include/clang/CIR/Dialect/Passes.h clang/include/clang/Frontend/FrontendOptions.h clang/lib/CIR/FrontendAction/CIRGenAction.cpp clang/lib/CIR/Lowering/CIRPasses.cpp --diff_from_common_commit

⚠️
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing origin/main to the base branch/commit you want to compare against.
⚠️

View the diff from clang-format here.
diff --git a/clang/include/clang/CIR/CIRToCIRPasses.h b/clang/include/clang/CIR/CIRToCIRPasses.h
index ed82fe447..9927a7a5a 100644
--- a/clang/include/clang/CIR/CIRToCIRPasses.h
+++ b/clang/include/clang/CIR/CIRToCIRPasses.h
@@ -29,12 +29,10 @@ class ModuleOp;
 namespace cir {
 
 // Run set of cleanup/prepare/etc passes CIR <-> CIR.
-mlir::LogicalResult runCIRToCIRPasses(mlir::ModuleOp theModule,
-                                      mlir::MLIRContext &mlirCtx,
-                                      clang::ASTContext &astCtx,
-                                      bool enableVerifier,
-                                      bool enableCIRSimplify,
-                                      llvm::StringRef libOptOptions);
+mlir::LogicalResult
+runCIRToCIRPasses(mlir::ModuleOp theModule, mlir::MLIRContext &mlirCtx,
+                  clang::ASTContext &astCtx, bool enableVerifier,
+                  bool enableCIRSimplify, llvm::StringRef libOptOptions);
 
 } // namespace cir
 
diff --git a/clang/lib/CIR/FrontendAction/CIRGenAction.cpp b/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
index 136719862..e3d1b3f80 100644
--- a/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+++ b/clang/lib/CIR/FrontendAction/CIRGenAction.cpp
@@ -113,7 +113,6 @@ public:
     mlir::ModuleOp MlirModule = Gen->getModule();
     mlir::MLIRContext &MlirCtx = Gen->getMLIRContext();
 
-
     if (!FEOptions.ClangIRDisablePasses) {
       std::string libOptOptions = FEOptions.clangIRLibOptOptions;
 
diff --git a/clang/lib/CIR/Lowering/CIRPasses.cpp b/clang/lib/CIR/Lowering/CIRPasses.cpp
index 9b292fb45..16e7e028f 100644
--- a/clang/lib/CIR/Lowering/CIRPasses.cpp
+++ b/clang/lib/CIR/Lowering/CIRPasses.cpp
@@ -17,12 +17,10 @@
 #include "llvm/Support/TimeProfiler.h"
 
 namespace cir {
-mlir::LogicalResult runCIRToCIRPasses(mlir::ModuleOp theModule,
-                                      mlir::MLIRContext &mlirContext,
-                                      clang::ASTContext &astContext,
-                                      bool enableVerifier,
-                                      bool enableCIRSimplify,
-                                      llvm::StringRef libOptOptions) {
+mlir::LogicalResult
+runCIRToCIRPasses(mlir::ModuleOp theModule, mlir::MLIRContext &mlirContext,
+                  clang::ASTContext &astContext, bool enableVerifier,
+                  bool enableCIRSimplify, llvm::StringRef libOptOptions) {
 
   llvm::TimeTraceScope scope("CIR To CIR Passes");
 

@github-actions
Copy link

🪟 Windows x64 Test Results

  • 51542 tests passed
  • 1298 tests skipped
  • 15 tests failed

Failed Tests

(click on a test name to see its output)

Clang

Clang.DebugInfo/KeyInstructions/flag.cpp
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### -target x86_64 -c -gdwarf -gkey-instructions C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp --check-prefixes=KEY-INSTRUCTIONS
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' -target x86_64 -c -gdwarf -gkey-instructions 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp' --check-prefixes=KEY-INSTRUCTIONS
# note: command had no output on stdout or stderr
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### -target x86_64 -c -gdwarf -gno-key-instructions C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp --check-prefixes=NO-KEY-INSTRUCTIONS
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' -target x86_64 -c -gdwarf -gno-key-instructions 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp' --check-prefixes=NO-KEY-INSTRUCTIONS
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### -target x86_64 -c -gno-key-instructions C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp --check-prefixes=NO-DEBUG
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' -target x86_64 -c -gno-key-instructions 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp' --check-prefixes=NO-DEBUG
# note: command had no output on stdout or stderr
# RUN: at line 18
c:\_work\llvm-project\llvm-project\build\bin\clang.exe --help | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp --check-prefix=HELP
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' --help
# .---command stderr------------
# | Assertion failed: (!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty.", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/Option/Option.h, line 125
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
# | Stack dump:
# | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\clang.exe --help
# | 1.	Compilation construction
# | Exception Code: 0xC000001D
# |  #0 0x00007ff7df5255b6 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x7e55b6)
# |  #1 0x00007ffa753bbb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# |  #2 0x00007ffa753bcad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# |  #3 0x00007ffa753be4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
# |  #4 0x00007ffa753be6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
# |  #5 0x00007ff7df3a8c9a (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x668c9a)
# |  #6 0x00007ff7df39e201 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x65e201)
# |  #7 0x00007ff7df3a2394 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x662394)
# |  #8 0x00007ff7df3a1732 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x661732)
# |  #9 0x00007ff7df622747 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8e2747)
# | #10 0x00007ff7df618513 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8d8513)
# | #11 0x00007ff7df61670e (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8d670e)
# | #12 0x00007ff7ded437b6 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x37b6)
# | #13 0x00007ff7ded58d07 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x18d07)
# | #14 0x00007ff7e5c12d54 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x6ed2d54)
# | #15 0x00007ffa7b454cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #16 0x00007ffa8b69edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp' --check-prefix=HELP
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp:7:10: error: HELP: expected string not found in input
# | // HELP: -gkey-instructions Enable Key Instructions, which reduces the jumpiness of debug stepping in optimized C/C++ code in some debuggers. DWARF only.
# |          ^
# | <stdin>:1:1: note: scanning from here
# | OVERVIEW: clang LLVM compiler
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\KeyInstructions\flag.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |          1: OVERVIEW: clang LLVM compiler 
# | check:7     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |          2:  
# | check:7     ~
# |          3: USAGE: clang.exe [options] file... 
# | check:7     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          4:  
# | check:7     ~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

Clang.Driver/cl.c
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 9
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -help | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Driver\cl.c -check-prefix=DEFAULT
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -help
# .---command stderr------------
# | Assertion failed: (!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty.", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/Option/Option.h, line 125
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
# | Stack dump:
# | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\clang.exe -help
# | 1.	Compilation construction
# | Exception Code: 0xC000001D
# |  #0 0x00007ff7df5255b6 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x7e55b6)
# |  #1 0x00007ffa753bbb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# |  #2 0x00007ffa753bcad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# |  #3 0x00007ffa753be4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
# |  #4 0x00007ffa753be6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
# |  #5 0x00007ff7df3a8c9a (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x668c9a)
# |  #6 0x00007ff7df39e201 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x65e201)
# |  #7 0x00007ff7df3a2394 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x662394)
# |  #8 0x00007ff7df3a1732 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x661732)
# |  #9 0x00007ff7df622747 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8e2747)
# | #10 0x00007ff7df618513 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8d8513)
# | #11 0x00007ff7df61670e (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8d670e)
# | #12 0x00007ff7ded437b6 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x37b6)
# | #13 0x00007ff7ded58d07 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x18d07)
# | #14 0x00007ff7e5c12d54 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x6ed2d54)
# | #15 0x00007ffa7b454cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #16 0x00007ffa8b69edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\cl.c' -check-prefix=DEFAULT
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\Driver\cl.c:27:13: error: DEFAULT: expected string not found in input
# | // DEFAULT: -fapple-kext
# |             ^
# | <stdin>:1:1: note: scanning from here
# | OVERVIEW: clang LLVM compiler
# | ^
# | <stdin>:1:22: note: possible intended match here
# | OVERVIEW: clang LLVM compiler
# |                      ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\Driver\cl.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: OVERVIEW: clang LLVM compiler 
# | check:27'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | check:27'1                          ?         possible intended match
# |             2:  
# | check:27'0     ~
# |             3: USAGE: clang.exe [options] file... 
# | check:27'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             4:  
# | check:27'0     ~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

Clang.Driver/immediate-options.c
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe --help | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Driver\immediate-options.c -check-prefix=HELP
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' --help
# .---command stderr------------
# | Assertion failed: (!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty.", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/Option/Option.h, line 125
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
# | Stack dump:
# | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\clang.exe --help
# | 1.	Compilation construction
# | Exception Code: 0xC000001D
# |  #0 0x00007ff7df5255b6 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x7e55b6)
# |  #1 0x00007ffa753bbb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# |  #2 0x00007ffa753bcad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# |  #3 0x00007ffa753be4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
# |  #4 0x00007ffa753be6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
# |  #5 0x00007ff7df3a8c9a (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x668c9a)
# |  #6 0x00007ff7df39e201 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x65e201)
# |  #7 0x00007ff7df3a2394 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x662394)
# |  #8 0x00007ff7df3a1732 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x661732)
# |  #9 0x00007ff7df622747 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8e2747)
# | #10 0x00007ff7df618513 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8d8513)
# | #11 0x00007ff7df61670e (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x8d670e)
# | #12 0x00007ff7ded437b6 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x37b6)
# | #13 0x00007ff7ded58d07 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x18d07)
# | #14 0x00007ff7e5c12d54 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x6ed2d54)
# | #15 0x00007ffa7b454cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #16 0x00007ffa8b69edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\immediate-options.c' -check-prefix=HELP
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\Driver\immediate-options.c:2:10: error: HELP: expected string not found in input
# | // HELP: isystem
# |          ^
# | <stdin>:1:1: note: scanning from here
# | OVERVIEW: clang LLVM compiler
# | ^
# | <stdin>:1:26: note: possible intended match here
# | OVERVIEW: clang LLVM compiler
# |                          ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\Driver\immediate-options.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1: OVERVIEW: clang LLVM compiler 
# | check:2'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | check:2'1                              ?     possible intended match
# |            2:  
# | check:2'0     ~
# |            3: USAGE: clang.exe [options] file... 
# | check:2'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            4:  
# | check:2'0     ~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

Clang.Frontend/cc1-return-codes.c
Exit Code: 3221225501

Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\22\include -nostdsysteminc -help
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\22\include' -nostdsysteminc -help
# .---command stdout------------
# | OVERVIEW: LLVM 'Clang' Compiler: http://clang.llvm.org
# | 
# | USAGE: clang -cc1 [options] file...
# | 
# `-----------------------------
# .---command stderr------------
# | Assertion failed: (!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty.", file C:\_work\llvm-project\llvm-project\llvm\include\llvm/Option/Option.h, line 125
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
# | Stack dump:
# | 0.	Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\clang.exe -cc1 -internal-isystem C:\\_work\\llvm-project\\llvm-project\\build\\lib\\clang\\22\\include -nostdsysteminc -help
# | Exception Code: 0xC000001D
# |  #0 0x00007ff7df5255b6 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x7e55b6)
# |  #1 0x00007ffa753bbb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# |  #2 0x00007ffa753bcad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# |  #3 0x00007ffa753be4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
# |  #4 0x00007ffa753be6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
# |  #5 0x00007ff7df3a8c9a (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x668c9a)
# |  #6 0x00007ff7df39e201 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x65e201)
# |  #7 0x00007ff7df3a2394 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x662394)
# |  #8 0x00007ff7df3a1732 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x661732)
# |  #9 0x00007ff7df704322 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x9c4322)
# | #10 0x00007ff7ded4925d (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x925d)
# | #11 0x00007ff7ded44774 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x4774)
# | #12 0x00007ff7ded429ca (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x29ca)
# | #13 0x00007ff7ded58d07 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x18d07)
# | #14 0x00007ff7e5c12d54 (c:\_work\llvm-project\llvm-project\build\bin\clang.exe+0x6ed2d54)
# | #15 0x00007ffa7b454cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #16 0x00007ffa8b69edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d

--

Clangd Unit Tests

Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/ArgStyles
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.ArgStyles
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/ClangCL
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.ClangCL
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/Define
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.Define
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/EndOfList
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.EndOfList
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/Multiple
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.Multiple
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/OrderDependent
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.OrderDependent
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/Spellings
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.Spellings
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/UnknownFlag
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.UnknownFlag
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/Warning
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.Warning
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ArgStripperTest/Xclang
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ArgStripperTest.Xclang
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



Clangd Unit Tests._/ClangdTests_exe/ConfigCompileTests/CompileCommands
Script:
--
C:\_work\llvm-project\llvm-project\build\tools\clang\tools\extra\clangd\unittests\.\ClangdTests.exe --gtest_filter=ConfigCompileTests.CompileCommands
--
unknown file
SEH exception with code 0x3221225501 thrown in the test body.
Stack trace:



If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

@github-actions
Copy link

🐧 Linux x64 Test Results

  • 2881 tests passed
  • 7 tests skipped
  • 11 tests failed

Failed Tests

(click on a test name to see its output)

Clangd Unit Tests

Clangd Unit Tests._/ClangdTests/21/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-21-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=21 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 22 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundIndexTest
[ RUN      ] BackgroundIndexTest.Reindex
Enqueueing 1 commands for indexing
Failed to load shard: /clangd-test/A.cc
Indexing ../A.cc (digest:=9EA9825286D46DBE)
Indexed ../A.cc (1 symbols, 1 refs, 1 files)
BackgroundIndex: building version 1 when background indexer is idle
BackgroundIndex: serving version 1 (16604 bytes)
Dex query tree: (& T=ion T=the T=ldf T=old T=fun T=tio T=dfu T=eol T=cti T=heo T=unc T=nct)
Dex query tree: false
Enqueueing 1 commands for indexing
BackgroundIndex: building version 2 after loading index from disk
BackgroundIndex: serving version 2 (16604 bytes)
Dex query tree: (& T=ion T=the T=ldf T=old T=fun T=tio T=dfu T=eol T=cti T=heo T=unc T=nct)
Dex query tree: false
[       OK ] BackgroundIndexTest.Reindex (4 ms)
[----------] 1 test from BackgroundIndexTest (4 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.NoIncludeInsertionWhenDeclFoundInFile
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.01 seconds
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "ns::"
  ]
})
Code complete: sema context Symbol, query scopes [ns::] (AnyScope=false), expected type <none>
Code complete: 2 results from Sema, 2 from Index, 2 matched, 0 from identifiers, 2 returned.
[       OK ] CompletionTest.NoIncludeInsertionWhenDeclFoundInFile (11 ms)
[ RUN      ] CompletionTest.UsingDecl
Built preamble of size 208640 for file /clangd-test/TestTU.cpp version null in 0.01 seconds
indexed preamble AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 3 symbols, 4912 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 8532 bytes
indexed file AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 0 symbols, 120 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 248 bytes
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.01 seconds
Ignored diagnostic. /clangd-test/foo.cpp:3:7:use of undeclared identifier 'std'
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "std::"
  ]
})
Dex query tree: (& S=std:: (| (* 2.340640e+00 U=unittest:///) true) ?=Restricted For Code Completion)
Code complete: sema context Symbol, query scopes [std::] (AnyScope=false), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.UsingDecl (36 ms)
[----------] 2 tests from CompletionTest (48 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.Spellings
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007a6c98ecb330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007a6c98f24b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007a6c98ecb27e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007a6c98eae8ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007a6c98eae81b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007a6c98ec1517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x000000000175fcbd clang::clangd::(anonymous namespace)::strip[abi:cxx11](llvm::StringRef, llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:219:5
#16 0x000000000175f3fd Compare<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char[13], nullptr> /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1398:12
#17 0x000000000175f3fd clang::clangd::(anonymous namespace)::ArgStripperTest_Spellings_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:225:3
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x00007a6c98eb01ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x00007a6c98eb028b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-21-85.json
Clangd Unit Tests._/ClangdTests/22/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-22-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=22 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 23 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundIndexRebuilderTest
[ RUN      ] BackgroundIndexRebuilderTest.IndexingTUs
BackgroundIndex: building version 1 after indexing enough files
BackgroundIndex: serving version 1 (6932 bytes)
BackgroundIndex: building version 2 after indexing enough files
BackgroundIndex: serving version 2 (6964 bytes)
[       OK ] BackgroundIndexRebuilderTest.IndexingTUs (0 ms)
[----------] 1 test from BackgroundIndexRebuilderTest (0 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.IncludeInsertionRespectsQuotedAngledConfig
Built preamble of size 207600 for file /clangd-test/TestTU.cpp version null in 0.01 seconds
Ignored diagnostic. /clangd-test/TestTU.cpp:1:14:use of undeclared identifier 'ns'
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/TestTU.cpp"
  ],
  "Query": "",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "ns::"
  ]
})
Code complete: sema context Symbol, query scopes [ns::] (AnyScope=false), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207600 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
Ignored diagnostic. /clangd-test/TestTU.cpp:1:14:use of undeclared identifier 'ns'
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/TestTU.cpp"
  ],
  "Query": "",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "ns::"
  ]
})
Code complete: sema context Symbol, query scopes [ns::] (AnyScope=false), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207600 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
Ignored diagnostic. /clangd-test/TestTU.cpp:1:14:use of undeclared identifier 'ns'
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/TestTU.cpp"
  ],
  "Query": "",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "ns::"
  ]
})
Code complete: sema context Symbol, query scopes [ns::] (AnyScope=false), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.IncludeInsertionRespectsQuotedAngledConfig (28 ms)
[ RUN      ] CompletionTest.Enums
Built preamble of size 209388 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
indexed preamble AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 8 symbols, 6072 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 12408 bytes
indexed file AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 0 symbols, 120 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 248 bytes
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: fuzzyFind({
  "AnyScope": true,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "Clangd",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    ""
  ]
})
Dex query tree: (& T=lan T=ngd T=ang T=cla (| S= (* 2.000000e-01 true)) (| (* 2.340640e+00 U=unittest:///) true) ?=Restricted For Code Completion)
Code complete: sema context Statement, query scopes [] (AnyScope=true), expected type <none>
Code complete: 0 results from Sema, 3 from Index, 0 matched, 0 from identifiers, 3 returned.
[       OK ] CompletionTest.Enums (32 ms)
[----------] 2 tests from CompletionTest (61 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.UnknownFlag
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007ad1de5b7330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007ad1de610b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007ad1de5b727e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007ad1de59a8ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007ad1de59a81b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007ad1de5ad517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x000000000175fcbd clang::clangd::(anonymous namespace)::strip[abi:cxx11](llvm::StringRef, llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:219:5
#16 0x000000000175ffed Compare<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char[13], nullptr> /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1398:12
#17 0x000000000175ffed clang::clangd::(anonymous namespace)::ArgStripperTest_UnknownFlag_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:238:3
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x00007ad1de59c1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x00007ad1de59c28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-22-85.json
Clangd Unit Tests._/ClangdTests/23/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-23-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=23 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 24 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundIndexRebuilderTest
[ RUN      ] BackgroundIndexRebuilderTest.LoadingShards
BackgroundIndex: building version 1 after loading index from disk
BackgroundIndex: serving version 1 (6388 bytes)
BackgroundIndex: building version 2 after loading index from disk
BackgroundIndex: serving version 2 (6388 bytes)
BackgroundIndex: building version 3 after loading index from disk
BackgroundIndex: serving version 3 (6964 bytes)
[       OK ] BackgroundIndexRebuilderTest.LoadingShards (0 ms)
[----------] 1 test from BackgroundIndexRebuilderTest (0 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.IndexSuppressesPreambleCompletions
Built preamble of size 208412 for file /clangd-test/TestTU.cpp version null in 0.01 seconds
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/TestTU.cpp"
  ],
  "Query": "",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "ns::"
  ]
})
Code complete: sema context Symbol, query scopes [ns::] (AnyScope=false), expected type <none>
Code complete: 1 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 2 returned.
Built preamble of size 208412 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
Code complete: sema context DotMemberAccess, query scopes [] (AnyScope=false), expected type <none>
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 208412 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
Code complete: sema context Symbol, query scopes [ns::] (AnyScope=false), expected type <none>
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
[       OK ] CompletionTest.IndexSuppressesPreambleCompletions (26 ms)
[ RUN      ] CompletionTest.ScopeIsUnresolved
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.00 seconds
Ignored diagnostic. /clangd-test/foo.cpp:3:16:use of undeclared identifier 'b'
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "X",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "a::b::",
    "b::"
  ]
})
Code complete: sema context Symbol, query scopes [a::b::,b::] (AnyScope=false), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.ScopeIsUnresolved (6 ms)
[----------] 2 tests from CompletionTest (33 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.Xclang
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007ae292b59330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007ae292bb2b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007ae292b5927e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007ae292b3c8ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007ae292b3c81b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007ae292b4f517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x000000000175fcbd clang::clangd::(anonymous namespace)::strip[abi:cxx11](llvm::StringRef, llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:219:5
#16 0x000000000176033d Compare<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char[13], nullptr> /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1398:12
#17 0x000000000176033d clang::clangd::(anonymous namespace)::ArgStripperTest_Xclang_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:245:3
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x00007ae292b3e1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x00007ae292b3e28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-23-85.json
Clangd Unit Tests._/ClangdTests/24/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-24-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=24 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 25 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundQueueTest
[ RUN      ] BackgroundQueueTest.Priority
[       OK ] BackgroundQueueTest.Priority (0 ms)
[----------] 1 test from BackgroundQueueTest (0 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.CompletionInPreamble
Built preamble of size 207692 for file /clangd-test/foo.cpp version null in 0.01 seconds
Code complete: sema context PreprocessorDirective, query scopes [] (AnyScope=false), expected type <none>
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.CompletionInPreamble (18 ms)
[ RUN      ] CompletionTest.NestedScopeIsUnresolved
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.00 seconds
Ignored diagnostic. /clangd-test/foo.cpp:4:19:no member named 'c' in namespace 'a::b'
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "X",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "a::b::c::",
    "b::c::"
  ]
})
Code complete: sema context Symbol, query scopes [a::b::c::,b::c::] (AnyScope=false), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.NestedScopeIsUnresolved (9 ms)
[----------] 2 tests from CompletionTest (28 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.ClangCL
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007c2cb26a0330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007c2cb26f9b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007c2cb26a027e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007c2cb26838ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007c2cb268381b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007c2cb2696517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x000000000175fcbd clang::clangd::(anonymous namespace)::strip[abi:cxx11](llvm::StringRef, llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:219:5
#16 0x000000000176059d Compare<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char[27], nullptr> /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1398:12
#17 0x000000000176059d clang::clangd::(anonymous namespace)::ArgStripperTest_ClangCL_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:255:3
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x00007c2cb26851ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x00007c2cb268528b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-24-85.json
Clangd Unit Tests._/ClangdTests/25/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-25-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=25 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 26 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundQueueTest
[ RUN      ] BackgroundQueueTest.Boost
[       OK ] BackgroundQueueTest.Boost (0 ms)
[----------] 1 test from BackgroundQueueTest (0 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.CompletionRecoveryASTType
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.01 seconds
Ignored diagnostic. /clangd-test/foo.cpp:6:7:no matching function for call to 'overloaded'
Ignored diagnostic. /clangd-test/foo.cpp:3:7:candidate function not viable: requires 1 argument, but 0 were provided
Code complete: sema context DotMemberAccess, query scopes [] (AnyScope=false), expected type <none>
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.CompletionRecoveryASTType (14 ms)
[ RUN      ] CompletionTest.NamespaceDoubleInsertion
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.01 seconds
Ignored diagnostic. /clangd-test/foo.cpp:5:5:expected unqualified-id
Sema said no scope specifier, but we saw ns:: in the source code
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "ABC",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "foo::ns::",
    "ns::"
  ]
})
Code complete: sema context TopLevel, query scopes [foo::ns::,ns::] (AnyScope=false), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.NamespaceDoubleInsertion (10 ms)
[----------] 2 tests from CompletionTest (25 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.ArgStyles
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007eedc4129330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007eedc4182b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007eedc412927e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007eedc410c8ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007eedc410c81b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007eedc411f517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x000000000175fcbd clang::clangd::(anonymous namespace)::strip[abi:cxx11](llvm::StringRef, llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:219:5
#16 0x0000000001760baf Compare<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char[13], nullptr> /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1398:12
#17 0x0000000001760baf clang::clangd::(anonymous namespace)::ArgStripperTest_ArgStyles_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:269:3
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x00007eedc410e1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x00007eedc410e28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-25-85.json
Clangd Unit Tests._/ClangdTests/26/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-26-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=26 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 27 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundQueueTest
[ RUN      ] BackgroundQueueTest.Duplicates
[       OK ] BackgroundQueueTest.Duplicates (0 ms)
[----------] 1 test from BackgroundQueueTest (0 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.DynamicIndexIncludeInsertion
ASTWorker building file /clangd-test/foo_impl.cpp version null with command 
[/clangd-test]
clang -ffreestanding /clangd-test/foo_impl.cpp
Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name foo_impl.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -ffreestanding -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/clangd-test -fcoverage-compilation-dir=/clangd-test -resource-dir lib/clang/22 -internal-isystem lib/clang/22/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -no-round-trip-args -faddrsig -fdwarf2-cfi-asm -x c++ /clangd-test/foo_impl.cpp
Building first preamble for /clangd-test/foo_impl.cpp version null
Built preamble of size 236408 for file /clangd-test/foo_impl.cpp version null in 0.01 seconds
indexed file AST for /clangd-test/foo_impl.cpp version null:
  symbol slab: 1 symbols, 4448 bytes
  ref slab: 2 symbols, 2 refs, 4272 bytes
  relations slab: 0 relations, 24 bytes
indexed preamble AST for /clangd-test/foo_impl.cpp version null:
  symbol slab: 2 symbols, 4680 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 11576 bytes
Build dynamic index for header symbols with estimated memory usage of 7136 bytes
ASTWorker building file /clangd-test/foo.cpp version null with command 
[/clangd-test]
clang -ffreestanding /clangd-test/foo.cpp
Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name foo.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -ffreestanding -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/clangd-test -fcoverage-compilation-dir=/clangd-test -resource-dir lib/clang/22 -internal-isystem lib/clang/22/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -no-round-trip-args -faddrsig -fdwarf2-cfi-asm -x c++ /clangd-test/foo.cpp
Building first preamble for /clangd-test/foo.cpp version null
Built preamble of size 235612 for file /clangd-test/foo.cpp version null in 0.01 seconds
indexed preamble AST for /clangd-test/foo.cpp version null:
  symbol slab: 0 symbols, 120 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Trying to fix unresolved name "Foo" in scopes: []
Dex query tree: (LIMIT 10000 (& T=foo S= ?=Restricted For Code Completion))
indexed file AST for /clangd-test/foo.cpp version null:
  symbol slab: 1 symbols, 4448 bytes
  ref slab: 1 symbols, 1 refs, 4248 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 20536 bytes
Code complete: fuzzyFind({
  "AnyScope": true,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "Foo",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    ""
  ]
})
Dex query tree: (& T=foo (| S= (* 2.000000e-01 true)) (| (* 2.340640e+00 U=unittest:///) true) ?=Restricted For Code Completion)
Code complete: sema context TopLevel, query scopes [] (AnyScope=true), expected type <none>
Code complete: 0 results from Sema, 1 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.DynamicIndexIncludeInsertion (69 ms)
[ RUN      ] CompletionTest.DerivedMethodsAreAlwaysVisible
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.01 seconds
Code complete: sema context DotMemberAccess, query scopes [] (AnyScope=false), expected type auto
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.DerivedMethodsAreAlwaysVisible (15 ms)
[----------] 2 tests from CompletionTest (85 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.EndOfList
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x000078100f6ad330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x000078100f706b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x000078100f6ad27e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x000078100f6908ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x000078100f69081b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x000078100f6a3517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x000000000175fcbd clang::clangd::(anonymous namespace)::strip[abi:cxx11](llvm::StringRef, llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:219:5
#16 0x0000000001761c80 Compare<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char[14], nullptr> /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1398:12
#17 0x0000000001761c80 clang::clangd::(anonymous namespace)::ArgStripperTest_EndOfList_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:300:3
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x000078100f6921ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x000078100f69228b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-26-85.json
Clangd Unit Tests._/ClangdTests/27/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-27-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=27 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 28 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundQueueTest
[ RUN      ] BackgroundQueueTest.Progress
[       OK ] BackgroundQueueTest.Progress (23 ms)
[----------] 1 test from BackgroundQueueTest (23 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.DynamicIndexMultiFile
ASTWorker building file /clangd-test/foo.cpp version null with command 
[/clangd-test]
clang -ffreestanding /clangd-test/foo.cpp
Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name foo.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -ffreestanding -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/clangd-test -fcoverage-compilation-dir=/clangd-test -resource-dir lib/clang/22 -internal-isystem lib/clang/22/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -no-round-trip-args -faddrsig -fdwarf2-cfi-asm -x c++ /clangd-test/foo.cpp
Building first preamble for /clangd-test/foo.cpp version null
Built preamble of size 236608 for file /clangd-test/foo.cpp version null in 0.01 seconds
indexed preamble AST for /clangd-test/foo.cpp version null:
  symbol slab: 3 symbols, 4912 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 8596 bytes
indexed file AST for /clangd-test/foo.cpp version null:
  symbol slab: 0 symbols, 120 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 248 bytes
ASTWorker building file /clangd-test/bar.cpp version null with command 
[/clangd-test]
clang -ffreestanding /clangd-test/bar.cpp
Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name bar.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -ffreestanding -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/clangd-test -fcoverage-compilation-dir=/clangd-test -resource-dir lib/clang/22 -internal-isystem lib/clang/22/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -no-round-trip-args -faddrsig -fdwarf2-cfi-asm -x c++ /clangd-test/bar.cpp
Building first preamble for /clangd-test/bar.cpp version null
Built preamble of size 235616 for file /clangd-test/bar.cpp version null in 0.01 seconds
indexed preamble AST for /clangd-test/bar.cpp version null:
  symbol slab: 0 symbols, 120 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
indexed file AST for /clangd-test/bar.cpp version null:
  symbol slab: 4 symbols, 5144 bytes
  ref slab: 3 symbols, 3 refs, 4320 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 13296 bytes
Code complete: fuzzyFind({
  "AnyScope": false,
  "Limit": null,
  "PreferredTypes": [],
  "ProximityPaths": [
    "/clangd-test/bar.cpp"
  ],
  "Query": "",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    "ns::"
  ]
})
Dex query tree: (& S=ns:: (| (* 2.340640e+00 U=unittest:///) true) ?=Restricted For Code Completion)
Code complete: sema context Symbol, query scopes [ns::] (AnyScope=false), expected type <none>
Code complete: 2 results from Sema, 2 from Index, 0 matched, 0 from identifiers, 4 returned.
[       OK ] CompletionTest.DynamicIndexMultiFile (48 ms)
[ RUN      ] CompletionTest.NoCrashWithIncompleteLambda
Built preamble of size 207560 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Statement, query scopes [] (AnyScope=false), expected type <none>
Code complete: 100 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 100 returned.
Built preamble of size 207572 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
[       OK ] CompletionTest.NoCrashWithIncompleteLambda (18 ms)
[----------] 2 tests from CompletionTest (67 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.Multiple
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007c8a8d6e6330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007c8a8d73fb2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007c8a8d6e627e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007c8a8d6c98ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007c8a8d6c981b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007c8a8d6dc517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x0000000001762168 clang::clangd::(anonymous namespace)::ArgStripperTest_Multiple_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:309:5
#16 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#17 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#18 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#20 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#21 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#22 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#23 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#24 0x00007c8a8d6cb1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#25 0x00007c8a8d6cb28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#26 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-27-85.json
Clangd Unit Tests._/ClangdTests/28/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-28-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=28 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 29 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from BackgroundIndex
[ RUN      ] BackgroundIndex.Profile
[       OK ] BackgroundIndex.Profile (0 ms)
[----------] 1 test from BackgroundIndex (0 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.Documentation
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.01 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 88 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 88 returned.
[       OK ] CompletionTest.Documentation (9 ms)
[ RUN      ] CompletionTest.DelayedTemplateParsing
Built preamble of size 207576 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.DelayedTemplateParsing (6 ms)
[----------] 2 tests from CompletionTest (16 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.Warning
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007b3fa4c08330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007b3fa4c61b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007b3fa4c0827e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007b3fa4beb8ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007b3fa4beb81b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007b3fa4bfe517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x00000000017630b7 _M_local_data /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:230:51
#16 0x00000000017630b7 basic_string<std::allocator<char> > /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:642:21
#17 0x00000000017630b7 clang::clangd::(anonymous namespace)::ArgStripperTest_Warning_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:320:38
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x00007b3fa4bed1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x00007b3fa4bed28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-28-85.json
Clangd Unit Tests._/ClangdTests/29/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-29-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=29 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 30 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from CallHierarchy
[ RUN      ] CallHierarchy.IncomingOneFileCpp
Built preamble of size 207576 for file /clangd-test/TestTU.cpp version null in 0.01 seconds
Built preamble of size 207576 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
indexed preamble AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 4 symbols, 5144 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 8808 bytes
indexed file AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 4 symbols, 5144 bytes
  ref slab: 4 symbols, 9 refs, 4320 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 13240 bytes
[       OK ] CallHierarchy.IncomingOneFileCpp (26 ms)
[----------] 1 test from CallHierarchy (26 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.CommentsFromSystemHeaders
ASTWorker building file /clangd-test/foo.cpp version null with command 
[/clangd-test]
clang -ffreestanding /clangd-test/foo.cpp
Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name foo.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -ffreestanding -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/clangd-test -fcoverage-compilation-dir=/clangd-test -resource-dir lib/clang/22 -internal-isystem lib/clang/22/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -no-round-trip-args -faddrsig -fdwarf2-cfi-asm -x c++ /clangd-test/foo.cpp
Building first preamble for /clangd-test/foo.cpp version null
Built preamble of size 236164 for file /clangd-test/foo.cpp version null in 0.01 seconds
indexed preamble AST for /clangd-test/foo.cpp version null:
  symbol slab: 1 symbols, 4448 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 6892 bytes
indexed file AST for /clangd-test/foo.cpp version null:
  symbol slab: 1 symbols, 4448 bytes
  ref slab: 2 symbols, 2 refs, 4272 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 11576 bytes
Code complete: fuzzyFind({
  "AnyScope": true,
  "Limit": null,
  "PreferredTypes": [
    "c:I"
  ],
  "ProximityPaths": [
    "/clangd-test/foo.cpp"
  ],
  "Query": "foo",
  "RestrictForCodeCompletion": true,
  "Scopes": [
    ""
  ]
})
Dex query tree: (& T=foo (| S= (* 2.000000e-01 true)) (| (* 2.340640e+00 U=unittest:///) true) (| (* 5.000000e+00 Ty=c:I) true) ?=Restricted For Code Completion)
Code complete: sema context Expression, query scopes [] (AnyScope=true), expected type int
Code complete: 1 results from Sema, 1 from Index, 1 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.CommentsFromSystemHeaders (21 ms)
[ RUN      ] CompletionTest.CompletionRange
Built preamble of size 207560 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type auto
Code complete: 0 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 0 returned.
Code complete: 0 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 0 returned.
Built preamble of size 207560 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type auto
Code complete: 85 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 85 returned.
Code complete: 0 results from Sema, 0 from Index, 0 matched, 2 from identifiers, 2 returned.
Built preamble of size 207560 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: 0 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 0 returned.
Code complete: 0 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 0 returned.
[       OK ] CompletionTest.CompletionRange (25 ms)
[----------] 2 tests from CompletionTest (47 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.Define
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007927b8efe330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007927b8f57b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007927b8efe27e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007927b8ee18ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007927b8ee181b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007927b8ef4517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x0000000001764449 _M_local_data /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:230:51
#16 0x0000000001764449 basic_string<std::allocator<char> > /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:642:21
#17 0x0000000001764449 clang::clangd::(anonymous namespace)::ArgStripperTest_Define_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:341:38
#18 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#20 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#21 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#22 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#23 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#24 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#25 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#26 0x00007927b8ee31ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#27 0x00007927b8ee328b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#28 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-29-85.json
Clangd Unit Tests._/ClangdTests/30/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-30-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=30 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 31 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from CallHierarchy
[ RUN      ] CallHierarchy.IncomingOneFileObjC
Built preamble of size 209116 for file /clangd-test/TestTU.m version null in 0.01 seconds
Built preamble of size 209116 for file /clangd-test/TestTU.m version null in 0.00 seconds
indexed preamble AST for /clangd-test/TestTU.m version null:
  symbol slab: 5 symbols, 5376 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 11452 bytes
indexed file AST for /clangd-test/TestTU.m version null:
  symbol slab: 5 symbols, 5376 bytes
  ref slab: 5 symbols, 10 refs, 4416 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 13832 bytes
[       OK ] CallHierarchy.IncomingOneFileObjC (18 ms)
[----------] 1 test from CallHierarchy (18 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.CommentsOnMembersFromHeader
ASTWorker building file /clangd-test/foo.cpp version null with command 
[/clangd-test]
clang -ffreestanding /clangd-test/foo.cpp
Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name foo.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -ffreestanding -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/clangd-test -fcoverage-compilation-dir=/clangd-test -resource-dir lib/clang/22 -internal-isystem lib/clang/22/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -no-round-trip-args -faddrsig -fdwarf2-cfi-asm -x c++ /clangd-test/foo.cpp
Building first preamble for /clangd-test/foo.cpp version null
Built preamble of size 237192 for file /clangd-test/foo.cpp version null in 0.01 seconds
indexed preamble AST for /clangd-test/foo.cpp version null:
  symbol slab: 6 symbols, 5608 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 12112 bytes
indexed file AST for /clangd-test/foo.cpp version null:
  symbol slab: 4 symbols, 5144 bytes
  ref slab: 6 symbols, 6 refs, 4416 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 13240 bytes
Code complete: sema context DotMemberAccess, query scopes [] (AnyScope=true), expected type int
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
Ignored diagnostic. /clangd-test/foo.cpp:5:11:expected unqualified-id
Code complete: sema context DotMemberAccess, query scopes [] (AnyScope=true), expected type int
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
[       OK ] CompletionTest.CommentsOnMembersFromHeader (31 ms)
[ RUN      ] CompletionTest.FunctionArgsExist
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type Object
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type Object
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type Container
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type Container
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type Container
Code complete: 2 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 2 returned.
Built preamble of size 207664 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context TopLevel, query scopes [] (AnyScope=false), expected type <none>
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.FunctionArgsExist (82 ms)
[----------] 2 tests from CompletionTest (114 ms total)

[----------] 1 test from ArgStripperTest
[ RUN      ] ArgStripperTest.OrderDependent
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007ba1f0faf330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007ba1f1008b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007ba1f0faf27e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007ba1f0f928ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007ba1f0f9281b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007ba1f0fa5517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x0000000001765856 clang::clangd::(anonymous namespace)::ArgStripperTest_OrderDependent_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp:366:5
#16 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#17 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#18 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#19 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#20 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#21 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#22 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#23 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#24 0x00007ba1f0f941ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#25 0x00007ba1f0f9428b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#26 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-30-85.json
Clangd Unit Tests._/ClangdTests/38/85
Script(shard):
--
GTEST_OUTPUT=json:/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-38-85.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=85 GTEST_SHARD_INDEX=38 /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests
--

Note: This is test shard 39 of 85.
[==========] Running 16 tests from 15 test suites.
[----------] Global test environment set-up.
[----------] 1 test from CallHierarchy
[ RUN      ] CallHierarchy.HierarchyOnField
Built preamble of size 207576 for file /clangd-test/TestTU.cpp version null in 0.01 seconds
Built preamble of size 207576 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
indexed preamble AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 3 symbols, 4912 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for header symbols with estimated memory usage of 8628 bytes
indexed file AST for /clangd-test/TestTU.cpp version null:
  symbol slab: 3 symbols, 4912 bytes
  ref slab: 3 symbols, 5 refs, 4320 bytes
  relations slab: 0 relations, 24 bytes
Build dynamic index for main-file symbols with estimated memory usage of 12648 bytes
[       OK ] CallHierarchy.HierarchyOnField (34 ms)
[----------] 1 test from CallHierarchy (34 ms total)

[----------] 2 tests from CompletionTest
[ RUN      ] CompletionTest.DefaultArgs
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
Built preamble of size 207564 for file /clangd-test/foo.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 1 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 1 returned.
[       OK ] CompletionTest.DefaultArgs (20 ms)
[ RUN      ] CompletionTest.PreambleFromDifferentTarget
Built preamble of size 207432 for file /clangd-test/TestTU.cpp version null in 0.00 seconds
Code complete: sema context Expression, query scopes [] (AnyScope=false), expected type int
Code complete: 9 results from Sema, 0 from Index, 0 matched, 0 from identifiers, 9 returned.
[       OK ] CompletionTest.PreambleFromDifferentTarget (7 ms)
[----------] 2 tests from CompletionTest (27 ms total)

[----------] 1 test from ConfigCompileTests
[ RUN      ] ConfigCompileTests.CompileCommands
Config fragment: compiling <unknown>:0 -> 0x000000002AF544E0 (trusted=false)
ClangdTests: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Option/Option.h:125: const char *llvm::opt::Option::getAliasArgs() const: Assertion `(!Info->AliasArgs || Info->AliasArgs[0] != 0) && "AliasArgs should be either 0 or non-empty."' failed.
 #0 0x0000000001e50bf8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:842:13
 #1 0x0000000001e4e2ec llvm::sys::RunSignalHandlers() /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x0000000001e519c1 SignalHandler(int, siginfo_t*, void*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:429:38
 #3 0x00007e25191b9330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007e2519212b2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
 #5 0x00007e25191b927e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
 #6 0x00007e251919c8ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
 #7 0x00007e251919c81b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
 #8 0x00007e25191af517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
 #9 0x00000000045df9c8 llvm::opt::Option::Option(llvm::opt::OptTable::Info const*, llvm::opt::OptTable const*) /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/Option.cpp:33:5
#10 0x00000000045e1819 llvm::opt::OptTable::getOption(llvm::opt::OptSpecifier) const /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Option/OptTable.cpp:146:1
#11 0x00000000035f2c82 clang::clangd::ArgStripper::rulesFor(llvm::StringRef)::$_0::operator()() const /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:0:32
#12 0x00000000035f2961 clang::clangd::ArgStripper::rulesFor(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:442:3
#13 0x00000000035f3b3c empty /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:137:40
#14 0x00000000035f3b3c clang::clangd::ArgStripper::strip(llvm::StringRef) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/CompileCommands.cpp:541:19
#15 0x00000000035f7c02 operator++ /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_iterator.h:1111:2
#16 0x00000000035f7c02 compile /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/ConfigCompile.cpp:270:20
#17 0x00000000035f7c02 clang::clangd::config::(anonymous namespace)::FragmentCompiler::compile(clang::clangd::config::Fragment&&) /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/ConfigCompile.cpp:193:5
#18 0x00000000035f6e24 _M_data /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:223:28
#19 0x00000000035f6e24 _M_is_local /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:264:6
#20 0x00000000035f6e24 _M_dispose /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:282:7
#21 0x00000000035f6e24 ~basic_string /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:804:9
#22 0x00000000035f6e24 ~FragmentCompiler /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/ConfigCompile.cpp:94:8
#23 0x00000000035f6e24 clang::clangd::config::Fragment::compile(llvm::function_ref<void (llvm::SMDiagnostic const&)>) && /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/ConfigCompile.cpp:858:3
#24 0x000000000177e72b ~_Function_base /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:243:11
#25 0x000000000177e72b clang::clangd::config::(anonymous namespace)::ConfigCompileTests::compileAndApply() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp:46:21
#26 0x0000000001786546 AssertionResult<bool> /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest-assertion-result.h:161:9
#27 0x0000000001786546 clang::clangd::config::(anonymous namespace)::ConfigCompileTests_CompileCommands_Test::TestBody() /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp:128:3
#28 0x0000000001e7a850 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#29 0x0000000001e7a850 testing::Test::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2695:9
#30 0x0000000001e7bc60 os_stack_trace_getter /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:6240:7
#31 0x0000000001e7bc60 testing::TestInfo::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:2842:11
#32 0x0000000001e7c873 testing::TestSuite::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:3018:35
#33 0x0000000001e8da94 testing::internal::UnitTestImpl::RunAllTests() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5922:41
#34 0x0000000001e8ce59 testing::UnitTest::Run() /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/src/gtest.cc:5485:10
#35 0x0000000001e644fa main /home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:55:3
#36 0x00007e251919e1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#37 0x00007e251919e28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#38 0x000000000148f925 _start (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests+0x148f925)

--
exit: -6
--
shard JSON output does not exist: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/tools/extra/clangd/unittests/./ClangdTests-Clangd Unit Tests-528464-38-85.json

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

Copy link
Contributor

@xlauko xlauko left a comment

Choose a reason for hiding this comment

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

As with the idiom recognizer, this should be a module pass. I’m also not convinced it should be a single pass, since it may eventually grow quite large.

@HendrikHuebner
Copy link
Contributor Author

As with the idiom recognizer, this should be a module pass. I’m also not convinced it should be a single pass, since it may eventually grow quite large.

If the pass becomes to large, can't we just split it into multiple smaller ones at that point? Or do you already have a structure in mind for which optimizations should go into separate passes (E.g. string optimizations, algorithms, containers, ranges...)? We could also use this one as a general pass and have specialized passes for optimizations on the aforementioned C++ language features.

@@ -27,6 +27,8 @@ std::unique_ptr<Pass> createHoistAllocasPass();
std::unique_ptr<Pass> createLoweringPreparePass();
std::unique_ptr<Pass> createLoweringPreparePass(clang::ASTContext *astCtx);
std::unique_ptr<Pass> createGotoSolverPass();
std::unique_ptr<Pass> createLibOptPass();
std::unique_ptr<Pass> createLibOptPass(clang::ASTContext *astCtx);
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this form needed? I looked at the incubator, and it doesn't appear to be using astCtx anywhere other than saving it and asserting that it isn't null. I believe we need to be able to run the pass without an AST context in order to run it from cir-opt/mlir-opt.

Copy link
Member

Choose a reason for hiding this comment

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

More about this in #172486

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@bcardosolopes what will we actually need the AST for this pass for? Shouldn't the idiom recognizer pass be responsible for including all the required information in the raised CIR Ops / Attributes to perform transformations?

Comment on lines +102 to +103
Transformations done by this pass can be inspected by users by using
remarks. Currently supported are `all` and `transforms`.
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this is even true yet in the incubator implementation. I would omit this paragraph until it's true.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Why not include it now? This PR sets up the basic structure needed for the pass, nothing here is used at the moment. When the first transformation is added we would be able to make use of this right away.

Copy link
Contributor

Choose a reason for hiding this comment

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

The way that we handle remark emission may change, and we shouldn't claim that remarks will be emitted until they actually are.

let constructor = "mlir::createLibOptPass()";
let dependentDialects = ["cir::CIRDialect"];

let options = [
Copy link
Contributor

Choose a reason for hiding this comment

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

You should leave this out until it's useful.

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

Labels

clang Clang issues not falling into any other category ClangIR Anything related to the ClangIR project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants