[llvm] r292965 - Demangle: avoid butchering parameter type
Aaron Ballman via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 24 11:08:52 PST 2017
On Tue, Jan 24, 2017 at 1:52 PM, Saleem Abdulrasool via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: compnerd
> Date: Tue Jan 24 12:52:19 2017
> New Revision: 292965
>
> URL: http://llvm.org/viewvc/llvm-project?rev=292965&view=rev
> Log:
> Demangle: avoid butchering parameter type
>
> When demangling a CV-qualified function type with a final parameter with
> a reference type, we would insert the CV qualification on the parameter
> rather than the function, and in the process adjust the insertion point
> by one extra, splitting the type name. This avoids doing so, even
> though the attribution is still incorrect.
>
> Modified:
> llvm/trunk/lib/Demangle/ItaniumDemangle.cpp
Is there a way to provide a test case for this?
~Aaron
>
> Modified: llvm/trunk/lib/Demangle/ItaniumDemangle.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Demangle/ItaniumDemangle.cpp?rev=292965&r1=292964&r2=292965&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Demangle/ItaniumDemangle.cpp (original)
> +++ llvm/trunk/lib/Demangle/ItaniumDemangle.cpp Tue Jan 24 12:52:19 2017
> @@ -1665,9 +1665,9 @@ static const char *parse_type(const char
> if (is_function) {
> size_t p = db.names[k].second.size();
> if (db.names[k].second[p - 2] == '&')
> - p -= 3;
> - else if (db.names[k].second.back() == '&')
> p -= 2;
> + else if (db.names[k].second.back() == '&')
> + p -= 1;
> if (cv & 1) {
> db.names[k].second.insert(p, " const");
> p += 6;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list