150
|
1 /* RUN: %clang_cc1 -fsyntax-only -verify -std=c90 -pedantic %s
|
|
2 */
|
|
3 void
|
|
4 foo (void)
|
|
5 {
|
|
6 struct b;
|
|
7 struct b* x = 0;
|
|
8 struct b* y = &*x;
|
|
9 }
|
|
10
|
|
11 void foo2 (void)
|
|
12 {
|
|
13 typedef int (*arrayptr)[];
|
|
14 arrayptr x = 0;
|
|
15 arrayptr y = &*x;
|
|
16 }
|
|
17
|
|
18 void foo3 (void)
|
|
19 {
|
|
20 void* x = 0;
|
|
21 void* y = &*x; /* expected-warning{{address of an expression of type 'void'}} */
|
|
22 }
|
|
23
|
|
24 extern const void cv1;
|
|
25
|
|
26 const void *foo4 (void)
|
|
27 {
|
|
28 return &cv1;
|
|
29 }
|
|
30
|
|
31 extern void cv2;
|
|
32 void *foo5 (void)
|
|
33 {
|
|
34 return &cv2; /* expected-warning{{address of an expression of type 'void'}} */
|
|
35 }
|
|
36
|
|
37 typedef const void CVT;
|
|
38 extern CVT cv3;
|
|
39
|
|
40 const void *foo6 (void)
|
|
41 {
|
|
42 return &cv3;
|
|
43 }
|
|
44
|