summaryrefslogtreecommitdiffstats
path: root/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-07-02 09:43:11 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-07-02 09:43:11 +0000
commit23cdc98a29c9503ddc302e127d87d2994b1ca693 (patch)
treec5b286083632e8369f1d46dbc4eea6fa208bb1e6 /test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
parent5b583cb287118712141180b68df545a04ba6e651 (diff)
[MS ABI] nullptr data member ptrs are mangled differently for classes vs fns
It turns out that nullptr pointers to data members act differently in function templates vs class templates. Class templates use a variable width representation proportional to the number of fields needed to materialize it. Function templates always use a single '0' template parameter. However, using '0' all the time is problematic if the class uses single or multiple inheritance. In those cases, use -1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241251 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/mangle-ms-templates-memptrs.cpp')
-rw-r--r--test/CodeGenCXX/mangle-ms-templates-memptrs.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp b/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
index 42237f5b7d..e710abe97e 100644
--- a/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
+++ b/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
@@ -69,8 +69,8 @@ void ReadFields() {
// them right in class templates.
// CHECK: call {{.*}} @"\01??$ReadField@US@@$0A@@@YAHAAUS@@@Z"
// CHECK: call {{.*}} @"\01??$ReadField@UM@@$0A@@@YAHAAUM@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField@UV@@$FA@?0@@YAHAAUV@@@Z"
-// CHECK: call {{.*}} @"\01??$ReadField@UU@@$GA@A@?0@@YAHAAUU@@@Z"
+// CHECK: call {{.*}} @"\01??$ReadField@UV@@$0A@@@YAHAAUV@@@Z"
+// CHECK: call {{.*}} @"\01??$ReadField@UU@@$0A@@@YAHAAUU@@@Z"
// Non-polymorphic null data memptr vs first field memptr. MSVC mangles these
// the same.