From 5fdaac15ec0396f4d41a63d94d2a54a4080f39c8 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Tue, 9 Apr 2013 12:47:38 +0000 Subject: [ms-cxxabi] Add "$$C" when mangling template arg QualTypes Credit goes to Timur Iskhodzhanov for finding the problem and solution. llvm-svn: 179093 --- clang/test/CodeGenCXX/mangle-ms-templates.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'clang/test/CodeGenCXX/mangle-ms-templates.cpp') diff --git a/clang/test/CodeGenCXX/mangle-ms-templates.cpp b/clang/test/CodeGenCXX/mangle-ms-templates.cpp index d0e8af48884..7b7f30bb727 100644 --- a/clang/test/CodeGenCXX/mangle-ms-templates.cpp +++ b/clang/test/CodeGenCXX/mangle-ms-templates.cpp @@ -35,6 +35,18 @@ void template_mangling() { c1.method(); // CHECK: call {{.*}} @"\01?method@?$Class@VTypename@@@@QAEXXZ" + Class c1_const; + Class c1_volatile; + Class c1_cv; + c1_const.method(); + c1_volatile.method(); + c1_cv.method(); +// Types with qualifiers have an extra $$C escape when used as template +// arguments. Not sure why. +// CHECK: call {{.*}} @"\01?method@?$Class@$$CBVTypename@@@@QAEXXZ" +// CHECK: call {{.*}} @"\01?method@?$Class@$$CCVTypename@@@@QAEXXZ" +// CHECK: call {{.*}} @"\01?method@?$Class@$$CDVTypename@@@@QAEXXZ" + Class > c2; c2.method(); // CHECK: call {{.*}} @"\01?method@?$Class@V?$Nested@VTypename@@@@@@QAEXXZ" -- cgit v1.2.3