diff --git a/llvm/lib/Demangle/DLangDemangle.cpp b/llvm/lib/Demangle/DLangDemangle.cpp --- a/llvm/lib/Demangle/DLangDemangle.cpp +++ b/llvm/lib/Demangle/DLangDemangle.cpp @@ -68,7 +68,7 @@ /// \note A result larger than UINT_MAX is considered a failure. /// /// \see https://dlang.org/spec/abi.html#Number . - const char *decodeNumber(const char *Mangled, unsigned long *Ret); + const char *decodeNumber(const char *Mangled, unsigned long &Ret); /// Extract the back reference position from a given string. /// @@ -179,7 +179,7 @@ } // namespace -const char *Demangler::decodeNumber(const char *Mangled, unsigned long *Ret) { +const char *Demangler::decodeNumber(const char *Mangled, unsigned long &Ret) { // Return nullptr if trying to extract something that isn't a digit. if (Mangled == nullptr || !std::isdigit(*Mangled)) return nullptr; @@ -200,7 +200,7 @@ if (*Mangled == '\0') return nullptr; - *Ret = Val; + Ret = Val; return Mangled; } @@ -278,7 +278,7 @@ Mangled = decodeBackref(Mangled, Backref); // Must point to a simple identifier - Backref = decodeNumber(Backref, &Len); + Backref = decodeNumber(Backref, Len); if (Backref == nullptr || strlen(Backref) < Len) return nullptr; @@ -415,7 +415,7 @@ // TODO: Parse lengthless template instances. - const char *Endptr = decodeNumber(Mangled, &Len); + const char *Endptr = decodeNumber(Mangled, Len); if (Endptr == nullptr || Len == 0) return nullptr;