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