annotate gcc/testsuite/g++.dg/cpp1z/eval-order9.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 -fstrong-eval-order=all }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4 struct A
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 virtual A& operator=(const A&) { return *this; }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 int i;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11 A& f() { if (i != 1) __builtin_abort (); i = 2; static A a; return a; }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 A& g() { if (i != 0) __builtin_abort (); i = 1; static A a; return a; }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14 int main()
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16 f() = g();
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 if (i != 2) __builtin_abort ();
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 }