diff options
Diffstat (limited to 'test/CodeGenCXX/mangle-template.cpp')
-rw-r--r-- | test/CodeGenCXX/mangle-template.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/test/CodeGenCXX/mangle-template.cpp b/test/CodeGenCXX/mangle-template.cpp index 998096a57be4..aaae4b27f9a3 100644 --- a/test/CodeGenCXX/mangle-template.cpp +++ b/test/CodeGenCXX/mangle-template.cpp @@ -4,7 +4,7 @@ namespace test1 { int x; template <int& D> class T { }; -// CHECK: void @_ZN5test12f0ENS_1TILZNS_1xEEEE( +// CHECK: void @_ZN5test12f0ENS_1TIL_ZNS_1xEEEE( void f0(T<x> a0) {} } @@ -12,7 +12,7 @@ namespace test1 { // CHECK: void @_ZN5test12f0Ef void f0(float) {} template<void (&)(float)> struct t1 {}; -// CHECK: void @_ZN5test12f1ENS_2t1ILZNS_2f0EfEEE( +// CHECK: void @_ZN5test12f1ENS_2t1IL_ZNS_2f0EfEEE( void f1(t1<f0> a0) {} } @@ -20,8 +20,7 @@ namespace test2 { // CHECK: void @_ZN5test22f0Ef void f0(float) {} template<void (*)(float)> struct t1 {}; -// FIXME: Fails because we don't treat as an expression. -// CHECK-FIXME: void @_ZN5test22f1ENS_2t1IXadL_ZNS_2f0EfEEEE( +// CHECK: void @_ZN5test22f1ENS_2t1IXadL_ZNS_2f0EfEEEE( void f1(t1<f0> a0) {} } @@ -29,8 +28,7 @@ namespace test3 { // CHECK: void @test3_f0 extern "C" void test3_f0(float) {} template<void (&)(float)> struct t1 {}; -// FIXME: Fails because we tack on a namespace. -// CHECK-FIXME: void @_ZN5test32f1ENS_2t1ILZ8test3_f0EEE( +// CHECK: void @_ZN5test32f1ENS_2t1IL_Z8test3_f0EEE( void f1(t1<test3_f0> a0) {} } @@ -38,8 +36,7 @@ namespace test4 { // CHECK: void @test4_f0 extern "C" void test4_f0(float) {} template<void (*)(float)> struct t1 {}; -// FIXME: Fails because we don't treat as an expression. -// CHECK-FIXME: void @_ZN5test42f1ENS_2t1IXadL_Z8test4_f0EEEE( +// CHECK: void @_ZN5test42f1ENS_2t1IXadL_Z8test4_f0EEEE( void f1(t1<test4_f0> a0) {} } @@ -49,22 +46,20 @@ int main(int) {} namespace test5 { template<void (&)(float)> struct t1 {}; -// CHECK: void @_ZN5test52f1ENS_2t1ILZ8test5_f0EEE( +// CHECK: void @_ZN5test52f1ENS_2t1IL_Z8test5_f0EEE( void f1(t1<test5_f0> a0) {} template<int (&)(int)> struct t2 {}; -// CHECK: void @_ZN5test52f2ENS_2t2ILZ4mainEEE +// CHECK: void @_ZN5test52f2ENS_2t2IL_Z4mainEEE void f2(t2<main> a0) {} } -// FIXME: This fails. namespace test6 { struct A { void im0(float); }; // CHECK: void @_ZN5test61A3im0Ef void A::im0(float) {} template <void(A::*)(float)> class T { }; -// FIXME: Fails because we don't treat as an expression. -// CHECK-FAIL: void @_ZN5test62f0ENS_1TIXadL_ZNS_1A3im0EfEEEE( +// CHECK: void @_ZN5test62f0ENS_1TIXadL_ZNS_1A3im0EfEEEE( void f0(T<&A::im0> a0) {} } @@ -164,11 +159,11 @@ namespace test12 { void use() { // CHECK-LABEL: define internal void @_ZN6test124testIFivEXadL_ZNS_L1fEvEEEEvv( test<int(), &f>(); - // CHECK-LABEL: define internal void @_ZN6test124testIRFivELZNS_L1fEvEEEvv( + // CHECK-LABEL: define internal void @_ZN6test124testIRFivEL_ZNS_L1fEvEEEvv( test<int(&)(), f>(); // CHECK-LABEL: define internal void @_ZN6test124testIPKiXadL_ZNS_L1nEEEEEvv( test<const int*, &n>(); - // CHECK-LABEL: define internal void @_ZN6test124testIRKiLZNS_L1nEEEEvv( + // CHECK-LABEL: define internal void @_ZN6test124testIRKiL_ZNS_L1nEEEEvv( test<const int&, n>(); } } |