re PR rtl-optimization/7145 (g++ -O with structure initializer & return value optimiz...
authorJason Merrill <jason@gcc.gnu.org>
Fri, 5 Jul 2002 15:16:56 +0000 (11:16 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 5 Jul 2002 15:16:56 +0000 (11:16 -0400)
        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

gcc/testsuite/g++.dg/opt/nrv4.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/opt/nrv4.C b/gcc/testsuite/g++.dg/opt/nrv4.C
new file mode 100644 (file)
index 0000000..531647d
--- /dev/null
@@ -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);
+}