re PR tree-optimization/19633 (local address incorrectly thought to escape)
authorDiego Novillo <dnovillo@redhat.com>
Tue, 1 Feb 2005 20:30:07 +0000 (20:30 +0000)
committerDiego Novillo <dnovillo@gcc.gnu.org>
Tue, 1 Feb 2005 20:30:07 +0000 (15:30 -0500)
commita1d13fa1672efeaf2886bb4184b6e73874c092ca
tree87292513a1b836b5850299e91904214e71fb9556
parent28a3618fb707d32cf24e2d63ed6812cbf4054d14
re PR tree-optimization/19633 (local address incorrectly thought to escape)

PR tree-optimization/19633
* tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
* tree-ssa-alias.c (init_alias_info): Initialize.
(merge_pointed_to_info): Set.
(add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
(dump_points_to_info_for): Show value of pt_null.
(struct count_ptr_d): Declare.
(find_ptr_dereference): Remove.
(ptr_is_dereferenced_by): Remove.
(count_ptr_derefs): New local function.
(count_uses_and_derefs): New local function.
(compute_points_to_and_addr_escape): Call it.  If the number
of dereferences is greater than zero, mark the pointer as
dereferenced.  If there are fewer dereferences than uses of
the pointer, the pointer's value escapes.

testsuite/ChangeLog

PR tree-optimization/19633
* testsuite/gcc.dg/pr19633-1.c: New test.
* testsuite/gcc.dg/pr19633.c: Tweak to make pointer point
to NULL or a symbol.

From-SVN: r94558
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr19633-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr19633.c
gcc/tree-flow.h
gcc/tree-ssa-alias.c