[MS Demangler] Print template constructor args.
authorZachary Turner <zturner@google.com>
Tue, 21 Aug 2018 22:52:52 +0000 (22:52 +0000)
committerZachary Turner <zturner@google.com>
Tue, 21 Aug 2018 22:52:52 +0000 (22:52 +0000)
commitee09170d254d55bb2f69ed486d5ed8bd2b874bb2
treecf0589bf86600d13132e7d2d19e541614ab5149e
parent986f03c2eab5a7389a7bd77849384290b0dec330
[MS Demangler] Print template constructor args.

Previously if you had something like this:

template<typename T>
struct Foo {
  template<typename U>
  Foo(U);
};

Foo F(3.7);

this would mangle as ??$?0N@?$Foo@H@@QEAA@N@Z

and this would be demangled as:

undname:      __cdecl Foo<int>::Foo<int><double>(double)
llvm-undname: __cdecl Foo<int>::Foo<int>(double)

Note the lack of the constructor template parameter in our
demangling.

This patch makes it so we print the constructor argument list.

llvm-svn: 340356
llvm/lib/Demangle/MicrosoftDemangle.cpp
llvm/test/Demangle/ms-templates.test