diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-08 08:50:00 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-08 08:50:00 +0000 |
commit | 0f59d5a36813fbb8193cd8f4cb9537e4ecbb0c61 (patch) | |
tree | 8ae017350a8597506e31729d3529fb02694e16a1 | |
parent | 4f7f7efd45b15639029ff88aa51f27e284dd381c (diff) | |
download | gcc-0f59d5a36813fbb8193cd8f4cb9537e4ecbb0c61.tar.gz |
* tree-ssa-ccp.c (fold_stmt): Get type directly from
OBJ_TYPE_REF_OBJECT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84280 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-ccp.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa0aefcc469..0b18c5100ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-07-08 Richard Henderson <rth@redhat.com> + + * tree-ssa-ccp.c (fold_stmt): Get type directly from + OBJ_TYPE_REF_OBJECT. + 2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk> Neil Booth <neil@daikokuya.co.uk> diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 70b91f26520..f8b8ab90e99 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -2068,7 +2068,12 @@ fold_stmt (tree *stmt_p) { tree t; - t = TREE_TYPE (TREE_OPERAND (OBJ_TYPE_REF_OBJECT (callee), 0)); + /* ??? Caution: Broken ADDR_EXPR semantics means that + looking at the type of the operand of the addr_expr + can yield an array type. See silly exception in + check_pointer_types_r. */ + + t = TREE_TYPE (TREE_TYPE (OBJ_TYPE_REF_OBJECT (callee))); t = lang_hooks.fold_obj_type_ref (callee, t); if (t) { |