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]

g77 patch to fix "diagnosed crash" sort of bug


(Dave Love, could you install this patch for me please?)

        tq vm, (burley)


Sat Jul 11 19:24:32 1998  Craig Burley  <burley@gnu.org>

	Fix 980616-0.f:
	* equiv.c (ffeequiv_offset_): Don't crash on various
	possible ANY operands.


*** g77-e/gcc/f/equiv.c.~1~	Wed Jul  1 07:00:50 1998
--- g77-e/gcc/f/equiv.c	Sat Jul 11 19:23:02 1998
*************** again:				/* :::::::::::::::::::: */
*** 699,702 ****
--- 699,705 ----
  	    dim = ffebld_head (dims);
  
+ 	    if (ffebld_op (subscript) == FFEBLD_opANY)
+ 	      return FALSE;
+ 
  	    assert (ffebld_op (subscript) == FFEBLD_opCONTER);
  	    assert (ffeinfo_basictype (ffebld_info (subscript))
*************** again:				/* :::::::::::::::::::: */
*** 707,710 ****
--- 710,716 ----
  						       (subscript));
  
+ 	    if (ffebld_op (dim) == FFEBLD_opANY)
+ 	      return FALSE;
+ 
  	    assert (ffebld_op (dim) == FFEBLD_opBOUNDS);
  	    low = ffebld_left (dim);
*************** again:				/* :::::::::::::::::::: */
*** 715,718 ****
--- 721,728 ----
  	    else
  	      {
+ 		if (ffebld_op (low) == FFEBLD_opANY)
+ 		  return FALSE;
+ 
+ 		assert (ffebld_op (low) == FFEBLD_opCONTER);
  		assert (ffeinfo_basictype (ffebld_info (low))
  			== FFEINFO_basictypeINTEGER);
*************** again:				/* :::::::::::::::::::: */
*** 723,726 ****
--- 733,739 ----
  	      }
  
+ 	    if (ffebld_op (high) == FFEBLD_opANY)
+ 	      return FALSE;
+ 
  	    assert (ffebld_op (high) == FFEBLD_opCONTER);
  	    assert (ffeinfo_basictype (ffebld_info (high))
*************** again:				/* :::::::::::::::::::: */
*** 767,770 ****
--- 780,785 ----
  
  	expr = ffebld_left (expr);
+ 	if (ffebld_op (expr) == FFEBLD_opANY)
+ 	  return FALSE;
  	if (ffebld_op (expr) == FFEBLD_opARRAYREF)
  	  sym = ffebld_symter (ffebld_left (expr));
*************** again:				/* :::::::::::::::::::: */
*** 782,785 ****
--- 797,802 ----
  	else
  	  {
+ 	    if (ffebld_op (begin) == FFEBLD_opANY)
+ 	      return FALSE;
  	    assert (ffebld_op (begin) == FFEBLD_opCONTER);
  	    assert (ffeinfo_basictype (ffebld_info (begin))


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