tree-ssa-alias.c (setup_pointers_and_addressables): Don't remove TREE_ADDRESSABLE from RESULT_DECL.

* tree-ssa-alias.c (setup_pointers_and_addressables): Don't
	remove TREE_ADDRESSABLE from RESULT_DECL.

testsuite/ChangeLog

	* g++.dg/tree-ssa/pr17153.C: New test.

From-SVN: r87703
This commit is contained in:
Diego Novillo 2004-09-18 13:56:23 +00:00 committed by Diego Novillo
parent d804d49087
commit 57e28d7d76
4 changed files with 27 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2004-09-18 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-alias.c (setup_pointers_and_addressables): Don't
remove TREE_ADDRESSABLE from RESULT_DECL.
2004-09-18 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.

View File

@ -1,3 +1,7 @@
2004-09-18 Diego Novillo <dnovillo@redhat.com>
* g++.dg/tree-ssa/pr17153.C: New test.
2004-09-16 Geoffrey Keating <geoffk@apple.com>
PR pch/13361

View File

@ -0,0 +1,17 @@
/* The alias analyzer was marking RETVAL non-addressable, but RETVAL
is a special variable that's available across different functions. */
void foo(const char*);
struct A {};
struct B : A
{
B(){}
B bar()
{
foo(__PRETTY_FUNCTION__);
return B();
};
};
B b=B().bar();

View File

@ -1347,6 +1347,7 @@ setup_pointers_and_addressables (struct alias_info *ai)
{
if (!bitmap_bit_p (ai->addresses_needed, v_ann->uid)
&& v_ann->mem_tag_kind == NOT_A_TAG
&& TREE_CODE (var) != RESULT_DECL
&& !is_global_var (var))
{
/* The address of VAR is not needed, remove the