diff --git a/llvm/include/llvm/Demangle/ItaniumDemangle.h b/llvm/include/llvm/Demangle/ItaniumDemangle.h --- a/llvm/include/llvm/Demangle/ItaniumDemangle.h +++ b/llvm/include/llvm/Demangle/ItaniumDemangle.h @@ -3714,8 +3714,9 @@ std::string_view ProtoSourceName(Qual.data() + Len, Qual.size() - Len); std::string_view Proto; { - ScopedOverride SaveFirst(First, &*ProtoSourceName.begin()), - SaveLast(Last, &*ProtoSourceName.end()); + ScopedOverride SaveFirst(First, + &*ProtoSourceName.begin()), + SaveLast(Last, &*ProtoSourceName.rbegin() + 1); Proto = parseBareSourceName(); } if (Proto.empty())