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]

Re: [Bug tree-optimization/16705] ICE inverify_flow_insensitive_alias_info


On Wed, 2004-07-28 at 10:20, Richard Kenner wrote:
>     Try this (not really tested):
> 
> It fixes that file.  It's one of the last to be compiled, so it's probably
> OK now (at least that problem), but I'm running a full bootstrap now.
>
Ironically, that patch went on to cause an ICE in a non-ada file.  I'll
commit this version of the patch if I get through a bootstrap cycle.

Just to make sure, Ada bootstraps but doesn't pass all of its testsuite,
right?


Diego.


Index: tree-ssa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa.c,v
retrieving revision 2.24
diff -d -c -p -r2.24 tree-ssa.c
*** tree-ssa.c	28 Jul 2004 05:13:08 -0000	2.24
--- tree-ssa.c	28 Jul 2004 14:22:06 -0000
*************** verify_flow_insensitive_alias_info (void
*** 348,375 ****
  
    for (i = 0; i < num_referenced_vars; i++)
      {
        var_ann_t ann;
  
        var = referenced_var (i);
        ann = var_ann (var);
  
!       if (ann->mem_tag_kind == TYPE_TAG || ann->mem_tag_kind == NAME_TAG)
  	{
! 	  size_t j;
! 	  varray_type may_aliases = ann->may_aliases;
! 
! 	  for (j = 0; may_aliases && j < VARRAY_ACTIVE_SIZE (may_aliases); j++)
! 	    {
! 	      tree alias = VARRAY_TREE (may_aliases, j);
  
! 	      bitmap_set_bit (visited, var_ann (alias)->uid);
  
! 	      if (!may_be_aliased (alias))
! 		{
! 		  error ("Non-addressable variable inside an alias set.");
! 		  debug_variable (alias);
! 		  goto err;
! 		}
  	    }
  	}
      }
--- 348,372 ----
  
    for (i = 0; i < num_referenced_vars; i++)
      {
+       size_t j;
        var_ann_t ann;
+       varray_type may_aliases;
  
        var = referenced_var (i);
        ann = var_ann (var);
+       may_aliases = ann->may_aliases;
  
!       for (j = 0; may_aliases && j < VARRAY_ACTIVE_SIZE (may_aliases); j++)
  	{
! 	  tree alias = VARRAY_TREE (may_aliases, j);
  
! 	  bitmap_set_bit (visited, var_ann (alias)->uid);
  
! 	  if (!may_be_aliased (alias))
! 	    {
! 	      error ("Non-addressable variable inside an alias set.");
! 	      debug_variable (alias);
! 	      goto err;
  	    }
  	}
      }



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