fix INTEGER*2 in DATA implied-DO

craig@jcb-sc.com craig@jcb-sc.com
Sat Apr 24 09:32:00 GMT 1999


Committed.

        tq vm, (burley)


Index: egcs/gcc/f/expr.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/f/expr.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -c -3 -p -r1.16 -r1.17
*** expr.c	1999/03/27 10:23:45	1.16
--- expr.c	1999/04/24 09:24:11	1.17
*************** again:				/* :::::::::::::::::::: */
*** 12680,12690 ****
        switch (ffeinfo_basictype (info))
  	{
  	case FFEINFO_basictypeLOGICAL:
! 	  error = error && !ffe_is_ugly_logint ();
! 	  if (!ffeexpr_stack_->is_rhs)
! 	    break;		/* Don't convert lhs variable. */
  	  expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER,
! 				  ffeinfo_kindtype (ffebld_info (expr)), 0,
  				  FFETARGET_charactersizeNONE,
  				  FFEEXPR_contextLET);
  	  break;
--- 12680,12691 ----
        switch (ffeinfo_basictype (info))
  	{
  	case FFEINFO_basictypeLOGICAL:
! 	  if (! ffe_is_ugly_logint ())
! 	    error = TRUE;
! 	  if (! ffeexpr_stack_->is_rhs)
! 	    break;
  	  expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER,
! 				  ffeinfo_kindtype (info), 0,
  				  FFETARGET_charactersizeNONE,
  				  FFEEXPR_contextLET);
  	  break;
*************** again:				/* :::::::::::::::::::: */
*** 12728,12745 ****
        switch (ffeinfo_basictype (info))
  	{
  	case FFEINFO_basictypeLOGICAL:
! 	  error = error
! 	    && (ffeinfo_kindtype (info) != FFEINFO_kindtypeLOGICALDEFAULT);
! 	  if (!ffeexpr_stack_->is_rhs)
! 	    break;		/* Don't convert lhs variable. */
  	  expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER,
! 	     FFEINFO_kindtypeINTEGERDEFAULT, 0, FFETARGET_charactersizeNONE,
  				  FFEEXPR_contextLET);
! 	  break;
! 
  	case FFEINFO_basictypeINTEGER:
! 	  error = error &&
! 	    (ffeinfo_kindtype (info) != FFEINFO_kindtypeINTEGERDEFAULT);
  	  break;
  
  	case FFEINFO_basictypeHOLLERITH:
--- 12729,12749 ----
        switch (ffeinfo_basictype (info))
  	{
  	case FFEINFO_basictypeLOGICAL:
! 	  if (! ffeexpr_stack_->is_rhs)
! 	    break;
  	  expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER,
! 				  ffeinfo_kindtype (info), 0,
! 				  FFETARGET_charactersizeNONE,
  				  FFEEXPR_contextLET);
! 	  /* Fall through.  */
  	case FFEINFO_basictypeINTEGER:
! 	  if (ffeexpr_stack_->is_rhs
! 	      && (ffeinfo_kindtype (ffebld_info (expr))
! 		  != FFEINFO_kindtypeINTEGERDEFAULT))
! 	    expr = ffeexpr_convert (expr, ft, ft, FFEINFO_basictypeINTEGER,
! 				    FFEINFO_kindtypeINTEGERDEFAULT, 0,
! 				    FFETARGET_charactersizeNONE,
! 				    FFEEXPR_contextLET);
  	  break;
  
  	case FFEINFO_basictypeHOLLERITH:
Index: egcs/gcc/f/version.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/f/version.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -c -3 -p -r1.33 -r1.34
*** version.c	1999/04/22 23:01:43	1.33
--- version.c	1999/04/24 09:24:13	1.34
***************
*** 1 ****
! const char *ffe_version_string = "0.5.24-19990423";
--- 1 ----
! const char *ffe_version_string = "0.5.24-19990424";
*** g77-e/gcc/f/news.texi.~1~	Fri Apr 23 01:39:03 1999
--- g77-e/gcc/f/news.texi	Sat Apr 24 12:24:03 1999
***************
*** 10,14 ****
  @set copyrights-news 1995-1999
  
! @set last-update-news 1999-04-23
  
  @include root.texi
--- 10,14 ----
  @set copyrights-news 1995-1999
  
! @set last-update-news 1999-04-24
  
  @include root.texi
*************** Fix @code{g77} so it properly handles @s
*** 180,183 ****
--- 180,186 ----
  where @var{rpt} is not default @code{INTEGER}, such as @code{INTEGER*2},
  instead of producing a spurious diagnostic.
+ Also fix @samp{DATA (A(I),I=1,N)},
+ where @samp{N} is not default @code{INTEGER}
+ to work instead of crashing @code{g77}.
  @end ifclear
  


More information about the Gcc-patches mailing list