#define __user __attribute__((address_space(1))) #define __noderef __attribute__((noderef)) #define __bitwise __attribute__((bitwise)) #define __nocast __attribute__((nocast)) #define __safe __attribute__((safe)) /* Should be inherited? */ static void test_const(void) { const int o; int *p = &o; /* check-should-fail */ } static void test_volatile(void) { volatile int o; int *p = &o; /* check-should-fail */ } static void test_noderef(void) { int __noderef o; int *p = &o; /* check-should-fail */ } static void test_bitwise(void) { int __bitwise o; int *p = &o; /* check-should-fail */ } static void test_user(void) { int __user o; int *p = &o; /* check-should-fail */ } static void test_nocast(void) { int __nocast o; int __nocast *p = &o; /* check-should-pass */ } /* Should be ignored? */ static void test_static(void) { /* storage is not inherited */ static int o; int *p = &o; /* check-should-pass */ } static void test_tls(void) { /* storage is not inherited */ static __thread int o; int *p = &o; /* check-should-pass */ } /* * check-name: ptr-inherit.c * * check-error-start ptr-inherit.c:12:19: warning: incorrect type in initializer (different modifiers) ptr-inherit.c:12:19: expected int *p ptr-inherit.c:12:19: got int const * ptr-inherit.c:18:19: warning: incorrect type in initializer (different modifiers) ptr-inherit.c:18:19: expected int *p ptr-inherit.c:18:19: got int volatile * ptr-inherit.c:24:19: warning: incorrect type in initializer (different modifiers) ptr-inherit.c:24:19: expected int *p ptr-inherit.c:24:19: got int [noderef] * ptr-inherit.c:30:19: warning: incorrect type in initializer (different base types) ptr-inherit.c:30:19: expected int *p ptr-inherit.c:30:19: got restricted int * ptr-inherit.c:36:19: warning: incorrect type in initializer (different address spaces) ptr-inherit.c:36:19: expected int *p ptr-inherit.c:36:19: got int * * check-error-end */