blob: 59e0429490c7fd7707baa823bca7a636aad1d8ba (
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
|
/* { dg-do run } */
/* { dg-options "-fsanitize=null -fno-sanitize-recover=null -w" } */
/* { dg-shouldfail "ubsan" } */
struct S {
int i;
long long j;
long long m;
};
union U {
int k;
struct S l;
};
__attribute__((noinline, noclone)) int
foo (struct S s)
{
return s.i + s.j + s.m;
}
__attribute__((noinline, noclone)) int
bar (union U *u)
{
foo (u->l);
}
union U v;
int
main (void)
{
union U *u = 0;
asm volatile ("" : "+r" (u) : "r" (&v) : "memory");
return bar (u);
}
/* { dg-output "member access within null pointer of type 'union U'" } */
|