18fbe78f6SDaniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s 21c548021SFariborz Jahanian 31c548021SFariborz Jahanian@protocol P @end 41c548021SFariborz Jahanian@interface I @end 51c548021SFariborz Jahanian 6859c4155SFariborz Jahanianstruct X { X(); }; 7859c4155SFariborz Jahanian 8859c4155SFariborz Jahanianvoid test1(X x) { 91c548021SFariborz Jahanian void *cft; 101c548021SFariborz Jahanian id oct = (id)cft; 111c548021SFariborz Jahanian 121c548021SFariborz Jahanian Class ccct; 131c548021SFariborz Jahanian ccct = (Class)cft; 141c548021SFariborz Jahanian 151c548021SFariborz Jahanian I* iict = (I*)cft; 161c548021SFariborz Jahanian 17859c4155SFariborz Jahanian id<P> qid = (id<P>)cft; 181c548021SFariborz Jahanian 191c548021SFariborz Jahanian I<P> *ip = (I<P>*)cft; 201c548021SFariborz Jahanian 21*909acf82SJohn McCall (id)x; // expected-error {{cannot convert 'X' to 'id' without a conversion operator}} 22859c4155SFariborz Jahanian 23859c4155SFariborz Jahanian id *pid = (id*)ccct; 24859c4155SFariborz Jahanian 25859c4155SFariborz Jahanian id<P> *qpid = (id<P>*)ccct; 26859c4155SFariborz Jahanian 27859c4155SFariborz Jahanian int **pii; 28859c4155SFariborz Jahanian 29859c4155SFariborz Jahanian ccct = (Class)pii; 30859c4155SFariborz Jahanian 31859c4155SFariborz Jahanian qpid = (id<P>*)pii; 32859c4155SFariborz Jahanian 33859c4155SFariborz Jahanian iict = (I*)pii; 34859c4155SFariborz Jahanian 35859c4155SFariborz Jahanian pii = (int **)ccct; 36859c4155SFariborz Jahanian 37859c4155SFariborz Jahanian pii = (int **)qpid; 38859c4155SFariborz Jahanian 391c548021SFariborz Jahanian} 401c548021SFariborz Jahanian 41