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]

(Fortran) Proposed patch for the 2.95 branch.


L.S.,

I'd like to propose the following update to the 2.95 branch:

$ diff -rcp2N releases/egcs/gcc/f/stw.h snapshots/egcs/gcc/f
*** releases/egcs/gcc/f/stw.h   Sat Apr 17 12:58:31 1999
--- snapshots/egcs/gcc/f/stw.h  Thu Dec 30 22:15:24 1999
*************** struct _ffestw_
*** 71,75 ****
                                   state */
      ffewhereColumn col_;      /* was seen in source file. */
!     char uses_;                       /* # uses (new+use-kill calls).
*/
      ffestvState state_;
      int substate_;            /* Used on a per-block-state basis. */
--- 71,75 ----
                                   state */
      ffewhereColumn col_;      /* was seen in source file. */
!     int uses_;                        /* # uses (new+use-kill calls).
*/
      ffestvState state_;
      int substate_;            /* Used on a per-block-state basis. */

It widens the type of a particular count from 127 to 2^31-1.  Up till
the 2.95 release the indicated struct member wasn't really used in
counting up to large numbers, but nowadays an automated generation of:

      IF (...) THEN
      ...
      ELSE IF (...) THEN
      ...
      126 x
      ...
      ELSE
      ...
      ENDIF

will overflow this counter.

Several bug reports mention this problem (it is caught by an assert in
the Fortran Frontend).

Regards,

-- 
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
GNU Fortran: http://gcc.gnu.org/onlinedocs/g77_news.html

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