1 #define	__user		__attribute__((address_space(1)))
2 #define	__noderef	__attribute__((noderef))
3 #define	__bitwise	__attribute__((bitwise))
4 #define	__nocast	__attribute__((nocast))
5 #define	__safe		__attribute__((safe))
6 
7 
8 /* Should be inherited? */
test_const(void)9 static void test_const(void)
10 {
11 	const int o;
12 	int *p = &o;			/* check-should-fail */
13 }
14 
test_volatile(void)15 static void test_volatile(void)
16 {
17 	volatile int o;
18 	int *p = &o;			/* check-should-fail */
19 }
20 
test_noderef(void)21 static void test_noderef(void)
22 {
23 	int __noderef o;
24 	int *p = &o;			/* check-should-fail */
25 }
26 
test_bitwise(void)27 static void test_bitwise(void)
28 {
29 	int __bitwise o;
30 	int *p = &o;			/* check-should-fail */
31 }
32 
test_user(void)33 static void test_user(void)
34 {
35 	int __user o;
36 	int *p = &o;			/* check-should-fail */
37 }
38 
test_nocast(void)39 static void test_nocast(void)
40 {
41 	int __nocast o;
42 	int __nocast *p = &o;		/* check-should-pass */
43 }
44 
45 /* Should be ignored? */
test_static(void)46 static void test_static(void)
47 {
48 	/* storage is not inherited */
49 	static int o;
50 	int *p = &o;			/* check-should-pass */
51 }
52 
test_tls(void)53 static void test_tls(void)
54 {
55 	/* storage is not inherited */
56 	static __thread int o;
57 	int *p = &o;			/* check-should-pass */
58 }
59 
60 /*
61  * check-name: ptr-inherit.c
62  *
63  * check-error-start
64 ptr-inherit.c:12:19: warning: incorrect type in initializer (different modifiers)
65 ptr-inherit.c:12:19:    expected int *p
66 ptr-inherit.c:12:19:    got int const *
67 ptr-inherit.c:18:19: warning: incorrect type in initializer (different modifiers)
68 ptr-inherit.c:18:19:    expected int *p
69 ptr-inherit.c:18:19:    got int volatile *
70 ptr-inherit.c:24:19: warning: incorrect type in initializer (different modifiers)
71 ptr-inherit.c:24:19:    expected int *p
72 ptr-inherit.c:24:19:    got int [noderef] *
73 ptr-inherit.c:30:19: warning: incorrect type in initializer (different base types)
74 ptr-inherit.c:30:19:    expected int *p
75 ptr-inherit.c:30:19:    got restricted int *
76 ptr-inherit.c:36:19: warning: incorrect type in initializer (different address spaces)
77 ptr-inherit.c:36:19:    expected int *p
78 ptr-inherit.c:36:19:    got int <asn:1> *
79  * check-error-end
80  */
81