diff options
author | Mark Mitchell <mmitchel@gcc.gnu.org> | 2001-07-01 20:50:03 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2001-07-01 20:50:03 +0000 |
commit | c54b0a5e4b261487b58d4ec2db7219f8f5c7233d (patch) | |
tree | adfd7bbb9c5ae27997b84e55b147cbff86b52a22 | |
parent | 074919faeaece80caae9f7873dba67a596e28377 (diff) | |
download | gcc-c54b0a5e4b261487b58d4ec2db7219f8f5c7233d.zip gcc-c54b0a5e4b261487b58d4ec2db7219f8f5c7233d.tar.gz gcc-c54b0a5e4b261487b58d4ec2db7219f8f5c7233d.tar.bz2 |
expr.c (expand_expr, [...]): Correct check for side-effects in the value of an array element.
* expr.c (expand_expr, case ARRAY_REF): Correct check for
side-effects in the value of an array element.
From-SVN: r43680
-rw-r--r-- | gcc/expr.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/array6.C | 20 |
2 files changed, 21 insertions, 1 deletions
@@ -6902,7 +6902,7 @@ expand_expr (exp, target, tmode, modifier) elem = TREE_CHAIN (elem)) ; - if (elem && !TREE_SIDE_EFFECTS (elem)) + if (elem && !TREE_SIDE_EFFECTS (TREE_VALUE (elem))) return expand_expr (fold (TREE_VALUE (elem)), target, tmode, ro_modifier); } diff --git a/gcc/testsuite/g++.old-deja/g++.other/array6.C b/gcc/testsuite/g++.old-deja/g++.other/array6.C new file mode 100644 index 0000000..ab076f2 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/array6.C @@ -0,0 +1,20 @@ +// Special g++ Options: -O1 + +int count = 0; + +double foo () { + count++; + return 0; +}; + +double bar () { + const double x[1] = { foo() }; + return x[0]; +}; + +int main () +{ + bar(); + if (count != 1) + return 1; +}; |