1 2002-07-11 Jakub Jelinek <jakub@redhat.com>
3 * g++.dg/opt/nrv5.C: New test.
5 2002-07-05 Jason Merrill <jason@redhat.com>
7 * g++.dg/opt/nrv4.C: New test.
9 2002-04-09 Jason Merrill <jason@redhat.com>
11 * g++.dg/opt/nrv3.C: New test.
13 --- gcc/testsuite/g++.dg/opt/nrv3.C.jj Thu Apr 11 16:25:15 2002
14 +++ gcc/testsuite/g++.dg/opt/nrv3.C Tue Apr 9 19:02:43 2002
16 +// PR optimization/6189
17 +// Bug: we forgot about foo's nrv after writing it out.
18 +// { dg-options -O3 }
40 --- gcc/testsuite/g++.dg/opt/nrv4.C.jj Thu Apr 11 16:25:15 2002
41 +++ gcc/testsuite/g++.dg/opt/nrv4.C Fri Jul 5 17:16:56 2002
43 +// PR optimization/7145
44 +// Bug: The NRV optimization caused us to lose the initializer for 'ret'.
55 +inline GdkColor mkcolor() {
56 + GdkColor ret={0,1,2,3};
63 + GdkColor col=mkcolor();
64 + return (col.pixel != 0 || col.red != 1 || col.green != 2 || col.blue != 3);
66 --- gcc/testsuite/g++.dg/opt/nrv5.C.jj Thu Apr 11 16:25:15 2002
67 +++ gcc/testsuite/g++.dg/opt/nrv5.C Thu Jul 11 11:29:33 2002
69 +// Test for the named return value optimization with inlining.
70 +// Contributed by Jakub Jelinek <jakub@redhat.com>.
72 +// { dg-options -O2 }
74 +enum E { E0, E1, E2, E3 };
79 + bool s1 : 1, s2 : 1, s3 : 1, s4 : 1, s5 : 1, s6 : 1;
80 + S () : s1 (true), s2 (false), s0 (E1), s3 (true), s4 (false), s5 (true), s6 (false) {}
81 + void foo (E x) { this->s0 = x; }
98 +void check (S &s, bool isfoo);
100 +void test (bool isfoo)
102 + S a = isfoo ? foo () : bar ();
106 +extern "C" void abort ();
108 +void check (S &s, bool isfoo)
110 + if (! s.s1 || s.s2 || ! s.s3 || s.s4 || ! s.s5 || s.s6)
112 + if (s.s0 != (isfoo ? E0 : E2))