This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa]: More C++ PTA Fixes
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sat, 17 May 2003 18:31:09 -0400 (EDT)
- Subject: [tree-ssa]: More C++ PTA Fixes
The second part of this patch was committed yesterday. The message with it
in it should show up eventually .... :)
2003-05-17 Daniel Berlin <dberlin@dberlin.org>
* tree-alias-common.c (get_alias_var): Handle REFERENCE_EXPR.
(find_func_aliases): Ditto.
(get_alias_var): Use POINTER_TYPE_P.
2003-05-16 Daniel Berlin <dberlin@dberlin.org>
* tree-alias-common.c (ptr_may_alias_var): Fix DECL_CONTEXT
checking.
Index: tree-alias-common.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-alias-common.c,v
retrieving revision 1.1.2.24
diff -u -3 -p -r1.1.2.24 tree-alias-common.c
--- tree-alias-common.c 17 May 2003 18:49:56 -0000 1.1.2.24
+++ tree-alias-common.c 17 May 2003 22:24:45 -0000
@@ -275,6 +275,7 @@ get_alias_var (expr)
case FIX_FLOOR_EXPR:
case FIX_ROUND_EXPR:
case ADDR_EXPR:
+ case REFERENCE_EXPR:
case INDIRECT_REF:
/* If it's a ref or cast or conversion of sometmhing, get the
alias var of the something. */
@@ -488,7 +489,8 @@ find_func_aliases (tp, walk_subtrees, da
*walk_subtrees = 0;
}
/* x = &y = x = &foo.y */
- else if (TREE_CODE (op1) == ADDR_EXPR
+ else if ((TREE_CODE (op1) == ADDR_EXPR
+ || TREE_CODE (op1) == REFERENCE_EXPR)
&& is_simple_varname (TREE_OPERAND (op1, 0)))
{
if (rhsAV != NULL)
@@ -599,7 +601,8 @@ find_func_aliases (tp, walk_subtrees, da
}
/* *x = &y */
else if (TREE_CODE (op0) == INDIRECT_REF
- && TREE_CODE (op1) == ADDR_EXPR)
+ && (TREE_CODE (op1) == ADDR_EXPR
+ || TREE_CODE (op1) == REFERENCE_EXPR))
{
/* This becomes temp = &y and *x = temp . */
alias_typevar tempvar;
@@ -912,7 +915,7 @@ create_alias_var (decl)
return result->value;
- if (TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE
+ if (POINTER_TYPE_P (TREE_TYPE (decl))
&& TREE_CODE (TREE_TYPE (TREE_TYPE (decl))) == FUNCTION_TYPE)
{
avar = create_fun_alias_var_ptf (decl, TREE_TYPE (TREE_TYPE (decl)));