1// { dg-do assemble  }
2// { dg-options "" }
3// g++ 1.36.1 bug 900210_02
4
5// g++ allows integral type values to be assigned to variables of pointer
6// types.  According to the C++ Reference Manual, this is illegal.
7
8// Cfront 2.0 passes this test.
9
10// keywords: integral types, pointer types, implicit type conversions
11// Special Options: -ansi -pedantic-errors
12int i;
13long l;
14short s;
15char c;
16float f;
17double d;
18long double ld;
19enum E {enum_value_0} e;
20
21signed int si;
22signed long sl;
23signed short ss;
24signed char sc;
25
26unsigned int ui;
27unsigned long ul;
28unsigned short us;
29unsigned char uc;
30
31void* vp;
32char* cp;
33int* ip;
34enum E2 {enum_value_1} * ep;
35struct S { int member; } * sp;
36void (*fp) (void);
37
38void global_function ()
39{
40  vp = i;	/* { dg-error "" }  */
41  vp = l;	/* { dg-error "" }  */
42  vp = s;	/* { dg-error "" }  */
43  vp = c;	/* { dg-error "" }  */
44  vp = si;	/* { dg-error "" }  */
45  vp = sl;	/* { dg-error "" }  */
46  vp = ss;	/* { dg-error "" }  */
47  vp = sc;	/* { dg-error "" }  */
48  vp = ui;	/* { dg-error "" }  */
49  vp = ul;	/* { dg-error "" }  */
50  vp = us;	/* { dg-error "" }  */
51  vp = uc;	/* { dg-error "" }  */
52  cp = i;	/* { dg-error "" }  */
53  cp = l;	/* { dg-error "" }  */
54  cp = s;	/* { dg-error "" }  */
55  cp = c;	/* { dg-error "" }  */
56  cp = si;	/* { dg-error "" }  */
57  cp = sl;	/* { dg-error "" }  */
58  cp = ss;	/* { dg-error "" }  */
59  cp = sc;	/* { dg-error "" }  */
60  cp = ui;	/* { dg-error "" }  */
61  cp = ul;	/* { dg-error "" }  */
62  cp = us;	/* { dg-error "" }  */
63  cp = uc;	/* { dg-error "" }  */
64  ip = i;	/* { dg-error "" }  */
65  ip = l;	/* { dg-error "" }  */
66  ip = s;	/* { dg-error "" }  */
67  ip = c;	/* { dg-error "" }  */
68  ip = si;	/* { dg-error "" }  */
69  ip = sl;	/* { dg-error "" }  */
70  ip = ss;	/* { dg-error "" }  */
71  ip = sc;	/* { dg-error "" }  */
72  ip = ui;	/* { dg-error "" }  */
73  ip = ul;	/* { dg-error "" }  */
74  ip = us;	/* { dg-error "" }  */
75  ip = uc;	/* { dg-error "" }  */
76  ep = i;	/* { dg-error "" }  */
77  ep = l;	/* { dg-error "" }  */
78  ep = s;	/* { dg-error "" }  */
79  ep = c;	/* { dg-error "" }  */
80  ep = si;	/* { dg-error "" }  */
81  ep = sl;	/* { dg-error "" }  */
82  ep = ss;	/* { dg-error "" }  */
83  ep = sc;	/* { dg-error "" }  */
84  ep = ui;	/* { dg-error "" }  */
85  ep = ul;	/* { dg-error "" }  */
86  ep = us;	/* { dg-error "" }  */
87  ep = uc;	/* { dg-error "" }  */
88  sp = i;	/* { dg-error "" }  */
89  sp = l;	/* { dg-error "" }  */
90  sp = s;	/* { dg-error "" }  */
91  sp = c;	/* { dg-error "" }  */
92  sp = si;	/* { dg-error "" }  */
93  sp = sl;	/* { dg-error "" }  */
94  sp = ss;	/* { dg-error "" }  */
95  sp = sc;	/* { dg-error "" }  */
96  sp = ui;	/* { dg-error "" }  */
97  sp = ul;	/* { dg-error "" }  */
98  sp = us;	/* { dg-error "" }  */
99  sp = uc;	/* { dg-error "" }  */
100  fp = i;	/* { dg-error "" }  */
101  fp = l;	/* { dg-error "" }  */
102  fp = s;	/* { dg-error "" }  */
103  fp = c;	/* { dg-error "" }  */
104  fp = si;	/* { dg-error "" }  */
105  fp = sl;	/* { dg-error "" }  */
106  fp = ss;	/* { dg-error "" }  */
107  fp = sc;	/* { dg-error "" }  */
108  fp = ui;	/* { dg-error "" }  */
109  fp = ul;	/* { dg-error "" }  */
110  fp = us;	/* { dg-error "" }  */
111  fp = uc;	/* { dg-error "" }  */
112}
113
114int main () { return 0; }
115