From 6cb942cec44e66c9507876ca09ce203c7722417a Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 26 Oct 2025 15:20:07 -0700 Subject: [PATCH] [llvm] Remove argument_type in std::hash specializations (NFC) (#165167) The argument_type and result_type type aliases in std::hash are deprecated in C++17 and removed in C++20. This patch aligns two specializations of ours with the C++ standard. --- llvm/include/llvm/DebugInfo/PDB/PDBTypes.h | 5 +---- llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h b/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h index a64a2e888e9b..7af2ff1290ab 100644 --- a/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h +++ b/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h @@ -600,10 +600,7 @@ struct Variant { namespace std { template <> struct hash { - using argument_type = llvm::pdb::PDB_SymType; - using result_type = std::size_t; - - result_type operator()(const argument_type &Arg) const { + std::size_t operator()(const llvm::pdb::PDB_SymType &Arg) const { return std::hash()(static_cast(Arg)); } }; diff --git a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp index 93ae5483dedb..7bef3a8f4d3f 100644 --- a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp +++ b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp @@ -86,10 +86,7 @@ template <> struct llvm::DenseMapInfo { using VarLocInsertPt = PointerUnion; template <> struct std::hash { - using argument_type = VarLocInsertPt; - using result_type = std::size_t; - - result_type operator()(const argument_type &Arg) const { + std::size_t operator()(const VarLocInsertPt &Arg) const { return std::hash()(Arg.getOpaqueValue()); } };