annotate gcc/testsuite/gcc.dg/pr81281-2.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* PR sanitizer/81281 */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-do compile } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 /* { dg-options "-O2 -fdump-tree-optimized" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 /* { dg-final { scan-tree-dump-not "p_\[0-9]*\\(D\\)" "optimized" } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 typedef __SIZE_TYPE__ size_t;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 typedef __INTPTR_TYPE__ T;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 f1 (char *p, size_t a, size_t b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 char *c = p + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 size_t d = a + 2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 size_t e = b + 3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 T f = (T) (p + a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 T g = (T) (p + b);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 return f - g;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 f2 (char *p, size_t a, size_t b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 size_t c = a + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 char *d = p + 2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 size_t e = b + 3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 T f = (T) (p + a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 T g = (T) (p + b);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 return f - g;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 f3 (char *p, size_t a, size_t b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 size_t c = b + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 char *d = p + 2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 size_t e = a + 3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 T f = (T) (p + a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 T g = (T) (p + b);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 return f - g;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 f4 (char *p, size_t a)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 char *c = p + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 size_t d = a + 2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 T f = (T) (p + a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 T g = (T) p;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 return f - g;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 f5 (char *p, size_t a)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 size_t c = a + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 char *d = p + 2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 T f = (T) (p + a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58 T g = (T) p;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59 return f - g;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 f6 (char *p, size_t a)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 char *c = p + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 size_t d = a + 2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67 T f = (T) p;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
68 T g = (T) (p + a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
69 return f - g;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
70 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
71
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
72 T
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
73 f7 (char *p, size_t a)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
74 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
75 size_t c = a + 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
76 char *d = p + 2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
77 T f = (T) p;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
78 T g = (T) (p + a);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
79 return f - g;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
80 }