aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/AST/Type.cpp1
-rw-r--r--test/SemaObjCXX/vararg-non-pod.mm11
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp
index bf10b9ad70..62875ed5cb 100644
--- a/lib/AST/Type.cpp
+++ b/lib/AST/Type.cpp
@@ -746,6 +746,7 @@ bool Type::isPODType() const {
case MemberPointer:
case Vector:
case ExtVector:
+ case ObjCQualifiedId:
return true;
case Tagged:
diff --git a/test/SemaObjCXX/vararg-non-pod.mm b/test/SemaObjCXX/vararg-non-pod.mm
index 83266381ae..70028c7e58 100644
--- a/test/SemaObjCXX/vararg-non-pod.mm
+++ b/test/SemaObjCXX/vararg-non-pod.mm
@@ -2,6 +2,8 @@
extern char version[];
+@protocol P;
+
class C {
public:
C(int);
@@ -19,3 +21,12 @@ void t1(D *d)
[d g:10, version];
}
+void t2(D *d, id p)
+{
+ [d g:10, p];
+}
+
+void t3(D *d, id<P> p)
+{
+ [d g:10, p];
+}