diff options
| author | Timur Iskhodzhanov <timurrrr@google.com> | 2012-07-26 11:01:05 +0000 |
|---|---|---|
| committer | Timur Iskhodzhanov <timurrrr@google.com> | 2012-07-26 11:01:05 +0000 |
| commit | a70395642233f53719bb52b1de6b69505c5c8f13 (patch) | |
| tree | bfdb15b3d4d6ebff0a5e202e3788ff2954b7c72b /clang | |
| parent | 25fabdbace8b2384fac2a473fd115f005f55a2d3 (diff) | |
| download | bcm5719-llvm-a70395642233f53719bb52b1de6b69505c5c8f13.tar.gz bcm5719-llvm-a70395642233f53719bb52b1de6b69505c5c8f13.zip | |
Add more tests for PR13207 (Mangling of template back references with -cxx-abi microsoft) now that PR13389 is fixed (mangling of return types)
llvm-svn: 160782
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp b/clang/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp index 9234e1c2b89..27b47689771 100644 --- a/clang/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp +++ b/clang/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp @@ -35,6 +35,31 @@ void foo_abb(N::A<char, N::B<char>, N::B<char> >) {} void foo_abc(N::A<char, N::B<char>, N::C<char> >) {} // CHECK: "\01?foo_abc@@YAXV?$A@DV?$B@D@N@@V?$C@D@2@@N@@@Z" +N::A<char, N::B<char>, N::C<char> > abc_foo() { +// CHECK: ?abc_foo@@YA?AV?$A@DV?$B@D@N@@V?$C@D@2@@N@@XZ + return N::A<char, N::B<char>, N::C<char> >(); +} + +N::Z z_foo(N::Z arg) { +// CHECK: ?z_foo@@YA?AVZ@N@@V12@@Z + return arg; +} + +N::B<char> b_foo(N::B<char> arg) { +// CHECK: ?b_foo@@YA?AV?$B@D@N@@V12@@Z + return arg; +} + +N::D<char, char> d_foo(N::D<char, char> arg) { +// CHECK: ?d_foo@@YA?AV?$D@DD@N@@V12@@Z + return arg; +} + +N::A<char, N::B<char>, N::C<char> > abc_foo_abc(N::A<char, N::B<char>, N::C<char> >) { +// CHECK: ?abc_foo_abc@@YA?AV?$A@DV?$B@D@N@@V?$C@D@2@@N@@V12@@Z + return N::A<char, N::B<char>, N::C<char> >(); +} + namespace NA { class X {}; template<class T> class Y {}; |

