summaryrefslogtreecommitdiffstats
path: root/test/CodeGenObjCXX/mangle.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenObjCXX/mangle.mm')
-rw-r--r--test/CodeGenObjCXX/mangle.mm20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/CodeGenObjCXX/mangle.mm b/test/CodeGenObjCXX/mangle.mm
index 45a93a1..5b944ca 100644
--- a/test/CodeGenObjCXX/mangle.mm
+++ b/test/CodeGenObjCXX/mangle.mm
@@ -78,3 +78,23 @@ void test2(Test2 *t) {
Test2Template<decltype(t.dimension)> t1;
Test2Template<decltype(t->alt_axis)> t2;
}
+
+@protocol P;
+void overload1(A<P>*) {}
+// CHECK-LABEL: define void @_Z9overload1PU11objcproto1P1A
+void overload1(const A<P>*) {}
+// CHECK-LABEL: define void @_Z9overload1PKU11objcproto1P1A
+void overload1(A<P>**) {}
+// CHECK-LABEL: define void @_Z9overload1PPU11objcproto1P1A
+void overload1(A<P>*const*) {}
+// CHECK-LABEL: define void @_Z9overload1PKPU11objcproto1P1A
+void overload1(A<P>***) {}
+// CHECK-LABEL: define void @_Z9overload1PPPU11objcproto1P1A
+void overload1(void (f)(A<P>*)) {}
+// CHECK-LABEL: define void @_Z9overload1PFvPU11objcproto1P1AE
+
+template<typename T> struct X { void f(); };
+template<> void X<A*>::f() {}
+// CHECK-LABEL: define void @_ZN1XIP1AE1fEv
+template<> void X<A<P>*>::f() {}
+// CHECK-LABEL: define void @_ZN1XIPU11objcproto1P1AE1fEv
OpenPOWER on IntegriCloud