diff options
| author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-25 01:18:23 +0000 |
|---|---|---|
| committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-25 01:18:23 +0000 |
| commit | db8577ff1589efcca201914e2dd4c1eab9b7b99e (patch) | |
| tree | b4b203ba10ff34644a7945213fdda6f4dbe0f18e | |
| parent | f674a129ca6f046a3a1b8b518a78c2c3f33b9b1f (diff) | |
| download | ppe42-gcc-db8577ff1589efcca201914e2dd4c1eab9b7b99e.tar.gz ppe42-gcc-db8577ff1589efcca201914e2dd4c1eab9b7b99e.zip | |
* c-semantics.c (build_stmt): Remove test of specific tree codes
for TREE_SIDE_EFFECTS handling.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98693 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/c-semantics.c | 19 |
2 files changed, 11 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c183d6fe8c4..3a776bc68d6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-04-24 Ian Lance Taylor <ian@airs.com> + + * c-semantics.c (build_stmt): Remove test of specific tree codes + for TREE_SIDE_EFFECTS handling. + 2005-04-24 Per Bothner <per@bothner.com> * c-opts.c (finish_options): Make the line-number of the <built-in> diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c index 567a440706b..fe81249117f 100644 --- a/gcc/c-semantics.c +++ b/gcc/c-semantics.c @@ -149,19 +149,12 @@ build_stmt (enum tree_code code, ...) length = TREE_CODE_LENGTH (code); SET_EXPR_LOCATION (ret, input_location); - /* Most statements have implicit side effects all on their own, - such as control transfer. For those that do, we'll compute - the real value of TREE_SIDE_EFFECTS from its arguments. */ - switch (code) - { - case EXPR_STMT: - side_effects = false; - break; - default: - side_effects = true; - break; - } + /* TREE_SIDE_EFFECTS will already be set for statements with + implicit side effects. Here we make sure it is set for other + expressions by checking whether the parameters have side + effects. */ + side_effects = false; for (i = 0; i < length; i++) { tree t = va_arg (p, tree); @@ -170,7 +163,7 @@ build_stmt (enum tree_code code, ...) TREE_OPERAND (ret, i) = t; } - TREE_SIDE_EFFECTS (ret) = side_effects; + TREE_SIDE_EFFECTS (ret) |= side_effects; va_end (p); return ret; |

