[Lldb-commits] [clang] [clang-tools-extra] [compiler-rt] [flang] [lld] [lldb] [llvm] [mlir] [openmp] Treewide C++26/2d fixes (PR #223284)
via lldb-commits
lldb-commits at lists.llvm.org
Sun Sep 27 16:53:51 PDT 2026
https://github.com/rdong8 updated https://github.com/llvm/llvm-project/pull/223284
>From fba92b3d9a80fb78bb0d0ecc7844d365fe70cebb Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:55:24 +0000
Subject: [PATCH 01/10] [llvm] C++26 mechanical fixes
---
llvm/include/llvm/Analysis/ReleaseModeModelRunner.h | 3 ++-
llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h | 4 +---
llvm/lib/Analysis/CFGPrinter.cpp | 2 +-
llvm/lib/Analysis/ReplayInlineAdvisor.cpp | 3 ++-
llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp | 3 ++-
llvm/lib/CodeGen/MachineCFGPrinter.cpp | 3 ++-
llvm/lib/CodeGen/SelectionDAG/FastISel.cpp | 3 ++-
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 3 ++-
llvm/lib/FileCheck/FileCheck.cpp | 7 ++++---
llvm/lib/Frontend/OpenMP/OMP.cpp | 3 ++-
llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp | 8 ++++++--
llvm/lib/IR/AutoUpgrade.cpp | 2 +-
llvm/lib/MC/ELFObjectWriter.cpp | 8 ++++----
llvm/lib/MC/MCObjectFileInfo.cpp | 4 ++--
llvm/lib/MC/MCParser/DarwinAsmParser.cpp | 8 ++++----
llvm/lib/Support/CodeGenCoverage.cpp | 5 ++---
llvm/lib/Support/VirtualFileSystem.cpp | 4 ++--
llvm/lib/Target/AMDGPU/SIFrameLowering.cpp | 4 ++--
llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp | 4 +++-
llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp | 2 +-
.../LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp | 2 +-
.../LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp | 6 ++++++
.../LoongArch/MCTargetDesc/LoongArchELFStreamer.h | 3 +--
.../LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp | 2 +-
llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp | 3 ++-
.../lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp | 2 +-
llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h | 10 ++++++++++
llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp | 2 +-
llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp | 5 +++--
.../SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp | 2 +-
llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp | 3 ++-
llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp | 2 +-
.../Instrumentation/SanitizerBinaryMetadata.cpp | 3 ++-
33 files changed, 79 insertions(+), 49 deletions(-)
diff --git a/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h b/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
index ff423a9155b14..3ca3205406946 100644
--- a/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
+++ b/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
@@ -15,6 +15,7 @@
#define LLVM_ANALYSIS_RELEASEMODEMODELRUNNER_H
#include "llvm/ADT/StringExtras.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/MLModelRunner.h"
#include "llvm/Analysis/TensorSpec.h"
#include "llvm/Support/ErrorHandling.h"
@@ -119,7 +120,7 @@ class ReleaseModeModelRunner final : public MLModelRunner {
void populateTensor(size_t Pos, const TensorSpec &Spec, StringRef Prefix,
bool &InputIsPresent) {
const int Index =
- CompiledModel->LookupArgIndex((Prefix + Spec.name()).str());
+ CompiledModel->LookupArgIndex((Twine(Prefix) + Spec.name()).str());
void *Buffer = nullptr;
InputIsPresent = Index >= 0;
if (InputIsPresent)
diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
index 30eb42a2f5c38..391740de4861b 100644
--- a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+++ b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
@@ -512,9 +512,7 @@ class OpenMPIRBuilder {
public:
/// Create a new OpenMPIRBuilder operating on the given module \p M. This will
/// not have an effect on \p M (see initialize)
- OpenMPIRBuilder(Module &M)
- : M(M), Builder(M.getContext()), OffloadInfoManager(this),
- T(M.getTargetTriple()), IsFinalized(false) {}
+ LLVM_ABI OpenMPIRBuilder(Module &M);
LLVM_ABI ~OpenMPIRBuilder();
class AtomicInfo : public llvm::AtomicInfo {
diff --git a/llvm/lib/Analysis/CFGPrinter.cpp b/llvm/lib/Analysis/CFGPrinter.cpp
index 39108a906f081..25f3f95e47485 100644
--- a/llvm/lib/Analysis/CFGPrinter.cpp
+++ b/llvm/lib/Analysis/CFGPrinter.cpp
@@ -62,7 +62,7 @@ static void writeCFGToDotFile(Function &F, BlockFrequencyInfo *BFI,
BranchProbabilityInfo *BPI, uint64_t MaxFreq,
bool CFGOnly = false) {
std::string Filename =
- (CFGDotFilenamePrefix + "." + F.getName() + ".dot").str();
+ (Twine(CFGDotFilenamePrefix) + "." + F.getName() + ".dot").str();
errs() << "Writing '" << Filename << "'...";
std::error_code EC;
diff --git a/llvm/lib/Analysis/ReplayInlineAdvisor.cpp b/llvm/lib/Analysis/ReplayInlineAdvisor.cpp
index 7253478a0eedf..1b4f159105342 100644
--- a/llvm/lib/Analysis/ReplayInlineAdvisor.cpp
+++ b/llvm/lib/Analysis/ReplayInlineAdvisor.cpp
@@ -14,6 +14,7 @@
//===----------------------------------------------------------------------===//
#include "llvm/Analysis/ReplayInlineAdvisor.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/LineIterator.h"
@@ -107,7 +108,7 @@ std::unique_ptr<InlineAdvice> ReplayInlineAdvisor::getAdviceImpl(CallBase &CB) {
std::string CallSiteLoc =
formatCallSiteLocation(CB.getDebugLoc(), ReplaySettings.ReplayFormat);
StringRef Callee = CB.getCalledFunction()->getName();
- std::string Combined = (Callee + CallSiteLoc).str();
+ std::string Combined = (Twine(Callee) + CallSiteLoc).str();
// Replay decision, if it has one
auto Iter = InlineSitesFromRemarks.find(Combined);
diff --git a/llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp b/llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
index 14ce305376459..899fd887ca7a7 100644
--- a/llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
@@ -69,7 +69,8 @@ class ExtraFlags {
Flags |= InlineAsm::Extra_MayUnwind;
if (CB.isConvergent())
Flags |= InlineAsm::Extra_IsConvergent;
- Flags |= IA->getDialect() * InlineAsm::Extra_AsmDialect;
+ if (IA->getDialect() == InlineAsm::AD_Intel)
+ Flags |= InlineAsm::Extra_AsmDialect;
}
void update(const TargetLowering::AsmOperandInfo &OpInfo) {
diff --git a/llvm/lib/CodeGen/MachineCFGPrinter.cpp b/llvm/lib/CodeGen/MachineCFGPrinter.cpp
index c604d4fd6e1e6..dec83d49b99cb 100644
--- a/llvm/lib/CodeGen/MachineCFGPrinter.cpp
+++ b/llvm/lib/CodeGen/MachineCFGPrinter.cpp
@@ -17,6 +17,7 @@
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Support/GraphWriter.h"
using namespace llvm;
@@ -38,7 +39,7 @@ static cl::opt<bool>
static void writeMCFGToDotFile(MachineFunction &MF) {
std::string Filename =
- (MCFGDotFilenamePrefix + "." + MF.getName() + ".dot").str();
+ (Twine(MCFGDotFilenamePrefix) + "." + MF.getName() + ".dot").str();
errs() << "Writing '" << Filename << "'...";
std::error_code EC;
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index 8f1869b5e03a1..f431b5150d333 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -1171,7 +1171,8 @@ bool FastISel::selectCall(const User *I) {
ExtraInfo |= InlineAsm::Extra_MayUnwind;
if (Call->isConvergent())
ExtraInfo |= InlineAsm::Extra_IsConvergent;
- ExtraInfo |= IA->getDialect() * InlineAsm::Extra_AsmDialect;
+ if (IA->getDialect() == InlineAsm::AD_Intel)
+ ExtraInfo |= InlineAsm::Extra_AsmDialect;
MachineInstrBuilder MIB = BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, MIMD,
TII.get(TargetOpcode::INLINEASM));
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 065347d903033..4e39bdb74fc56 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -10243,7 +10243,8 @@ class ExtraFlags {
Flags |= InlineAsm::Extra_MayUnwind;
if (Call.isConvergent())
Flags |= InlineAsm::Extra_IsConvergent;
- Flags |= IA->getDialect() * InlineAsm::Extra_AsmDialect;
+ if (IA->getDialect() == InlineAsm::AD_Intel)
+ Flags |= InlineAsm::Extra_AsmDialect;
}
void update(const TargetLowering::AsmOperandInfo &OpInfo) {
diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp
index 9889f5d68a52f..677331bda2f61 100644
--- a/llvm/lib/FileCheck/FileCheck.cpp
+++ b/llvm/lib/FileCheck/FileCheck.cpp
@@ -1847,8 +1847,8 @@ bool FileCheck::readCheckFile(
for (StringRef PatternString : Req.ImplicitCheckNot) {
// Create a buffer with fake command line content in order to display the
// command line option responsible for the specific implicit CHECK-NOT.
- std::string Prefix = "-implicit-check-not='";
- std::string Suffix = "'";
+ StringRef Prefix = "-implicit-check-not='";
+ StringRef Suffix = "'";
std::unique_ptr<MemoryBuffer> CmdLine = MemoryBuffer::getMemBufferCopy(
(Prefix + PatternString + Suffix).str(), "command line");
@@ -2596,7 +2596,8 @@ Error FileCheckPatternContext::defineCmdlineVariables(
// Append a copy of the command-line definition adapted to use the same
// format as in the input file to be able to reuse
// parseNumericSubstitutionBlock.
- CmdlineDefsDiag += (DefPrefix + CmdlineDef + " (parsed as: [[").str();
+ CmdlineDefsDiag +=
+ (Twine(DefPrefix) + CmdlineDef + " (parsed as: [[").str();
std::string SubstitutionStr = std::string(CmdlineDef);
SubstitutionStr[EqIdx] = ':';
CmdlineDefsIndices.push_back(
diff --git a/llvm/lib/Frontend/OpenMP/OMP.cpp b/llvm/lib/Frontend/OpenMP/OMP.cpp
index 8bfe3a6a7cc4a..ff584568d3cd9 100644
--- a/llvm/lib/Frontend/OpenMP/OMP.cpp
+++ b/llvm/lib/Frontend/OpenMP/OMP.cpp
@@ -12,6 +12,7 @@
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Demangle/Demangle.h"
#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"
#include "llvm/Support/ErrorHandling.h"
@@ -241,7 +242,7 @@ std::string prettifyFunctionName(StringRef FunctionName) {
auto ParentName = deconstructOpenMPKernelName(FunctionName, LineNo);
if (LineNo == 0)
return FunctionName.str();
- return ("omp target in " + ParentName + " @ " + std::to_string(LineNo) +
+ return (Twine("omp target in ") + ParentName + " @ " + Twine(LineNo) +
" (" + FunctionName + ")")
.str();
}
diff --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
index 8b196c461f195..57d313f7b0abf 100644
--- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
@@ -1180,6 +1180,10 @@ void OpenMPIRBuilder::applyDeclareTargetGlobalReplacements() {
DeclareTargetGlobalReplacements.clear();
}
+OpenMPIRBuilder::OpenMPIRBuilder(Module &M)
+ : M(M), Builder(M.getContext()), OffloadInfoManager(this),
+ T(M.getTargetTriple()), IsFinalized(false) {}
+
OpenMPIRBuilder::~OpenMPIRBuilder() {
assert(OutlineInfos.empty() && "There must be no outstanding outlinings");
}
@@ -4655,7 +4659,7 @@ Expected<Function *> OpenMPIRBuilder::emitGlobalToListReduceFunction(
std::string OpenMPIRBuilder::getReductionFuncName(StringRef Name) const {
std::string Suffix =
createPlatformSpecificName({"omp", "reduction", "reduction_func"});
- return (Name + Suffix).str();
+ return (Twine(Name) + Suffix).str();
}
Expected<Function *> OpenMPIRBuilder::createReductionFunction(
@@ -13420,4 +13424,4 @@ void CanonicalLoopInfo::invalidate() {
Cond = nullptr;
Latch = nullptr;
Exit = nullptr;
-}
+}
\ No newline at end of file
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp
index 75fc03c22222b..a91fbef8b0f8a 100644
--- a/llvm/lib/IR/AutoUpgrade.cpp
+++ b/llvm/lib/IR/AutoUpgrade.cpp
@@ -7873,7 +7873,7 @@ std::string llvm::UpgradeDataLayoutString(StringRef DL, StringRef TT) {
// to fix more IR than it breaks.
// Intel MCU is an exception and uses 4-byte-alignment.
if (!T.isOSIAMCU()) {
- std::string I128 = "-i128:128";
+ StringRef I128 = "-i128:128";
if (StringRef Ref = Res; !Ref.contains(I128)) {
SmallVector<StringRef, 4> Groups;
Regex R("^(e(-[mpi][^-]*)*)((-[^mpi][^-]*)*)$");
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp
index 3af4851d39d94..d73176778a926 100644
--- a/llvm/lib/MC/ELFObjectWriter.cpp
+++ b/llvm/lib/MC/ELFObjectWriter.cpp
@@ -610,8 +610,8 @@ void ELFWriter::computeSymbolTable(const RevGroupMapTy &RevGroupMap) {
for (; FileNameIt != FileNames.end() && FileNameIt->second <= MSD.Order;
++FileNameIt) {
Writer.writeSymbol(StrTabBuilder.getOffset(FileNameIt->first),
- ELF::STT_FILE | ELF::STB_LOCAL, 0, 0, ELF::STV_DEFAULT,
- ELF::SHN_ABS, true);
+ llvm::to_underlying(ELF::STT_FILE) | llvm::to_underlying(ELF::STB_LOCAL), 0, 0,
+ ELF::STV_DEFAULT, ELF::SHN_ABS, true);
++Index;
}
@@ -623,8 +623,8 @@ void ELFWriter::computeSymbolTable(const RevGroupMapTy &RevGroupMap) {
}
for (; FileNameIt != FileNames.end(); ++FileNameIt) {
Writer.writeSymbol(StrTabBuilder.getOffset(FileNameIt->first),
- ELF::STT_FILE | ELF::STB_LOCAL, 0, 0, ELF::STV_DEFAULT,
- ELF::SHN_ABS, true);
+ llvm::to_underlying(ELF::STT_FILE) | llvm::to_underlying(ELF::STB_LOCAL), 0, 0,
+ ELF::STV_DEFAULT, ELF::SHN_ABS, true);
++Index;
}
diff --git a/llvm/lib/MC/MCObjectFileInfo.cpp b/llvm/lib/MC/MCObjectFileInfo.cpp
index 5dd5a63fda9cf..3435df0762490 100644
--- a/llvm/lib/MC/MCObjectFileInfo.cpp
+++ b/llvm/lib/MC/MCObjectFileInfo.cpp
@@ -66,7 +66,7 @@ static bool useCompactUnwind(const Triple &T) {
void MCObjectFileInfo::initMachOMCObjectFileInfo(const Triple &T) {
EHFrameSection = Ctx->getMachOSection(
"__TEXT", "__eh_frame",
- MachO::S_COALESCED | MachO::S_ATTR_NO_TOC |
+ llvm::to_underlying(MachO::S_COALESCED) | MachO::S_ATTR_NO_TOC |
MachO::S_ATTR_STRIP_STATIC_SYMS | MachO::S_ATTR_LIVE_SUPPORT,
SectionKind::getReadOnly());
@@ -160,7 +160,7 @@ void MCObjectFileInfo::initMachOMCObjectFileInfo(const Triple &T) {
if (ArchTy == Triple::ppc || ArchTy == Triple::ppc64) {
TextCoalSection
= Ctx->getMachOSection("__TEXT", "__textcoal_nt",
- MachO::S_COALESCED |
+ llvm::to_underlying(MachO::S_COALESCED) |
MachO::S_ATTR_PURE_INSTRUCTIONS,
SectionKind::getText());
ConstTextCoalSection
diff --git a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp
index ba6813c142266..25e6cab7d9fee 100644
--- a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp
+++ b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp
@@ -269,7 +269,7 @@ class DarwinAsmParser : public MCAsmParserExtension {
bool parseSectionDirectiveSymbolStub(StringRef, SMLoc) {
return parseSectionSwitch("__TEXT","__symbol_stub",
- MachO::S_SYMBOL_STUBS |
+ llvm::to_underlying(MachO::S_SYMBOL_STUBS) |
MachO::S_ATTR_PURE_INSTRUCTIONS,
// FIXME: Different on PPC and ARM.
0, 16);
@@ -277,7 +277,7 @@ class DarwinAsmParser : public MCAsmParserExtension {
bool parseSectionDirectivePICSymbolStub(StringRef, SMLoc) {
return parseSectionSwitch("__TEXT","__picsymbol_stub",
- MachO::S_SYMBOL_STUBS |
+ llvm::to_underlying(MachO::S_SYMBOL_STUBS) |
MachO::S_ATTR_PURE_INSTRUCTIONS, 0, 26);
}
@@ -365,13 +365,13 @@ class DarwinAsmParser : public MCAsmParserExtension {
bool parseSectionDirectiveObjCClsRefs(StringRef, SMLoc) {
return parseSectionSwitch("__OBJC", "__cls_refs",
MachO::S_ATTR_NO_DEAD_STRIP |
- MachO::S_LITERAL_POINTERS, 4);
+ llvm::to_underlying(MachO::S_LITERAL_POINTERS), 4);
}
bool parseSectionDirectiveObjCMessageRefs(StringRef, SMLoc) {
return parseSectionSwitch("__OBJC", "__message_refs",
MachO::S_ATTR_NO_DEAD_STRIP |
- MachO::S_LITERAL_POINTERS, 4);
+ llvm::to_underlying(MachO::S_LITERAL_POINTERS), 4);
}
bool parseSectionDirectiveObjCSymbols(StringRef, SMLoc) {
diff --git a/llvm/lib/Support/CodeGenCoverage.cpp b/llvm/lib/Support/CodeGenCoverage.cpp
index 2e35019e12c16..e1b04bbc64e16 100644
--- a/llvm/lib/Support/CodeGenCoverage.cpp
+++ b/llvm/lib/Support/CodeGenCoverage.cpp
@@ -83,9 +83,8 @@ bool CodeGenCoverage::emit(StringRef CoveragePrefix,
// We can handle locking within a process easily enough but we don't want to
// manage it between multiple processes. Use the process ID to ensure no
// more than one process is ever writing to the same file at the same time.
- std::string Pid = llvm::to_string(sys::Process::getProcessId());
-
- std::string CoverageFilename = (CoveragePrefix + Pid).str();
+ std::string CoverageFilename =
+ (CoveragePrefix + Twine(sys::Process::getProcessId())).str();
std::error_code EC;
sys::fs::OpenFlags OpenFlags = sys::fs::OF_Append;
diff --git a/llvm/lib/Support/VirtualFileSystem.cpp b/llvm/lib/Support/VirtualFileSystem.cpp
index c67206487e362..38c77ab8fd817 100644
--- a/llvm/lib/Support/VirtualFileSystem.cpp
+++ b/llvm/lib/Support/VirtualFileSystem.cpp
@@ -708,7 +708,7 @@ class InMemoryFile : public InMemoryNode {
llvm::MemoryBuffer *getBuffer() const { return Buffer.get(); }
std::string toString(unsigned Indent) const override {
- return (std::string(Indent, ' ') + Stat.getName() + "\n").str();
+ return (Twine(std::string(Indent, ' ')) + Stat.getName() + "\n").str();
}
static bool classof(const InMemoryNode *N) {
@@ -830,7 +830,7 @@ class InMemoryDirectory : public InMemoryNode {
std::string toString(unsigned Indent) const override {
std::string Result =
- (std::string(Indent, ' ') + Stat.getName() + "\n").str();
+ (Twine(std::string(Indent, ' ')) + Stat.getName() + "\n").str();
for (const auto &Entry : Entries)
Result += Entry.second->toString(Indent + 2);
return Result;
diff --git a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
index 92fb77b1e6436..5a018a1b46d3d 100644
--- a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
@@ -81,7 +81,7 @@ static MCCFIInstruction createScaledCFAInPrivateWave(const GCNSubtarget &ST,
<< uint8_t(dwarf::DW_OP_lit0 + WavefrontSizeLog2)
<< uint8_t(dwarf::DW_OP_shl)
<< uint8_t(dwarf::DW_OP_lit0 +
- dwarf::DW_ASPACE_LLVM_AMDGPU_private_wave)
+ llvm::to_underlying(dwarf::DW_ASPACE_LLVM_AMDGPU_private_wave))
<< uint8_t(dwarf::DW_OP_LLVM_user)
<< uint8_t(dwarf::DW_OP_LLVM_form_aspace_address);
@@ -780,7 +780,7 @@ void SIFrameLowering::emitEntryFunctionPrologue(MachineFunction &MF,
4, // length
static_cast<char>(dwarf::DW_OP_lit0),
static_cast<char>(dwarf::DW_OP_lit0 +
- dwarf::DW_ASPACE_LLVM_AMDGPU_private_wave),
+ llvm::to_underlying(dwarf::DW_ASPACE_LLVM_AMDGPU_private_wave)),
static_cast<char>(dwarf::DW_OP_LLVM_user),
static_cast<char>(dwarf::DW_OP_LLVM_form_aspace_address)};
static StringRef CFAEncodedInstUserOps =
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
index 467fdbfd0e05b..e30c2a262eede 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
@@ -16,6 +16,7 @@
#include "ARMInstPrinter.h"
#include "ARMMCAsmInfo.h"
#include "TargetInfo/ARMTargetInfo.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCCodeEmitter.h"
@@ -144,7 +145,8 @@ std::string ARM_MC::ParseARMTriple(const Triple &TT, StringRef CPU) {
ARM::ArchKind ArchID = ARM::parseArch(TT.getArchName());
if (ArchID != ARM::ArchKind::INVALID && (CPU.empty() || CPU == "generic"))
- ARMArchFeature = (ARMArchFeature + "+" + ARM::getArchName(ArchID)).str();
+ ARMArchFeature =
+ (Twine(ARMArchFeature) + "+" + ARM::getArchName(ArchID)).str();
if (TT.isThumb()) {
if (!ARMArchFeature.empty())
diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
index 129f3071a3a88..088cebe1d53d5 100644
--- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
@@ -628,7 +628,7 @@ struct OpRef {
assert(!R.isValue());
return OpRef(R.OpN & (Undef | Index | HiHalf));
}
- static OpRef undef(MVT Ty) { return OpRef(Undef | Ty.SimpleTy); }
+ static OpRef undef(MVT Ty) { return OpRef(Undef | llvm::to_underlying(Ty.SimpleTy)); }
// Direct value.
SDValue OpV = SDValue();
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
index 4581da3c7b9c3..1895fa2eb9920 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
@@ -252,7 +252,7 @@ bool LoongArchAsmBackend::relaxAlign(MCFragment &F, unsigned &Size) {
Ctx);
}
MCFixup Fixup =
- MCFixup::create(0, Expr, FirstLiteralRelocationKind + ELF::R_LARCH_ALIGN);
+ MCFixup::create(0, Expr, FirstLiteralRelocationKind + llvm::to_underlying(ELF::R_LARCH_ALIGN));
F.setVarFixups({Fixup});
F.setLinkerRelaxable();
return true;
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp
index 91433d8eaddc5..7dc31e4b8cc17 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp
@@ -89,6 +89,12 @@ void LoongArchTargetELFStreamer::finish() {
W.setELFHeaderEFlags(EFlags);
}
+LoongArchELFStreamer::LoongArchELFStreamer(MCContext &C,
+ std::unique_ptr<MCAsmBackend> MAB,
+ std::unique_ptr<MCObjectWriter> MOW,
+ std::unique_ptr<MCCodeEmitter> MCE)
+ : MCELFStreamer(C, std::move(MAB), std::move(MOW), std::move(MCE)) {}
+
void LoongArchELFStreamer::emitCodeAlignment(Align Alignment,
const MCSubtargetInfo &STI,
unsigned MaxBytesToEmit) {
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h
index a9e5ec2bb527c..46c359000134d 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h
@@ -33,8 +33,7 @@ class LoongArchELFStreamer : public MCELFStreamer {
public:
LoongArchELFStreamer(MCContext &C, std::unique_ptr<MCAsmBackend> MAB,
std::unique_ptr<MCObjectWriter> MOW,
- std::unique_ptr<MCCodeEmitter> MCE)
- : MCELFStreamer(C, std::move(MAB), std::move(MOW), std::move(MCE)) {}
+ std::unique_ptr<MCCodeEmitter> MCE);
void emitCodeAlignment(Align Alignment, const MCSubtargetInfo &STI,
unsigned MaxBytesToEmit) override;
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
index 8146a15eba295..3a77bd154ca2c 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
@@ -166,7 +166,7 @@ LoongArchMCCodeEmitter::getExprOpValue(const MCInst &MI, const MCOperand &MO,
// `la.abs`.
Fixups.push_back(
MCFixup::create(0, MCConstantExpr::create(0, Ctx),
- FirstLiteralRelocationKind + ELF::R_LARCH_MARK_LA));
+ FirstLiteralRelocationKind + llvm::to_underlying(ELF::R_LARCH_MARK_LA)));
[[fallthrough]];
case ELF::R_LARCH_ABS_HI20:
FixupKind = LoongArch::fixup_loongarch_abs_hi20;
diff --git a/llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp b/llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
index 9d2904dec0ad0..0599796dc79dc 100644
--- a/llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
+++ b/llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
@@ -16,6 +16,7 @@
#include "M68kMCAsmInfo.h"
#include "TargetInfo/M68kTargetInfo.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCELFStreamer.h"
#include "llvm/MC/MCInstPrinter.h"
#include "llvm/MC/MCInstrInfo.h"
@@ -62,7 +63,7 @@ static MCSubtargetInfo *createM68kMCSubtargetInfo(const Triple &TT,
std::string ArchFS = ParseM68kTriple(TT, CPU);
if (!FS.empty()) {
if (!ArchFS.empty()) {
- ArchFS = (ArchFS + "," + FS).str();
+ ArchFS = (Twine(ArchFS) + "," + FS).str();
} else {
ArchFS = FS.str();
}
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
index 7b2d2be503d72..0a64998a213c7 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
@@ -157,7 +157,7 @@ void PPCELFStreamer::emitGOTToPCRelReloc(const MCInst &Inst) {
MCFragment *F = LabelSym->getFragment();
F->addFixup(
MCFixup::create(LabelSym->getOffset() - 8, SubExpr2,
- FirstLiteralRelocationKind + ELF::R_PPC64_PCREL_OPT));
+ FirstLiteralRelocationKind + llvm::to_underlying(ELF::R_PPC64_PCREL_OPT)));
emitLabel(CurrentLocation, Inst.getLoc());
}
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h
index d686a8ea2a228..cd73179274110 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h
@@ -13,6 +13,8 @@
#ifndef LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCPREDICATES_H
#define LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCPREDICATES_H
+#include "llvm/ADT/STLForwardCompat.h"
+
// GCC #defines PPC on Linux but we use it as our namespace name
#undef PPC
@@ -66,6 +68,14 @@ namespace PPC {
BR_HINT_MASK = 0X3
};
+ inline unsigned operator&(Predicate P, BranchHintBit B) {
+ return llvm::to_underlying(P) & llvm::to_underlying(B);
+ }
+
+ inline unsigned operator&(BranchHintBit B, Predicate P) {
+ return P & B;
+ }
+
/// Invert the specified predicate. != -> ==, < -> >=.
Predicate InvertPredicate(Predicate Opcode);
diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
index 315d129aeb5fb..9c9fb67968a7d 100644
--- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
+++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
@@ -350,7 +350,7 @@ bool RISCVAsmBackend::relaxAlign(MCFragment &F, unsigned &Size) {
Size = F.getAlignment().value() - MinNopLen;
auto *Expr = MCConstantExpr::create(Size, getContext());
MCFixup Fixup =
- MCFixup::create(0, Expr, FirstLiteralRelocationKind + ELF::R_RISCV_ALIGN);
+ MCFixup::create(0, Expr, FirstLiteralRelocationKind + llvm::to_underlying(ELF::R_RISCV_ALIGN));
F.setVarFixups({Fixup});
F.setLinkerRelaxable();
return true;
diff --git a/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp b/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
index 20cf9275af8df..4c8bb7feb408b 100644
--- a/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
@@ -17,6 +17,7 @@
#include "SPIRVUtils.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringTable.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/IntrinsicsSPIRV.h"
#include <regex>
@@ -339,12 +340,12 @@ lookupBuiltin(StringRef DemangledCall,
// If argument-type name prefix was added, look up the builtin again.
if (!Prefix.empty() &&
- (Builtin = SPIRV::lookupBuiltin((Prefix + BuiltinName).str(), Set)))
+ (Builtin = SPIRV::lookupBuiltin((Twine(Prefix) + BuiltinName).str(), Set)))
return std::make_unique<SPIRV::IncomingCall>(
BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
if (!Suffix.empty() &&
- (Builtin = SPIRV::lookupBuiltin((BuiltinName + Suffix).str(), Set)))
+ (Builtin = SPIRV::lookupBuiltin((Twine(BuiltinName) + Suffix).str(), Set)))
return std::make_unique<SPIRV::IncomingCall>(
BuiltinName, Builtin, ReturnRegister, ReturnType, Arguments);
}
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp
index 383c96e8cca73..bd0bcabb0e239 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp
@@ -172,7 +172,7 @@ uint64_t SystemZMCCodeEmitter::getImmOpValue(const MCInst &MI, unsigned OpNum,
unsigned MIBitSize = MCII.get(MI.getOpcode()).getSize() * 8;
uint32_t RawBitOffset = getOperandBitOffset(MI, OpNum, STI);
unsigned OpBitSize =
- SystemZ::MCFixupKindInfos[Kind - FirstTargetFixupKind].TargetSize;
+ SystemZ::MCFixupKindInfos[llvm::to_underlying(Kind) - FirstTargetFixupKind].TargetSize;
uint32_t BitOffset = MIBitSize - RawBitOffset - OpBitSize;
addFixup(Fixups, BitOffset >> 3, MO.getExpr(), Kind);
return 0;
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
index 6bb03c614af19..35d4e8dc4e177 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
@@ -29,6 +29,7 @@
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringExtras.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/BinaryFormat/Wasm.h"
#include "llvm/CodeGen/Analysis.h"
@@ -588,7 +589,7 @@ void WebAssemblyAsmPrinter::EmitTargetFeatures(Module &M) {
// Read target features and linkage policies from module metadata
SmallVector<FeatureEntry, 4> EmittedFeatures;
auto EmitFeature = [&](std::string Feature) {
- std::string MDKey = (StringRef("wasm-feature-") + Feature).str();
+ std::string MDKey = (Twine("wasm-feature-") + Feature).str();
Metadata *Policy = M.getModuleFlag(MDKey);
if (Policy == nullptr)
return;
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
index ab535c81dbf42..8f2374426b806 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
@@ -542,7 +542,7 @@ void X86MCCodeEmitter::emitImmediate(const MCOperand &DispOp, SMLoc Loc,
assert(ImmOffset == 0);
if (Size == 8) {
- FixupKind = FirstLiteralRelocationKind + ELF::R_X86_64_GOTPC64;
+ FixupKind = FirstLiteralRelocationKind + llvm::to_underlying(ELF::R_X86_64_GOTPC64);
} else {
assert(Size == 4);
FixupKind = X86::reloc_global_offset_table;
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
index 210b1266de23c..c45c804ad6cca 100644
--- a/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
+++ b/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
@@ -213,7 +213,8 @@ bool SanitizerBinaryMetadata::run() {
// Calls to the initialization functions with different versions cannot be
// merged. Give the structors unique names based on the version, which will
// also be used as the COMDAT key.
- const std::string StructorPrefix = (MI->FunctionPrefix + VersionStr).str();
+ const std::string StructorPrefix =
+ (Twine(MI->FunctionPrefix) + VersionStr).str();
// We declare the _add and _del functions as weak, and only call them if
// there is a valid symbol linked. This allows building binaries with
>From 32133d684f5ca974f31a0974625da2e0790de600 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:55:32 +0000
Subject: [PATCH 02/10] [mlir] C++26 mechanical fixes
---
mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp | 5 +++--
mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitRoutine.cpp | 3 ++-
.../LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp | 2 +-
mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp | 3 ++-
4 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
index 317d6b607e08b..3c003edb6b958 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
@@ -11,6 +11,7 @@
//===----------------------------------------------------------------------===//
#include "mlir/Dialect/LLVMIR/LLVMAttrs.h"
+#include "llvm/ADT/Twine.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "mlir/Dialect/Ptr/IR/PtrEnums.h"
@@ -646,10 +647,10 @@ FailureOr<Attribute> TargetFeaturesAttr::query(DataLayoutEntryKey key) {
if (contains(stringKey))
return UnitAttr::get(getContext());
- if (contains((std::string("+") + stringKey.strref()).str()))
+ if (contains((llvm::Twine("+") + stringKey.strref()).str()))
return BoolAttr::get(getContext(), true);
- if (contains((std::string("-") + stringKey.strref()).str()))
+ if (contains((llvm::Twine("-") + stringKey.strref()).str()))
return BoolAttr::get(getContext(), false);
return failure();
diff --git a/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitRoutine.cpp b/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitRoutine.cpp
index 16b71189a4f94..645584bcb4bd6 100644
--- a/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitRoutine.cpp
+++ b/mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitRoutine.cpp
@@ -46,6 +46,7 @@
//===----------------------------------------------------------------------===//
#include "mlir/Dialect/OpenACC/Transforms/Passes.h"
+#include "llvm/ADT/Twine.h"
#include "mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h"
#include "mlir/Dialect/OpenACC/OpenACC.h"
@@ -98,7 +99,7 @@ class ACCImplicitRoutine
acc::RoutineOp createRoutineOp(OpBuilder &builder, Location loc,
FunctionOpInterface &callee) {
std::string routineName =
- (accRoutinePrefix + std::to_string(routineCounter++)).str();
+ (llvm::Twine(accRoutinePrefix) + std::to_string(routineCounter++)).str();
auto routineOp = acc::RoutineOp::create(
builder, loc,
/* sym_name=*/builder.getStringAttr(routineName),
diff --git a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
index e5e3e0cc6d944..5a0411b68d20d 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
@@ -7056,7 +7056,7 @@ getRefPtrIfDeclareTarget(Value value,
gOp.getSymName());
return moduleTranslation.getLLVMModule()->getNamedValue(
- (gOp.getSymName().str() + suffix.str()).str());
+ (gOp.getSymName() + suffix).str());
}
}
return nullptr;
diff --git a/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp b/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
index 81c598ebbef0a..6f771130b23be 100644
--- a/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
@@ -1162,7 +1162,8 @@ static void populateBuilderRegions(const Operator &op,
const NamedRegion ®ion = op.getRegion(op.getNumRegions() - 1);
std::string name =
- ("num_" + region.name.take_front().lower() + region.name.drop_front())
+ (Twine("num_") + region.name.take_front().lower() +
+ region.name.drop_front())
.str();
builderArgs.push_back(name);
builderLines.push_back(
>From 22028fc0d7a6bd32a70e421735b73019cd260422 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:56:00 +0000
Subject: [PATCH 03/10] [clang] C++26 mechanical fixes
---
clang/include/clang/Frontend/FrontendAction.h | 3 ++-
clang/include/clang/Sema/CodeCompleteConsumer.h | 13 +++++++++++--
clang/lib/ASTMatchers/Dynamic/Parser.cpp | 3 ++-
clang/lib/Basic/DiagnosticIDs.cpp | 4 ++--
clang/lib/Basic/Targets/AArch64.cpp | 15 ++++++++-------
clang/lib/Basic/Targets/AMDGPU.cpp | 2 +-
clang/lib/Basic/Targets/ARM.cpp | 12 ++++++------
clang/lib/Basic/Targets/AVR.cpp | 3 ++-
clang/lib/Basic/Targets/BPF.cpp | 2 +-
clang/lib/Basic/Targets/DirectX.cpp | 2 +-
clang/lib/Basic/Targets/Hexagon.cpp | 2 +-
clang/lib/Basic/Targets/LoongArch.cpp | 8 ++++----
clang/lib/Basic/Targets/Mips.cpp | 2 +-
clang/lib/Basic/Targets/NVPTX.cpp | 2 +-
clang/lib/Basic/Targets/PPC.cpp | 2 +-
clang/lib/Basic/Targets/RISCV.cpp | 10 +++++-----
clang/lib/Basic/Targets/SPIR.cpp | 2 +-
clang/lib/Basic/Targets/SystemZ.cpp | 4 ++--
clang/lib/Basic/Targets/VE.cpp | 2 +-
clang/lib/Basic/Targets/WebAssembly.cpp | 2 +-
clang/lib/Basic/Targets/X86.cpp | 6 +++---
clang/lib/Basic/Targets/XCore.cpp | 2 +-
clang/lib/CodeGen/CGDecl.cpp | 2 +-
clang/lib/CodeGen/CGExpr.cpp | 2 +-
clang/lib/CodeGen/CGExprAgg.cpp | 2 +-
clang/lib/CodeGen/CGObjCGNU.cpp | 12 ++++++------
clang/lib/CodeGen/CGOpenMPRuntime.cpp | 4 ++--
clang/lib/Driver/Driver.cpp | 4 ++--
clang/lib/Driver/ToolChains/Gnu.cpp | 9 +++++----
clang/lib/Driver/ToolChains/MinGW.cpp | 11 +++++++----
clang/lib/Frontend/FrontendAction.cpp | 4 ++++
.../Checkers/ExprInspectionChecker.cpp | 10 +++++-----
clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp | 2 +-
clang/lib/Tooling/Core/Replacement.cpp | 2 +-
clang/lib/Tooling/Tooling.cpp | 2 +-
clang/utils/TableGen/ClangBuiltinsEmitter.cpp | 3 ++-
36 files changed, 97 insertions(+), 75 deletions(-)
diff --git a/clang/include/clang/Frontend/FrontendAction.h b/clang/include/clang/Frontend/FrontendAction.h
index 8be732ceb40a0..19718f5a2582d 100644
--- a/clang/include/clang/Frontend/FrontendAction.h
+++ b/clang/include/clang/Frontend/FrontendAction.h
@@ -161,8 +161,9 @@ class FrontendAction {
std::unique_ptr<ASTUnit> takeCurrentASTUnit();
+ void setCurrentInput(const FrontendInputFile &CurrentInput);
void setCurrentInput(const FrontendInputFile &CurrentInput,
- std::unique_ptr<ASTUnit> AST = nullptr);
+ std::unique_ptr<ASTUnit> AST);
/// @}
/// @name Supported Modes
diff --git a/clang/include/clang/Sema/CodeCompleteConsumer.h b/clang/include/clang/Sema/CodeCompleteConsumer.h
index c26f4e33d289c..e5772f80d5f40 100644
--- a/clang/include/clang/Sema/CodeCompleteConsumer.h
+++ b/clang/include/clang/Sema/CodeCompleteConsumer.h
@@ -50,7 +50,7 @@ class UsingShadowDecl;
/// Default priority values for code-completion results based
/// on their kind.
-enum {
+enum CodeCompletionPriority {
/// Priority for the next initialization in a constructor initializer
/// list.
CCP_NextInitializer = 7,
@@ -101,7 +101,7 @@ enum {
/// Priority value deltas that are added to code-completion results
/// based on the context of the result.
-enum {
+enum CodeCompletionDelta {
/// The result is in a base class.
CCD_InBaseClass = 2,
@@ -130,6 +130,15 @@ enum {
CCD_BlockPropertySetter = 3
};
+constexpr unsigned operator+(CodeCompletionPriority P, CodeCompletionDelta D) {
+ return static_cast<unsigned>(llvm::to_underlying(P) +
+ llvm::to_underlying(D));
+}
+
+constexpr unsigned operator+(CodeCompletionDelta D, CodeCompletionPriority P) {
+ return P + D;
+}
+
/// Priority value factors by which we will divide or multiply the
/// priority of a code-completion result.
enum {
diff --git a/clang/lib/ASTMatchers/Dynamic/Parser.cpp b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
index baac797f09ec3..d5c6ba731dd74 100644
--- a/clang/lib/ASTMatchers/Dynamic/Parser.cpp
+++ b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
@@ -759,7 +759,8 @@ std::vector<MatcherCompletion> Parser::getNamedValueCompletions(
unsigned Specificity;
if (Entry.getValue().isConvertibleTo(AcceptedTypes, &Specificity)) {
std::string Decl =
- (Entry.getValue().getTypeAsString() + " " + Entry.getKey()).str();
+ (Twine(Entry.getValue().getTypeAsString()) + " " + Entry.getKey())
+ .str();
Result.emplace_back(Entry.getKey(), Decl, Specificity);
}
}
diff --git a/clang/lib/Basic/DiagnosticIDs.cpp b/clang/lib/Basic/DiagnosticIDs.cpp
index 3709528e497d2..b7c6b722494ec 100644
--- a/clang/lib/Basic/DiagnosticIDs.cpp
+++ b/clang/lib/Basic/DiagnosticIDs.cpp
@@ -248,8 +248,8 @@ static const StaticDiagInfoRec *GetDiagInfo(unsigned DiagID) {
unsigned ID = DiagID - DIAG_START_COMMON - 1;
#define CATEGORY(NAME, PREV) \
if (DiagID > DIAG_START_##NAME) { \
- Offset += NUM_BUILTIN_##PREV##_DIAGNOSTICS - DIAG_START_##PREV - 1; \
- ID -= DIAG_START_##NAME - DIAG_START_##PREV; \
+ Offset += llvm::to_underlying(NUM_BUILTIN_##PREV##_DIAGNOSTICS) - DIAG_START_##PREV - 1; \
+ ID -= llvm::to_underlying(DIAG_START_##NAME) - DIAG_START_##PREV; \
}
CATEGORY(DRIVER, COMMON)
CATEGORY(FRONTEND, DRIVER)
diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp
index a4841514be35e..a1d5b02cdaecb 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -26,18 +26,19 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumNeonBuiltins =
- NEON::FirstFp16Builtin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(NEON::FirstFp16Builtin) - Builtin::FirstTSBuiltin;
static constexpr int NumFp16Builtins =
- NEON::FirstTSBuiltin - NEON::FirstFp16Builtin;
+ llvm::to_underlying(NEON::FirstTSBuiltin) - NEON::FirstFp16Builtin;
static constexpr int NumSVEBuiltins =
- SVE::FirstNeonBridgeBuiltin - NEON::FirstTSBuiltin;
+ llvm::to_underlying(SVE::FirstNeonBridgeBuiltin) - NEON::FirstTSBuiltin;
static constexpr int NumSVENeonBridgeBuiltins =
- SVE::FirstTSBuiltin - SVE::FirstNeonBridgeBuiltin;
-static constexpr int NumSMEBuiltins = SME::FirstTSBuiltin - SVE::FirstTSBuiltin;
+ llvm::to_underlying(SVE::FirstTSBuiltin) - SVE::FirstNeonBridgeBuiltin;
+static constexpr int NumSMEBuiltins =
+ llvm::to_underlying(SME::FirstTSBuiltin) - SVE::FirstTSBuiltin;
static constexpr int NumAArch64Builtins =
- AArch64::LastTSBuiltin - SME::FirstTSBuiltin;
+ llvm::to_underlying(AArch64::LastTSBuiltin) - SME::FirstTSBuiltin;
static constexpr int NumBuiltins =
- AArch64::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(AArch64::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static_assert(NumBuiltins ==
(NumNeonBuiltins + NumFp16Builtins + NumSVEBuiltins +
NumSVENeonBridgeBuiltins + NumSMEBuiltins + NumAArch64Builtins));
diff --git a/clang/lib/Basic/Targets/AMDGPU.cpp b/clang/lib/Basic/Targets/AMDGPU.cpp
index c01e4c8074b24..1c2c2ecf44355 100644
--- a/clang/lib/Basic/Targets/AMDGPU.cpp
+++ b/clang/lib/Basic/Targets/AMDGPU.cpp
@@ -66,7 +66,7 @@ const LangASMap AMDGPUTargetInfo::AMDGPUAddrSpaceMap = {
} // namespace clang
static constexpr int NumBuiltins =
- clang::AMDGPU::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::AMDGPU::LastTSBuiltin) - Builtin::FirstTSBuiltin;
#define GET_BUILTIN_STR_TABLE
#include "clang/Basic/BuiltinsAMDGPU.inc"
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 0e424d031700b..15508f9a3a525 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -1045,16 +1045,16 @@ void ARMTargetInfo::getTargetDefines(const LangOptions &Opts,
}
}
-static constexpr int NumBuiltins = ARM::LastTSBuiltin - Builtin::FirstTSBuiltin;
+static constexpr int NumBuiltins = llvm::to_underlying(ARM::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static constexpr int NumNeonBuiltins =
- NEON::FirstFp16Builtin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(NEON::FirstFp16Builtin) - Builtin::FirstTSBuiltin;
static constexpr int NumFp16Builtins =
- NEON::FirstTSBuiltin - NEON::FirstFp16Builtin;
+ llvm::to_underlying(NEON::FirstTSBuiltin) - NEON::FirstFp16Builtin;
static constexpr int NumMVEBuiltins =
- ARM::FirstCDEBuiltin - NEON::FirstTSBuiltin;
+ llvm::to_underlying(ARM::FirstCDEBuiltin) - NEON::FirstTSBuiltin;
static constexpr int NumCDEBuiltins =
- ARM::FirstARMBuiltin - ARM::FirstCDEBuiltin;
-static constexpr int NumARMBuiltins = ARM::LastTSBuiltin - ARM::FirstARMBuiltin;
+ llvm::to_underlying(ARM::FirstARMBuiltin) - ARM::FirstCDEBuiltin;
+static constexpr int NumARMBuiltins = llvm::to_underlying(ARM::LastTSBuiltin) - ARM::FirstARMBuiltin;
static_assert(NumBuiltins ==
(NumNeonBuiltins + NumFp16Builtins + NumMVEBuiltins +
NumCDEBuiltins + NumARMBuiltins));
diff --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp
index 18db0a7807b53..2603fc149eee9 100644
--- a/clang/lib/Basic/Targets/AVR.cpp
+++ b/clang/lib/Basic/Targets/AVR.cpp
@@ -19,7 +19,8 @@
using namespace clang;
using namespace clang::targets;
-static constexpr int NumBuiltins = AVR::LastTSBuiltin - Builtin::FirstTSBuiltin;
+static constexpr int NumBuiltins =
+ llvm::to_underlying(AVR::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static constexpr llvm::StringTable BuiltinStrings =
CLANG_BUILTIN_STR_TABLE_START
diff --git a/clang/lib/Basic/Targets/BPF.cpp b/clang/lib/Basic/Targets/BPF.cpp
index 100769ea4cdb1..eb476c64b55e2 100644
--- a/clang/lib/Basic/Targets/BPF.cpp
+++ b/clang/lib/Basic/Targets/BPF.cpp
@@ -19,7 +19,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::BPF::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::BPF::LastTSBuiltin) - Builtin::FirstTSBuiltin;
#define GET_BUILTIN_STR_TABLE
#include "clang/Basic/BuiltinsBPF.inc"
diff --git a/clang/lib/Basic/Targets/DirectX.cpp b/clang/lib/Basic/Targets/DirectX.cpp
index ef8998dab0840..148fb7106d5f8 100644
--- a/clang/lib/Basic/Targets/DirectX.cpp
+++ b/clang/lib/Basic/Targets/DirectX.cpp
@@ -18,7 +18,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::DirectX::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::DirectX::LastTSBuiltin) - Builtin::FirstTSBuiltin;
#define GET_BUILTIN_STR_TABLE
#include "clang/Basic/BuiltinsDirectX.inc"
diff --git a/clang/lib/Basic/Targets/Hexagon.cpp b/clang/lib/Basic/Targets/Hexagon.cpp
index 615114f0fd1ea..4fb4e1f5f3e11 100644
--- a/clang/lib/Basic/Targets/Hexagon.cpp
+++ b/clang/lib/Basic/Targets/Hexagon.cpp
@@ -220,7 +220,7 @@ ArrayRef<TargetInfo::GCCRegAlias> HexagonTargetInfo::getGCCRegAliases() const {
}
static constexpr int NumBuiltins =
- clang::Hexagon::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::Hexagon::LastTSBuiltin) - Builtin::FirstTSBuiltin;
#define GET_BUILTIN_STR_TABLE
#include "clang/Basic/BuiltinsHexagon.inc"
diff --git a/clang/lib/Basic/Targets/LoongArch.cpp b/clang/lib/Basic/Targets/LoongArch.cpp
index eabb1498a4935..d85105772960c 100644
--- a/clang/lib/Basic/Targets/LoongArch.cpp
+++ b/clang/lib/Basic/Targets/LoongArch.cpp
@@ -296,13 +296,13 @@ void LoongArchTargetInfo::getTargetDefines(const LangOptions &Opts,
}
static constexpr int NumBaseBuiltins =
- LoongArch::FirstLSXBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(LoongArch::FirstLSXBuiltin) - Builtin::FirstTSBuiltin;
static constexpr int NumLSXBuiltins =
- LoongArch::FirstLASXBuiltin - LoongArch::FirstLSXBuiltin;
+ llvm::to_underlying(LoongArch::FirstLASXBuiltin) - LoongArch::FirstLSXBuiltin;
static constexpr int NumLASXBuiltins =
- LoongArch::LastTSBuiltin - LoongArch::FirstLASXBuiltin;
+ llvm::to_underlying(LoongArch::LastTSBuiltin) - LoongArch::FirstLASXBuiltin;
static constexpr int NumBuiltins =
- LoongArch::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(LoongArch::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static_assert(NumBuiltins ==
(NumBaseBuiltins + NumLSXBuiltins + NumLASXBuiltins));
diff --git a/clang/lib/Basic/Targets/Mips.cpp b/clang/lib/Basic/Targets/Mips.cpp
index 76c9081567053..f9c046aac1bad 100644
--- a/clang/lib/Basic/Targets/Mips.cpp
+++ b/clang/lib/Basic/Targets/Mips.cpp
@@ -20,7 +20,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::Mips::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::Mips::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static constexpr llvm::StringTable BuiltinStrings =
CLANG_BUILTIN_STR_TABLE_START
diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp
index de99a6718f26c..0185db5d1e65e 100644
--- a/clang/lib/Basic/Targets/NVPTX.cpp
+++ b/clang/lib/Basic/Targets/NVPTX.cpp
@@ -20,7 +20,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::NVPTX::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::NVPTX::LastTSBuiltin) - Builtin::FirstTSBuiltin;
#define GET_BUILTIN_STR_TABLE
#include "clang/Basic/BuiltinsNVPTX.inc"
diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp
index b293bdb05f241..bd1711e15de04 100644
--- a/clang/lib/Basic/Targets/PPC.cpp
+++ b/clang/lib/Basic/Targets/PPC.cpp
@@ -21,7 +21,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::PPC::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::PPC::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static constexpr llvm::StringTable BuiltinStrings =
CLANG_BUILTIN_STR_TABLE_START
diff --git a/clang/lib/Basic/Targets/RISCV.cpp b/clang/lib/Basic/Targets/RISCV.cpp
index c282136cf5fcf..fce1f46090d82 100644
--- a/clang/lib/Basic/Targets/RISCV.cpp
+++ b/clang/lib/Basic/Targets/RISCV.cpp
@@ -267,15 +267,15 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts,
}
static constexpr int NumRVVBuiltins =
- RISCVVector::FirstSiFiveBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(RISCVVector::FirstSiFiveBuiltin) - Builtin::FirstTSBuiltin;
static constexpr int NumRVVSiFiveBuiltins =
- RISCVVector::FirstAndesBuiltin - RISCVVector::FirstSiFiveBuiltin;
+ llvm::to_underlying(RISCVVector::FirstAndesBuiltin) - RISCVVector::FirstSiFiveBuiltin;
static constexpr int NumRVVAndesBuiltins =
- RISCVVector::FirstTSBuiltin - RISCVVector::FirstAndesBuiltin;
+ llvm::to_underlying(RISCVVector::FirstTSBuiltin) - RISCVVector::FirstAndesBuiltin;
static constexpr int NumRISCVBuiltins =
- RISCV::LastTSBuiltin - RISCVVector::FirstTSBuiltin;
+ llvm::to_underlying(RISCV::LastTSBuiltin) - RISCVVector::FirstTSBuiltin;
static constexpr int NumBuiltins =
- RISCV::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(RISCV::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static_assert(NumBuiltins == (NumRVVBuiltins + NumRVVSiFiveBuiltins +
NumRVVAndesBuiltins + NumRISCVBuiltins));
diff --git a/clang/lib/Basic/Targets/SPIR.cpp b/clang/lib/Basic/Targets/SPIR.cpp
index 3eb62c9051b58..546f063f8414f 100644
--- a/clang/lib/Basic/Targets/SPIR.cpp
+++ b/clang/lib/Basic/Targets/SPIR.cpp
@@ -20,7 +20,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::SPIRV::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::SPIRV::LastTSBuiltin) - Builtin::FirstTSBuiltin;
#define GET_BUILTIN_STR_TABLE
#include "clang/Basic/BuiltinsSPIRVCommon.inc"
diff --git a/clang/lib/Basic/Targets/SystemZ.cpp b/clang/lib/Basic/Targets/SystemZ.cpp
index 080a961b95d0d..96c1c5e9d822e 100644
--- a/clang/lib/Basic/Targets/SystemZ.cpp
+++ b/clang/lib/Basic/Targets/SystemZ.cpp
@@ -22,9 +22,9 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::SystemZ::LastSystemZBuiltin - Builtin::FirstTSBuiltin + 1;
+ llvm::to_underlying(clang::SystemZ::LastSystemZBuiltin) - Builtin::FirstTSBuiltin + 1;
static constexpr int NumBuiltinsZOS =
- clang::SystemZ::LastTSBuiltin - clang::SystemZ::LastSystemZBuiltin - 1;
+ llvm::to_underlying(clang::SystemZ::LastTSBuiltin) - clang::SystemZ::LastSystemZBuiltin - 1;
#define GET_BUILTIN_STR_TABLE
#include "clang/Basic/BuiltinsSystemZ.inc"
diff --git a/clang/lib/Basic/Targets/VE.cpp b/clang/lib/Basic/Targets/VE.cpp
index 5451f3c303637..329a809e36bc6 100644
--- a/clang/lib/Basic/Targets/VE.cpp
+++ b/clang/lib/Basic/Targets/VE.cpp
@@ -19,7 +19,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::VE::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::VE::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static constexpr llvm::StringTable BuiltinStrings =
CLANG_BUILTIN_STR_TABLE_START
diff --git a/clang/lib/Basic/Targets/WebAssembly.cpp b/clang/lib/Basic/Targets/WebAssembly.cpp
index a483e3d6f9b10..ab18d3330a74f 100644
--- a/clang/lib/Basic/Targets/WebAssembly.cpp
+++ b/clang/lib/Basic/Targets/WebAssembly.cpp
@@ -21,7 +21,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- clang::WebAssembly::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(clang::WebAssembly::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static constexpr llvm::StringTable BuiltinStrings =
CLANG_BUILTIN_STR_TABLE_START
diff --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp
index 8ab39b750dc99..2d20c59722b4a 100644
--- a/clang/lib/Basic/Targets/X86.cpp
+++ b/clang/lib/Basic/Targets/X86.cpp
@@ -24,10 +24,10 @@ namespace targets {
// The x86-32 builtins are a subset and prefix of the x86-64 builtins.
static constexpr int NumX86Builtins =
- X86::LastX86CommonBuiltin - Builtin::FirstTSBuiltin + 1;
+ llvm::to_underlying(X86::LastX86CommonBuiltin) - Builtin::FirstTSBuiltin + 1;
static constexpr int NumX86_64Builtins =
- X86::LastTSBuiltin - X86::FirstX86_64Builtin;
-static constexpr int NumBuiltins = X86::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(X86::LastTSBuiltin) - X86::FirstX86_64Builtin;
+static constexpr int NumBuiltins = llvm::to_underlying(X86::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static_assert(NumBuiltins == (NumX86Builtins + NumX86_64Builtins));
namespace X86 {
diff --git a/clang/lib/Basic/Targets/XCore.cpp b/clang/lib/Basic/Targets/XCore.cpp
index c725703ede5b0..2adc2bde7aa9b 100644
--- a/clang/lib/Basic/Targets/XCore.cpp
+++ b/clang/lib/Basic/Targets/XCore.cpp
@@ -19,7 +19,7 @@ using namespace clang;
using namespace clang::targets;
static constexpr int NumBuiltins =
- XCore::LastTSBuiltin - Builtin::FirstTSBuiltin;
+ llvm::to_underlying(XCore::LastTSBuiltin) - Builtin::FirstTSBuiltin;
static constexpr llvm::StringTable BuiltinStrings =
CLANG_BUILTIN_STR_TABLE_START
diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp
index 1ed8989d3f627..6365744f2254c 100644
--- a/clang/lib/CodeGen/CGDecl.cpp
+++ b/clang/lib/CodeGen/CGDecl.cpp
@@ -1170,7 +1170,7 @@ Address CodeGenModule::createUnnamedGlobalFrom(const VarDecl &D,
if (D.hasGlobalStorage())
Name = getMangledName(&D).str() + ".const";
else if (const DeclContext *DC = D.getParentFunctionOrMethod())
- Name = ("__const." + FunctionName(DC) + "." + D.getName()).str();
+ Name = (Twine("__const.") + FunctionName(DC) + "." + D.getName()).str();
else
llvm_unreachable("local variable has no parent function or method");
llvm::GlobalVariable *GV = new llvm::GlobalVariable(
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index eba802e187beb..389ee43e7535e 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -6105,7 +6105,7 @@ LValue CodeGenFunction::EmitCompoundLiteralLValue(const CompoundLiteralExpr *E){
if (QualType::DestructionKind DtorKind = E->getType().isDestructedType())
pushLifetimeExtendedDestroy(getCleanupKind(DtorKind), DeclPtr,
E->getType(), getDestroyer(DtorKind),
- DtorKind & EHCleanup);
+ bool(llvm::to_underlying(DtorKind) & llvm::to_underlying(EHCleanup)));
return Result;
}
diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp
index f18978c7a936e..07c6894e6bf4a 100644
--- a/clang/lib/CodeGen/CGExprAgg.cpp
+++ b/clang/lib/CodeGen/CGExprAgg.cpp
@@ -816,7 +816,7 @@ void AggExprEmitter::VisitCompoundLiteralExpr(CompoundLiteralExpr *E) {
if (QualType::DestructionKind DtorKind = E->getType().isDestructedType())
CGF.pushLifetimeExtendedDestroy(
CGF.getCleanupKind(DtorKind), Slot.getAddress(), E->getType(),
- CGF.getDestroyer(DtorKind), DtorKind & EHCleanup);
+ CGF.getDestroyer(DtorKind), bool(llvm::to_underlying(DtorKind) & llvm::to_underlying(EHCleanup)));
}
/// Attempt to look through various unimportant expressions to find a
diff --git a/clang/lib/CodeGen/CGObjCGNU.cpp b/clang/lib/CodeGen/CGObjCGNU.cpp
index 43e4c02411d15..29fdb49bbd5e1 100644
--- a/clang/lib/CodeGen/CGObjCGNU.cpp
+++ b/clang/lib/CodeGen/CGObjCGNU.cpp
@@ -188,7 +188,7 @@ class CGObjCGNU : public CGObjCRuntime {
}
std::string SymbolForProtocolRef(StringRef Name) {
- return (ManglePublicSymbol("OBJC_REF_PROTOCOL_") + Name).str();
+ return (Twine(ManglePublicSymbol("OBJC_REF_PROTOCOL_")) + Name).str();
}
@@ -986,13 +986,13 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
std::string SymbolForClassRef(StringRef Name, bool isWeak) {
if (isWeak)
- return (ManglePublicSymbol("OBJC_WEAK_REF_CLASS_") + Name).str();
+ return (Twine(ManglePublicSymbol("OBJC_WEAK_REF_CLASS_")) + Name).str();
else
- return (ManglePublicSymbol("OBJC_REF_CLASS_") + Name).str();
+ return (Twine(ManglePublicSymbol("OBJC_REF_CLASS_")) + Name).str();
}
/// Generate the name of a class symbol.
std::string SymbolForClass(StringRef Name) {
- return (ManglePublicSymbol("OBJC_CLASS_") + Name).str();
+ return (Twine(ManglePublicSymbol("OBJC_CLASS_")) + Name).str();
}
void CallRuntimeFunction(CGBuilderTy &B, StringRef FunctionName,
ArrayRef<llvm::Value*> Args) {
@@ -1496,8 +1496,8 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
llvm::Constant *GetConstantSelector(Selector Sel,
const std::string &TypeEncoding) override {
std::string MangledTypes = GetSymbolNameForTypeEncoding(TypeEncoding);
- auto SelVarName = (StringRef(".objc_selector_") + Sel.getAsString() + "_" +
- MangledTypes).str();
+ auto SelVarName = (Twine(".objc_selector_") + Sel.getAsString() + "_" +
+ MangledTypes).str();
if (auto *GV = TheModule.getNamedGlobal(SelVarName))
return GV;
ConstantInitBuilder builder(CGM);
diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
index 1ad07936e6f05..a9e2511138e91 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp
+++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
@@ -1260,7 +1260,7 @@ static llvm::Function *emitParallelOrTeamsOutlinedFunction(
std::string CGOpenMPRuntime::getOutlinedHelperName(StringRef Name) const {
std::string Suffix = getName({"omp_outlined"});
- return (Name + Suffix).str();
+ return (Twine(Name) + Suffix).str();
}
std::string CGOpenMPRuntime::getOutlinedHelperName(CodeGenFunction &CGF) const {
@@ -1269,7 +1269,7 @@ std::string CGOpenMPRuntime::getOutlinedHelperName(CodeGenFunction &CGF) const {
std::string CGOpenMPRuntime::getReductionFuncName(StringRef Name) const {
std::string Suffix = getName({"omp", "reduction", "reduction_func"});
- return (Name + Suffix).str();
+ return (Twine(Name) + Suffix).str();
}
llvm::Function *CGOpenMPRuntime::emitParallelOutlinedFunction(
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 7a742e404bf5c..4f57db27bd2de 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -5938,7 +5938,7 @@ void Driver::generatePrefixedToolNames(
StringRef Tool, const ToolChain &TC,
SmallVectorImpl<std::string> &Names) const {
// FIXME: Needs a better variable than TargetTriple
- Names.emplace_back((TargetTriple + "-" + Tool).str());
+ Names.emplace_back((Twine(TargetTriple) + "-" + Tool).str());
Names.emplace_back(Tool);
}
@@ -5962,7 +5962,7 @@ std::string Driver::GetProgramPath(StringRef Name, const ToolChain &TC) const {
if (ScanDirForExecutable(P, Name))
return std::string(P);
} else {
- SmallString<128> P((PrefixDir + Name).str());
+ SmallString<128> P((Twine(PrefixDir) + Name).str());
if (llvm::sys::fs::can_execute(Twine(P)))
return std::string(P);
}
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 7591d9f7fa418..0aa46b1a58b63 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -2122,11 +2122,11 @@ void Generic_GCC::GCCInstallationDetector::init(
StringRef OSEnv = TargetTriple.getOSAndEnvironmentName();
if (TargetTriple.getEnvironment() == llvm::Triple::GNUX32)
OSEnv = "linux-gnu";
- TripleNoVendor = (TargetTriple.getArchName().str() + '-' + OSEnv).str();
+ TripleNoVendor = (TargetTriple.getArchName() + "-" + OSEnv).str();
CandidateTripleAliases.push_back(TripleNoVendor);
if (BiarchVariantTriple.getArch() != llvm::Triple::UnknownArch) {
BiarchTripleNoVendor =
- (BiarchVariantTriple.getArchName().str() + '-' + OSEnv).str();
+ (BiarchVariantTriple.getArchName() + "-" + OSEnv).str();
CandidateBiarchTripleAliases.push_back(BiarchTripleNoVendor);
}
}
@@ -2939,9 +2939,10 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple(
// using LI to ensure stable path separators across Windows and
// Linux.
Installation.GCCInstallPath =
- (LibDir + "/" + LibSuffix + "/" + VersionText).str();
+ (Twine(LibDir) + "/" + LibSuffix + "/" + VersionText).str();
Installation.GCCParentLibPath =
- (Installation.GCCInstallPath + "/../" + Suffix.ReversePath).str();
+ (Twine(Installation.GCCInstallPath) + "/../" + Suffix.ReversePath)
+ .str();
Installation.SelectedMultilib = getMultilib();
Installations.push_back(Installation);
diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp
index 2ab9ba4ea7cda..e93f7b0a7862d 100644
--- a/clang/lib/Driver/ToolChains/MinGW.cpp
+++ b/clang/lib/Driver/ToolChains/MinGW.cpp
@@ -564,11 +564,14 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple,
SubdirName = CandidateSubdir;
getFilePaths().push_back(
- (Base + SubdirName + llvm::sys::path::get_separator() + "lib").str());
+ (Twine(Base) + SubdirName + llvm::sys::path::get_separator() + "lib")
+ .str());
// Gentoo
getFilePaths().push_back(
- (Base + SubdirName + llvm::sys::path::get_separator() + "mingw/lib").str());
+ (Twine(Base) + SubdirName + llvm::sys::path::get_separator() +
+ "mingw/lib")
+ .str());
// Only include <base>/lib if we're not cross compiling (not even for
// windows->windows to a different arch), or if the sysroot has been set
@@ -829,8 +832,8 @@ void toolchains::MinGW::AddClangCXXStdlibIncludeArgs(
switch (GetCXXStdlibType(DriverArgs)) {
case ToolChain::CST_Libcxx: {
- std::string TargetDir = (Base + "include" + Slash + getTripleString() +
- Slash + "c++" + Slash + "v1")
+ std::string TargetDir = (Twine(Base) + "include" + Slash +
+ getTripleString() + Slash + "c++" + Slash + "v1")
.str();
if (getDriver().getVFS().exists(TargetDir))
addSystemInclude(DriverArgs, CC1Args, TargetDir);
diff --git a/clang/lib/Frontend/FrontendAction.cpp b/clang/lib/Frontend/FrontendAction.cpp
index 877ef662fe8da..4e94ab834366f 100644
--- a/clang/lib/Frontend/FrontendAction.cpp
+++ b/clang/lib/Frontend/FrontendAction.cpp
@@ -389,6 +389,10 @@ void FrontendAction::EndSourceFileAction() {
getCompilerInstance().getPreprocessor().SetEnableMacroExpansion();
}
+void FrontendAction::setCurrentInput(const FrontendInputFile &CurrentInput) {
+ setCurrentInput(CurrentInput, nullptr);
+}
+
void FrontendAction::setCurrentInput(const FrontendInputFile &CurrentInput,
std::unique_ptr<ASTUnit> AST) {
this->CurrentInput = CurrentInput;
diff --git a/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
index 93e3e3ca2322a..9e2bdd1e074b8 100644
--- a/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
@@ -483,8 +483,8 @@ class SymbolExpressor
if (std::optional<std::string> Str = lookup(S))
return Str;
if (std::optional<std::string> Str = Visit(S->getLHS()))
- return (*Str + " " + BinaryOperator::getOpcodeStr(S->getOpcode()) + " " +
- std::to_string(S->getRHS()->getLimitedValue()) +
+ return (Twine(*Str) + " " + BinaryOperator::getOpcodeStr(S->getOpcode()) +
+ " " + std::to_string(S->getRHS()->getLimitedValue()) +
(S->getRHS()->isUnsigned() ? "U" : ""))
.str();
return std::nullopt;
@@ -495,8 +495,8 @@ class SymbolExpressor
return Str;
if (std::optional<std::string> Str1 = Visit(S->getLHS()))
if (std::optional<std::string> Str2 = Visit(S->getRHS()))
- return (*Str1 + " " + BinaryOperator::getOpcodeStr(S->getOpcode()) +
- " " + *Str2)
+ return (Twine(*Str1) + " " +
+ BinaryOperator::getOpcodeStr(S->getOpcode()) + " " + *Str2)
.str();
return std::nullopt;
}
@@ -505,7 +505,7 @@ class SymbolExpressor
if (std::optional<std::string> Str = lookup(S))
return Str;
if (std::optional<std::string> Str = Visit(S->getOperand()))
- return (UnaryOperator::getOpcodeStr(S->getOpcode()) + *Str).str();
+ return (Twine(UnaryOperator::getOpcodeStr(S->getOpcode())) + *Str).str();
return std::nullopt;
}
diff --git a/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp b/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
index 43500f619896a..cfec79ff61586 100644
--- a/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
+++ b/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
@@ -87,7 +87,7 @@ class TextDiagnostics : public PathDiagnosticConsumer {
: "")
.str();
reportPiece(WarnID, PD->getLocation().asLocation(),
- (PD->getShortDescription() + WarningMsg).str(),
+ (Twine(PD->getShortDescription()) + WarningMsg).str(),
PD->path.back()->getRanges(), PD->path.back()->getFixits());
// First, add extra notes, even if paths should not be included.
diff --git a/clang/lib/Tooling/Core/Replacement.cpp b/clang/lib/Tooling/Core/Replacement.cpp
index 10bdc223e33f2..30ecf9ff7df04 100644
--- a/clang/lib/Tooling/Core/Replacement.cpp
+++ b/clang/lib/Tooling/Core/Replacement.cpp
@@ -393,7 +393,7 @@ class MergedReplacement {
unsigned End = Offset + Length;
StringRef RText = R.getReplacementText();
StringRef Tail = RText.substr(End - R.getOffset());
- Text = (Text + Tail).str();
+ Text += Tail;
if (R.getOffset() + RText.size() > End) {
Length = R.getOffset() + R.getLength() - Offset;
MergeSecond = true;
diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp
index 71307d1fe7307..100078e902400 100644
--- a/clang/lib/Tooling/Tooling.cpp
+++ b/clang/lib/Tooling/Tooling.cpp
@@ -299,7 +299,7 @@ void addTargetAndModeForProgramName(std::vector<std::string> &CommandLine,
}
if (ShouldAddTarget) {
CommandLine.insert(++CommandLine.begin(),
- (TargetOPT + TargetMode.TargetPrefix).str());
+ (Twine(TargetOPT) + TargetMode.TargetPrefix).str());
}
}
diff --git a/clang/utils/TableGen/ClangBuiltinsEmitter.cpp b/clang/utils/TableGen/ClangBuiltinsEmitter.cpp
index 22c81522f9e41..83fdec71f4a73 100644
--- a/clang/utils/TableGen/ClangBuiltinsEmitter.cpp
+++ b/clang/utils/TableGen/ClangBuiltinsEmitter.cpp
@@ -480,7 +480,8 @@ void collectBuiltins(const Record *BuiltinRecord,
for (StringRef Spelling :
BuiltinRecord->getValueAsListOfStrings("Spellings")) {
auto FullSpelling =
- (Templates.IsPrefix ? Affix + Spelling : Spelling + Affix).str();
+ (Templates.IsPrefix ? Twine(Affix) + Spelling : Twine(Spelling) + Affix)
+ .str();
BuiltinType BT = BuiltinType::Builtin;
if (BuiltinRecord->isSubClassOf("AtomicBuiltin")) {
BT = BuiltinType::AtomicBuiltin;
>From 415f8c6c68d1370223f435151a728165979248e6 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:56:07 +0000
Subject: [PATCH 04/10] [clang-tools-extra] C++26 mechanical fixes
---
clang-tools-extra/clang-tidy/ClangTidy.cpp | 2 +-
clang-tools-extra/clang-tidy/ClangTidyCheck.cpp | 12 +++++++-----
.../clang-tidy/modernize/RawStringLiteralCheck.cpp | 2 +-
.../clang-tidy/modernize/UseUsingCheck.cpp | 3 ++-
.../performance/InefficientVectorOperationCheck.cpp | 3 ++-
.../clang-tidy/readability/IdentifierNamingCheck.cpp | 2 +-
.../readability/SimplifyBooleanExprCheck.cpp | 3 ++-
7 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/clang-tools-extra/clang-tidy/ClangTidy.cpp b/clang-tools-extra/clang-tidy/ClangTidy.cpp
index d065bb2c4bcfc..a93d1b789648f 100644
--- a/clang-tools-extra/clang-tidy/ClangTidy.cpp
+++ b/clang-tools-extra/clang-tidy/ClangTidy.cpp
@@ -505,7 +505,7 @@ std::vector<std::string> ClangTidyASTConsumerFactory::getCheckNames() {
for (const auto &AnalyzerCheck : getAnalyzerCheckersAndPackages(
Context, Context.canEnableAnalyzerAlphaCheckers()))
CheckNames.emplace_back(
- (AnalyzerCheckNamePrefix + AnalyzerCheck.first).str());
+ (Twine(AnalyzerCheckNamePrefix) + AnalyzerCheck.first).str());
#endif // CLANG_TIDY_ENABLE_STATIC_ANALYZER
llvm::sort(CheckNames);
diff --git a/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp
index 64fbac524adae..e9637593207c2 100644
--- a/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp
+++ b/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp
@@ -55,8 +55,9 @@ ClangTidyCheck::OptionsView::OptionsView(
std::optional<StringRef>
ClangTidyCheck::OptionsView::get(StringRef LocalName) const {
if (Context->getOptionsCollector())
- Context->getOptionsCollector()->insert((NamePrefix + LocalName).str());
- const auto &Iter = CheckOptions.find((NamePrefix + LocalName).str());
+ Context->getOptionsCollector()->insert(
+ (Twine(NamePrefix) + LocalName).str());
+ const auto &Iter = CheckOptions.find((Twine(NamePrefix) + LocalName).str());
if (Iter != CheckOptions.end())
return StringRef(Iter->getValue().Value);
return std::nullopt;
@@ -129,7 +130,7 @@ ClangTidyCheck::OptionsView::getLocalOrGlobal<bool>(StringRef LocalName) const {
void ClangTidyCheck::OptionsView::store(ClangTidyOptions::OptionMap &Options,
StringRef LocalName,
StringRef Value) const {
- Options[(NamePrefix + LocalName).str()] = Value;
+ Options[(Twine(NamePrefix) + LocalName).str()] = Value;
}
void ClangTidyCheck::OptionsView::storeInt(ClangTidyOptions::OptionMap &Options,
@@ -156,11 +157,12 @@ ClangTidyCheck::OptionsView::getEnumInt(StringRef LocalName,
ArrayRef<NameAndValue> Mapping,
bool CheckGlobal) const {
if (!CheckGlobal && Context->getOptionsCollector())
- Context->getOptionsCollector()->insert((NamePrefix + LocalName).str());
+ Context->getOptionsCollector()->insert(
+ (Twine(NamePrefix) + LocalName).str());
const auto Iter =
CheckGlobal
? findPriorityOption(CheckOptions, NamePrefix, LocalName, Context)
- : CheckOptions.find((NamePrefix + LocalName).str());
+ : CheckOptions.find((Twine(NamePrefix) + LocalName).str());
if (Iter == CheckOptions.end())
return std::nullopt;
diff --git a/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp b/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp
index 18a63bb0e73ad..edb49274a9d16 100644
--- a/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp
@@ -157,7 +157,7 @@ static std::string createRawStringLiteral(const StringLiteral *Literal,
return (R"(R"()" + Bytes + R"lit()")lit" + UserDefinedSuffix.value_or(""))
.str();
- return (R"(R")" + Delimiter + "(" + Bytes + ")" + Delimiter + R"(")" +
+ return (Twine(R"(R")") + Delimiter + "(" + Bytes + ")" + Delimiter + R"(")" +
UserDefinedSuffix.value_or(""))
.str();
}
diff --git a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
index 504a2c40bcfff..803fdab256303 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
@@ -478,7 +478,8 @@ void UseUsingCheck::check(const MatchFinder::MatchResult &Result) {
(TypeExpr.front() == ' ' || TypeExpr.front() == '\t'))
Assign = " =";
- const std::string Replacement = (Using + Name + Assign + TypeExpr).str();
+ const std::string Replacement =
+ (Twine(Using) + Name + Assign + TypeExpr).str();
Diag << FixItHint::CreateReplacement(ReplaceRange, Replacement);
}
} // namespace clang::tidy::modernize
diff --git a/clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp b/clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
index 93cd3a2229a25..e75f0b5239fde 100644
--- a/clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
@@ -266,7 +266,8 @@ void InefficientVectorOperationCheck::check(
<< AppendCall->getMethodDecl()->getDeclName();
if (!ReserveSize.empty()) {
const std::string ReserveStmt =
- (VarName + PartialReserveStmt + "(" + ReserveSize + ");\n").str();
+ (Twine(VarName) + PartialReserveStmt + "(" + ReserveSize + ");\n")
+ .str();
Diag << FixItHint::CreateInsertion(LoopStmt->getBeginLoc(), ReserveStmt);
}
}
diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
index 279a7f8df5abf..eda80542ece89 100644
--- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
@@ -1130,7 +1130,7 @@ std::string IdentifierNamingCheck::fixupWithStyle(
if (Mid.empty())
Mid = "_";
- return (Style.Prefix + HungarianPrefix + Mid + Style.Suffix +
+ return (Twine(Style.Prefix) + HungarianPrefix + Mid + Style.Suffix +
(KeepTrailingUnderscore ? "_" : ""))
.str();
}
diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
index 3a63b6f84eed3..5213337aa732f 100644
--- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
@@ -745,7 +745,8 @@ void SimplifyBooleanExprCheck::replaceWithReturnCondition(
const StringRef Terminator = isa<CompoundStmt>(If->getElse()) ? ";" : "";
const std::string Condition =
replacementExpression(Context, Negated, If->getCond());
- const std::string Replacement = ("return " + Condition + Terminator).str();
+ const std::string Replacement =
+ (Twine("return ") + Condition + Terminator).str();
const SourceLocation Start = BoolLiteral->getBeginLoc();
const bool HasReplacement =
>From 5d38924eebec729ede093b78118861d248bf4058 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:56:17 +0000
Subject: [PATCH 05/10] [lld] C++26 mechanical fixes
---
lld/COFF/Symbols.cpp | 2 +-
lld/ELF/InputSection.cpp | 2 +-
lld/MachO/InputFiles.cpp | 4 ++--
lld/MachO/InputSection.cpp | 4 ++--
lld/MachO/SyntheticSections.cpp | 20 +++++++++++++-------
lld/wasm/InputChunks.cpp | 2 +-
lld/wasm/InputElement.h | 2 +-
lld/wasm/InputFiles.cpp | 2 +-
8 files changed, 22 insertions(+), 16 deletions(-)
diff --git a/lld/COFF/Symbols.cpp b/lld/COFF/Symbols.cpp
index ba4f95d14bc64..b75a3104c50f2 100644
--- a/lld/COFF/Symbols.cpp
+++ b/lld/COFF/Symbols.cpp
@@ -36,7 +36,7 @@ std::string maybeDemangleSymbol(const COFFLinkerContext &ctx,
std::string demangled = demangle(demangleInput);
if (demangled != demangleInput)
return prefix + demangled;
- return (prefix + prefixless).str();
+ return (Twine(prefix) + prefixless).str();
}
return std::string(symName);
}
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp
index 13baaa5b8c2ad..754634725cc3f 100644
--- a/lld/ELF/InputSection.cpp
+++ b/lld/ELF/InputSection.cpp
@@ -36,7 +36,7 @@ using namespace lld::elf;
// Returns a string to construct an error message.
std::string elf::toStr(Ctx &ctx, const InputSectionBase *sec) {
- return (toStr(ctx, sec->file) + ":(" + sec->name + ")").str();
+ return (Twine(toStr(ctx, sec->file)) + ":(" + sec->name + ")").str();
}
const ELFSyncStream &elf::operator<<(const ELFSyncStream &s,
diff --git a/lld/MachO/InputFiles.cpp b/lld/MachO/InputFiles.cpp
index abf7cf4e01b62..1061574a3853c 100644
--- a/lld/MachO/InputFiles.cpp
+++ b/lld/MachO/InputFiles.cpp
@@ -93,11 +93,11 @@ std::string lld::toString(const InputFile *f) {
if (f->archiveName.empty())
return std::string(f->getName());
- return (f->archiveName + "(" + path::filename(f->getName()) + ")").str();
+ return (Twine(f->archiveName) + "(" + path::filename(f->getName()) + ")").str();
}
std::string lld::toString(const Section &sec) {
- return (toString(sec.file) + ":(" + sec.name + ")").str();
+ return (Twine(toString(sec.file)) + ":(" + sec.name + ")").str();
}
SetVector<InputFile *> macho::inputFiles;
diff --git a/lld/MachO/InputSection.cpp b/lld/MachO/InputSection.cpp
index d977830161a8e..b8b6bfb4c6931 100644
--- a/lld/MachO/InputSection.cpp
+++ b/lld/MachO/InputSection.cpp
@@ -160,7 +160,7 @@ std::string InputSection::getSourceLocation(uint64_t off) const {
std::string lineStr = (":" + Twine(line)).str();
if (filename == path)
return filename + lineStr;
- return (filename + lineStr + " (" + path + lineStr + ")").str();
+ return (Twine(filename) + lineStr + " (" + path + lineStr + ")").str();
};
// First, look up a function for a given offset.
@@ -410,5 +410,5 @@ bool macho::isGccExceptTabSection(const InputSection *isec) {
}
std::string lld::toString(const InputSection *isec) {
- return (toString(isec->getFile()) + ":(" + isec->getName() + ")").str();
+ return (Twine(toString(isec->getFile())) + ":(" + isec->getName() + ")").str();
}
diff --git a/lld/MachO/SyntheticSections.cpp b/lld/MachO/SyntheticSections.cpp
index 1f388b329aedf..dda506652ec8f 100644
--- a/lld/MachO/SyntheticSections.cpp
+++ b/lld/MachO/SyntheticSections.cpp
@@ -279,7 +279,8 @@ void RebaseSection::finalizeContents() {
return;
raw_svector_ostream os{contents};
- os << static_cast<uint8_t>(REBASE_OPCODE_SET_TYPE_IMM | REBASE_TYPE_POINTER);
+ os << static_cast<uint8_t>(llvm::to_underlying(REBASE_OPCODE_SET_TYPE_IMM) |
+ llvm::to_underlying(REBASE_TYPE_POINTER));
llvm::sort(locations, [](const Location &a, const Location &b) {
return a.isec->getVA(a.offset) < b.isec->getVA(b.offset);
@@ -584,8 +585,9 @@ static void encodeDylibOrdinal(int16_t ordinal, raw_svector_ostream &os) {
static void encodeWeakOverride(const Defined *defined,
raw_svector_ostream &os) {
- os << static_cast<uint8_t>(BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM |
- BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION)
+ os << static_cast<uint8_t>(
+ llvm::to_underlying(BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM) |
+ llvm::to_underlying(BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION))
<< defined->getName() << '\0';
}
@@ -645,7 +647,8 @@ void BindingSection::finalizeContents() {
if (sym->isWeakRef())
flags |= BIND_SYMBOL_FLAGS_WEAK_IMPORT;
os << flags << sym->getName() << '\0'
- << static_cast<uint8_t>(BIND_OPCODE_SET_TYPE_IMM | BIND_TYPE_POINTER);
+ << static_cast<uint8_t>(llvm::to_underlying(BIND_OPCODE_SET_TYPE_IMM) |
+ llvm::to_underlying(BIND_TYPE_POINTER));
int16_t ordinal = ordinalForSymbol(*sym);
if (ordinal != lastOrdinal) {
encodeDylibOrdinal(ordinal, os);
@@ -684,7 +687,8 @@ void WeakBindingSection::finalizeContents() {
std::vector<BindingEntry> &bindings = p.second;
os << static_cast<uint8_t>(BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM)
<< sym->getName() << '\0'
- << static_cast<uint8_t>(BIND_OPCODE_SET_TYPE_IMM | BIND_TYPE_POINTER);
+ << static_cast<uint8_t>(llvm::to_underlying(BIND_OPCODE_SET_TYPE_IMM) |
+ llvm::to_underlying(BIND_TYPE_POINTER));
std::vector<BindIR> opcodes;
for (const BindingEntry &b : bindings)
encodeBinding(b.target.isec->parent,
@@ -705,7 +709,8 @@ void WeakBindingSection::writeTo(uint8_t *buf) const {
StubsSection::StubsSection()
: SyntheticSection(segment_names::text, section_names::stubs) {
- flags = S_SYMBOL_STUBS | S_ATTR_SOME_INSTRUCTIONS | S_ATTR_PURE_INSTRUCTIONS;
+ flags = llvm::to_underlying(S_SYMBOL_STUBS) | S_ATTR_SOME_INSTRUCTIONS |
+ S_ATTR_PURE_INSTRUCTIONS;
// The stubs section comprises machine instructions, which are aligned to
// 4 bytes on the archs we care about.
align = 4;
@@ -857,7 +862,8 @@ ConcatInputSection *ObjCSelRefsHelper::makeSelRef(StringRef methname) {
write64le(selrefData, methnameOffset);
ConcatInputSection *objcSelref =
makeSyntheticInputSection(segment_names::data, section_names::objcSelrefs,
- S_LITERAL_POINTERS | S_ATTR_NO_DEAD_STRIP,
+ llvm::to_underlying(S_LITERAL_POINTERS) |
+ S_ATTR_NO_DEAD_STRIP,
ArrayRef<uint8_t>{selrefData, wordSize},
/*align=*/wordSize);
assert(objcSelref->live);
diff --git a/lld/wasm/InputChunks.cpp b/lld/wasm/InputChunks.cpp
index 605d49f08fde7..af7a8c936e087 100644
--- a/lld/wasm/InputChunks.cpp
+++ b/lld/wasm/InputChunks.cpp
@@ -52,7 +52,7 @@ bool relocIs64(uint8_t relocType) {
}
std::string toString(const wasm::InputChunk *c) {
- return (toString(c->file) + ":(" + c->name + ")").str();
+ return (Twine(toString(c->file)) + ":(" + c->name + ")").str();
}
namespace wasm {
diff --git a/lld/wasm/InputElement.h b/lld/wasm/InputElement.h
index c2a24c8ff5f4e..5502ea1c6e783 100644
--- a/lld/wasm/InputElement.h
+++ b/lld/wasm/InputElement.h
@@ -98,7 +98,7 @@ class InputTable : public InputElement {
} // namespace wasm
inline std::string toString(const wasm::InputElement *d) {
- return (toString(d->file) + ":(" + d->getName() + ")").str();
+ return (Twine(toString(d->file)) + ":(" + d->getName() + ")").str();
}
} // namespace lld
diff --git a/lld/wasm/InputFiles.cpp b/lld/wasm/InputFiles.cpp
index f5595f4bf25c9..41b9f20349c64 100644
--- a/lld/wasm/InputFiles.cpp
+++ b/lld/wasm/InputFiles.cpp
@@ -40,7 +40,7 @@ std::string toString(const wasm::InputFile *file) {
if (file->archiveName.empty())
return std::string(file->getName());
- return (file->archiveName + "(" + file->getName() + ")").str();
+ return (Twine(file->archiveName) + "(" + file->getName() + ")").str();
}
namespace wasm {
>From 149eb3bf7ec04018bf7ad4ae8e9965c928ed12f5 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:56:24 +0000
Subject: [PATCH 06/10] [lldb] C++26 mechanical fixes
---
lldb/include/lldb/Core/EmulateInstruction.h | 5 ++---
.../Interfaces/ScriptedBreakpointInterface.h | 2 +-
lldb/source/Core/Diagnostics.cpp | 3 ++-
lldb/source/Core/EmulateInstruction.cpp | 7 +++++++
lldb/source/Core/SourceManager.cpp | 2 +-
.../ExpressionParser/Clang/ClangFunctionCaller.cpp | 7 +++++++
.../ExpressionParser/Clang/ClangFunctionCaller.h | 3 ++-
.../ExpressionParser/Clang/ClangUtilityFunction.cpp | 11 +++++++++++
.../ExpressionParser/Clang/ClangUtilityFunction.h | 6 ++++--
.../ExpressionParser/Clang/CppModuleConfiguration.cpp | 3 ++-
lldb/source/Plugins/Protocol/MCP/Tool.cpp | 2 +-
11 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/lldb/include/lldb/Core/EmulateInstruction.h b/lldb/include/lldb/Core/EmulateInstruction.h
index f661bb7ab6483..b0f2fcd9452b0 100644
--- a/lldb/include/lldb/Core/EmulateInstruction.h
+++ b/lldb/include/lldb/Core/EmulateInstruction.h
@@ -42,8 +42,7 @@ using BreakpointLocations = std::vector<lldb::addr_t>;
class SingleStepBreakpointLocationsPredictor {
public:
SingleStepBreakpointLocationsPredictor(
- std::unique_ptr<EmulateInstruction> emulator_up)
- : m_emulator_up{std::move(emulator_up)} {}
+ std::unique_ptr<EmulateInstruction> emulator_up);
virtual llvm::Expected<BreakpointLocations> GetBreakpointLocations();
@@ -52,7 +51,7 @@ class SingleStepBreakpointLocationsPredictor {
return 4;
}
- virtual ~SingleStepBreakpointLocationsPredictor() = default;
+ virtual ~SingleStepBreakpointLocationsPredictor();
protected:
// This function retrieves the address of the next instruction as it appears
diff --git a/lldb/include/lldb/Interpreter/Interfaces/ScriptedBreakpointInterface.h b/lldb/include/lldb/Interpreter/Interfaces/ScriptedBreakpointInterface.h
index 7328aa26db65d..28d714477b981 100644
--- a/lldb/include/lldb/Interpreter/Interfaces/ScriptedBreakpointInterface.h
+++ b/lldb/include/lldb/Interpreter/Interfaces/ScriptedBreakpointInterface.h
@@ -26,7 +26,7 @@ class ScriptedBreakpointInterface : virtual public ScriptedInterface {
/// any breakpoint locations it found in that module.
virtual bool ResolverCallback(SymbolContext sym_ctx) { return true; }
virtual lldb::SearchDepth GetDepth() { return lldb::eSearchDepthModule; }
- virtual std::optional<std::string> GetShortHelp() { return nullptr; }
+ virtual std::optional<std::string> GetShortHelp() { return {}; }
/// WasHit returns the breakpoint location SP for the location that was "hit".
virtual lldb::BreakpointLocationSP
WasHit(lldb::StackFrameSP frame_sp, lldb::BreakpointLocationSP bp_loc_sp) {
diff --git a/lldb/source/Core/Diagnostics.cpp b/lldb/source/Core/Diagnostics.cpp
index 08adcaebdf038..6bdaae0417b25 100644
--- a/lldb/source/Core/Diagnostics.cpp
+++ b/lldb/source/Core/Diagnostics.cpp
@@ -26,6 +26,7 @@
#include "lldb/Version/Version.h"
#include "llvm/ADT/STLExtras.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/FormatVariadic.h"
@@ -212,7 +213,7 @@ static std::string CaptureCommand(Debugger &debugger, llvm::StringRef command) {
CommandReturnObject result(/*colors=*/false);
debugger.GetCommandInterpreter().HandleCommand(command.str().c_str(),
eLazyBoolNo, result);
- return (result.GetOutputString() + result.GetErrorString()).str();
+ return (llvm::Twine(result.GetOutputString()) + result.GetErrorString()).str();
}
namespace {
diff --git a/lldb/source/Core/EmulateInstruction.cpp b/lldb/source/Core/EmulateInstruction.cpp
index 6d774c64babbe..d342a32763503 100644
--- a/lldb/source/Core/EmulateInstruction.cpp
+++ b/lldb/source/Core/EmulateInstruction.cpp
@@ -614,6 +614,13 @@ bool EmulateInstruction::CreateFunctionEntryUnwind(UnwindPlan &unwind_plan) {
return false;
}
+SingleStepBreakpointLocationsPredictor::SingleStepBreakpointLocationsPredictor(
+ std::unique_ptr<EmulateInstruction> emulator_up)
+ : m_emulator_up{std::move(emulator_up)} {}
+
+SingleStepBreakpointLocationsPredictor::
+ ~SingleStepBreakpointLocationsPredictor() = default;
+
llvm::Expected<BreakpointLocations>
SingleStepBreakpointLocationsPredictor::GetBreakpointLocations() {
if (!m_emulator_up->ReadInstruction()) {
diff --git a/lldb/source/Core/SourceManager.cpp b/lldb/source/Core/SourceManager.cpp
index bec772fe584f6..8be69a321d74a 100644
--- a/lldb/source/Core/SourceManager.cpp
+++ b/lldb/source/Core/SourceManager.cpp
@@ -273,7 +273,7 @@ size_t SourceManager::DisplaySourceLinesWithLineNumbersUsingLastFile(
auto debugger_sp = m_debugger_wp.lock();
if (should_show_stop_line_with_ansi(debugger_sp)) {
current_line_highlight = ansi::FormatAnsiTerminalCodes(
- (debugger_sp->GetStopShowLineMarkerAnsiPrefix() +
+ (llvm::Twine(debugger_sp->GetStopShowLineMarkerAnsiPrefix()) +
current_line_highlight +
debugger_sp->GetStopShowLineMarkerAnsiSuffix())
.str());
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp
index 76c24454ffbbf..64c0457fd2e55 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp
@@ -62,6 +62,13 @@ ClangFunctionCaller::ClangFunctionCaller(ExecutionContextScope &exe_scope,
// Destructor
ClangFunctionCaller::~ClangFunctionCaller() = default;
+ClangFunctionCaller::ClangFunctionCallerHelper::ClangFunctionCallerHelper(
+ ClangFunctionCaller &owner)
+ : m_owner(owner) {}
+
+ClangFunctionCaller::ClangFunctionCallerHelper::~ClangFunctionCallerHelper() =
+ default;
+
unsigned
ClangFunctionCaller::CompileFunction(lldb::ThreadSP thread_to_use_sp,
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h b/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h
index 9329ce76ec3bd..e688098af6a91 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h
@@ -64,7 +64,8 @@ class ClangFunctionCaller : public FunctionCaller {
// LLVM RTTI support
static char ID;
- ClangFunctionCallerHelper(ClangFunctionCaller &owner) : m_owner(owner) {}
+ ClangFunctionCallerHelper(ClangFunctionCaller &owner);
+ ~ClangFunctionCallerHelper() override;
/// Return the object that the parser should use when resolving external
/// values. May be NULL if everything should be self-contained.
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp
index 112ce9be7bd1a..ac07d285c58e5 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp
@@ -176,6 +176,17 @@ bool ClangUtilityFunction::Install(DiagnosticManager &diagnostic_manager,
char ClangUtilityFunction::ClangUtilityFunctionHelper::ID;
+ClangUtilityFunction::ClangUtilityFunctionHelper::~ClangUtilityFunctionHelper() =
+ default;
+
+void ClangUtilityFunction::ClangUtilityFunctionHelper::ResetDeclMap() {
+ m_expr_decl_map_up.reset();
+}
+
+void ClangUtilityFunction::ResetDeclMap() {
+ m_type_system_helper.ResetDeclMap();
+}
+
void ClangUtilityFunction::ClangUtilityFunctionHelper::ResetDeclMap(
ExecutionContext &exe_ctx, bool keep_result_in_memory) {
std::shared_ptr<ClangASTImporter> ast_importer;
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h b/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h
index 72ff84f3ceaf7..0d9892c574bf3 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h
@@ -62,7 +62,7 @@ class ClangUtilityFunction : public UtilityFunction {
ClangExpressionDeclMap *DeclMap() { return m_type_system_helper.DeclMap(); }
- void ResetDeclMap() { m_type_system_helper.ResetDeclMap(); }
+ void ResetDeclMap();
void ResetDeclMap(ExecutionContext &exe_ctx, bool keep_result_in_memory) {
m_type_system_helper.ResetDeclMap(exe_ctx, keep_result_in_memory);
@@ -79,13 +79,15 @@ class ClangUtilityFunction : public UtilityFunction {
// LLVM RTTI support
static char ID;
+ ~ClangUtilityFunctionHelper() override;
+
/// Return the object that the parser should use when resolving external
/// values. May be NULL if everything should be self-contained.
ClangExpressionDeclMap *DeclMap() override {
return m_expr_decl_map_up.get();
}
- void ResetDeclMap() { m_expr_decl_map_up.reset(); }
+ void ResetDeclMap();
void ResetDeclMap(ExecutionContext &exe_ctx, bool keep_result_in_memory);
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.cpp b/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.cpp
index cfef40f4ead0f..be1310b46c80e 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/CppModuleConfiguration.cpp
@@ -9,6 +9,7 @@
#include "CppModuleConfiguration.h"
#include "ClangHost.h"
+#include "llvm/ADT/Twine.h"
#include "lldb/Host/FileSystem.h"
#include "llvm/TargetParser/Triple.h"
#include <optional>
@@ -81,7 +82,7 @@ bool CppModuleConfiguration::analyzeFile(const FileSpec &f,
posix_dir.consume_back("c++/v1");
// Check if this is a target-specific libc++ include directory.
return m_std_target_inc.TrySet(
- (posix_dir + triple.str() + "/c++/v1").str());
+ (llvm::Twine(posix_dir) + triple.str() + "/c++/v1").str());
}
std::optional<llvm::StringRef> inc_path;
diff --git a/lldb/source/Plugins/Protocol/MCP/Tool.cpp b/lldb/source/Plugins/Protocol/MCP/Tool.cpp
index ec4599bf040a1..6f7bea9cfa265 100644
--- a/lldb/source/Plugins/Protocol/MCP/Tool.cpp
+++ b/lldb/source/Plugins/Protocol/MCP/Tool.cpp
@@ -53,7 +53,7 @@ createTextResult(std::string output, bool is_error = false) {
}
std::string to_uri(DebuggerSP debugger) {
- return (kSchemeAndHost + std::to_string(debugger->GetID())).str();
+ return (llvm::Twine(kSchemeAndHost) + std::to_string(debugger->GetID())).str();
}
} // namespace
>From dd4aa0d86004c1110634c7ee76ab43da36036127 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:56:33 +0000
Subject: [PATCH 07/10] [bolt] C++26 mechanical fixes
---
bolt/lib/Passes/AsmDump.cpp | 2 +-
bolt/lib/Passes/ReorderData.cpp | 2 +-
bolt/lib/Profile/StaleProfileMatching.cpp | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/bolt/lib/Passes/AsmDump.cpp b/bolt/lib/Passes/AsmDump.cpp
index 8506d7054c4e8..cdb6fcd3e791b 100644
--- a/bolt/lib/Passes/AsmDump.cpp
+++ b/bolt/lib/Passes/AsmDump.cpp
@@ -113,7 +113,7 @@ void dumpFunction(const BinaryFunction &BF) {
std::string Filename =
opts::AsmDump.empty()
? (PrintName + ".s")
- : (opts::AsmDump + sys::path::get_separator() + PrintName + ".s")
+ : (Twine(opts::AsmDump) + sys::path::get_separator() + PrintName + ".s")
.str();
BC.outs() << "BOLT-INFO: Dumping function assembly to " << Filename << "\n";
diff --git a/bolt/lib/Passes/ReorderData.cpp b/bolt/lib/Passes/ReorderData.cpp
index cdb38021965f5..0d40605cd9c9e 100644
--- a/bolt/lib/Passes/ReorderData.cpp
+++ b/bolt/lib/Passes/ReorderData.cpp
@@ -402,7 +402,7 @@ bool ReorderData::markUnmoveableSymbols(BinaryContext &BC,
// suffix might start in one private symbol and end with the common
// suffix in another.
auto isPrivate = [&](const BinaryData *BD) {
- auto Prefix = std::string("PG") + BC.AsmInfo->getInternalSymbolPrefix();
+ auto Prefix = Twine("PG") + BC.AsmInfo->getInternalSymbolPrefix();
return BD->getName().starts_with(Prefix.str());
};
auto Range = BC.getBinaryDataForSection(Section);
diff --git a/bolt/lib/Profile/StaleProfileMatching.cpp b/bolt/lib/Profile/StaleProfileMatching.cpp
index 90562b63aed1f..6487dfde7d0f8 100644
--- a/bolt/lib/Profile/StaleProfileMatching.cpp
+++ b/bolt/lib/Profile/StaleProfileMatching.cpp
@@ -656,7 +656,7 @@ matchBlocks(BinaryContext &BC, const yaml::bolt::BinaryFunctionProfile &YamlBF,
++BC.Stats.NumStaleBlocks;
BC.Stats.StaleSampleCount += YamlBB.ExecCount;
- assert(YamlBB.Hash != 0 && "empty hash of BinaryBasicBlockProfile");
+ assert(YamlBB.Hash.value != 0 && "empty hash of BinaryBasicBlockProfile");
BlendedBlockHash YamlHash(YamlBB.Hash);
addMatchedBlock(Matcher.matchBlockStrict(YamlHash), YamlBF, YamlBB);
}
@@ -671,7 +671,7 @@ matchBlocks(BinaryContext &BC, const yaml::bolt::BinaryFunctionProfile &YamlBF,
}
// Match blocks from the profile to the blocks in CFG with loose methods.
for (const yaml::bolt::BinaryBasicBlockProfile &YamlBB : YamlBF.Blocks) {
- assert(YamlBB.Hash != 0 && "empty hash of BinaryBasicBlockProfile");
+ assert(YamlBB.Hash.value != 0 && "empty hash of BinaryBasicBlockProfile");
BlendedBlockHash YamlHash(YamlBB.Hash);
std::string CallHashStr = hashBlockCalls(IdToYamlBF, YamlBB);
>From 9ddb697df49e2718392ed0898d873569f6da3ac6 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:56:45 +0000
Subject: [PATCH 08/10] [flang] C++26 mechanical fixes
---
flang/include/flang/Common/template.h | 16 ++++++---
flang/include/flang/Evaluate/call.h | 9 +++--
flang/include/flang/Evaluate/expression.h | 9 +++--
flang/include/flang/Evaluate/variable.h | 27 ++++++++-------
flang/include/flang/Parser/parse-tree.h | 33 +++++++++++++++++--
flang/include/flang/Runtime/cpp-type.h | 2 +-
flang/lib/Evaluate/call.cpp | 11 +++++++
flang/lib/Evaluate/variable.cpp | 25 ++++++++++++++
flang/lib/Lower/ConvertVariable.cpp | 5 +--
flang/lib/Optimizer/Analysis/TBAAForest.cpp | 3 +-
flang/lib/Optimizer/CodeGen/CodeGen.cpp | 5 +--
flang/lib/Optimizer/Support/InternalNames.cpp | 5 +--
flang/lib/Semantics/runtime-type-info.cpp | 27 +++++++--------
13 files changed, 130 insertions(+), 47 deletions(-)
diff --git a/flang/include/flang/Common/template.h b/flang/include/flang/Common/template.h
index 6501994133759..3005362314ee9 100644
--- a/flang/include/flang/Common/template.h
+++ b/flang/include/flang/Common/template.h
@@ -136,11 +136,17 @@ common::IfNoLvalue<TOV, FROMV> MoveVariant(FROMV &&u) {
// types. E.g.,
// CombineTuples<std::tuple<char, int>, std::tuple<float, double>>
// is std::tuple<char, int, float, double>.
-template <typename... TUPLES> struct CombineTuplesHelper {
- static decltype(auto) f(TUPLES *...a) {
- return std::tuple_cat(std::move(*a)...);
- }
- using type = decltype(f(static_cast<TUPLES *>(nullptr)...));
+template <typename... TUPLES> struct CombineTuplesHelper;
+template <> struct CombineTuplesHelper<> {
+ using type = std::tuple<>;
+};
+template <typename... Ts> struct CombineTuplesHelper<std::tuple<Ts...>> {
+ using type = std::tuple<Ts...>;
+};
+template <typename... T1s, typename... T2s, typename... Rest>
+struct CombineTuplesHelper<std::tuple<T1s...>, std::tuple<T2s...>, Rest...> {
+ using type =
+ typename CombineTuplesHelper<std::tuple<T1s..., T2s...>, Rest...>::type;
};
template <typename... TUPLES>
using CombineTuples = typename CombineTuplesHelper<TUPLES...>::type;
diff --git a/flang/include/flang/Evaluate/call.h b/flang/include/flang/Evaluate/call.h
index f04ec6c373c88..533c5fcb0c43b 100644
--- a/flang/include/flang/Evaluate/call.h
+++ b/flang/include/flang/Evaluate/call.h
@@ -333,11 +333,10 @@ using Chevrons = std::vector<Expr<SomeType>>;
class ProcedureRef {
public:
- CLASS_BOILERPLATE(ProcedureRef)
+ ProcedureRef() = delete;
+ DECLARE_CONSTRUCTORS_AND_ASSIGNMENTS(ProcedureRef)
ProcedureRef(ProcedureDesignator &&p, ActualArguments &&a,
- bool hasAlternateReturns = false)
- : proc_{std::move(p)}, arguments_{std::move(a)},
- hasAlternateReturns_{hasAlternateReturns} {}
+ bool hasAlternateReturns = false);
~ProcedureRef();
static void Deleter(ProcedureRef *);
@@ -348,7 +347,7 @@ class ProcedureRef {
// CALL subr <<< kernel launch >>> (...); not function
Chevrons &chevrons() { return chevrons_; }
const Chevrons &chevrons() const { return chevrons_; }
- void set_chevrons(Chevrons &&chevrons) { chevrons_ = std::move(chevrons); }
+ void set_chevrons(Chevrons &&chevrons);
std::optional<Expr<SubscriptInteger>> LEN() const;
int Rank() const;
diff --git a/flang/include/flang/Evaluate/expression.h b/flang/include/flang/Evaluate/expression.h
index 48a6b635f6350..9313b76e5e553 100644
--- a/flang/include/flang/Evaluate/expression.h
+++ b/flang/include/flang/Evaluate/expression.h
@@ -545,8 +545,8 @@ class ArrayConstructor<SomeDerived>
using Base = ArrayConstructorValues<Result>;
CLASS_BOILERPLATE(ArrayConstructor)
- ArrayConstructor(const semantics::DerivedTypeSpec &spec, Base &&v)
- : Base{std::move(v)}, result_{spec} {}
+ ArrayConstructor(const semantics::DerivedTypeSpec &spec, Base &&v);
+ ~ArrayConstructor();
template <typename A>
explicit ArrayConstructor(const A &prototype)
: result_{prototype.GetType().value().GetDerivedTypeSpec()} {}
@@ -916,6 +916,11 @@ template <> class Expr<SomeType> : public ExpressionBase<SomeType> {
common::CombineVariants<TypelessExpression, CategoryExpression> u;
};
+inline ArrayConstructor<SomeDerived>::ArrayConstructor(
+ const semantics::DerivedTypeSpec &spec, Base &&v)
+ : Base{std::move(v)}, result_{spec} {}
+inline ArrayConstructor<SomeDerived>::~ArrayConstructor() = default;
+
// An assignment is either intrinsic, user-defined (with a ProcedureRef to
// specify the procedure to call), or pointer assignment (with possibly empty
// BoundsSpec or non-empty BoundsRemapping). In all cases there are Exprs
diff --git a/flang/include/flang/Evaluate/variable.h b/flang/include/flang/Evaluate/variable.h
index f510873ec2fe2..4465ff539476f 100644
--- a/flang/include/flang/Evaluate/variable.h
+++ b/flang/include/flang/Evaluate/variable.h
@@ -242,7 +242,9 @@ class ArrayRef {
// have rank > 0 only in an uppermost ArrayRef.
class CoarrayRef {
public:
- CLASS_BOILERPLATE(CoarrayRef)
+ CoarrayRef() = delete;
+ DECLARE_CONSTRUCTORS_AND_ASSIGNMENTS(CoarrayRef)
+ ~CoarrayRef();
CoarrayRef(DataRef &&, std::vector<Expr<SubscriptInteger>> &&);
const DataRef &base() const { return base_.value(); }
@@ -286,7 +288,11 @@ class CoarrayRef {
// a terminal substring range or complex component designator; use
// R901 designator for that.
struct DataRef {
- EVALUATE_UNION_CLASS_BOILERPLATE(DataRef)
+ DataRef() = delete;
+ DECLARE_CONSTRUCTORS_AND_ASSIGNMENTS(DataRef)
+ UNION_CONSTRUCTORS(DataRef)
+ ~DataRef();
+ bool operator==(const DataRef &) const;
int Rank() const;
int Corank() const;
const Symbol &GetFirstSymbol() const;
@@ -307,16 +313,11 @@ class Substring {
public:
CLASS_BOILERPLATE(Substring)
Substring(DataRef &&parent, std::optional<Expr<SubscriptInteger>> &&lower,
- std::optional<Expr<SubscriptInteger>> &&upper)
- : parent_{std::move(parent)} {
- SetBounds(lower, upper);
- }
+ std::optional<Expr<SubscriptInteger>> &&upper);
Substring(StaticDataObject::Pointer &&parent,
std::optional<Expr<SubscriptInteger>> &&lower,
- std::optional<Expr<SubscriptInteger>> &&upper)
- : parent_{std::move(parent)} {
- SetBounds(lower, upper);
- }
+ std::optional<Expr<SubscriptInteger>> &&upper);
+ ~Substring();
Expr<SubscriptInteger> lower() const;
const Expr<SubscriptInteger> *GetLower() const {
@@ -357,8 +358,10 @@ class Substring {
class ComplexPart {
public:
ENUM_CLASS(Part, RE, IM)
- CLASS_BOILERPLATE(ComplexPart)
- ComplexPart(DataRef &&z, Part p) : complex_{std::move(z)}, part_{p} {}
+ ComplexPart() = delete;
+ DECLARE_CONSTRUCTORS_AND_ASSIGNMENTS(ComplexPart)
+ ~ComplexPart();
+ ComplexPart(DataRef &&z, Part p);
DataRef &complex() { return complex_; }
const DataRef &complex() const { return complex_; }
Part part() const { return part_; }
diff --git a/flang/include/flang/Parser/parse-tree.h b/flang/include/flang/Parser/parse-tree.h
index 3e9a035d0bfee..df5b9816cc6fa 100644
--- a/flang/include/flang/Parser/parse-tree.h
+++ b/flang/include/flang/Parser/parse-tree.h
@@ -454,7 +454,16 @@ struct DeclarationConstruct {
// kind of declaration-construct will be parsed into the implicit-part,
// even if there are no IMPLICIT statements.
struct SpecificationPart {
- TUPLE_CLASS_BOILERPLATE(SpecificationPart);
+ template <typename... Ts, typename = common::NoLvalue<Ts...>>
+ SpecificationPart(Ts &&...args) : t(std::move(args)...) {}
+ using TupleTrait = std::true_type;
+ SpecificationPart(SpecificationPart &&);
+ SpecificationPart &operator=(SpecificationPart &&);
+ SpecificationPart(const SpecificationPart &) = delete;
+ SpecificationPart &operator=(const SpecificationPart &) = delete;
+ SpecificationPart() = delete;
+ ~SpecificationPart();
+
std::tuple<std::list<OpenACCDeclarativeConstruct>,
std::list<OpenMPDeclarativeConstruct>,
std::list<common::Indirection<CompilerDirective>>,
@@ -3638,6 +3647,9 @@ struct OmpObjectList {
struct OmpStylizedDeclaration {
COPY_AND_ASSIGN_BOILERPLATE(OmpStylizedDeclaration);
+ OmpStylizedDeclaration(
+ common::Reference<const OmpTypeName> type, EntityDecl &&var)
+ : type(type), var(std::move(var)) {}
// Since "Reference" isn't handled by parse-tree-visitor, add EmptyTrait,
// and visit the members by hand when needed.
using EmptyTrait = std::true_type;
@@ -4590,7 +4602,16 @@ struct OmpContainsClause {
// apply-clause ->
// APPLY( [loop-modifier :] directive-specification-list )
struct OmpApplyClause {
- TUPLE_CLASS_BOILERPLATE(OmpApplyClause);
+ template <typename... Ts, typename = common::NoLvalue<Ts...>>
+ OmpApplyClause(Ts &&...args) : t(std::move(args)...) {}
+ using TupleTrait = std::true_type;
+ OmpApplyClause(OmpApplyClause &&);
+ OmpApplyClause &operator=(OmpApplyClause &&);
+ OmpApplyClause(const OmpApplyClause &) = delete;
+ OmpApplyClause &operator=(const OmpApplyClause &) = delete;
+ OmpApplyClause() = delete;
+ ~OmpApplyClause();
+
MODIFIER_BOILERPLATE(OmpLoopModifier);
std::tuple<MODIFIERS(), std::list<OmpDirectiveSpecification>> t;
};
@@ -6026,5 +6047,13 @@ struct CUFKernelDoConstruct {
std::tuple<Directive, std::optional<DoConstruct>> t;
};
+inline SpecificationPart::SpecificationPart(SpecificationPart &&) = default;
+inline SpecificationPart &SpecificationPart::operator=(SpecificationPart &&) = default;
+inline SpecificationPart::~SpecificationPart() = default;
+
+inline OmpApplyClause::OmpApplyClause(OmpApplyClause &&) = default;
+inline OmpApplyClause &OmpApplyClause::operator=(OmpApplyClause &&) = default;
+inline OmpApplyClause::~OmpApplyClause() = default;
+
} // namespace Fortran::parser
#endif // FORTRAN_PARSER_PARSE_TREE_H_
diff --git a/flang/include/flang/Runtime/cpp-type.h b/flang/include/flang/Runtime/cpp-type.h
index cc31ce2876abc..b9e259574ed47 100644
--- a/flang/include/flang/Runtime/cpp-type.h
+++ b/flang/include/flang/Runtime/cpp-type.h
@@ -17,7 +17,7 @@
#include "flang/Common/uint128.h"
#include "flang/Runtime/complex.h"
#include <cstdint>
-#if __cplusplus >= 202302
+#if __cplusplus >= 202302 && __has_include(<stdfloat>)
#include <stdfloat>
#endif
#include <type_traits>
diff --git a/flang/lib/Evaluate/call.cpp b/flang/lib/Evaluate/call.cpp
index 57afa80a03209..9e5e52ee16d5c 100644
--- a/flang/lib/Evaluate/call.cpp
+++ b/flang/lib/Evaluate/call.cpp
@@ -303,6 +303,17 @@ int ProcedureRef::Rank() const {
}
}
+DEFINE_DEFAULT_CONSTRUCTORS_AND_ASSIGNMENTS(ProcedureRef)
+
+void ProcedureRef::set_chevrons(Chevrons &&chevrons) {
+ chevrons_ = std::move(chevrons);
+}
+
+ProcedureRef::ProcedureRef(ProcedureDesignator &&p, ActualArguments &&a,
+ bool hasAlternateReturns)
+ : proc_{std::move(p)}, arguments_{std::move(a)},
+ hasAlternateReturns_{hasAlternateReturns} {}
+
ProcedureRef::~ProcedureRef() {}
void ProcedureRef::Deleter(ProcedureRef *p) { delete p; }
diff --git a/flang/lib/Evaluate/variable.cpp b/flang/lib/Evaluate/variable.cpp
index 409fd66f81c2b..22f13014f100d 100644
--- a/flang/lib/Evaluate/variable.cpp
+++ b/flang/lib/Evaluate/variable.cpp
@@ -71,6 +71,15 @@ CoarrayRef::CoarrayRef(
DataRef &&base, std::vector<Expr<SubscriptInteger>> &&css)
: base_{std::move(base)}, cosubscript_(std::move(css)) {}
+DEFINE_DEFAULT_CONSTRUCTORS_AND_ASSIGNMENTS(CoarrayRef)
+DEFINE_DEFAULT_CONSTRUCTORS_AND_ASSIGNMENTS(DataRef)
+DEFINE_DEFAULT_CONSTRUCTORS_AND_ASSIGNMENTS(ComplexPart)
+ComplexPart::ComplexPart(DataRef &&z, Part p)
+ : complex_{std::move(z)}, part_{p} {}
+ComplexPart::~ComplexPart() = default;
+CoarrayRef::~CoarrayRef() = default;
+DataRef::~DataRef() = default;
+
std::optional<Expr<SomeInteger>> CoarrayRef::stat() const {
if (stat_) {
return stat_.value().value();
@@ -119,6 +128,22 @@ const Symbol &CoarrayRef::GetLastSymbol() const {
return base().GetLastSymbol();
}
+Substring::Substring(DataRef &&parent,
+ std::optional<Expr<SubscriptInteger>> &&lower,
+ std::optional<Expr<SubscriptInteger>> &&upper)
+ : parent_{std::move(parent)} {
+ SetBounds(lower, upper);
+}
+
+Substring::Substring(StaticDataObject::Pointer &&parent,
+ std::optional<Expr<SubscriptInteger>> &&lower,
+ std::optional<Expr<SubscriptInteger>> &&upper)
+ : parent_{std::move(parent)} {
+ SetBounds(lower, upper);
+}
+
+Substring::~Substring() = default;
+
void Substring::SetBounds(std::optional<Expr<SubscriptInteger>> &lower,
std::optional<Expr<SubscriptInteger>> &upper) {
if (lower) {
diff --git a/flang/lib/Lower/ConvertVariable.cpp b/flang/lib/Lower/ConvertVariable.cpp
index d763c47c7c72e..2098f2e72d096 100644
--- a/flang/lib/Lower/ConvertVariable.cpp
+++ b/flang/lib/Lower/ConvertVariable.cpp
@@ -47,6 +47,7 @@
#include "flang/Semantics/type.h"
#include "mlir/Dialect/OpenACC/OpenACC.h"
#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include <optional>
@@ -924,8 +925,8 @@ genInlinedInitWithMemcpy(Fortran::lower::AbstractConverter &converter,
fir::FirOpBuilder &builder = converter.getFirOpBuilder();
mlir::Location symLoc = genLocation(converter, sym);
std::string globalName = fir::NameUniquer::doGenerated(
- (converter.mangleName(*declTy->AsDerived()) + fir::kNameSeparator +
- fir::kDerivedTypeInitSuffix)
+ (llvm::Twine(converter.mangleName(*declTy->AsDerived())) +
+ fir::kNameSeparator + fir::kDerivedTypeInitSuffix)
.str());
fir::LinkageAttr linkage = builder.createInternalLinkage();
fir::GlobalOp global = builder.getNamedGlobal(globalName);
diff --git a/flang/lib/Optimizer/Analysis/TBAAForest.cpp b/flang/lib/Optimizer/Analysis/TBAAForest.cpp
index 7154785c62c75..ec8e6cfadadff 100644
--- a/flang/lib/Optimizer/Analysis/TBAAForest.cpp
+++ b/flang/lib/Optimizer/Analysis/TBAAForest.cpp
@@ -7,11 +7,12 @@
//===----------------------------------------------------------------------===//
#include "flang/Optimizer/Analysis/TBAAForest.h"
+#include "llvm/ADT/Twine.h"
#include <mlir/Dialect/LLVMIR/LLVMAttrs.h>
mlir::LLVM::TBAATagAttr
fir::TBAATree::SubtreeState::getTag(llvm::StringRef uniqueName) const {
- std::string id = (parentId + '/' + uniqueName).str();
+ std::string id = (llvm::Twine(parentId) + "/" + uniqueName).str();
mlir::LLVM::TBAATypeDescriptorAttr type =
mlir::LLVM::TBAATypeDescriptorAttr::get(
context, id, mlir::LLVM::TBAAMemberAttr::get(parent, 0));
diff --git a/flang/lib/Optimizer/CodeGen/CodeGen.cpp b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
index 8285de795118e..da103525dabfc 100644
--- a/flang/lib/Optimizer/CodeGen/CodeGen.cpp
+++ b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
@@ -66,6 +66,7 @@
#include "mlir/Target/LLVMIR/Import.h"
#include "mlir/Target/LLVMIR/ModuleTranslation.h"
#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/CommandLine.h"
@@ -1381,9 +1382,9 @@ static std::string getHeapAllocName(mlir::Operation *op, llvm::StringRef plain,
return plain.str();
switch (fir::getCudaHeapAllocMode(op)) {
case fir::CudaHeapAllocMode::Unified:
- return (plain + options.unifiedHeapAllocSuffix).str();
+ return (llvm::Twine(plain) + options.unifiedHeapAllocSuffix).str();
case fir::CudaHeapAllocMode::Managed:
- return (plain + options.managedHeapAllocSuffix).str();
+ return (llvm::Twine(plain) + options.managedHeapAllocSuffix).str();
case fir::CudaHeapAllocMode::None:
return plain.str();
}
diff --git a/flang/lib/Optimizer/Support/InternalNames.cpp b/flang/lib/Optimizer/Support/InternalNames.cpp
index 4c7d56ec2c3ed..2c3b51b32912a 100644
--- a/flang/lib/Optimizer/Support/InternalNames.cpp
+++ b/flang/lib/Optimizer/Support/InternalNames.cpp
@@ -11,6 +11,7 @@
//===----------------------------------------------------------------------===//
#include "flang/Optimizer/Support/InternalNames.h"
+#include "llvm/ADT/Twine.h"
#include "flang/Optimizer/Dialect/FIRType.h"
#include "mlir/IR/Diagnostics.h"
#include "llvm/Support/CommandLine.h"
@@ -378,7 +379,7 @@ mangleTypeDescriptorKinds(llvm::ArrayRef<std::int64_t> kinds) {
return "";
std::string result;
for (std::int64_t kind : kinds)
- result += (fir::kNameSeparator + std::to_string(kind)).str();
+ result += (llvm::Twine(fir::kNameSeparator) + std::to_string(kind)).str();
return result;
}
@@ -423,7 +424,7 @@ fir::NameUniquer::getComponentInitName(llvm::StringRef mangledTypeName,
std::string prefix =
getDerivedTypeObjectName(mangledTypeName, fir::kComponentInitSeparator);
- return (prefix + fir::kNameSeparator + componentName).str();
+ return (llvm::Twine(prefix) + fir::kNameSeparator + componentName).str();
}
llvm::StringRef
diff --git a/flang/lib/Semantics/runtime-type-info.cpp b/flang/lib/Semantics/runtime-type-info.cpp
index dd6f9e43c5015..72aa5882e5a8d 100644
--- a/flang/lib/Semantics/runtime-type-info.cpp
+++ b/flang/lib/Semantics/runtime-type-info.cpp
@@ -15,6 +15,7 @@
#include "flang/Optimizer/Support/InternalNames.h"
#include "flang/Semantics/scope.h"
#include "flang/Semantics/tools.h"
+#include "llvm/ADT/Twine.h"
#include <map>
#include <string>
@@ -451,7 +452,7 @@ const Symbol *RuntimeTableBuilder::DescribeType(
} else if (isPDTDefinitionWithKindParameters && !wantUninstantiatedPDT) {
return nullptr;
}
- std::string dtDescName{(fir::kTypeDescriptorSeparator + distinctName).str()};
+ std::string dtDescName{(llvm::Twine(fir::kTypeDescriptorSeparator) + distinctName).str()};
Scope *dtSymbolScope{const_cast<Scope *>(dtSymbol->scope())};
Scope &scope{
GetContainingNonDerivedScope(dtSymbolScope ? *dtSymbolScope : dtScope)};
@@ -524,11 +525,11 @@ const Symbol *RuntimeTableBuilder::DescribeType(
}
AddValue(dtValues, derivedTypeSchema_, "kindparameter"s,
SaveNumericPointerTarget<Int8>(scope,
- SaveObjectName((fir::kKindParameterSeparator + distinctName).str()),
+ SaveObjectName((llvm::Twine(fir::kKindParameterSeparator) + distinctName).str()),
std::move(kinds)));
AddValue(dtValues, derivedTypeSchema_, "lenparameterkind"s,
SaveNumericPointerTarget<Int1>(scope,
- SaveObjectName((fir::kLenKindSeparator + distinctName).str()),
+ SaveObjectName((llvm::Twine(fir::kLenKindSeparator) + distinctName).str()),
std::move(lenKinds)));
// Traverse the components of the derived type
if (!isPDTDefinitionWithKindParameters) {
@@ -578,14 +579,14 @@ const Symbol *RuntimeTableBuilder::DescribeType(
}
AddValue(dtValues, derivedTypeSchema_, "component"s,
SaveDerivedPointerTarget(scope,
- SaveObjectName((fir::kComponentSeparator + distinctName).str()),
+ SaveObjectName((llvm::Twine(fir::kComponentSeparator) + distinctName).str()),
std::move(dataComponents),
evaluate::ConstantSubscripts{
static_cast<evaluate::ConstantSubscript>(
dataComponents.size())}));
AddValue(dtValues, derivedTypeSchema_, "procptr"s,
SaveDerivedPointerTarget(scope,
- SaveObjectName((fir::kProcPtrSeparator + distinctName).str()),
+ SaveObjectName((llvm::Twine(fir::kProcPtrSeparator) + distinctName).str()),
std::move(procPtrComponents),
evaluate::ConstantSubscripts{
static_cast<evaluate::ConstantSubscript>(
@@ -599,7 +600,7 @@ const Symbol *RuntimeTableBuilder::DescribeType(
AddValue(dtValues, derivedTypeSchema_, bindingDescCompName,
SaveDerivedPointerTarget(scope,
SaveObjectName(
- (fir::kBindingTableSeparator + distinctName).str()),
+ (llvm::Twine(fir::kBindingTableSeparator) + distinctName).str()),
std::move(bindings),
evaluate::ConstantSubscripts{
static_cast<evaluate::ConstantSubscript>(bindings.size())}));
@@ -639,7 +640,7 @@ const Symbol *RuntimeTableBuilder::DescribeType(
AddValue(dtValues, derivedTypeSchema_, "special"s,
SaveDerivedPointerTarget(scope,
SaveObjectName(
- (fir::kSpecialBindingSeparator + distinctName).str()),
+ (llvm::Twine(fir::kSpecialBindingSeparator) + distinctName).str()),
std::move(sortedSpecials),
evaluate::ConstantSubscripts{
static_cast<evaluate::ConstantSubscript>(specials.size())}));
@@ -753,7 +754,7 @@ SomeExpr RuntimeTableBuilder::SaveNameAsPointerTarget(
Symbol &symbol{
*scope
.try_emplace(
- SaveObjectName((fir::kNameStringSeparator + name).str()),
+ SaveObjectName((llvm::Twine(fir::kNameStringSeparator) + name).str()),
Attrs{Attr::TARGET, Attr::SAVE}, std::move(object))
.first->second};
SetReadOnlyCompilerCreatedFlags(symbol);
@@ -851,7 +852,7 @@ evaluate::StructureConstructor RuntimeTableBuilder::DescribeComponent(
if (!lenParams.empty()) {
AddValue(values, componentSchema_, "lenvalue"s,
SaveDerivedPointerTarget(scope,
- SaveObjectName((fir::kLenParameterSeparator + distinctName +
+ SaveObjectName((llvm::Twine(fir::kLenParameterSeparator) + distinctName +
fir::kNameSeparator + symbol.name().ToString())
.str()),
std::move(lenParams),
@@ -876,7 +877,7 @@ evaluate::StructureConstructor RuntimeTableBuilder::DescribeComponent(
}
AddValue(values, componentSchema_, "bounds"s,
SaveDerivedPointerTarget(scope,
- SaveObjectName((fir::kBoundsSeparator + distinctName +
+ SaveObjectName((llvm::Twine(fir::kBoundsSeparator) + distinctName +
fir::kNameSeparator + symbol.name().ToString())
.str()),
std::move(bounds), evaluate::ConstantSubscripts{2, rank}));
@@ -900,7 +901,7 @@ evaluate::StructureConstructor RuntimeTableBuilder::DescribeComponent(
if (hasDataInit) {
AddValue(values, componentSchema_, "initialization"s,
SaveObjectInit(scope,
- SaveObjectName((fir::kComponentInitSeparator + distinctName +
+ SaveObjectName((llvm::Twine(fir::kComponentInitSeparator) + distinctName +
fir::kNameSeparator + symbol.name().ToString())
.str()),
object));
@@ -960,7 +961,7 @@ bool RuntimeTableBuilder::InitializeDataPointer(
const ObjectEntityDetails &object, Scope &scope, Scope &dtScope,
const std::string &distinctName) {
if (object.init().has_value()) {
- SourceName ptrDtName{SaveObjectName((fir::kDataPtrInitSeparator +
+ SourceName ptrDtName{SaveObjectName((llvm::Twine(fir::kDataPtrInitSeparator) +
distinctName + fir::kNameSeparator + symbol.name().ToString())
.str())};
Symbol &ptrDtSym{
@@ -995,7 +996,7 @@ bool RuntimeTableBuilder::InitializeDataPointer(
Structure(ptrDtDeclType, std::move(ptrInitValues))));
AddValue(values, componentSchema_, "initialization"s,
SaveObjectInit(scope,
- SaveObjectName((fir::kComponentInitSeparator + distinctName +
+ SaveObjectName((llvm::Twine(fir::kComponentInitSeparator) + distinctName +
fir::kNameSeparator + symbol.name().ToString())
.str()),
ptrInitObj));
>From b49c2c4fed0293d182078384d9af731e7500229b Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sat, 26 Sep 2026 20:56:52 +0000
Subject: [PATCH 09/10] [runtimes] C++26 mechanical fixes
---
compiler-rt/lib/orc/error.h | 2 ++
openmp/runtime/src/kmp.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/compiler-rt/lib/orc/error.h b/compiler-rt/lib/orc/error.h
index 28035095b692a..4953f69223457 100644
--- a/compiler-rt/lib/orc/error.h
+++ b/compiler-rt/lib/orc/error.h
@@ -14,6 +14,8 @@
#include "stl_extras.h"
#include <cassert>
+#include <cstdio>
+#include <cstdlib>
#include <memory>
#include <string>
#include <type_traits>
diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index 9978268b52aa0..1f3058517182e 100644
--- a/openmp/runtime/src/kmp.h
+++ b/openmp/runtime/src/kmp.h
@@ -536,7 +536,7 @@ enum _reduction_method {
#if KMP_FAST_REDUCTION_BARRIER
#define PACK_REDUCTION_METHOD_AND_BARRIER(reduction_method, barrier_type) \
- ((reduction_method) | (barrier_type))
+ ((int)(reduction_method) | (int)(barrier_type))
#define UNPACK_REDUCTION_METHOD(packed_reduction_method) \
((enum _reduction_method)((packed_reduction_method) & (0x0000FF00)))
>From 79d2914ea9ea6dc3b4ea3001d1a5baa0e16b24a6 Mon Sep 17 00:00:00 2001
From: Richard Dong <66289396+rdong8 at users.noreply.github.com>
Date: Sun, 27 Sep 2026 17:05:52 +0000
Subject: [PATCH 10/10] [bazel] Pin rules_cc_autoconf to 0.24.0
---
utils/bazel/MODULE.bazel | 1 +
utils/bazel/MODULE.bazel.lock | 635 +++++++++++++++++++++++++++++++++-
2 files changed, 635 insertions(+), 1 deletion(-)
diff --git a/utils/bazel/MODULE.bazel b/utils/bazel/MODULE.bazel
index 785e897247b40..66829650d8360 100644
--- a/utils/bazel/MODULE.bazel
+++ b/utils/bazel/MODULE.bazel
@@ -31,6 +31,7 @@ bazel_dep(name = "nanobind", version = "2.12.0.bcr.1")
bazel_dep(name = "libpfm", version = "4.13.0", repo_name = "pfm")
bazel_dep(name = "vulkan_headers", version = "1.4.349")
bazel_dep(name = "xz", version = "5.4.5.bcr.9", repo_name = "llvm_xz")
+bazel_dep(name = "rules_cc_autoconf", version = "0.24.0")
bazel_dep(name = "emsdk", version = "6.0.2", dev_dependency = True)
bazel_dep(name = "llvm", version = "0.8.20", dev_dependency = True)
diff --git a/utils/bazel/MODULE.bazel.lock b/utils/bazel/MODULE.bazel.lock
index 2fb696ee8254c..ca69e63acad0e 100644
--- a/utils/bazel/MODULE.bazel.lock
+++ b/utils/bazel/MODULE.bazel.lock
@@ -52,6 +52,7 @@
"https://bcr.bazel.build/modules/bazel_features/1.42.0/MODULE.bazel": "e8ca15cb2639c5f12183db6dcb678735555d0cdd739b32a0418b6532b5e565f8",
"https://bcr.bazel.build/modules/bazel_features/1.42.1/MODULE.bazel": "275a59b5406ff18c01739860aa70ad7ccb3cfb474579411decca11c93b951080",
"https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91",
+ "https://bcr.bazel.build/modules/bazel_features/1.47.1/MODULE.bazel": "e6be691539341681678a68c2076771f6a73fcdc9823c5b6bf280d2e916d1ad80",
"https://bcr.bazel.build/modules/bazel_features/1.50.0/MODULE.bazel": "2083ef9c7a469f520890483ccf8e0189d6e71e2117e7752e15e6554433d5ae3e",
"https://bcr.bazel.build/modules/bazel_features/1.50.0/source.json": "e0ee3debde2789ff56e4452e612d126925ba9ab64d4bde79c67f099d2902df9b",
"https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b",
@@ -211,7 +212,8 @@
"https://bcr.bazel.build/modules/rules_cc_autoconf/0.10.1/MODULE.bazel": "9d437cf6abd311a8cbb464bdb987411ed441714074444ae3963ee94baffb3522",
"https://bcr.bazel.build/modules/rules_cc_autoconf/0.10.2/MODULE.bazel": "f6b6720ac40a89c885824f58b3e4abee948a6a52412ecc344192831f68c1596c",
"https://bcr.bazel.build/modules/rules_cc_autoconf/0.10.3/MODULE.bazel": "936257270b147ea6c17633a7f682a87a915782c45059263811ed895375f2dba9",
- "https://bcr.bazel.build/modules/rules_cc_autoconf/0.10.3/source.json": "a025eecbbaceb6b8d1d578b382b6f2ebd4b108cd1e02c375d22397b422747b5f",
+ "https://bcr.bazel.build/modules/rules_cc_autoconf/0.24.0/MODULE.bazel": "332e2a2972ef5d5a537b2dbc23bea7a0d5d97fc5fa82cebe032b1b8d509b06a1",
+ "https://bcr.bazel.build/modules/rules_cc_autoconf/0.24.0/source.json": "7b729d9f90f03cfd1214a69ddb1f7efd0009d68271ccdbfa7dec9f2dcabaaa55",
"https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
"https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
"https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8",
@@ -367,6 +369,176 @@
}
}
},
+ "@@emsdk+//:emscripten_cache.bzl%emscripten_cache": {
+ "general": {
+ "bzlTransitiveDigest": "GMscy7c4sDbvbf9dMSrtUvyJJBuxYpJBT/Lg+2ob6dk=",
+ "usagesDigest": "Id/C4z1d3MUlKZgmBOQiLi2E7NQZTGsd4WV2wSMzmo4=",
+ "recordedInputs": [],
+ "generatedRepoSpecs": {
+ "emscripten_cache": {
+ "repoRuleId": "@@emsdk+//:emscripten_cache.bzl%_emscripten_cache_repository",
+ "attributes": {
+ "configuration": [],
+ "targets": [],
+ "prebuilt_cache_url": "",
+ "prebuilt_cache_sha256": "",
+ "prebuilt_cache_strip_prefix": ""
+ }
+ }
+ }
+ }
+ },
+ "@@emsdk+//:emscripten_deps.bzl%emscripten_deps": {
+ "general": {
+ "bzlTransitiveDigest": "y9bl4R4hpxBPusNxuRvZhCjByvxmjCwQh5au9NnHxHk=",
+ "usagesDigest": "4SlUap0Npa9PDUrLoi0uZ7CRDp9h/YbWi0UuidttuWc=",
+ "recordedInputs": [
+ "REPO_MAPPING:bazel_features+,bazel_features_globals bazel_features++version_extension+bazel_features_globals",
+ "REPO_MAPPING:bazel_features+,bazel_features_version bazel_features++version_extension+bazel_features_version",
+ "REPO_MAPPING:emsdk+,bazel_tools bazel_tools",
+ "REPO_MAPPING:emsdk+,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_cc+,bazel_features bazel_features+",
+ "REPO_MAPPING:rules_cc+,bazel_skylib bazel_skylib+",
+ "REPO_MAPPING:rules_cc+,bazel_tools bazel_tools",
+ "REPO_MAPPING:rules_cc+,cc_compatibility_proxy rules_cc++compatibility_proxy+cc_compatibility_proxy",
+ "REPO_MAPPING:rules_cc+,com_google_protobuf protobuf+",
+ "REPO_MAPPING:rules_cc+,platforms platforms",
+ "REPO_MAPPING:rules_cc+,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_cc++compatibility_proxy+cc_compatibility_proxy,rules_cc rules_cc+"
+ ],
+ "generatedRepoSpecs": {
+ "emscripten_bin_linux": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"builtin_cache\",\n srcs = glob([\n \"emscripten/cache/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
+ "sha256": "d574428df9ecf00790e28636bdc47027432737c31621b18cdb418123afda4ac1",
+ "strip_prefix": "install",
+ "type": "tar.xz",
+ "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/004876f1984e18a9eb0736c5ca417ac86d386fb8/wasm-binaries.tar.xz"
+ }
+ },
+ "emscripten_bin_linux_arm64": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"builtin_cache\",\n srcs = glob([\n \"emscripten/cache/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
+ "sha256": "d74803ef563511b9cc1e5cde5016f06d161ffd2b6223135a8aeeef44194594e7",
+ "strip_prefix": "install",
+ "type": "tar.xz",
+ "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/004876f1984e18a9eb0736c5ca417ac86d386fb8/wasm-binaries-arm64.tar.xz"
+ }
+ },
+ "emscripten_bin_mac": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"builtin_cache\",\n srcs = glob([\n \"emscripten/cache/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
+ "sha256": "356f36ba04a54edb029c658dd1b547c5c8a8f3c166b09654c1efcb9cf7bf8a57",
+ "strip_prefix": "install",
+ "type": "tar.xz",
+ "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/004876f1984e18a9eb0736c5ca417ac86d386fb8/wasm-binaries.tar.xz"
+ }
+ },
+ "emscripten_bin_mac_arm64": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"builtin_cache\",\n srcs = glob([\n \"emscripten/cache/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang\",\n \"bin/clang++\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang\",\n \"bin/llvm-ar\",\n \"bin/llvm-dwarfdump\",\n \"bin/llvm-nm\",\n \"bin/llvm-objcopy\",\n \"bin/wasm-ctor-eval\",\n \"bin/wasm-emscripten-finalize\",\n \"bin/wasm-ld\",\n \"bin/wasm-metadce\",\n \"bin/wasm-opt\",\n \"bin/wasm-split\",\n \"bin/wasm2js\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
+ "sha256": "ded3bb783e7aa3dda576955dd0aa3a71dd21789e42befb63ee14f7d9f9b6aa32",
+ "strip_prefix": "install",
+ "type": "tar.xz",
+ "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/004876f1984e18a9eb0736c5ca417ac86d386fb8/wasm-binaries-arm64.tar.xz"
+ }
+ },
+ "emscripten_bin_win": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "build_file_content": "\npackage(default_visibility = ['//visibility:public'])\n\nfilegroup(\n name = \"all\",\n srcs = glob([\"**\"]),\n)\n\nfilegroup(\n name = \"includes\",\n srcs = glob([\n \"emscripten/cache/sysroot/include/c++/v1/**\",\n \"emscripten/cache/sysroot/include/compat/**\",\n \"emscripten/cache/sysroot/include/**\",\n \"lib/clang/**/include/**\",\n ]),\n)\n\nfilegroup(\n name = \"builtin_cache\",\n srcs = glob([\n \"emscripten/cache/**\",\n ]),\n)\n\nfilegroup(\n name = \"emcc_common\",\n srcs = [\n \"emscripten/emcc.py\",\n \"emscripten/embuilder.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/cache/sysroot_install.stamp\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/third_party/**\",\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"compiler_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/clang++.exe\",\n \":emcc_common\",\n \":includes\",\n ],\n)\n\nfilegroup(\n name = \"linker_files\",\n srcs = [\n \"bin/clang.exe\",\n \"bin/llvm-ar.exe\",\n \"bin/llvm-dwarfdump.exe\",\n \"bin/llvm-nm.exe\",\n \"bin/llvm-objcopy.exe\",\n \"bin/wasm-ctor-eval.exe\",\n \"bin/wasm-emscripten-finalize.exe\",\n \"bin/wasm-ld.exe\",\n \"bin/wasm-metadce.exe\",\n \"bin/wasm-opt.exe\",\n \"bin/wasm-split.exe\",\n \"bin/wasm2js.exe\",\n \":emcc_common\",\n ] + glob(\n include = [\n \"emscripten/cache/sysroot/lib/**\",\n \"emscripten/node_modules/**\",\n \"emscripten/src/**\",\n ],\n ),\n)\n\nfilegroup(\n name = \"ar_files\",\n srcs = [\n \"bin/llvm-ar.exe\",\n \"emscripten/emar.py\",\n \"emscripten/emscripten-version.txt\",\n \"emscripten/src/settings.js\",\n \"emscripten/src/settings_internal.js\",\n ] + glob(\n include = [\n \"emscripten/tools/**\",\n ],\n exclude = [\n \"**/__pycache__/**\",\n ],\n ),\n)\n",
+ "sha256": "e5f9250a9cf4ff6ed16d57d6b5e177c844067381d31cd0c1a607c1ee1d2ba088",
+ "strip_prefix": "install",
+ "type": "zip",
+ "url": "https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/004876f1984e18a9eb0736c5ca417ac86d386fb8/wasm-binaries.zip"
+ }
+ }
+ }
+ }
+ },
+ "@@protobuf+//python/dist:system_python.bzl%system_python_extension": {
+ "general": {
+ "bzlTransitiveDigest": "qh0n9IrXU/xS94wxKQrG1J63zrLkA1Wy2Y3BQxptPcI=",
+ "usagesDigest": "tCi55FyqtOJ2jXh9vcjrHCl4ov3kpWiwKl103nA9BOI=",
+ "recordedInputs": [],
+ "generatedRepoSpecs": {
+ "system_python": {
+ "repoRuleId": "@@protobuf+//python/dist:system_python.bzl%system_python",
+ "attributes": {
+ "minimum_python_version": "3.9"
+ }
+ }
+ }
+ }
+ },
+ "@@pybind11_bazel+//:internal_configure.bzl%internal_configure_extension": {
+ "general": {
+ "bzlTransitiveDigest": "NRXra7941UfmNUyIxnLt82V5hULluVGL2nBsijTl4j4=",
+ "usagesDigest": "D1r3lfzMuUBFxgG8V6o0bQTLMk3GkaGOaPzw53wrwyw=",
+ "recordedInputs": [
+ "REPO_MAPPING:pybind11_bazel+,bazel_tools bazel_tools",
+ "FILE:@@pybind11_bazel+//MODULE.bazel e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34"
+ ],
+ "generatedRepoSpecs": {
+ "pybind11": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "build_file": "@@pybind11_bazel+//:pybind11-BUILD.bazel",
+ "strip_prefix": "pybind11-2.12.0",
+ "urls": [
+ "https://github.com/pybind/pybind11/archive/v2.12.0.zip"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "@@rules_android+//bzlmod_extensions:apksig.bzl%apksig_extension": {
+ "general": {
+ "bzlTransitiveDigest": "xNW2vYQ2NGvweMnSxue40Bhfp5A3ogJIS/tkg7qjKIs=",
+ "usagesDigest": "S8lLnnZxdeYUYq3kIGhVMk0wQ9Fd6elmCskvn+SL6iw=",
+ "recordedInputs": [
+ "REPO_MAPPING:rules_android+,bazel_tools bazel_tools"
+ ],
+ "generatedRepoSpecs": {
+ "apksig": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "urls": [
+ "https://mirror.bazel.build/android.googlesource.com/platform/tools/apksig/+archive/24e3075e68ebe17c0b529bb24bfda819db5e2f3b.tar.gz"
+ ],
+ "sha256": "12e44fdbd219c5e1cc62099c2a01d775957603d2d4f693f8285f9d95d9a04e77",
+ "build_file": "@@rules_android+//bzlmod_extensions:apksig.BUILD"
+ }
+ }
+ }
+ }
+ },
+ "@@rules_android+//bzlmod_extensions:com_android_dex.bzl%com_android_dex_extension": {
+ "general": {
+ "bzlTransitiveDigest": "HYWmRJkl/Bm5qA5Q7vRI52ZfSoxubYxiwbnAS+8ozAU=",
+ "usagesDigest": "0hluQmaWiWak6sVMP5L4wXhNyIwv9fw0y5JJ8lnPb1c=",
+ "recordedInputs": [
+ "REPO_MAPPING:rules_android+,bazel_tools bazel_tools"
+ ],
+ "generatedRepoSpecs": {
+ "com_android_dex": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "urls": [
+ "https://mirror.bazel.build/android.googlesource.com/platform/dalvik/+archive/5a81c499a569731e2395f7c8d13c0e0d4e17a2b6.tar.gz"
+ ],
+ "build_file": "@@rules_android+//bzlmod_extensions:com_android_dex.BUILD",
+ "sha256": "86b4848c038bf687fadc812239cb01fb8d1d15cef3125b480a0448360992b95d"
+ }
+ }
+ }
+ }
+ },
"@@rules_android+//rules/android_sdk_repository:rule.bzl%android_sdk_repository_extension": {
"general": {
"bzlTransitiveDigest": "qHbR00gVzVzkxX+PRtv4UGcUFMtBz7TK9CNYUWH8nIE=",
@@ -708,6 +880,456 @@
}
}
}
+ },
+ "@@rules_rust+//crate_universe:extension.bzl%crate": {
+ "general": {
+ "bzlTransitiveDigest": "sW/nCd7lapig93uJCTuzBk4jVmUnoPINZ2fPjbfJ7FE=",
+ "usagesDigest": "EuFUqVKVHF263jHTWOHXs4tFACdRNVOhwpoytdk19bs=",
+ "recordedInputs": [
+ "ENV:CARGO_BAZEL_DEBUG \\0",
+ "ENV:CARGO_BAZEL_GENERATOR_SHA256 \\0",
+ "ENV:CARGO_BAZEL_GENERATOR_URL \\0",
+ "ENV:CARGO_BAZEL_ISOLATED \\0",
+ "ENV:CARGO_BAZEL_REPIN \\0",
+ "ENV:CARGO_BAZEL_REPIN_ONLY \\0",
+ "ENV:CARGO_BAZEL_TIMEOUT \\0",
+ "ENV:REPIN \\0",
+ "REPO_MAPPING:bazel_features+,bazel_features_globals bazel_features++version_extension+bazel_features_globals",
+ "REPO_MAPPING:bazel_features+,bazel_features_version bazel_features++version_extension+bazel_features_version",
+ "REPO_MAPPING:rules_cc+,bazel_features bazel_features+",
+ "REPO_MAPPING:rules_cc+,bazel_skylib bazel_skylib+",
+ "REPO_MAPPING:rules_cc+,bazel_tools bazel_tools",
+ "REPO_MAPPING:rules_cc+,cc_compatibility_proxy rules_cc++compatibility_proxy+cc_compatibility_proxy",
+ "REPO_MAPPING:rules_cc+,platforms platforms",
+ "REPO_MAPPING:rules_cc+,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_cc++compatibility_proxy+cc_compatibility_proxy,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_rust+,bazel_features bazel_features+",
+ "REPO_MAPPING:rules_rust+,bazel_skylib bazel_skylib+",
+ "REPO_MAPPING:rules_rust+,bazel_tools bazel_tools",
+ "REPO_MAPPING:rules_rust+,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_rust+,rules_rust rules_rust+"
+ ],
+ "generatedRepoSpecs": {
+ "crates": {
+ "repoRuleId": "@@rules_rust+//crate_universe:extensions.bzl%_generate_repo",
+ "attributes": {
+ "contents": {
+ "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n [\n \"cargo-bazel.json\",\n \"crates.bzl\",\n \"defs.bzl\",\n ] + glob(\n allow_empty = True,\n include = [\"*.bazel\"],\n ),\n)\n\nfilegroup(\n name = \"srcs\",\n srcs = glob(\n allow_empty = True,\n include = [\n \"*.bazel\",\n \"*.bzl\",\n ],\n ),\n)\n\n# Workspace Member Dependencies\nalias(\n name = \"googletest-0.14.3\",\n actual = \"@crates__googletest-0.14.3//:googletest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"googletest\",\n actual = \"@crates__googletest-0.14.3//:googletest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"linkme-0.3.37\",\n actual = \"@crates__linkme-0.3.37//:linkme\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"linkme\",\n actual = \"@crates__linkme-0.3.37//:linkme\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste-1.0.15\",\n actual = \"@crates__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste\",\n actual = \"@crates__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote-1.0.47\",\n actual = \"@crates__quote-1.0.47//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote\",\n actual = \"@crates__quote-1.0.47//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn-3.0.6\",\n actual = \"@crates__syn-3.0.6//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn\",\n actual = \"@crates__syn-3.0.6//:syn\",\n tags = [\"manual\"],\n)\n",
+ "alias_rules.bzl": "\"\"\"Alias that transitions its target to `compilation_mode=opt`. Use `transition_alias=\"opt\"` to enable.\"\"\"\n\nload(\"@rules_cc//cc:defs.bzl\", \"CcInfo\")\nload(\"@rules_rust//rust:rust_common.bzl\", \"COMMON_PROVIDERS\")\n\ndef _transition_alias_impl(ctx):\n # `ctx.attr.actual` is a list of 1 item due to the transition\n providers = [ctx.attr.actual[0][provider] for provider in COMMON_PROVIDERS]\n if CcInfo in ctx.attr.actual[0]:\n providers.append(ctx.attr.actual[0][CcInfo])\n return providers\n\ndef _change_compilation_mode(compilation_mode):\n def _change_compilation_mode_impl(_settings, _attr):\n return {\n \"//command_line_option:compilation_mode\": compilation_mode,\n }\n\n return transition(\n implementation = _change_compilation_mode_impl,\n inputs = [],\n outputs = [\n \"//command_line_option:compilation_mode\",\n ],\n )\n\ndef _transition_alias_rule(compilation_mode):\n return rule(\n implementation = _transition_alias_impl,\n provides = COMMON_PROVIDERS,\n attrs = {\n \"actual\": attr.label(\n mandatory = True,\n doc = \"`rust_library()` target to transition to `compilation_mode=opt`.\",\n providers = COMMON_PROVIDERS,\n cfg = _change_compilation_mode(compilation_mode),\n ),\n \"_allowlist_function_transition\": attr.label(\n default = \"@bazel_tools//tools/allowlists/function_transition_allowlist\",\n ),\n },\n doc = \"Transitions a Rust library crate to the `compilation_mode=opt`.\",\n )\n\ntransition_alias_dbg = _transition_alias_rule(\"dbg\")\ntransition_alias_fastbuild = _transition_alias_rule(\"fastbuild\")\ntransition_alias_opt = _transition_alias_rule(\"opt\")\n",
+ "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n \"\"\"Flatten a list of dependency maps into one dictionary.\n\n Dependency maps have the following structure:\n\n ```python\n DEPENDENCIES_MAP = {\n # The first key in the map is a Bazel package\n # name of the workspace this file is defined in.\n \"workspace_member_package\": {\n\n # Not all dependencies are supported for all platforms.\n # the condition key is the condition required to be true\n # on the host platform.\n \"condition\": {\n\n # An alias to a crate target. # The label of the crate target the\n # Aliases are only crate names. # package name refers to.\n \"package_name\": \"@full//:label\",\n }\n }\n }\n ```\n\n Args:\n all_dependency_maps (list): A list of dicts as described above\n\n Returns:\n dict: A dictionary as described above\n \"\"\"\n dependencies = {}\n\n for workspace_deps_map in all_dependency_maps:\n for pkg_name, conditional_deps_map in workspace_deps_map.items():\n if pkg_name not in dependencies:\n non_frozen_map = dict()\n for key, values in conditional_deps_map.items():\n non_frozen_map.update({key: dict(values.items())})\n dependencies.setdefault(pkg_name, non_frozen_map)\n continue\n\n for condition, deps_map in conditional_deps_map.items():\n # If the condition has not been recorded, do so and continue\n if condition not in dependencies[pkg_name]:\n dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n continue\n\n # Alert on any miss-matched dependencies\n inconsistent_entries = []\n for crate_name, crate_label in deps_map.items():\n existing = dependencies[pkg_name][condition].get(crate_name)\n if existing and existing != crate_label:\n inconsistent_entries.append((crate_name, existing, crate_label))\n dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n return dependencies\n\ndef crate_deps(deps, package_name = None):\n \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n Args:\n deps (list): The desired list of crate targets.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()`.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if not deps:\n return []\n\n if package_name == None:\n package_name = native.package_name()\n\n # Join both sets of dependencies\n dependencies = _flatten_dependency_maps([\n _NORMAL_DEPENDENCIES,\n _NORMAL_DEV_DEPENDENCIES,\n _PROC_MACRO_DEPENDENCIES,\n _PROC_MACRO_DEV_DEPENDENCIES,\n _BUILD_DEPENDENCIES,\n _BUILD_PROC_MACRO_DEPENDENCIES,\n ]).pop(package_name, {})\n\n # Combine all conditional packages so we can easily index over a flat list\n # TODO: Perhaps this should actually return select statements and maintain\n # the conditionals of the dependencies\n flat_deps = {}\n for deps_set in dependencies.values():\n for crate_name, crate_label in deps_set.items():\n flat_deps.update({crate_name: crate_label})\n\n missing_crates = []\n crate_targets = []\n for crate_target in deps:\n if crate_target not in flat_deps:\n missing_crates.append(crate_target)\n else:\n crate_targets.append(flat_deps[crate_target])\n\n if missing_crates:\n fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n missing_crates,\n package_name,\n dependencies,\n ))\n\n return crate_targets\n\ndef all_crate_deps(\n normal = False, \n normal_dev = False, \n proc_macro = False, \n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n for the package where this macro is called.\n\n If no parameters are set, all normal dependencies are returned. Setting any one flag will\n otherwise impact the contents of the returned list.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list.\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_dependency_maps = []\n if normal:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n if normal_dev:\n all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n if proc_macro:\n all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n if proc_macro_dev:\n all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n if build:\n all_dependency_maps.append(_BUILD_DEPENDENCIES)\n if build_proc_macro:\n all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n # Default to always using normal dependencies\n if not all_dependency_maps:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n if not dependencies:\n if dependencies == None:\n fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n else:\n return []\n\n crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n for condition, deps in dependencies.items():\n crate_deps += selects.with_or({\n tuple(_CONDITIONS[condition]): deps.values(),\n \"//conditions:default\": [],\n })\n\n return crate_deps\n\ndef aliases(\n normal = False,\n normal_dev = False,\n proc_macro = False,\n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Produces a map of Crate alias names to their original label\n\n If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n Setting any one flag will otherwise determine the contents of the returned dict.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n dict: The aliases of all associated packages\n \"\"\"\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_aliases_maps = []\n if normal:\n all_aliases_maps.append(_NORMAL_ALIASES)\n if normal_dev:\n all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n if proc_macro:\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n if proc_macro_dev:\n all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n if build:\n all_aliases_maps.append(_BUILD_ALIASES)\n if build_proc_macro:\n all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n # Default to always using normal aliases\n if not all_aliases_maps:\n all_aliases_maps.append(_NORMAL_ALIASES)\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n if not aliases:\n return dict()\n\n common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n # If there are only common items in the dictionary, immediately return them\n if not len(aliases.keys()) == 1:\n return dict(common_items)\n\n # Build a single select statement where each conditional has accounted for the\n # common set of aliases.\n crate_aliases = {\"//conditions:default\": dict(common_items)}\n for condition, deps in aliases.items():\n condition_triples = _CONDITIONS[condition]\n for triple in condition_triples:\n if triple in crate_aliases:\n crate_aliases[triple].update(deps)\n else:\n crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n \"\": {\n _COMMON_CONDITION: {\n \"googletest\": Label(\"@crates//:googletest-0.14.3\"),\n \"linkme\": Label(\"@crates//:linkme-0.3.37\"),\n \"quote\": Label(\"@crates//:quote-1.0.47\"),\n \"syn\": Label(\"@crates//:syn-3.0.6\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"\": {\n _COMMON_CONDITION: {\n \"paste\": Label(\"@crates//:paste-1.0.15\"),\n },\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"wasm32-unknown-unknown\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"wasm32-wasip1\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"x86_64-pc-windows-msvc\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"x86_64-unknown-nixos-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n \"\"\"A macro for defining repositories for all generated crates.\n\n Returns:\n A list of repos visible to the module through the module extension.\n \"\"\"\n maybe(\n http_archive,\n name = \"crates__aho-corasick-1.1.5\",\n sha256 = \"c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.5/download\"],\n strip_prefix = \"aho-corasick-1.1.5\",\n build_file = Label(\"@crates//crates:BUILD.aho-corasick-1.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__autocfg-1.5.1\",\n sha256 = \"f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.5.1/download\"],\n strip_prefix = \"autocfg-1.5.1\",\n build_file = Label(\"@crates//crates:BUILD.autocfg-1.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__googletest-0.14.3\",\n sha256 = \"f6b5e2f2b556b7b90297a5a35c8267dd43a537923d2b329beefdba2b4ec19d94\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/googletest/0.14.3/download\"],\n strip_prefix = \"googletest-0.14.3\",\n build_file = Label(\"@crates//crates:BUILD.googletest-0.14.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__googletest_macro-0.14.3\",\n sha256 = \"2ae6abc96141edd26bf5aeec0f119c129c44de3ced09e5073711a02cb74725d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/googletest_macro/0.14.3/download\"],\n strip_prefix = \"googletest_macro-0.14.3\",\n build_file = Label(\"@crates//crates:BUILD.googletest_macro-0.14.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__linkme-0.3.37\",\n sha256 = \"3045e122bd98aef8ec3ad58ce84f0791f64e70163d1a02710af4aa11a4d54cc5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linkme/0.3.37/download\"],\n strip_prefix = \"linkme-0.3.37\",\n build_file = Label(\"@crates//crates:BUILD.linkme-0.3.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__linkme-impl-0.3.37\",\n sha256 = \"77060ebe535362c3da75682cd17b0431017b6e7c5661e714fc69a7ad017d1301\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linkme-impl/0.3.37/download\"],\n strip_prefix = \"linkme-impl-0.3.37\",\n build_file = Label(\"@crates//crates:BUILD.linkme-impl-0.3.37.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memchr-2.8.3\",\n sha256 = \"cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.8.3/download\"],\n strip_prefix = \"memchr-2.8.3\",\n build_file = Label(\"@crates//crates:BUILD.memchr-2.8.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__num-traits-0.2.19\",\n sha256 = \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-traits/0.2.19/download\"],\n strip_prefix = \"num-traits-0.2.19\",\n build_file = Label(\"@crates//crates:BUILD.num-traits-0.2.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__paste-1.0.15\",\n sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n strip_prefix = \"paste-1.0.15\",\n build_file = Label(\"@crates//crates:BUILD.paste-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__proc-macro2-1.0.107\",\n sha256 = \"985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.107/download\"],\n strip_prefix = \"proc-macro2-1.0.107\",\n build_file = Label(\"@crates//crates:BUILD.proc-macro2-1.0.107.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__quote-1.0.47\",\n sha256 = \"1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.47/download\"],\n strip_prefix = \"quote-1.0.47\",\n build_file = Label(\"@crates//crates:BUILD.quote-1.0.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-1.13.1\",\n sha256 = \"f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.13.1/download\"],\n strip_prefix = \"regex-1.13.1\",\n build_file = Label(\"@crates//crates:BUILD.regex-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-automata-0.4.18\",\n sha256 = \"ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.18/download\"],\n strip_prefix = \"regex-automata-0.4.18\",\n build_file = Label(\"@crates//crates:BUILD.regex-automata-0.4.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-syntax-0.8.11\",\n sha256 = \"d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.11/download\"],\n strip_prefix = \"regex-syntax-0.8.11\",\n build_file = Label(\"@crates//crates:BUILD.regex-syntax-0.8.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustversion-1.0.23\",\n sha256 = \"cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.23/download\"],\n strip_prefix = \"rustversion-1.0.23\",\n build_file = Label(\"@crates//crates:BUILD.rustversion-1.0.23.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-2.0.119\",\n sha256 = \"872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.119/download\"],\n strip_prefix = \"syn-2.0.119\",\n build_file = Label(\"@crates//crates:BUILD.syn-2.0.119.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-3.0.6\",\n sha256 = \"8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/3.0.6/download\"],\n strip_prefix = \"syn-3.0.6\",\n build_file = Label(\"@crates//crates:BUILD.syn-3.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-ident-1.0.26\",\n sha256 = \"d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.26/download\"],\n strip_prefix = \"unicode-ident-1.0.26\",\n build_file = Label(\"@crates//crates:BUILD.unicode-ident-1.0.26.bazel\"),\n )\n\n return [\n struct(repo=\"crates__googletest-0.14.3\", is_dev_dep = False),\n struct(repo=\"crates__linkme-0.3.37\", is_dev_dep = False),\n struct(repo=\"crates__paste-1.0.15\", is_dev_dep = False),\n struct(repo=\"crates__quote-1.0.47\", is_dev_dep = False),\n struct(repo=\"crates__syn-3.0.6\", is_dev_dep = False),\n ]\n"
+ }
+ }
+ },
+ "crates__aho-corasick-1.1.5": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/aho-corasick/1.1.5/download"
+ ],
+ "strip_prefix": "aho-corasick-1.1.5",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"aho_corasick\",\n deps = [\n \"@crates__memchr-2.8.3//:memchr\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"perf-literal\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=aho-corasick\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.1.5\",\n)\n"
+ }
+ },
+ "crates__autocfg-1.5.1": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/autocfg/1.5.1/download"
+ ],
+ "strip_prefix": "autocfg-1.5.1",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"autocfg\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=autocfg\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.5.1\",\n)\n"
+ }
+ },
+ "crates__googletest-0.14.3": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "f6b5e2f2b556b7b90297a5a35c8267dd43a537923d2b329beefdba2b4ec19d94",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/googletest/0.14.3/download"
+ ],
+ "strip_prefix": "googletest-0.14.3",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"googletest\",\n deps = [\n \"@crates__num-traits-0.2.19//:num_traits\",\n \"@crates__regex-1.13.1//:regex\",\n ],\n proc_macro_deps = [\n \"@crates__googletest_macro-0.14.3//:googletest_macro\",\n \"@crates__rustversion-1.0.23//:rustversion\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=googletest\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.14.3\",\n)\n"
+ }
+ },
+ "crates__googletest_macro-0.14.3": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "2ae6abc96141edd26bf5aeec0f119c129c44de3ced09e5073711a02cb74725d0",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/googletest_macro/0.14.3/download"
+ ],
+ "strip_prefix": "googletest_macro-0.14.3",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"googletest_macro\",\n deps = [\n \"@crates__proc-macro2-1.0.107//:proc_macro2\",\n \"@crates__quote-1.0.47//:quote\",\n \"@crates__syn-2.0.119//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=googletest_macro\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.14.3\",\n)\n"
+ }
+ },
+ "crates__linkme-0.3.37": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "3045e122bd98aef8ec3ad58ce84f0791f64e70163d1a02710af4aa11a4d54cc5",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/linkme/0.3.37/download"
+ ],
+ "strip_prefix": "linkme-0.3.37",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"linkme\",\n deps = [\n \"@crates__linkme-0.3.37//:build_script_build\",\n ],\n proc_macro_deps = [\n \"@crates__linkme-impl-0.3.37//:linkme_impl\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=linkme\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.3.37\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"linkme\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=linkme\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.3.37\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n"
+ }
+ },
+ "crates__linkme-impl-0.3.37": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "77060ebe535362c3da75682cd17b0431017b6e7c5661e714fc69a7ad017d1301",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/linkme-impl/0.3.37/download"
+ ],
+ "strip_prefix": "linkme-impl-0.3.37",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"linkme_impl\",\n deps = [\n \"@crates__linkme-impl-0.3.37//:build_script_build\",\n \"@crates__proc-macro2-1.0.107//:proc_macro2\",\n \"@crates__quote-1.0.47//:quote\",\n \"@crates__syn-3.0.6//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=linkme-impl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.3.37\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"linkme-impl\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=linkme-impl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.3.37\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n"
+ }
+ },
+ "crates__memchr-2.8.3": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/memchr/2.8.3/download"
+ ],
+ "strip_prefix": "memchr-2.8.3",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"memchr\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=memchr\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.8.3\",\n)\n"
+ }
+ },
+ "crates__num-traits-0.2.19": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/num-traits/0.2.19/download"
+ ],
+ "strip_prefix": "num-traits-0.2.19",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"num_traits\",\n deps = [\n \"@crates__num-traits-0.2.19//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=num-traits\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.19\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__autocfg-1.5.1//:autocfg\",\n ],\n edition = \"2021\",\n pkg_name = \"num-traits\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=num-traits\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.2.19\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n"
+ }
+ },
+ "crates__paste-1.0.15": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/paste/1.0.15/download"
+ ],
+ "strip_prefix": "paste-1.0.15",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"paste\",\n deps = [\n \"@crates__paste-1.0.15//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=paste\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.15\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2018\",\n pkg_name = \"paste\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=paste\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.15\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n"
+ }
+ },
+ "crates__proc-macro2-1.0.107": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/proc-macro2/1.0.107/download"
+ ],
+ "strip_prefix": "proc-macro2-1.0.107",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"proc_macro2\",\n deps = [\n \"@crates__proc-macro2-1.0.107//:build_script_build\",\n \"@crates__unicode-ident-1.0.26//:unicode_ident\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"proc-macro\",\n ] + select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [\n \"default\", # aarch64-apple-darwin\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"default\", # aarch64-unknown-linux-gnu\n ],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [\n \"default\", # x86_64-pc-windows-msvc\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"default\", # x86_64-unknown-linux-gnu\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [\n \"default\", # x86_64-unknown-nixos-gnu\n ],\n \"//conditions:default\": [],\n }),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=proc-macro2\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.107\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"proc-macro\",\n ] + select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [\n \"default\", # aarch64-apple-darwin\n ],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [\n \"default\", # aarch64-unknown-linux-gnu\n ],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [\n \"default\", # x86_64-pc-windows-msvc\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"default\", # x86_64-unknown-linux-gnu\n ],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [\n \"default\", # x86_64-unknown-nixos-gnu\n ],\n \"//conditions:default\": [],\n }),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"proc-macro2\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=proc-macro2\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.107\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n"
+ }
+ },
+ "crates__quote-1.0.47": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/quote/1.0.47/download"
+ ],
+ "strip_prefix": "quote-1.0.47",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"quote\",\n deps = [\n \"@crates__proc-macro2-1.0.107//:proc_macro2\",\n \"@crates__quote-1.0.47//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"proc-macro\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=quote\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.47\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"proc-macro\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"quote\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=quote\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.47\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n"
+ }
+ },
+ "crates__regex-1.13.1": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/regex/1.13.1/download"
+ ],
+ "strip_prefix": "regex-1.13.1",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"regex\",\n deps = [\n \"@crates__aho-corasick-1.1.5//:aho_corasick\",\n \"@crates__memchr-2.8.3//:memchr\",\n \"@crates__regex-automata-0.4.18//:regex_automata\",\n \"@crates__regex-syntax-0.8.11//:regex_syntax\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"perf\",\n \"perf-backtrack\",\n \"perf-cache\",\n \"perf-dfa\",\n \"perf-inline\",\n \"perf-literal\",\n \"perf-onepass\",\n \"std\",\n \"unicode\",\n \"unicode-age\",\n \"unicode-bool\",\n \"unicode-case\",\n \"unicode-gencat\",\n \"unicode-perl\",\n \"unicode-script\",\n \"unicode-segment\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=regex\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.13.1\",\n)\n"
+ }
+ },
+ "crates__regex-automata-0.4.18": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/regex-automata/0.4.18/download"
+ ],
+ "strip_prefix": "regex-automata-0.4.18",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"regex_automata\",\n deps = [\n \"@crates__aho-corasick-1.1.5//:aho_corasick\",\n \"@crates__memchr-2.8.3//:memchr\",\n \"@crates__regex-syntax-0.8.11//:regex_syntax\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"dfa-onepass\",\n \"hybrid\",\n \"meta\",\n \"nfa-backtrack\",\n \"nfa-pikevm\",\n \"nfa-thompson\",\n \"perf-inline\",\n \"perf-literal\",\n \"perf-literal-multisubstring\",\n \"perf-literal-substring\",\n \"std\",\n \"syntax\",\n \"unicode\",\n \"unicode-age\",\n \"unicode-bool\",\n \"unicode-case\",\n \"unicode-gencat\",\n \"unicode-perl\",\n \"unicode-script\",\n \"unicode-segment\",\n \"unicode-word-boundary\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=regex-automata\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.18\",\n)\n"
+ }
+ },
+ "crates__regex-syntax-0.8.11": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/regex-syntax/0.8.11/download"
+ ],
+ "strip_prefix": "regex-syntax-0.8.11",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"regex_syntax\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n \"unicode\",\n \"unicode-age\",\n \"unicode-bool\",\n \"unicode-case\",\n \"unicode-gencat\",\n \"unicode-perl\",\n \"unicode-script\",\n \"unicode-segment\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=regex-syntax\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.8.11\",\n)\n"
+ }
+ },
+ "crates__rustversion-1.0.23": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/rustversion/1.0.23/download"
+ ],
+ "strip_prefix": "rustversion-1.0.23",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"rustversion\",\n deps = [\n \"@crates__rustversion-1.0.23//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=rustversion\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.23\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build/build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2018\",\n pkg_name = \"rustversion\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=rustversion\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.23\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n"
+ }
+ },
+ "crates__syn-2.0.119": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/syn/2.0.119/download"
+ ],
+ "strip_prefix": "syn-2.0.119",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"syn\",\n deps = [\n \"@crates__proc-macro2-1.0.107//:proc_macro2\",\n \"@crates__quote-1.0.47//:quote\",\n \"@crates__unicode-ident-1.0.26//:unicode_ident\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"clone-impls\",\n \"default\",\n \"derive\",\n \"extra-traits\",\n \"full\",\n \"parsing\",\n \"printing\",\n \"proc-macro\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=syn\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.0.119\",\n)\n"
+ }
+ },
+ "crates__syn-3.0.6": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/syn/3.0.6/download"
+ ],
+ "strip_prefix": "syn-3.0.6",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"syn\",\n deps = [\n \"@crates__proc-macro2-1.0.107//:proc_macro2\",\n \"@crates__quote-1.0.47//:quote\",\n \"@crates__unicode-ident-1.0.26//:unicode_ident\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"clone-impls\",\n \"default\",\n \"derive\",\n \"parsing\",\n \"printing\",\n \"proc-macro\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=syn\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"3.0.6\",\n)\n"
+ }
+ },
+ "crates__unicode-ident-1.0.26": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "remote_patch_strip": 1,
+ "sha256": "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954",
+ "type": "tar.gz",
+ "urls": [
+ "https://static.crates.io/crates/unicode-ident/1.0.26/download"
+ ],
+ "strip_prefix": "unicode-ident-1.0.26",
+ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'protobuf'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"unicode_ident\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=unicode-ident\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.26\",\n)\n"
+ }
+ }
+ }
+ }
+ },
+ "@@rules_rust+//crate_universe/private:internal_extensions.bzl%cu_nr": {
+ "general": {
+ "bzlTransitiveDigest": "iPtkEPFEeF/VGHTiu9FNkObtvsqt5BsskuMdLBNiE5Y=",
+ "usagesDigest": "tG3p3Nb5XxC7vWY/bcKdb//g0HoAxpxxH3F5/jBVlk4=",
+ "recordedInputs": [
+ "REPO_MAPPING:bazel_features+,bazel_features_globals bazel_features++version_extension+bazel_features_globals",
+ "REPO_MAPPING:bazel_features+,bazel_features_version bazel_features++version_extension+bazel_features_version",
+ "REPO_MAPPING:rules_cc+,bazel_features bazel_features+",
+ "REPO_MAPPING:rules_cc+,bazel_skylib bazel_skylib+",
+ "REPO_MAPPING:rules_cc+,bazel_tools bazel_tools",
+ "REPO_MAPPING:rules_cc+,cc_compatibility_proxy rules_cc++compatibility_proxy+cc_compatibility_proxy",
+ "REPO_MAPPING:rules_cc+,platforms platforms",
+ "REPO_MAPPING:rules_cc+,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_cc++compatibility_proxy+cc_compatibility_proxy,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_rust+,bazel_features bazel_features+",
+ "REPO_MAPPING:rules_rust+,bazel_skylib bazel_skylib+",
+ "REPO_MAPPING:rules_rust+,bazel_tools bazel_tools",
+ "REPO_MAPPING:rules_rust+,cui rules_rust++cu+cui",
+ "REPO_MAPPING:rules_rust+,rrc rules_rust++i2+rrc",
+ "REPO_MAPPING:rules_rust+,rules_cc rules_cc+",
+ "REPO_MAPPING:rules_rust+,rules_rust rules_rust+"
+ ],
+ "generatedRepoSpecs": {
+ "cargo_bazel_bootstrap": {
+ "repoRuleId": "@@rules_rust+//cargo/private:cargo_bootstrap.bzl%cargo_bootstrap_repository",
+ "attributes": {
+ "srcs": [
+ "@@rules_rust+//crate_universe:src/api.rs",
+ "@@rules_rust+//crate_universe:src/api/lockfile.rs",
+ "@@rules_rust+//crate_universe:src/cli.rs",
+ "@@rules_rust+//crate_universe:src/cli/generate.rs",
+ "@@rules_rust+//crate_universe:src/cli/query.rs",
+ "@@rules_rust+//crate_universe:src/cli/render.rs",
+ "@@rules_rust+//crate_universe:src/cli/splice.rs",
+ "@@rules_rust+//crate_universe:src/cli/vendor.rs",
+ "@@rules_rust+//crate_universe:src/config.rs",
+ "@@rules_rust+//crate_universe:src/context.rs",
+ "@@rules_rust+//crate_universe:src/context/crate_context.rs",
+ "@@rules_rust+//crate_universe:src/context/platforms.rs",
+ "@@rules_rust+//crate_universe:src/lib.rs",
+ "@@rules_rust+//crate_universe:src/lockfile.rs",
+ "@@rules_rust+//crate_universe:src/main.rs",
+ "@@rules_rust+//crate_universe:src/metadata.rs",
+ "@@rules_rust+//crate_universe:src/metadata/cargo_bin.rs",
+ "@@rules_rust+//crate_universe:src/metadata/cargo_tree_resolver.rs",
+ "@@rules_rust+//crate_universe:src/metadata/cargo_tree_rustc_wrapper.bat",
+ "@@rules_rust+//crate_universe:src/metadata/cargo_tree_rustc_wrapper.sh",
+ "@@rules_rust+//crate_universe:src/metadata/dependency.rs",
+ "@@rules_rust+//crate_universe:src/metadata/metadata_annotation.rs",
+ "@@rules_rust+//crate_universe:src/rendering.rs",
+ "@@rules_rust+//crate_universe:src/rendering/template_engine.rs",
+ "@@rules_rust+//crate_universe:src/rendering/templates/module_bzl.j2",
+ "@@rules_rust+//crate_universe:src/rendering/templates/partials/header.j2",
+ "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/aliases_map.j2",
+ "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/deps_map.j2",
+ "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/repo_git.j2",
+ "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/repo_http.j2",
+ "@@rules_rust+//crate_universe:src/rendering/templates/vendor_module.j2",
+ "@@rules_rust+//crate_universe:src/rendering/verbatim/alias_rules.bzl",
+ "@@rules_rust+//crate_universe:src/select.rs",
+ "@@rules_rust+//crate_universe:src/splicing.rs",
+ "@@rules_rust+//crate_universe:src/splicing/cargo_config.rs",
+ "@@rules_rust+//crate_universe:src/splicing/crate_index_lookup.rs",
+ "@@rules_rust+//crate_universe:src/splicing/splicer.rs",
+ "@@rules_rust+//crate_universe:src/test.rs",
+ "@@rules_rust+//crate_universe:src/utils.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/glob.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/label.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/select.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/select_dict.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/select_list.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/select_scalar.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/select_set.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/serialize.rs",
+ "@@rules_rust+//crate_universe:src/utils/starlark/target_compatible_with.rs",
+ "@@rules_rust+//crate_universe:src/utils/symlink.rs",
+ "@@rules_rust+//crate_universe:src/utils/target_triple.rs"
+ ],
+ "binary": "cargo-bazel",
+ "cargo_lockfile": "@@rules_rust+//crate_universe:Cargo.lock",
+ "cargo_toml": "@@rules_rust+//crate_universe:Cargo.toml",
+ "version": "1.93.1",
+ "timeout": 900,
+ "rust_toolchain_cargo_template": "@rust_host_tools//:bin/{tool}",
+ "rust_toolchain_rustc_template": "@rust_host_tools//:bin/{tool}",
+ "compressed_windows_toolchain_names": false
+ }
+ }
+ },
+ "moduleExtensionMetadata": {
+ "explicitRootModuleDirectDeps": [
+ "cargo_bazel_bootstrap"
+ ],
+ "explicitRootModuleDirectDevDeps": [],
+ "useAllRepos": "NO",
+ "reproducible": false
+ }
+ }
+ },
+ "@@windows_support+//windows:extensions.bzl%msvc_runtime": {
+ "general": {
+ "bzlTransitiveDigest": "yv3gSwY6QneXA6YvHLn9tSmuOkNp2EPN5NFXHC48mdE=",
+ "usagesDigest": "sibUu27t6285kBq1cUUY3O32hxq+4jp9K9t/1h8UrbQ=",
+ "recordedInputs": [
+ "REPO_MAPPING:windows_support+,bazel_tools bazel_tools"
+ ],
+ "generatedRepoSpecs": {
+ "msvc_runtime": {
+ "repoRuleId": "@@windows_support+//windows/private/extensions:msvc_runtime.bzl%_msvc_runtime_repository",
+ "attributes": {
+ "msvc_version": "14.50.35717",
+ "architectures": [
+ "x64",
+ "arm64"
+ ],
+ "installer_manifest_url": "https://download.visualstudio.microsoft.com/download/pr/fdc37f6e-59f6-4054-838a-b476eeaa6ec3/1d82370739911457e0a2f6be15d8b5f569531b352b2eabb961429eea1e99e356/VisualStudio.vsman",
+ "installer_manifest_integrity": "sha256-qOhU+p8/uurCfXME4pfxZg1xN0ATid61fPeYPzPBb+8="
+ }
+ }
+ },
+ "moduleExtensionMetadata": {
+ "explicitRootModuleDirectDeps": [],
+ "explicitRootModuleDirectDevDeps": [
+ "msvc_runtime"
+ ],
+ "useAllRepos": "NO",
+ "reproducible": false
+ }
+ }
+ },
+ "@@windows_support+//windows:extensions.bzl%windows_sdk": {
+ "general": {
+ "bzlTransitiveDigest": "yv3gSwY6QneXA6YvHLn9tSmuOkNp2EPN5NFXHC48mdE=",
+ "usagesDigest": "RMERMDJDslnQ5nIGMcekp2rAqEdHaL4OBq2Ddq7qc+I=",
+ "recordedInputs": [
+ "REPO_MAPPING:windows_support+,bazel_tools bazel_tools"
+ ],
+ "generatedRepoSpecs": {
+ "windows_sdk": {
+ "repoRuleId": "@@windows_support+//windows/private/extensions:windows_sdk.bzl%_windows_sdk_repository",
+ "attributes": {
+ "windows_sdk_version": "10.0.26100.7705",
+ "windows_sdk_integrity": {
+ "Microsoft.Windows.SDK.CPP": "sha256-/0VWYL7gcadEcVqWZWZvopwHaBV509gVlZqe7FpVZCQ=",
+ "Microsoft.Windows.SDK.CPP.x64": "sha256-rWzpD/lAEGmdKVSLPCseUsieuBFD4hmRVdmlw4ABtSs=",
+ "Microsoft.Windows.SDK.CPP.arm64": "sha256-A7wMA9Q5zvhQdLvNQl+dXTptO0Z5Z6zSHaO6bf7q+mc="
+ },
+ "transformations": {
+ "base/c/Include/10.0.26100.0/shared/driverspecs.h": "base/c/Include/10.0.26100.0/shared/DriverSpecs.h",
+ "base/c/Include/10.0.26100.0/shared/specstrings.h": "base/c/Include/10.0.26100.0/shared/SpecStrings.h",
+ "base/c/Include/10.0.26100.0/um/ole2.h": "base/c/Include/10.0.26100.0/um/Ole2.h",
+ "base/c/Include/10.0.26100.0/um/olectl.h": "base/c/Include/10.0.26100.0/um/OleCtl.h",
+ "**/*.h": "lowercase",
+ "**/*.lib": "lowercase",
+ "**/*.Lib": "lowercase"
+ },
+ "architectures": [
+ "x64",
+ "arm64"
+ ]
+ }
+ }
+ },
+ "moduleExtensionMetadata": {
+ "explicitRootModuleDirectDeps": [],
+ "explicitRootModuleDirectDevDeps": [
+ "windows_sdk"
+ ],
+ "useAllRepos": "NO",
+ "reproducible": false
+ }
+ }
}
},
"facts": {
@@ -1036,6 +1658,17 @@
"27bab004c72b3d7bd05a69b6ec0fc54a309b4b78cc569dd963d8b3ec28bfdb8c"
]
}
+ },
+ "@@windows_support+//windows:extensions.bzl%msvc_runtime": {
+ "visual_studio_installer_manifest_v1": {
+ "integrity": "sha256-qOhU+p8/uurCfXME4pfxZg1xN0ATid61fPeYPzPBb+8=",
+ "request": {
+ "visual_studio_channel_url": "https://aka.ms/vs/stable/channel",
+ "visual_studio_installer_manifest_integrity": "sha256-qOhU+p8/uurCfXME4pfxZg1xN0ATid61fPeYPzPBb+8=",
+ "visual_studio_installer_manifest_url": "https://download.visualstudio.microsoft.com/download/pr/fdc37f6e-59f6-4054-838a-b476eeaa6ec3/1d82370739911457e0a2f6be15d8b5f569531b352b2eabb961429eea1e99e356/VisualStudio.vsman"
+ },
+ "url": "https://download.visualstudio.microsoft.com/download/pr/fdc37f6e-59f6-4054-838a-b476eeaa6ec3/1d82370739911457e0a2f6be15d8b5f569531b352b2eabb961429eea1e99e356/VisualStudio.vsman"
+ }
}
},
"factsVersions": {}
More information about the lldb-commits
mailing list