re PR rtl-optimization/7145 (g++ -O with structure initializer & return value optimization generates bad code)

PR optimization/7145
        * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.

[[Split portion of a mixed commit.]]

From-SVN: r55262.2
This commit is contained in:
Jason Merrill 2002-07-05 11:16:56 -04:00
parent 98c07d7bd7
commit 7dc17098a2
1 changed files with 23 additions and 0 deletions

View File

@ -0,0 +1,23 @@
// PR optimization/7145
// Bug: The NRV optimization caused us to lose the initializer for 'ret'.
// { dg-options -O }
// { dg-do run }
struct GdkColor {
long pixel;
short red;
short green;
short blue;
};
inline GdkColor mkcolor() {
GdkColor ret={0,1,2,3};
return ret;
}
int
main()
{
GdkColor col=mkcolor();
return (col.pixel != 0 || col.red != 1 || col.green != 2 || col.blue != 3);
}