[PATCH] improve C++ code by changing fold-const.c

Andrew Pinski pinskia@physics.uc.edu
Wed Jun 2 05:09:00 GMT 2004


On Jun 2, 2004, at 00:30, Andrew Pinski wrote:

>
> On Jun 2, 2004, at 00:12, Jeffrey A Law wrote:
>> Basically if the inner & outer types are pointer types (which include
>> references), then we want to compare what each type points to.  This
>> (of course) iterates until one or both types are no longer a pointer
>> type.
>
> Actually it looks like Dale messed up when he changed
> tree_ssa_useless_type_conversion_1 to use the language hook and he  
> changed
> the checking of the how it considers the pointer types compatible,  
> which
> broke this tree_ssa_useless_type_conversion with this respect.
> See
> <http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff? 
> r1=1.1.4.212&r2=1.1.4.213&f=h>


And here is the patch which fixes the mess up by Dale also improves
all of the code I have been looking at too.

OK? Bootstrapped on powerpc-apple-darwin with no regressions.

Thanks,
Andrew Pinski

ChangeLog:
	* tree-ssa.c: Check the type which the pointer points to
	instead of the pointer types.

Patch:
Index: tree-ssa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa.c,v
retrieving revision 2.3
diff -u -p -r2.3 tree-ssa.c
--- tree-ssa.c	14 May 2004 02:29:23 -0000	2.3
+++ tree-ssa.c	2 Jun 2004 04:32:50 -0000
@@ -555,7 +555,8 @@ tree_ssa_useless_type_conversion_1 (tree
       so strip conversions that just switch between them.  */
    else if (POINTER_TYPE_P (inner_type)
             && POINTER_TYPE_P (outer_type)
-           && lang_hooks.types_compatible_p (inner_type, outer_type))
+           && lang_hooks.types_compatible_p (TREE_TYPE (inner_type),
+					     TREE_TYPE (outer_type)))
      return true;

    /* If both the inner and outer types are integral types, then the



More information about the Gcc-patches mailing list