diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2017-01-24 19:57:05 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2017-01-24 19:57:05 +0000 |
commit | 38a106017af27c76923424fb9863ea8f6e9509e1 (patch) | |
tree | 33fd9a3eeb9fbe9ade3c74d379bf47f0b2436636 /test | |
parent | b31402407404e987cf39b833005f6a63a95f1744 (diff) |
cxa_demangle: fix rvalue ref check
When checking if the type is a r-value ref, we would not do a complete
check. This would result in us treating a trailing parameter reference
`&)` as a r-value ref, and improperly inject the cv qualifier on the
type. We now correctly demangle the type `KFvRmE` as a constant
function rather than a constant reference.
Fixes PR31741!
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@292973 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/test_demangle.pass.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/test/test_demangle.pass.cpp b/test/test_demangle.pass.cpp index b307300..4eb6a88 100644 --- a/test/test_demangle.pass.cpp +++ b/test/test_demangle.pass.cpp @@ -29598,9 +29598,8 @@ const char* cases[][2] = // mangled names can include type manglings too, which don't start with _Z: {"i", "int"}, - // FIXME(compnerd) this should be void (int &) const - {"PKFvRiE", "void (*)(int const&)"}, - // TODO(compnerd) pretty print this as void (*)(unsigned long&) volatile &&" + {"PKFvRiE", "void (*)(int&) const"}, + // FIXME(compnerd) pretty print this as void (*)(unsigned long &) volatile && {"PVFvRmOE", "void (*)(unsigned long&) volatile&&"}, {"PFvRmOE", "void (*)(unsigned long&) &&"}, }; |