1// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3@protocol P @end
4@interface I @end
5
6struct X { X(); };
7
8void test1(X x) {
9  void *cft;
10  id oct = (id)cft;
11
12  Class ccct;
13  ccct = (Class)cft;
14
15  I* iict = (I*)cft;
16
17  id<P> qid = (id<P>)cft;
18
19  I<P> *ip = (I<P>*)cft;
20
21  (id)x; // expected-error {{cannot convert 'X' to 'id' without a conversion operator}}
22
23  id *pid = (id*)ccct;
24
25  id<P> *qpid = (id<P>*)ccct;
26
27  int **pii;
28
29  ccct = (Class)pii;
30
31  qpid = (id<P>*)pii;
32
33  iict = (I*)pii;
34
35  pii = (int **)ccct;
36
37  pii = (int **)qpid;
38
39}
40
41