Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/alias-16.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* { dg-do compile } */ | |
2 /* { dg-options "-Wstrict-aliasing=1 -fstrict-aliasing" } */ | |
3 | |
4 struct incomplete; | |
5 struct s1 { int i; }; | |
6 struct s2 { double d; }; | |
7 | |
8 void | |
9 f (int *i, double *d, struct s1 *s1, struct s2 *s2, char *c) | |
10 { | |
11 (char *) i; | |
12 (char *) d; | |
13 (char *) s1; | |
14 (char *) s2; | |
15 (char *) c; | |
16 | |
17 (int *) i; | |
18 (int *) d; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
19 (int *) s1; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
20 (int *) s2; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
21 (int *) c; | |
22 | |
23 (double *) i; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
24 (double *) d; | |
25 (double *) s1; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
26 (double *) s2; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
27 (double *) c; | |
28 | |
29 (struct incomplete *) i; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
30 (struct incomplete *) d; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
31 (struct incomplete *) s1; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
32 (struct incomplete *) s2; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
33 (struct incomplete *) c; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
34 | |
35 (struct s1 *) i; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
36 (struct s1 *) d; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
37 (struct s1 *) s1; | |
38 (struct s1 *) s2; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
39 (struct s1 *) c; | |
40 | |
41 (struct s2 *) i; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
42 (struct s2 *) d; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
43 (struct s2 *) s1; /* { dg-warning "dereferencing type-punned pointer might break strict-aliasing rules" } */ | |
44 (struct s2 *) s2; | |
45 (struct s2 *) c; | |
46 } |