[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