aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimur Iskhodzhanov <timurrrr@google.com>2012-06-27 21:53:00 +0000
committerTimur Iskhodzhanov <timurrrr@google.com>2012-06-27 21:53:00 +0000
commit8771872ab78fe4bd65393f94f2b1b6eb8b4ec6d3 (patch)
treec10267a08411c426ce6e9fff939f573f52e5548a
parentf4bcfa1b1850711d5eb092f2b0639331ef9f09f1 (diff)
Two more tests for PR13207 - wrong mangling of templates with back references [-cxx-abi microsoft]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159296 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CodeGenCXX/mangle-ms-back-references.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/CodeGenCXX/mangle-ms-back-references.cpp b/test/CodeGenCXX/mangle-ms-back-references.cpp
index 73e4d5c192..33a442259c 100644
--- a/test/CodeGenCXX/mangle-ms-back-references.cpp
+++ b/test/CodeGenCXX/mangle-ms-back-references.cpp
@@ -74,6 +74,8 @@ class B {};
class C {};
template<class X>
+class F {};
+template<class X>
class I {};
template<class X, class Y>
class J {};
@@ -97,6 +99,18 @@ void bar(J<A,B> x) {}
void spam(K<A,B,C> x) {}
// CHECK: "\01?spam@PR13207@@YAXV?$K@VA@PR13207@@VB@2@VC@2@@1@@Z"
+// The following CURRENT line is here to improve the precision of the "scanning
+// from here" reports of FileCheck.
+// CURRENT: "\01?spam@PR13207@@YAXV?$K@VA@PR13207@@VB@2@VC@2@@1@@Z"
+
+// The tests below currently fail:
+void baz(K<char, F<char>, I<char> >) {}
+// CURRENT: "\01?baz@PR13207@@YAXV?$K@DV?$F@D@PR13207@@V?$I@D@1@@1@@Z"
+// CORRECT: "\01?baz@PR13207@@YAXV?$K@DV?$F@D@PR13207@@V?$I@D@2@@1@@Z"
+void qux(K<char, I<char>, I<char> >) {}
+// CURRENT: "\01?qux@PR13207@@YAXV?$K@DV?$I@D@PR13207@@V?$I@D@1@@1@@Z"
+// CORRECT: "\01?qux@PR13207@@YAXV?$K@DV?$I@D@PR13207@@V12@@1@@Z
+
namespace NA {
class X {};
template<class T> class Y {};
@@ -116,10 +130,6 @@ void bar(NA::Y<X> x) {}
void spam(NA::Y<NA::X> x) {}
// CHECK: "\01?spam@NB@PR13207@@YAXV?$Y@VX@NA@PR13207@@@NA@2@@Z"
-// The following CURRENT line is here to improve the precision of the "scanning
-// from here" reports of FileCheck.
-// CURRENT: "\01?spam@NB@PR13207@@YAXV?$Y@VX@NA@PR13207@@@NA@2@@Z"
-
// The tests below currently fail:
void foobar(NA::Y<Y<X> > a, Y<Y<X> >) {}
// CURRENT: "\01?foobar@NB@PR13207@@YAXV?$Y@V?$Y@VX@NB@PR13207@@@NB@PR13207@@@NA@2@V?$Y@V?$Y@VX@NB@PR13207@@@NB@PR13207@@@12@@Z"