diff options
author | Zachary Turner <zturner@google.com> | 2018-08-21 21:23:49 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2018-08-21 21:23:49 +0000 |
commit | df4cd7cbf97c23f363ca07dc4038ecc48c1e6623 (patch) | |
tree | 350b2a3bac606c85da2ffce3d9129860f5afcc9f /llvm/test/Demangle/ms-templates-memptrs.test | |
parent | 4ca11217fcd6c8892cfb688f5f4fe9588d55dee0 (diff) | |
download | bcm5719-llvm-df4cd7cbf97c23f363ca07dc4038ecc48c1e6623.tar.gz bcm5719-llvm-df4cd7cbf97c23f363ca07dc4038ecc48c1e6623.zip |
[MS Demangler] Fix a few more edge cases.
I found these by running llvm-undname over a couple hundred
megabytes of object files generated as part of building chromium.
The issues fixed in this patch are:
1) decltype-auto return types.
2) Indirect vtables (e.g. const A::`vftable'{for `B'})
3) Pointers, references, and rvalue-references to member pointers.
I have exactly one remaining symbol out of a few hundred MB of object
files that produces a name we can't demangle, and it's related to
back-referencing.
llvm-svn: 340341
Diffstat (limited to 'llvm/test/Demangle/ms-templates-memptrs.test')
-rw-r--r-- | llvm/test/Demangle/ms-templates-memptrs.test | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/test/Demangle/ms-templates-memptrs.test b/llvm/test/Demangle/ms-templates-memptrs.test index 3647a898871..88e7c21b33c 100644 --- a/llvm/test/Demangle/ms-templates-memptrs.test +++ b/llvm/test/Demangle/ms-templates-memptrs.test @@ -93,3 +93,5 @@ ??$ReadField@UV@@$FM@A@@@YAHAAUV@@@Z ; CHECK: int __cdecl ReadField<struct V, {12, 0}>(struct V &) +?Q@@3$$QEAP8Foo@@EAAXXZEA +; CHECK: void (__cdecl Foo::*&&Q)(void) |