diff options
author | Jakub Jelinek <jakub@redhat.com> | 2000-12-07 10:19:10 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2000-12-07 10:19:10 +0100 |
commit | 5eec2847332bbfbd0c711786d6d3c5f4db03ecee (patch) | |
tree | 456a97854748d7fe1698b9098c137ccde2e549f5 /gcc | |
parent | c0d82ab19c37e195bc3ba247aa96724137b05afa (diff) | |
download | gcc-5eec2847332bbfbd0c711786d6d3c5f4db03ecee.zip gcc-5eec2847332bbfbd0c711786d6d3c5f4db03ecee.tar.gz gcc-5eec2847332bbfbd0c711786d6d3c5f4db03ecee.tar.bz2 |
optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
* optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
* g++.old-deja/g++.other/cleanup4.C: New test.
From-SVN: r38110
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/optimize.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/cleanup4.C | 34 |
4 files changed, 43 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9bd5589..e63dd39 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2000-12-07 Jakub Jelinek <jakub@redhat.com> + + * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. + 2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> * decl2.c (lang_decode_option): Handle -Wformat-security. diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c index b8f1378..ba97c57 100644 --- a/gcc/cp/optimize.c +++ b/gcc/cp/optimize.c @@ -289,6 +289,7 @@ copy_body_r (tp, walk_subtrees, data) { *tp = build_stmt (EXPR_STMT, RETURN_EXPR (return_stmt)); + STMT_IS_FULL_EXPR_P (*tp) = 1; /* And then jump to the end of the function. */ TREE_CHAIN (*tp) = goto_stmt; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0a2417c..b458ead 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2000-12-07 Jakub Jelinek <jakub@redhat.com> + + * g++.old-deja/g++.other/cleanup4.C: New test. + 2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> * format-sec-1.c: New test. diff --git a/gcc/testsuite/g++.old-deja/g++.other/cleanup4.C b/gcc/testsuite/g++.old-deja/g++.other/cleanup4.C new file mode 100644 index 0000000..a98c5fe --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/cleanup4.C @@ -0,0 +1,34 @@ +// Build don't link: +// Origin: Jakub Jelinek <jakub@redhat.com> +// Special g++ Options: -O2 -fno-exceptions + +class foo +{ +public: + foo (); + ~foo (); +}; + +class bar +{ +public: + bar (); + bar (const foo&); +}; + +int i; +foo f (); + +inline bar x () +{ + switch (i) + { + case 0: return bar (f ()); + default: return bar (); + } +} + +bar y () +{ + return x (); +} |