blob: 69e5a931b6cc8642cefd4973108937abc216c400 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#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 <asn:1> *
* check-error-end
*/
|