This is the mail archive of the gcc@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]

[RFH][tuples] Make Ada work


The Ada status on tuples is now that you can build it (on i686 at least)
but gnatmake is miscompiled (or rather, the global initializer stuff
doesn't work - all the ___elabs are missing, as you can see in
for example gnat.dg/renaming3.adb failing if you just use gnat1 from
tuples in a trunk tree).

You need the patch below to allow the gnat/rts build to succeed, but
I'm lost with the above now - this is failures at -O0 after all - so
I expect some help from you Ada guys here.

Thanks,
Richard.

2008-07-20  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_has_side_effects): Disable asserts.
	(gimple_rhs_has_side_effects): Likewise.

Index: gcc/gimple.c
===================================================================
*** gcc/gimple.c	(revision 138006)
--- gcc/gimple.c	(working copy)
*************** gimple_has_side_effects (const_gimple s)
*** 2318,2324 ****
        for (i = 0; i < gimple_num_ops (s); i++)
  	if (TREE_SIDE_EFFECTS (gimple_op (s, i)))
  	  {
! 	    gcc_assert (gimple_has_volatile_ops (s));
  	    return true;
  	  }
      }
--- 2318,2326 ----
        for (i = 0; i < gimple_num_ops (s); i++)
  	if (TREE_SIDE_EFFECTS (gimple_op (s, i)))
  	  {
! 	    /* FIXME tuples.  This assign is over-eager at least
! 	       for Ada.
! 	    gcc_assert (gimple_has_volatile_ops (s)); */
  	    return true;
  	  }
      }
*************** gimple_rhs_has_side_effects (const_gimpl
*** 2367,2373 ****
  	if (TREE_SIDE_EFFECTS (gimple_op (s, i))
              || TREE_THIS_VOLATILE (gimple_op (s, i)))
  	  {
! 	    gcc_assert (gimple_has_volatile_ops (s));
  	    return true;
  	  }
      }
--- 2369,2377 ----
  	if (TREE_SIDE_EFFECTS (gimple_op (s, i))
              || TREE_THIS_VOLATILE (gimple_op (s, i)))
  	  {
! 	    /* FIXME tuples.  This assign is over-eager at least
! 	       for Ada.
! 	    gcc_assert (gimple_has_volatile_ops (s)); */
  	    return true;
  	  }
      }
*************** gimple_rhs_has_side_effects (const_gimpl
*** 2378,2384 ****
  	if (TREE_SIDE_EFFECTS (gimple_op (s, i))
              || TREE_THIS_VOLATILE (gimple_op (s, i)))
  	  {
! 	    gcc_assert (gimple_has_volatile_ops (s));
  	    return true;
  	  }
      }
--- 2382,2390 ----
  	if (TREE_SIDE_EFFECTS (gimple_op (s, i))
              || TREE_THIS_VOLATILE (gimple_op (s, i)))
  	  {
! 	    /* FIXME tuples.  This assign is over-eager at least
! 	       for Ada.
! 	    gcc_assert (gimple_has_volatile_ops (s)); */
  	    return true;
  	  }
      }


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