re PR fortran/9263 (ICE caused by invalid PARAMETER in implied DO loop)
2003-04-11 Bud Davis <bdavis9659@comcast.net> PR Fortran/9263 * gcc/f/data.c (ffedata_advance_): Check initial, final and increment values for INTEGER typeness. PR Fortran/1832 * libf2c/libI77/iio.c (z_putc): Check for overflowing length of output string. * gcc/f/news.texi: Document these fixes. PR Fortran/9263 * g77.f-torture/noncompile/9263.f: New test PR Fortran/1832 * g77.f-torture/execute/1832.f: New test From-SVN: r65481
This commit is contained in:
parent
2ae5ae57ba
commit
62520b2004
|
@ -1,3 +1,10 @@
|
||||||
|
2003-04-11 Bud Davis <bdavis9659@comcast.net>
|
||||||
|
|
||||||
|
PR Fortran/9263
|
||||||
|
* gcc/f/data.c (ffedata_advance_): Check initial, final and
|
||||||
|
increment values for INTEGER typeness.
|
||||||
|
* gcc/f/news.texi: Document these fixes.
|
||||||
|
|
||||||
2003-03-27 Steven Bosscher <steven@gcc.gnu.org>
|
2003-03-27 Steven Bosscher <steven@gcc.gnu.org>
|
||||||
|
|
||||||
* ffe.texi: Don't mention dead file proj.c.
|
* ffe.texi: Don't mention dead file proj.c.
|
||||||
|
|
31
gcc/f/data.c
31
gcc/f/data.c
|
@ -1,5 +1,5 @@
|
||||||
/* data.c -- Implementation File (module.c template V1.0)
|
/* data.c -- Implementation File (module.c template V1.0)
|
||||||
Copyright (C) 1995, 1996, 2002 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 2002, 2003 Free Software Foundation, Inc.
|
||||||
Contributed by James Craig Burley.
|
Contributed by James Craig Burley.
|
||||||
|
|
||||||
This file is part of GNU Fortran.
|
This file is part of GNU Fortran.
|
||||||
|
@ -591,13 +591,29 @@ tail_recurse: /* :::::::::::::::::::: */
|
||||||
assert (ffeinfo_kindtype (ffebld_info (itervar))
|
assert (ffeinfo_kindtype (ffebld_info (itervar))
|
||||||
== FFEINFO_kindtypeINTEGERDEFAULT);
|
== FFEINFO_kindtypeINTEGERDEFAULT);
|
||||||
ffedata_stack_->itervar = ffebld_symter (itervar);
|
ffedata_stack_->itervar = ffebld_symter (itervar);
|
||||||
|
if (ffeinfo_basictype (ffebld_info (start)) != FFEINFO_basictypeINTEGER)
|
||||||
|
{
|
||||||
|
ffebad_start (FFEBAD_DATA_EVAL);
|
||||||
|
ffest_ffebad_here_current_stmt (0);
|
||||||
|
ffebad_finish ();
|
||||||
|
ffedata_pop_ ();
|
||||||
|
ffedata_reported_error_ = TRUE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
assert (ffeinfo_basictype (ffebld_info (start))
|
assert (ffeinfo_basictype (ffebld_info (start))
|
||||||
== FFEINFO_basictypeINTEGER);
|
== FFEINFO_basictypeINTEGER);
|
||||||
assert (ffeinfo_kindtype (ffebld_info (start))
|
assert (ffeinfo_kindtype (ffebld_info (start))
|
||||||
== FFEINFO_kindtypeINTEGERDEFAULT);
|
== FFEINFO_kindtypeINTEGERDEFAULT);
|
||||||
ffesymbol_set_value (ffedata_stack_->itervar, ffedata_eval_integer1_ (start));
|
ffesymbol_set_value (ffedata_stack_->itervar, ffedata_eval_integer1_ (start));
|
||||||
|
if (ffeinfo_basictype (ffebld_info (end)) != FFEINFO_basictypeINTEGER)
|
||||||
|
{
|
||||||
|
ffebad_start (FFEBAD_DATA_EVAL);
|
||||||
|
ffest_ffebad_here_current_stmt (0);
|
||||||
|
ffebad_finish ();
|
||||||
|
ffedata_pop_ ();
|
||||||
|
ffedata_reported_error_ = TRUE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
assert (ffeinfo_basictype (ffebld_info (end))
|
assert (ffeinfo_basictype (ffebld_info (end))
|
||||||
== FFEINFO_basictypeINTEGER);
|
== FFEINFO_basictypeINTEGER);
|
||||||
assert (ffeinfo_kindtype (ffebld_info (end))
|
assert (ffeinfo_kindtype (ffebld_info (end))
|
||||||
|
@ -608,6 +624,15 @@ tail_recurse: /* :::::::::::::::::::: */
|
||||||
ffedata_stack_->increment = 1;
|
ffedata_stack_->increment = 1;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (ffeinfo_basictype (ffebld_info (incr)) != FFEINFO_basictypeINTEGER)
|
||||||
|
{
|
||||||
|
ffebad_start (FFEBAD_DATA_EVAL);
|
||||||
|
ffest_ffebad_here_current_stmt (0);
|
||||||
|
ffebad_finish ();
|
||||||
|
ffedata_pop_ ();
|
||||||
|
ffedata_reported_error_ = TRUE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
assert (ffeinfo_basictype (ffebld_info (incr))
|
assert (ffeinfo_basictype (ffebld_info (incr))
|
||||||
== FFEINFO_basictypeINTEGER);
|
== FFEINFO_basictypeINTEGER);
|
||||||
assert (ffeinfo_kindtype (ffebld_info (incr))
|
assert (ffeinfo_kindtype (ffebld_info (incr))
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
@c in the standalone derivations of this file (e.g. NEWS).
|
@c in the standalone derivations of this file (e.g. NEWS).
|
||||||
@set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002,2003
|
@set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002,2003
|
||||||
|
|
||||||
@set last-update-news 2003-03-24
|
@set last-update-news 2003-04-11
|
||||||
|
|
||||||
@ifset DOC-NEWS
|
@ifset DOC-NEWS
|
||||||
@include root.texi
|
@include root.texi
|
||||||
|
@ -164,6 +164,8 @@ Nothing yet.
|
||||||
@item
|
@item
|
||||||
Problem Reports fixed (in chronological order of submission):
|
Problem Reports fixed (in chronological order of submission):
|
||||||
@table @code
|
@table @code
|
||||||
|
@item 1832
|
||||||
|
-list directed i/o overflow hangs, -fbounds-check doesn't detect
|
||||||
@item 3924
|
@item 3924
|
||||||
g77 generates code which is rejected by GAS if COFF debugging info is
|
g77 generates code which is rejected by GAS if COFF debugging info is
|
||||||
requested
|
requested
|
||||||
|
@ -191,6 +193,8 @@ Incorrect output with 0-based array of characters
|
||||||
Double complex zero ** double precision number -> NaN instead of zero
|
Double complex zero ** double precision number -> NaN instead of zero
|
||||||
@item 9038
|
@item 9038
|
||||||
-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-none
|
-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-none
|
||||||
|
@item 9263
|
||||||
|
ICE caused by invalid PARAMETER in implied DO loop
|
||||||
@item 10197
|
@item 10197
|
||||||
Direct access files not unformatted by default
|
Direct access files not unformatted by default
|
||||||
@end table
|
@end table
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2003-04-11 Bud Davis <bdavis9659@comcast.net>
|
||||||
|
|
||||||
|
PR Fortran/9263
|
||||||
|
* g77.f-torture/noncompile/9263.f: New test
|
||||||
|
PR Fortran/1832
|
||||||
|
* g77.f-torture/execute/1832.f: New test
|
||||||
|
|
||||||
2003-04-11 David Chad <davidc@freebsd.org>
|
2003-04-11 David Chad <davidc@freebsd.org>
|
||||||
Loren J. Rittle <ljrittle@acm.org>
|
Loren J. Rittle <ljrittle@acm.org>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
character*120 file
|
||||||
|
character*5 string
|
||||||
|
file = "c:/dos/adir/bdir/cdir/text.doc"
|
||||||
|
write(string, *) "a ", file
|
||||||
|
if (string .ne. ' a') call abort
|
||||||
|
C-- The leading space is normal for list-directed output
|
||||||
|
C-- "file" is not printed because it would overflow "string".
|
||||||
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
PARAMETER (Q=1)
|
||||||
|
PARAMETER (P=10)
|
||||||
|
INTEGER C(10),D(10),E(10),F(10)
|
||||||
|
DATA (C(I),I=1,P) /10*10/ ! TERMINAL NOT INTEGER
|
||||||
|
DATA (D(I),I=Q,10) /10*10/ ! START NOT INTEGER
|
||||||
|
DATA (E(I),I=1,10,Q) /10*10/ ! INCREMENT NOT INTEGER
|
||||||
|
END
|
|
@ -1,3 +1,9 @@
|
||||||
|
2003-04-11 Bud Davis <bdavis9659@comcast.net>
|
||||||
|
|
||||||
|
PR Fortran/1832
|
||||||
|
* libf2c/libI77/iio.c (z_putc): Check for overflowing length
|
||||||
|
of output string.
|
||||||
|
|
||||||
2003-03-24 Bud Davis <bdavis9659@comcast.net>
|
2003-03-24 Bud Davis <bdavis9659@comcast.net>
|
||||||
|
|
||||||
PR fortran/10197
|
PR fortran/10197
|
||||||
|
|
|
@ -21,7 +21,7 @@ z_getc (void)
|
||||||
void
|
void
|
||||||
z_putc (int c)
|
z_putc (int c)
|
||||||
{
|
{
|
||||||
if (f__icptr < f__icend && f__recpos++ < f__svic->icirlen)
|
if (f__recpos++ < f__svic->icirlen && f__icptr < f__icend)
|
||||||
*f__icptr++ = c;
|
*f__icptr++ = c;
|
||||||
}
|
}
|
||||||
int
|
int
|
||||||
|
|
Loading…
Reference in New Issue