mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 08:20:28 +08:00
tree-ssa-operands.c (get_expr_operands): Revert changes to ADDR_EXPR processing introduced by...
* tree-ssa-operands.c (get_expr_operands): Revert changes to ADDR_EXPR processing introduced by: 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. testsuite/ChangeLog * gcc.dg/tree-ssa/20040729-1.c: New test. From-SVN: r85306
This commit is contained in:
parent
9d6e0be1f6
commit
d397dbcd99
@ -1,3 +1,10 @@
|
||||
2004-07-29 Diego Novillo <dnovillo@redhat.com>
|
||||
|
||||
* tree-ssa-operands.c (get_expr_operands): Revert changes
|
||||
to ADDR_EXPR processing introduced by:
|
||||
2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
* tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
|
||||
|
||||
2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
|
||||
|
||||
* doc/implement-c.texi: Add C90 subclause references. Point to
|
||||
|
@ -1,3 +1,7 @@
|
||||
2004-07-29 Diego Novillo <dnovillo@redhat.com>
|
||||
|
||||
* gcc.dg/tree-ssa/20040729-1.c: New test.
|
||||
|
||||
2004-07-27 Matt Austern <austern@apple.com>
|
||||
|
||||
* gcc.dg/darwin-bool-1.c: New test.
|
||||
|
18
gcc/testsuite/gcc.dg/tree-ssa/20040729-1.c
Normal file
18
gcc/testsuite/gcc.dg/tree-ssa/20040729-1.c
Normal file
@ -0,0 +1,18 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O1 -fdump-tree-dce3" } */
|
||||
|
||||
foo ()
|
||||
{
|
||||
volatile int *p;
|
||||
volatile int x;
|
||||
|
||||
p = &x;
|
||||
*p = 3;
|
||||
return *p + 1;
|
||||
}
|
||||
|
||||
/* The assignment to 'p' is dead and should be removed. But the
|
||||
compiler was mistakenly thinking that the statement had volatile
|
||||
operands. But 'p' itself is not volatile and taking the address of
|
||||
a volatile does not constitute a volatile operand. */
|
||||
/* { dg-final { scan-tree-dump-times "&x" 0 "dce3"} } */
|
@ -859,9 +859,9 @@ get_expr_operands (tree stmt, tree *expr_p, int flags, voperands_t prev_vops)
|
||||
of interest to some passes (e.g. alias resolution). */
|
||||
add_stmt_operand (expr_p, stmt, 0, NULL);
|
||||
|
||||
/* If the address is constant (invariant is not sufficient), there will
|
||||
be no interesting variable references inside. */
|
||||
if (TREE_CONSTANT (expr))
|
||||
/* If the address is invariant, there may be no interesting variable
|
||||
references inside. */
|
||||
if (is_gimple_min_invariant (expr))
|
||||
return;
|
||||
|
||||
/* There should be no VUSEs created, since the referenced objects are
|
||||
|
Loading…
x
Reference in New Issue
Block a user