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? */ 9 static void test_const(void) 10 { 11 const int o; 12 int *p = &o; /* check-should-fail */ 13 } 14 15 static void test_volatile(void) 16 { 17 volatile int o; 18 int *p = &o; /* check-should-fail */ 19 } 20 21 static void test_noderef(void) 22 { 23 int __noderef o; 24 int *p = &o; /* check-should-fail */ 25 } 26 27 static void test_bitwise(void) 28 { 29 int __bitwise o; 30 int *p = &o; /* check-should-fail */ 31 } 32 33 static void test_user(void) 34 { 35 int __user o; 36 int *p = &o; /* check-should-fail */ 37 } 38 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? */ 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 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 *<noident> 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 *<noident> 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] *<noident> 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 *<noident> 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>*<noident> 79 * check-error-end 80 */ 81