This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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)));


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]