annotate gcc/testsuite/gcc.dg/torture/pr57359-2.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 /* { dg-do run } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2 /* { dg-additional-options "-fstrict-aliasing" } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4 extern void abort();
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 typedef int A;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7 typedef float B;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 void __attribute__((noipa))
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10 foo(A * p, B *r, long unk, long oh)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 for (long i = 0; i < unk; ++i) {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 *p = 1;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14 *r = 2;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 if (oh & i)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16 break;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 *r = 3;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 *p = 4;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22 int main(void)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24 union { A x; B f; } u;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 foo(&u.x, &u.f, 1, 1);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26 if (u.x != 4) abort();
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 foo(&u.x, &u.f, 2, 1);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28 if (u.f != 2) abort ();
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 return 0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30 }