diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2002-04-09 13:02:43 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2002-04-09 13:02:43 -0400 |
commit | 02f136ee0d7c29cb8721a30107d7b6ef7f5279c0 (patch) | |
tree | 071c0375be4586f849ed9967c6baf83561577c17 | |
parent | edf5cd1d1d776d7eb0d2d423216a38d4cac21103 (diff) | |
download | gcc-02f136ee0d7c29cb8721a30107d7b6ef7f5279c0.zip gcc-02f136ee0d7c29cb8721a30107d7b6ef7f5279c0.tar.gz gcc-02f136ee0d7c29cb8721a30107d7b6ef7f5279c0.tar.bz2 |
re PR rtl-optimization/6189 (Regression from 3.0.x: g++ -O3 generates wrong code)
PR optimization/6189
* semantics.c (genrtl_start_function): Don't free
DECL_SAVED_FUNCTION_DATA for inline functions.
[[Split portion of a mixed commit.]]
From-SVN: r52083.2
-rw-r--r-- | gcc/testsuite/g++.dg/opt/nrv3.C | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/nrv3.C b/gcc/testsuite/g++.dg/opt/nrv3.C new file mode 100644 index 0000000..2ec5977 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/nrv3.C @@ -0,0 +1,24 @@ +// PR optimization/6189 +// Bug: we forgot about foo's nrv after writing it out. +// { dg-options -O3 } +// { dg-do run } + +struct A +{ + int i; +}; + + +A foo () +{ + A a; + a.i = 42; + return a; +} + + +int main() +{ + A b = foo(); + return b.i != 42; +} |