diff --git a/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp b/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp --- a/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp +++ b/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp @@ -23,7 +23,10 @@ llvm::FoldingSetNodeID &ID; void operator()(const Node *P) { ID.AddPointer(P); } void operator()(std::string_view Str) { - ID.AddString(llvm::StringRef(&*Str.begin(), Str.size())); + if (Str.empty()) + ID.AddString({}); + else + ID.AddString(llvm::StringRef(&*Str.begin(), Str.size())); } template std::enable_if_t || std::is_enum_v> operator()(T V) {