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