From df4cd7cbf97c23f363ca07dc4038ecc48c1e6623 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Tue, 21 Aug 2018 21:23:49 +0000 Subject: [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 --- llvm/test/Demangle/ms-operators.test | 3 +++ 1 file changed, 3 insertions(+) (limited to 'llvm/test/Demangle/ms-operators.test') diff --git a/llvm/test/Demangle/ms-operators.test b/llvm/test/Demangle/ms-operators.test index 7be3da94cc0..3eb49170b86 100644 --- a/llvm/test/Demangle/ms-operators.test +++ b/llvm/test/Demangle/ms-operators.test @@ -140,6 +140,9 @@ ??_7Base@@6B@ ; CHECK: const Base::`vftable' +??_7A@B@@6BC@D@@@ +; CHECK: const B::A::`vftable'{for `D::C'} + ??_8Middle2@@7B@ ; CHECK: const Middle2::`vbtable' -- cgit v1.2.3