1 #define __user __attribute__((address_space(1)))
2
3 struct s {
4 int i;
5 } __user;
6
7
8 extern void use0(void *);
9 extern void use1(void __user *);
10
11 void main(void)
12 {
13 struct s s;
14 int i;
15
16 use0(&s); // KO
17 use0(&i); // OK
18 use1(&s); // OK
19 use1(&i); // KO
20 }
21
22 /*
23 * check-name: type-attribute-as
24 *
25 * check-error-start
26 type-attribute-as.c:16:15: warning: incorrect type in argument 1 (different address spaces)
27 type-attribute-as.c:16:15: expected void *<noident>
28 type-attribute-as.c:16:15: got struct s <asn:1>*<noident>
29 type-attribute-as.c:19:15: warning: incorrect type in argument 1 (different address spaces)
30 type-attribute-as.c:19:15: expected void <asn:1>*<noident>
31 type-attribute-as.c:19:15: got int *<noident>
32 * check-error-end
33 */