1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only %s -verify
23da2db468d9a694535d62e7b96a010ce95c26fb6Chris Lattner
33da2db468d9a694535d62e7b96a010ce95c26fb6Chris Lattnertypedef struct { unsigned long bits[(((1) + (64) - 1) / (64))]; } cpumask_t;
43da2db468d9a694535d62e7b96a010ce95c26fb6Chris Lattnercpumask_t x;
53da2db468d9a694535d62e7b96a010ce95c26fb6Chris Lattnervoid foo() {
63da2db468d9a694535d62e7b96a010ce95c26fb6Chris Lattner  (void)x;
73da2db468d9a694535d62e7b96a010ce95c26fb6Chris Lattner}
841826bb59d2ef5e8c8a4a0cd2b06a7a011b67b4dEli Friedmanvoid bar() {
941826bb59d2ef5e8c8a4a0cd2b06a7a011b67b4dEli Friedman  char* a;
1041826bb59d2ef5e8c8a4a0cd2b06a7a011b67b4dEli Friedman  double b;
1141826bb59d2ef5e8c8a4a0cd2b06a7a011b67b4dEli Friedman  b = (double)a; // expected-error {{pointer cannot be cast to type}}
1241826bb59d2ef5e8c8a4a0cd2b06a7a011b67b4dEli Friedman  a = (char*)b; // expected-error {{cannot be cast to a pointer type}}
1341826bb59d2ef5e8c8a4a0cd2b06a7a011b67b4dEli Friedman}
143da2db468d9a694535d62e7b96a010ce95c26fb6Chris Lattner
15a79f8b3989558884d9dbbbdbd4da861117345865Fariborz Jahanianlong bar1(long *next) {
16a79f8b3989558884d9dbbbdbd4da861117345865Fariborz Jahanian        return (long)(*next)++;
17a79f8b3989558884d9dbbbdbd4da861117345865Fariborz Jahanian}
18a79f8b3989558884d9dbbbdbd4da861117345865Fariborz Jahanian
19927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef _Bool Bool;
20927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef int Int;
21927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef long Long;
22927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef float Float;
23927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef double Double;
24927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef _Complex int CInt;
25927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef _Complex long CLong;
26927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef _Complex float CFloat;
27927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef _Complex double CDouble;
28927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef void *VoidPtr;
29927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaratypedef char *CharPtr;
30927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
31927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testBool(Bool v) {
32927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
33927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
34927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
35927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
36927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
37927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
38927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
39927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
40927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
41927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (VoidPtr) v;
42927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CharPtr) v;
43927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
44927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
45927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testInt(Int v) {
46927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
47927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
48927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
49927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
50927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
51927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
52927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
53927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
54927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
55927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (VoidPtr) v;
56927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CharPtr) v;
57927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
58927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
59927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testLong(Long v) {
60927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
61927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
62927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
63927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
64927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
65927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
66927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
67927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
68927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
69927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (VoidPtr) v;
70927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CharPtr) v;
71927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
72927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
73927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testFloat(Float v) {
74927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
75927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
76927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
77927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
78927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
79927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
80927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
81927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
82927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
83927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
84927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
85927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testDouble(Double v) {
86927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
87927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
88927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
89927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
90927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
91927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
92927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
93927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
94927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
95927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
96927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
97927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testCI(CInt v) {
98927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
99927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
100927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
101927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
102927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
103927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
104927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
105927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
106927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
107927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
108927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
109927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testCLong(CLong v) {
110927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
111927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
112927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
113927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
114927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
115927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
116927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
117927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
118927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
119927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
120927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
121927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testCFloat(CFloat v) {
122927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
123927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
124927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
125927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
126927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
127927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
128927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
129927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
130927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
131927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
132927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
133927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testCDouble(CDouble v) {
134927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
135927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
136927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
137927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Float) v;
138927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Double) v;
139927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CInt) v;
140927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CLong) v;
141927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CFloat) v;
142927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CDouble) v;
143927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
144927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
145927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testVoidPtr(VoidPtr v) {
146927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
147927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
148927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
149927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (VoidPtr) v;
150927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CharPtr) v;
151927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
152927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara
153927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnaravoid testCharPtr(CharPtr v) {
154927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Bool) v;
155927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Int) v;
156927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (Long) v;
157927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (VoidPtr) v;
158927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara  (void) (CharPtr) v;
159927b180b8debfcfd80d36fdec9d0fddba1c283e7Abramo Bagnara}
160