Merge in g77-0.5.22.
authorJeff Law <law@gcc.gnu.org>
Sun, 22 Mar 1998 10:06:48 +0000 (03:06 -0700)
committerJeff Law <law@gcc.gnu.org>
Sun, 22 Mar 1998 10:06:48 +0000 (03:06 -0700)
From-SVN: r18753

18 files changed:
gcc/README.g77
gcc/f/ChangeLog
gcc/f/INSTALL
gcc/f/Makefile.in
gcc/f/bugs.texi
gcc/f/com.c
gcc/f/expr.c
gcc/f/g77.texi
gcc/f/intdoc.in
gcc/f/intdoc.texi
gcc/f/intrin.c
gcc/f/intrin.def
gcc/f/lang-options.h
gcc/f/news.texi
gcc/f/std.c
gcc/f/ste.c
gcc/f/target.c
gcc/f/version.c

index 36935887f3ef59a0ac826ce3309d4529cdf476ee..b2c885bd8b97c6f80d95cdb977228edf00391174 100644 (file)
@@ -1,12 +1,21 @@
-1997-06-20
+1998-03-08
 
-This directory contains the version 0.5.21 release of the GNU Fortran
+This directory contains the version 0.5.22 release of the GNU Fortran
 compiler.  The GNU Fortran compiler is free software.  See the file
 COPYING.g77 for copying permission.
 
-* IMPORTANT: Things you _must_ do are marked with a * at the beginning of
+* IMPORTANT: Things you *must* do are marked with a * at the beginning of
   the line in this file!!!
 
+* DO NOT send any email (reporting bugs, asking questions, etc.) to
+  <fortran@gnu.org> without *first* reading the g77 documentation,
+  using `info', Info mode in GNU Emacs, or a text viewer such as `more'.
+  The g77 documentation is in the files named `g77.info', `g77.info-1',
+  `g77.info-2', and so on in g77 `f' directory.  If these files are
+  not present or you can't find them, contact the person or organization
+  that put together the g77 distribution you are using (probably not the
+  FSF), or ask your system administrator for help.
+
 This README is for GNU Fortran, and describes the files in the f/
 directory.  The f/ directory is intended to be a subdirectory of a
 gcc source tree.  These directories are referred to below as gcc/,
@@ -14,35 +23,29 @@ which is the top-level directory containing the gcc back end, the
 gcc C front end, and other non-Fortran files, and gcc/f/, which
 contains all of the Fortran files.
 
-* Note, if this is an egcs release, all the installation information
-  which follows is not needed.  It is provided for historical reference
-  only.
-
 * To build GNU Fortran, you must have a source distribution of gcc
-  version 2.7.2.2.  Do not attempt to use any other version
+  version 2.7.2.3.  Do not attempt to use any other version
   of gcc, because this version of g77 is designed to work only with
-  gcc version 2.7.2.2.
+  gcc version 2.7.2.3.
 
 * Note that you must have source copies of these gcc distributions!!
   You cannot build g77 just using binaries of gcc.  Also, unless you
   are an expert, avoid using any distribution of gcc not identical to
-  the one distributed by the FSF -- for example, using a special version
-  modified to produce better code for the Pentium (sometimes labeled
-  gcc-i2.6.3 -- note the `i') will not work with this distribution of g77.
+  the one distributed by the FSF.
 
 If you have just unpacked the g77 distribution, before proceeding,
 you must merge the contents of the g77 distribution with the appropriate
 gcc distribution on your system before proceeding.
 
-* Read and follow the instructions in g77-0.5.21/f/INSTALL that
+* Read and follow the instructions in g77-0.5.22/f/INSTALL that
   explain how to merge a g77 source directory into a gcc source
   directory.  You can use Info to read the same installation
   instructions via:
 
-    info -f g77-0.5.21/f/g77.info -n Unpacking
+    info -f g77-0.5.22/f/g77.info -n Unpacking
 
 The resulting directory layout includes the following, where gcc/ might be
-a link to, for example, gcc-2.7.2.2/:
+a link to, for example, gcc-2.7.2.3/:
 
     gcc/                    Non-Fortran files in gcc (not part of g77*.tar)
     gcc/README.g77          This file
@@ -54,7 +57,7 @@ a link to, for example, gcc-2.7.2.2/:
     gcc/f/runtime/libU77/   Additional interfaces to libc for libf2c
 
 gcc/f/ as a whole contains the program GNU Fortran (g77), plus a portion
-of the separate program f2c, which is in gcc/f/runtime.  NOTE: The f2c
+of the separate program f2c, which is in gcc/f/runtime.  NOTE: The libf2c
 code is not part of the program g77, just distributed with it.
 
 This directory is named gcc/f/ because it, along with its contents, is
@@ -72,9 +75,11 @@ distribution, normally in a gcc directory, before configuring, building,
 and installing g77.
 
 Applying g77 patches in the form of .diff files is done by typing
-"patch -p1 -d gcc" (where gcc/f/ is the active version).  That is,
+`patch -p1 -d gcc' (where gcc/f/ is the active version).  That is,
 g77 patches are distributed in the same form, and at the same directory
-level, as patches to the gcc distribution.
+level, as patches to the gcc distribution.  (Note: make sure you're
+using GNU patch, version 2.5 or later!  Other versions of patch
+have trouble with g77-related patches.)
 
 gcc/f/ has text files that document the Fortran compiler, source
 files for the GNU Fortran Front End (FFE), and some other stuff.
@@ -114,8 +119,9 @@ seen in gcc/f/DOC) listed in the ~fortran/.plan file.  Or:
 
 * Read gcc/f/BUGS, gcc/f/INSTALL, and gcc/f/NEWS at the very least!
   All users of g77 (not just installers) should read gcc/f/g77.info*
-  as well, using the "more" command if the "info" command is
-  unavailable or they aren't accustomed to using it.
+  as well, using the `more' command if neither the `info' command,
+  nor GNU Emacs (with its Info mode), are available, or if they
+  aren't yet accustomed to using these tools.
 
 If you want to get into the FFE code, which lives entirely in gcc/f/, here
 are a few clues.  The file g77.c is the stand-alone source file for the
@@ -167,4 +173,4 @@ the compiler is in the second pass, otherwise it is in the first.
 (This information might help you reduce a test case and/or work around
 a bug in g77 until a fix is available.)
 
-Any questions or comments on these topics, email egcs@cygnus.com
+Any questions or comments on these topics, email <fortran@gnu.org>.
index 7e1d12d33272a5d2a88b016c350cbf44cdddef5a..4a87a2ae0c627c8d03118aa929ce0582d2aebcb6 100644 (file)
@@ -1,29 +1,48 @@
+Mon Mar 16 15:38:50 1998  Craig Burley  <burley@gnu.org>
+
+       * Version 0.5.22 released.
+
+Mon Mar 16 14:36:02 1998  Craig Burley  <burley@gnu.org>
+
+       Make -g work better for ENTRY:
+       * com.c (ffecom_start_progunit_): Master function
+       for ENTRY-laden procedure is not really invented,
+       so it can be debugged.
+       (ffecom_do_entry_): Push/set/pop lineno for each
+       entry point.
+
+Sun Mar 15 05:48:49 1998  Craig Burley  <burley@gnu.org>
+
+       * intrin.def: Fix spelling of mixed-case form
+       of `CPU_Time' (was `Cpu_Time').
+
+1998-03-09  Dave Love  <d.love@dl.ac.uk>
+
+       * Make-lang.in: Set CONFIG_SITE to a non-existent file since
+       /dev/null loses with bash 2.0/autoconf 2.12.  Put
+       F77_FLAGS_TO_PASS before CC.
+
+Sun Mar  8 16:35:34 1998  Craig Burley  <burley@gnu.org>
+
+       * intrin.def: Use tabs instead of blanks more
+       consistently (excepting DEFGEN section for now).
+
+Sat Feb 28 15:24:38 1998  Craig Burley  <burley@gnu.org>
+
+       * intrin.def: Make CPU_TIME's arg generic real to be just
+       like SECOND_subr.
+
 Fri Feb 20 12:45:53 1998  Craig Burley  <burley@gnu.org>
 
        * expr.c (ffeexpr_token_arguments_): Make sure
        outer exprstack isn't null.
 
-Fri Feb 20 10:11:20 1998  Craig Burley  <burley@gnu.org>
-
-       * Make-lang.in (f77.install-info): Fix typo in script.
+1998-02-16  Dave Love  <d.love@dl.ac.uk>
 
-       * Make-lang.in (f77.install-info): Don't install, and
-       don't uninstall existing, Info files if f/g77.info
-       doesn't exit.  (This is a somewhat modified version
-       of an egcs patch on 1998-01-07 12:05:51 by Bruno Haible
-       <bruno@linuix.mathematik.uni-karlsruhe.de>.)
+       * Makefile.in (f/fini): Don't use -W -Wall with HOST_CC.
 
 Sun Jan 11 02:14:47 1998  Craig Burley  <burley@gnu.org>
 
-       Fix 970626-2.f by not doing most back-end processing
-       when current_function_decl is an ERROR_MARK, and by
-       making that the case when its type would be an ERROR_MARK:
-       * com.c (ffecom_start_progunit_, finish_function,
-       lang_printable_name, start_function,
-       ffecom_finish_symbol_transform_): Test for ERROR_MARK.
-       * std.c (ffestd_stmt_pass_): Don't do any downstream
-       processing if ERROR_MARK.
-
        Support FORMAT(I<1+2>) (constant variable-FORMAT
        expressions):
        * bad.def (FFEBAD_FORMAT_VARIABLE): New diagnostic.
@@ -38,13 +57,53 @@ Sun Jan 11 02:14:47 1998  Craig Burley  <burley@gnu.org>
        * stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_,
        ffestb_R100110_): Restructure `for' loop for style.
 
+       Fix 970626-2.f by not doing most back-end processing
+       when current_function_decl is an ERROR_MARK, and by
+       making that the case when its type would be an ERROR_MARK:
+       * com.c (ffecom_start_progunit_, finish_function,
+       lang_printable_name, start_function,
+       ffecom_finish_symbol_transform_): Test for ERROR_MARK.
+       * std.c (ffestd_stmt_pass_): Don't do any downstream
+       processing if ERROR_MARK.
+
+       * Make-lang.in (f77.install-common): Don't install, and
+       don't uninstall existing, Info files if f/g77.info
+       doesn't exit.  (This is a somewhat modified version
+       of an egcs patch on 1998-01-07 12:05:51 by Bruno Haible
+       <bruno@linuix.mathematik.uni-karlsruhe.de>.)
+
 Fri Jan  9 19:09:07 1998  Craig Burley  <burley@gnu.org>
 
+       Fix -fpedantic combined with `F()' invocation,
+       also -fugly-comma combined with `IARGC()' invocation:
+       * bad.def (FFEBAD_NULL_ARGUMENT_W): New diagnostic.
+       * expr.c (ffeexpr_finished_): Don't reject null expressions
+       in the argument-expression context -- let outer context
+       handle that.
+       (ffeexpr_token_arguments_): Warn about null expressions
+       here if -fpedantic (as appropriate).
+       Obey -fugly-comma for only external-procedure invocations.
        * intrin.c (ffeintrin_check_): No longer ignore explicit
        omitted trailing args.
 
 Tue Dec 23 14:58:04 1997  Craig Burley  <burley@gnu.org>
 
+       * intrin.c (ffeintrin_fulfill_generic): Don't generate
+       FFEBAD_INTRINSIC_TYPE for CHARACTER*(*) intrinsic.
+
+       * com.c (ffecom_gfrt_basictype):
+       (ffecom_gfrt_kindtype):
+       (ffecom_make_gfrt_):
+       (FFECOM_rttypeVOIDSTAR_): New return type `void *', for
+       the SIGNAL intrinsic.
+       * com-rt.def (FFECOM_rttypeSIGNAL): Now returns `void *'.
+       * intdoc.c: Replace `p' kind specifier with `7'.
+       * intrin.c (ffeintrin_check_, ffeintrin_init_0): Replace
+       `p' kind specifier with `7'.
+       * intrin.def (FFEINTRIN_impLOC, FFEINTRIN_impSIGNAL_func,
+       FFEINTRIN_impSIGNAL_subr): Replace `p' specifier with `7'.
+       Also, SIGNAL now returns a `void *' status, not `int'.
+
        Improve run-time diagnostic for "PRINT '(I1', 42":
        * com.c (ffecom_char_args_x_): Renamed from ffecom_char_args_,
        which is now a macro (to avoid lots of changes to other code)
@@ -68,21 +127,8 @@ Tue Dec 23 14:58:04 1997  Craig Burley  <burley@gnu.org>
        (ffetarget_hollerith): Append extra phantom null byte as
        part of FFETARGET-NULL-BYTE kludge.
 
-       * intrin.c (ffeintrin_fulfill_generic): Don't generate
-       FFEBAD_INTRINSIC_TYPE for CHARACTER*(*) intrinsic.
-
-       * com.c (ffecom_gfrt_basictype):
-       (ffecom_gfrt_kindtype):
-       (ffecom_make_gfrt_):
-       (FFECOM_rttypeVOIDSTAR_): New return type `void *', for
-       the SIGNAL intrinsic.
-       * com-rt.def (FFECOM_rttypeSIGNAL): Now returns `void *'.
-       * intdoc.c: Replace `p' kind specifier with `7'.
-       * intrin.c (ffeintrin_check_, ffeintrin_init_0): Replace
-       `p' kind specifier with `7'.
-       * intrin.def (FFEINTRIN_impLOC, FFEINTRIN_impSIGNAL_func,
-       FFEINTRIN_impSIGNAL_subr): Replace `p' specifier with `7'.
-       Also, SIGNAL now returns a `void *' status, not `int'.
+       * intrin.def (FFEINTRIN_impCPU_TIME): Point to
+       FFECOM_gfrtSECOND as primary run-time routine.
 
 Mon Dec 22 12:41:07 1997  Craig Burley  <burley@gnu.org>
 
@@ -97,6 +143,10 @@ Sun Dec 14 02:49:58 1997  Craig Burley  <burley@gnu.org>
 
        * intdoc.c: Fix up indentation a bit.
 
+Tue Dec  9 16:20:57 1997  Richard Henderson  <rth@cygnus.com>
+
+       * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'.
+
 Mon Dec  1 19:12:36 1997  Craig Burley  <burley@gnu.org>
 
        * intrin.c (ffeintrin_check_): Fix up indentation a bit more.
@@ -111,17 +161,31 @@ Mon Dec  1 16:21:08 1997  Craig Burley  <burley@gnu.org>
 
 Sun Nov 30 22:22:22 1997  Craig Burley  <burley@gnu.org>
 
-       * intrin.def: Fix up spacing a bit.
-
        * intdoc.c: Minor fix-ups.
 
        * intrin.c (ffeintrin_check_): Fix up indentation a bit.
 
+       * intrin.def: Fix up spacing a bit.
+
 1997-11-17  Dave Love  <d.love@dl.ac.uk>
 
        * com.c (ffecom_arglist_expr_): Pass null pointers for optional
        args which aren't supplied.
 
+Sun Nov 16 21:45:43 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+       * Make-lang.in (f77.install-info): Depend on f77.info.
+
+1997-11-06  Dave Love  <d.love@dl.ac.uk>
+
+       * intrin.def: Allow non-integer args for INT2 and INT8 (per
+       documentation).
+
+Tue Oct 28 02:21:25 1997  Craig Burley  <burley@gnu.ai.mit.edu>
+
+       * lang-options.h: Add -fgnu-intrinsics-* and
+       -fbadu77-intrinsics-* options.
+
 Sun Oct 26 02:36:21 1997  Craig Burley  <burley@gnu.ai.mit.edu>
 
        * com.c (lang_print_error_function): Fix to more
@@ -148,6 +212,11 @@ Fri Oct 10 13:00:48 1997  Craig Burley  <burley@gnu.ai.mit.edu>
 
        * com.c (ffecom_save_tree): Fix indentation.
 
+1997-10-05  Dave Love  <d.love@dl.ac.uk>
+
+       * intrin.def: Make SECOND_subr's arg generic real for people
+       porting from Cray and making everything double precision.
+
 Mon Sep 29 16:18:21 1997  Craig Burley  <burley@gnu.ai.mit.edu>
 
        * stu.c (ffestu_list_exec_transition_,
index 31730a1363f16260d1946599944a4fc563446e9c..176c03035d67482d235ff7b12a4107b328df547b 100644 (file)
@@ -41,8 +41,9 @@ follow the `g77' installation instructions:
      available--in fact, a complete GNU UNIX system can be put together
      on most systems, if desired.
 
-     The version of GNU `gzip' used to package this release is 1.24.
-     (The version of GNU `tar' used to package this release is 1.11.2.)
+     The version of GNU `gzip' used to package this release is
+     1.2.4.  (The version of GNU `tar' used to package this release is
+     1.12.)
 
 `gcc-2.7.2.3.tar.gz'
      You need to have this, or some other applicable, version of `gcc'
@@ -57,7 +58,7 @@ follow the `g77' installation instructions:
      Without an applicable `gcc' source tree, you cannot build `g77'.
      You can obtain an FSF distribution of `gcc' from the FSF.
 
-`g77-0.5.21.tar.gz'
+`g77-0.5.22.tar.gz'
      You probably have already unpacked this package, or you are
      reading an advance copy of these installation instructions, which
      are contained in this distribution.  The size of this package is
@@ -148,14 +149,16 @@ Enough disk space
      In any case, you can apply patches by hand--patch files are
      designed for humans to read them.
 
-     The version of GNU `patch' used to develop this release is 2.4.
+     The version of GNU `patch' used to develop this release is
+     2.5.
 
 `make'
      Your system must have `make', and you will probably save yourself
      a lot of trouble if it is GNU `make' (sometimes referred to as
      `gmake').
 
-     The version of GNU `make' used to develop this release is 3.73.
+     The version of GNU `make' used to develop this release is
+     3.76.1.
 
 `cc'
      Your system must have a working C compiler.
@@ -170,7 +173,8 @@ Enough disk space
      distribution.  You can obtain `bison' the same way you obtained
      `gcc' and `g77'.
 
-     The version of GNU `bison' used to develop this release is 1.25.
+     The version of GNU `bison' used to develop this release is
+     1.25.
 
      *Note Missing bison?::, for information on how to work around not
      having `bison'.
@@ -190,10 +194,10 @@ Enough disk space
      All UNIX systems have `sed', but some have a broken version that
      cannot handle configuring, building, or installing `gcc' or `g77'.
 
-     The version of GNU `sed' used to develop this release is 2.05.
-     (Note that GNU `sed' version 3.0 was withdrawn by the FSF--if you
-     happen to have this version installed, replace it with version
-     2.05 immediately.  See a GNU distribution site for further
+     The version of GNU `sed' used to develop this release is
+     2.05.  (Note that GNU `sed' version 3.0 was withdrawn by the
+     FSF--if you happen to have this version installed, replace it with
+     version 2.05 immediately.  See a GNU distribution site for further
      explanation.)
 
 `root' access or equivalent
@@ -329,7 +333,20 @@ corresponding output files.
 
    If the above does not work, definitely start from scratch and avoid
 copying the `gcc' using any method that does not reliably preserve
-date-time-modified information, such as the UNIX `cp -r' command.
+date-time-modified information, such as the UNIX `cp -r' command (use
+`cp -pr' instead).
+
+System-specific Problems
+------------------------
+
+   If your system is based on a Digital Alpha (AXP) architecture and
+employs a 64-bit operating system (such as GNU/Linux), you might
+consider using `egcs' instead of versions of `g77' based on versions of
+`gcc' prior to 2.8.  `http://www.cygnus.com/egcs' for information on
+`egcs', or obtain a copy from `ftp://egcs.cygnus.com/pub/egcs'.
+
+   If your system is Irix 6, to obtain a working version of `gcc',
+`http://reality.sgi.com/knobi/gcc-2.7.2.x-on-irix-6.2-6.3'.
 
 Cross-compiler Problems
 -----------------------
@@ -482,11 +499,12 @@ Floating-point Bit Patterns
    The `g77' build will crash if an attempt is made to build it as a
 cross-compiler for a target when `g77' cannot reliably determine the
 bit pattern of floating-point constants for the target.  Planned
-improvements for g77-0.6 will give it the capabilities it needs to not
-have to crash the build but rather generate correct code for the target.
-(Currently, `g77' would generate bad code under such circumstances if
-it didn't crash during the build, e.g. when compiling a source file
-that does something like `EQUIVALENCE (I,R)' and `DATA R/9.43578/'.)
+improvements for version 0.6 of `g77' will give it the capabilities it
+needs to not have to crash the build but rather generate correct code
+for the target.  (Currently, `g77' would generate bad code under such
+circumstances if it didn't crash during the build, e.g. when compiling
+a source file that does something like `EQUIVALENCE (I,R)' and `DATA
+R/9.43578/'.)
 
 Initialization of Large Aggregate Areas
 ---------------------------------------
@@ -558,7 +576,7 @@ is assumed that the source distributions themselves already reside in
 system:
 
      /usr/FSF/gcc-2.7.2.3.tar.gz
-     /usr/FSF/g77-0.5.21.tar.gz
+     /usr/FSF/g77-0.5.22.tar.gz
 
    Users of the following systems should not blindly follow these
 quick-start instructions, because of problems their systems have coping
@@ -584,17 +602,17 @@ of some of the steps.  These explanations follow this list of steps.
      sh[ 2]# gunzip -c < /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf -
      [Might say "Broken pipe"...that is normal on some systems.]
      
-     sh[ 3]# gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf -
+     sh[ 3]# gunzip -c < /usr/FSF/g77-0.5.22.tar.gz | tar xf -
      ["Broken pipe" again possible.]
      
      sh[ 4]# ln -s gcc-2.7.2.3 gcc
      
-     sh[ 5]# ln -s g77-0.5.21 g77
+     sh[ 5]# ln -s g77-0.5.22 g77
      
      sh[ 6]# mv -i g77/* gcc
      [No questions should be asked by mv here; or, you made a mistake.]
      
-     sh[ 7]# patch -p1 -V t -d gcc < gcc/f/gbe/2.7.2.3.diff
+     sh[ 7]# patch -p1 -E -V t -d gcc < gcc/f/gbe/2.7.2.3.diff
      [Unless patch complains about rejected patches, this step worked.]
      
      sh[ 8]# cd gcc
@@ -646,17 +664,17 @@ Step 1: `cd /usr/src'
      your system knew where to look for the source code for the
      installed version of `g77' and `gcc' in any case.
 
-Step 3: `gunzip -d < /usr/FSF/g77-0.5.21.tar.gz | tar xf -'
+Step 3: `gunzip -d < /usr/FSF/g77-0.5.22.tar.gz | tar xf -'
      It is not always necessary to obtain the latest version of `g77'
      as a complete `.tar.gz' file if you have a complete, earlier
      distribution of `g77'.  If appropriate, you can unpack that earlier
      version of `g77', and then apply the appropriate patches to
-     achieve the same result--a source tree containing version 0.5.21
-     of `g77'.
+     achieve the same result--a source tree containing version
+     0.5.22 of `g77'.
 
 Step 4: `ln -s gcc-2.7.2.3 gcc'
 
-Step 5: `ln -s g77-0.5.21 g77'
+Step 5: `ln -s g77-0.5.22 g77'
      These commands mainly help reduce typing, and help reduce visual
      clutter in examples in this manual showing what to type to install
      `g77'.
@@ -666,7 +684,7 @@ Step 5: `ln -s g77-0.5.21 g77'
 
 Step 6: `mv -i g77/* gcc'
      After doing this, you can, if you like, type `rm g77' and `rmdir
-     g77-0.5.21' to remove the empty directory and the symbol link to
+     g77-0.5.22' to remove the empty directory and the symbol link to
      it.  But, it might be helpful to leave them around as quick
      reminders of which version(s) of `g77' are installed on your
      system.
@@ -675,10 +693,9 @@ Step 6: `mv -i g77/* gcc'
      directory (as merged into the `gcc' directory).
 
 Step 7: `patch -p1 ...'
-     This can produce a wide variety of printed output, from `Hmm, I
-     can't seem to find a patch in there anywhere...'  to long lists of
-     messages indicated that patches are being found, applied
-     successfully, and so on.
+     If you are using GNU `patch' version 2.5 or later, this should
+     produce a list of files patched.  (Other versions of `patch' might
+     not work properly.)
 
      If messages about "fuzz", "offset", or especially "reject files"
      are printed, it might mean you applied the wrong patch file.  If
@@ -692,6 +709,13 @@ Step 7: `patch -p1 ...'
 
      *Note Merging Distributions::, for more information.
 
+     *Note:* `gcc' versions circa 2.7.2.2 and 2.7.2.3 are known to have
+     slightly differing versions of the `gcc/ChangeLog' file, depending
+     on how they are obtained.  You can safely ignore diagnostics
+     `patch' reports when patching this particular file, since it is
+     purely a documentation file for implementors.  See
+     `gcc/f/gbe/2.7.2.3.diff' for more information.
+
 Step 9: `touch f77-install-ok'
      Don't do this if you don't want to overwrite an existing version
      of `f77' (such as a native compiler, or a script that invokes
@@ -824,9 +848,9 @@ generally only the documentation is immediately usable.
 
      sh# cd /usr/src
      sh# gunzip -c /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf -
-     sh# gunzip -c /usr/FSF/g77-0.5.21.tar.gz | tar xf -
+     sh# gunzip -c /usr/FSF/g77-0.5.22.tar.gz | tar xf -
      sh# ln -s gcc-2.7.2.3 gcc
-     sh# ln -s g77-0.5.21 g77
+     sh# ln -s g77-0.5.22 g77
      sh# mv -i g77/* gcc
 
    *Notes:* The commands beginning with `gunzip...' might print `Broken
@@ -938,10 +962,9 @@ changes to the `g77' front end (FFE).
 in general, will stabilize sufficiently for the need for hand-patching
 to disappear.
 
-   Invoking `patch' as described in `gcc/f/gbe/README' can produce a
-wide variety of printed output, from `Hmm, I can't seem to find a patch
-in there anywhere...'  to long lists of messages indicated that patches
-are being found, applied successfully, and so on.
+   If you are using GNU `patch' version 2.5 or later, this should
+produce a list of files patched.  (Other versions of `patch' might not
+work properly.)
 
    If messages about "fuzz", "offset", or especially "reject files" are
 printed, it might mean you applied the wrong patch file.  If you
@@ -957,6 +980,13 @@ works).
 of several files as saved by `patch'.  To remove these, after `cd gcc',
 type `rm -i *.~*~'.
 
+   *Note:* `gcc' versions circa 2.7.2.2 and 2.7.2.3 are known to have
+slightly differing versions of the `gcc/ChangeLog' file, depending on
+how they are obtained.  You can safely ignore diagnostics `patch'
+reports when patching this particular file, since it is purely a
+documentation file for implementors.  See `gcc/f/gbe/2.7.2.3.diff' for
+more information.
+
    *Note:* `g77''s configuration file `gcc/f/config-lang.in' ensures
 that the source code for the version of `gcc' being configured has at
 least one indication of being patched as required specifically by `g77'.
@@ -966,7 +996,8 @@ explanation.  *Please* do not try to disable the check, otherwise `g77'
 might well appear to build and install correctly, and even appear to
 compile correctly, but could easily produce broken code.
 
-   `diff -rcp2N' is used to create the patch files in `gcc/f/gbe/'.
+   `LC_ALL=C TZ=UTC0 diff -rcp2N' is used to create the patch files in
+`gcc/f/gbe/'.
 
 Installing `f77'
 ----------------
@@ -1311,46 +1342,46 @@ them when they work:
 
      sh# cd /usr/src/gcc
      sh# ./g77 --driver=./xgcc -B./ -v
-     g77 version 0.5.21
+     g77 version 0.5.22
       ./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 ...
      Reading specs from ./specs
-     gcc version 2.7.2.3.f.1
+     gcc version 2.7.2.3.f.2
       ./cpp -lang-c -v -isystem ./include -undef ...
-     GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
+     GNU CPP version 2.7.2.3.f.2 (Linux/Alpha)
      #include "..." search starts here:
      #include <...> search starts here:
       ./include
       /usr/local/include
       /usr/alpha-unknown-linux/include
-      /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.1/include
+      /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.2/include
       /usr/include
      End of search list.
       ./f771 /tmp/cca18048.i -fset-g77-defaults -quiet -dumpbase ...
-     GNU F77 version 2.7.2.3.f.1 (Linux/Alpha) compiled ...
-     GNU Fortran Front End version 0.5.21 compiled: ...
+     GNU F77 version 2.7.2.3.f.2 (Linux/Alpha) compiled ...
+     GNU Fortran Front End version 0.5.22 compiled: ...
       as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s
       ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. ...
-     __G77_LIBF77_VERSION__: 0.5.21
+     __G77_LIBF77_VERSION__: 0.5.22
      @(#)LIBF77 VERSION 19970404
-     __G77_LIBI77_VERSION__: 0.5.21
+     __G77_LIBI77_VERSION__: 0.5.22
      @(#) LIBI77 VERSION pjw,dmg-mods 19970816
-     __G77_LIBU77_VERSION__: 0.5.21
+     __G77_LIBU77_VERSION__: 0.5.22
      @(#) LIBU77 VERSION 19970609
      sh# ./xgcc -B./ -v -o /tmp/delete-me -xc /dev/null -xnone
      Reading specs from ./specs
-     gcc version 2.7.2.3.f.1
+     gcc version 2.7.2.3.f.2
       ./cpp -lang-c -v -isystem ./include -undef ...
-     GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
+     GNU CPP version 2.7.2.3.f.2 (Linux/Alpha)
      #include "..." search starts here:
      #include <...> search starts here:
       ./include
       /usr/local/include
       /usr/alpha-unknown-linux/include
-      /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.1/include
+      /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.2/include
       /usr/include
      End of search list.
       ./cc1 /tmp/cca18063.i -quiet -dumpbase null.c -version ...
-     GNU C version 2.7.2.3.f.1 (Linux/Alpha) compiled ...
+     GNU C version 2.7.2.3.f.2 (Linux/Alpha) compiled ...
       as -nocpp -o /tmp/cca180631.o /tmp/cca18063.s
       ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. ...
      /usr/lib/crt0.o: In function `__start':
@@ -1596,10 +1627,9 @@ general) are broken, at least for their system.
    Finally, *please* ask for bug reports to go to you first, at least
 until you're sure your distribution is widely used and has been well
 tested.  This especially goes for those of you making any changes to
-the `g77' sources to port `g77', e.g. to OS/2.
-<fortran@gnu.org> has received a fair number of bug reports that
-turned out to be problems with other peoples' ports and distributions,
-about which nothing could be done for the user.  Once you are quite
-certain a bug report does not involve your efforts, you can forward it
-to us.
+the `g77' sources to port `g77', e.g. to OS/2.  <fortran@gnu.org> has
+received a fair number of bug reports that turned out to be problems
+with other peoples' ports and distributions, about which nothing could
+be done for the user.  Once you are quite certain a bug report does not
+involve your efforts, you can forward it to us.
 
index 4d502cb72bdee010cfb2ed8b33fb1033e6b26d9b..7ef9bc49e1c8b6b84a94c84813980343fab09cbe 100644 (file)
@@ -503,7 +503,7 @@ f/str-ot.h f/str-ot.j: f/fini f/str-ot.fin
        ./f/fini `echo $(srcdir)/f/str-ot.fin | sed 's,^\./,,'` f/str-ot.j f/str-ot.h
 
 f/fini: f/fini.o f/proj-h.o
-       $(HOST_CC) $(HOST_CFLAGS) -W -Wall $(HOST_LDFLAGS) -o f/fini f/fini.o f/proj-h.o
+       $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o f/fini f/fini.o f/proj-h.o
 
 f/fini.o:
        $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
index f6ad4807ef9316602c0d33b55dc63e9f94b1f045..4fb96303c8bb2edbbff63c978f8b094d665c93a5 100644 (file)
@@ -1,11 +1,11 @@
-@c Copyright (C) 1995-1997 Free Software Foundation, Inc.
+@c Copyright (C) 1995-1998 Free Software Foundation, Inc.
 @c This is part of the G77 manual.
 @c For copying conditions, see the file g77.texi.
 
 @c The text of this file appears in the file BUGS
 @c in the G77 distribution, as well as in the G77 manual.
 
-@c 1996-09-09
+@c 1998-03-15
 
 @ifclear BUGSONLY
 @node Actual Bugs
@@ -40,45 +40,6 @@ in this case, @samp{R} might be initialized to @samp{4.0}.
 
 Until this bug is fixed, use only @samp{-O1} or no optimization.
 
-@cindex DNRM2
-@cindex stack, 387 coprocessor
-@cindex ix86
-@cindex -O2
-@item
-A code-generation bug afflicts
-Intel x86 targets when @samp{-O2} is specified
-compiling, for example, an old version of
-the @samp{DNRM2} routine.
-The x87 coprocessor stack is being somewhat
-mismanaged in cases where assigned @code{GOTO}
-and @code{ASSIGN} are involved.
-
-Version 0.5.21 of @code{g77} contains an initial
-effort to fix the problem, but this effort is
-incomplete, and a more complete fix is planned
-for the next release.
-
-@cindex SIGNAL() intrinsic
-@cindex intrinsics, SIGNAL()
-@item
-Work is needed on the @code{SIGNAL()} intrinsic to ensure
-that pointers and integers are properly handled on all
-targets, including 64-bit machines.
-
-@cindex -fugly-comma option
-@cindex options, -fugly-comma
-@item
-When using @samp{-fugly-comma}, @code{g77} assumes an extra
-@samp{%VAL(0)} argument is to be passed to intrinsics
-taking no arguments, such as @code{IARGC()}, which in
-turn reject such a call.
-Although this has been worked around for 0.5.18 due
-to changes in the handling of intrinsics,
-@code{g77} needs to do the ugly-argument-appending trick
-only for external-function invocation, as this would
-probably be more consistent with compilers that default
-to using that trick.
-
 @item
 Something about @code{g77}'s straightforward handling of
 label references and definitions sometimes prevents the GBE
@@ -225,42 +186,6 @@ is the potential, with the current setup, for interface differences
 in the way such areas are laid out between @code{g77} and other
 compilers.
 
-@item
-Some crashes occur when compiling under Solaris on x86
-machines.
-
-Nothing has been heard about any such problems for some time,
-so this is considering a closed item as of 0.5.20.
-Please submit any bug reports pertinent to @code{g77}'s support
-for Solaris/x86 systems.
-
-@cindex RS/6000 support
-@cindex support, RS/6000
-@item
-RS/6000 support is not complete as of the gcc 2.6.3 back end.
-The 2.7.0 back end appears to fix this problem, or at least mitigate
-it significantly, but there is at least one known problem that is
-likely to be a code-generation bug in @file{gcc-2.7.0} plus
-@file{g77-0.5.16}.
-This problem shows up only when compiling the Fortran program with @samp{-O}.
-
-Nothing has been heard about any RS/6000 problems for some time,
-so this is considering a closed item as of 0.5.20.
-Please submit any bug reports pertinent to @code{g77}'s support
-for RS/6000 systems.
-
-@cindex SGI support
-@cindex support, SGI
-@item
-SGI support is known to be a bit buggy.
-The known problem shows up only when compiling the Fortran program with
-@samp{-O}.
-
-It is possible these problems have all been fixed in 0.5.20 by
-emulating complex arithmetic in the front end.
-Please submit any bug reports pertinent to @code{g77}'s support
-for SGI systems.
-
 @cindex Alpha, support
 @cindex support, Alpha
 @item
@@ -312,9 +237,8 @@ general expressions (other than simple variables/arrays), to procedures
 when compiling on some systems (such as i386) with @samp{-fPIC}, as in
 when compiling for ELF targets.
 The symptom is that the assembler complains about invalid opcodes.
-More investigation is needed, but the problem is almost certainly
-in the gcc back end, and it apparently occurs only when
+This bug is in the gcc back end,
+and it apparently occurs only when
 compiling sufficiently complicated functions @emph{without} the
 @samp{-O} option.
 @end itemize
-
index acaadb9a490ff99f1653a59b3e35093b9327d653..0f895a91a9e04a84e79b4a80bd3972cd6dce9304 100644 (file)
@@ -1,5 +1,5 @@
 /* com.c -- Implementation File (module.c template V1.0)
-   Copyright (C) 1995-1997 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998 Free Software Foundation, Inc.
    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
 
 This file is part of GNU Fortran.
@@ -2362,6 +2362,11 @@ ffecom_do_entry_ (ffesymbol fn, int entrynum)
   bool multi;                  /* Master fn has multiple return types. */
   bool altreturning = FALSE;   /* This entry point has alternate returns. */
   int yes;
+  int old_lineno = lineno;
+  char *old_input_filename = input_filename;
+
+  input_filename = ffesymbol_where_filename (fn);
+  lineno = ffesymbol_where_filelinenum (fn);
 
   /* c-parse.y indeed does call suspend_momentary and not only ignores the
      return value, but also never calls resume_momentary, when starting an
@@ -2708,6 +2713,9 @@ ffecom_do_entry_ (ffesymbol fn, int entrynum)
 
   finish_function (0);
 
+  lineno = old_lineno;
+  input_filename = old_input_filename;
+
   ffecom_doing_entry_ = FALSE;
 }
 
@@ -6241,8 +6249,8 @@ ffecom_expr_power_integer_ (ffebld left, ffebld right)
      r are the "inputs":
 
      ({ typeof (r) rtmp = r;
-        typeof (l) ltmp = l;
-        typeof (l) result;
+       typeof (l) ltmp = l;
+       typeof (l) result;
 
        if (rtmp == 0)
          result = 1;
@@ -7857,9 +7865,12 @@ ffecom_start_progunit_ ()
     }
 
   if (altentries)
-    id = ffecom_get_invented_identifier ("__g77_masterfun_%s",
-                                        ffesymbol_text (fn),
-                                        0);
+    {
+      id = ffecom_get_invented_identifier ("__g77_masterfun_%s",
+                                          ffesymbol_text (fn),
+                                          0);
+      IDENTIFIER_INVENTED (id) = 0;    /* Allow this to be debugged. */
+    }
 #if FFETARGET_isENFORCED_MAIN
   else if (main_program)
     id = get_identifier (FFETARGET_nameENFORCED_MAIN_NAME);
index 8dbab2f3099a627883ad6c71223d9c21b4ef27e5..0459301e55ac0d4a8fc32632d810049dbb043b61 100644 (file)
@@ -1,5 +1,5 @@
 /* expr.c -- Implementation File (module.c template V1.0)
-   Copyright (C) 1995-1997 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998 Free Software Foundation, Inc.
    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
 
 This file is part of GNU Fortran.
index eb9a7014428b1dd774f7ee9c176dce3792fbd4f3..5cf39974994366ffeb712b882a48958f00ab4b93 100644 (file)
@@ -102,7 +102,7 @@ was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
 @sp 2
 @center James Craig Burley
 @sp 3
-@center Last updated 1997-09-09
+@center Last updated 1998-01-11
 @sp 1
 @c The version number appears some more times in this file.
 
@@ -12317,7 +12317,7 @@ or @url{ftp://ftp.dsm.fordham.edu}.
 @cindex Makefile example
 Here are some sample @file{Makefile} rules using @code{ftnchek}
 ``project'' files to do cross-file checking and @code{sfmakedepend}
-(from @url{ftp://ahab.rutgers.edu/pub/perl/sfmakedepend})
+(from @uref{ftp://ahab.rutgers.edu/pub/perl/sfmakedepend})
 to maintain dependencies automatically.
 These assume the use of GNU @code{make}.
 
index 80046b730c2bed653ca226fe9a529f1421242524..f8c9b8261dfc1c9fe15899f4ade11057f9f8be11 100644 (file)
@@ -1282,15 +1282,13 @@ Returns the local time in seconds since midnight minus the value
 DEFDOC (SECOND_func, "Get CPU time for process in seconds.", "\
 Returns the process's runtime in seconds---the same value as the
 UNIX function @code{etime} returns.
-
-This routine is known from Cray Fortran.
 ")
 
 DEFDOC (SECOND_subr, "Get CPU time for process@99@in seconds.", "\
 Returns the process's runtime in seconds in @var{@1@}---the same value
 as the UNIX function @code{etime} returns.
 
-This routine is known from Cray Fortran.  @xref{Cpu_Time Intrinsic}
+This routine is known from Cray Fortran.  @xref{CPU_Time Intrinsic}
 for a standard equivalent.
 ")
 
@@ -1445,6 +1443,10 @@ If the @var{@2@} argument is supplied, it contains 0
 on success or a non-zero error code otherwise upon return.
 See @code{chdir(3)}.
 
+@emph{Caution:} Using this routine during I/O to a unit connected with a
+non-absolute file name can cause subsequent I/O on such a unit to fail
+because the I/O library may reopen files by name.
+
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine, or do not support the
 (optional) @var{@2@} argument.
@@ -1455,6 +1457,10 @@ Sets the current working directory to be @var{@1@}.
 Returns 0 on success or a non-zero error code.
 See @code{chdir(3)}.
 
+@emph{Caution:} Using this routine during I/O to a unit connected with a
+non-absolute file name can cause subsequent I/O on such a unit to fail
+because the I/O library may reopen files by name.
+
 Due to the side effects performed by this intrinsic, the function
 form is not recommended.
 ")
@@ -2039,6 +2045,12 @@ trailing blanks in @var{@1@} are ignored.
 
 DEFDOC (GETLOG, "Get login name.", "\
 Returns the login name for the process in @var{@1@}.
+
+@emph{Caution:} On some systems, the @code{getlogin(3)}
+function, which this intrinsic calls at run time,
+is either not implemented or returns a null pointer.
+In the latter case, this intrinsic returns blanks
+in @var{@1@}.
 ")
 
 DEFDOC (HOSTNM_func, "Get host name.", "\
index 7db02afc9a362ea4001f2d2b0789fbc73a8107bb..cf48c4b99142d8a1a2484588d2de1981cd52f73d 100644 (file)
 @end ifset
 @ifset familyF90
 * Count Intrinsic::     (Reserved for future use.)
-* Cpu_Time Intrinsic::  Get current CPU time.
+* CPU_Time Intrinsic::  Get current CPU time.
 * CShift Intrinsic::    (Reserved for future use.)
 @end ifset
 @ifset familyF77
@@ -2229,6 +2229,10 @@ If the @var{Status} argument is supplied, it contains 0
 on success or a non-zero error code otherwise upon return.
 See @code{chdir(3)}.
 
+@emph{Caution:} Using this routine during I/O to a unit connected with a
+non-absolute file name can cause subsequent I/O on such a unit to fail
+because the I/O library may reopen files by name.
+
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine, or do not support the
 (optional) @var{Status} argument.
@@ -2264,6 +2268,10 @@ Sets the current working directory to be @var{Dir}.
 Returns 0 on success or a non-zero error code.
 See @code{chdir(3)}.
 
+@emph{Caution:} Using this routine during I/O to a unit connected with a
+non-absolute file name can cause subsequent I/O on such a unit to fail
+because the I/O library may reopen files by name.
+
 Due to the side effects performed by this intrinsic, the function
 form is not recommended.
 
@@ -2595,18 +2603,18 @@ The name is, however, reserved as an intrinsic.
 Use @samp{EXTERNAL Count} to use this name for an
 external procedure.
 
-@node Cpu_Time Intrinsic
-@subsubsection Cpu_Time Intrinsic
-@cindex Cpu_Time intrinsic
-@cindex intrinsics, Cpu_Time
+@node CPU_Time Intrinsic
+@subsubsection CPU_Time Intrinsic
+@cindex CPU_Time intrinsic
+@cindex intrinsics, CPU_Time
 
 @noindent
 @example
-CALL Cpu_Time(@var{Seconds})
+CALL CPU_Time(@var{Seconds})
 @end example
 
 @noindent
-@var{Seconds}: @code{REAL(KIND=1)}; scalar; INTENT(OUT).
+@var{Seconds}: @code{REAL}; scalar; INTENT(OUT).
 
 @noindent
 Intrinsic groups: @code{f90}.
@@ -5270,6 +5278,12 @@ Description:
 
 Returns the login name for the process in @var{Login}.
 
+@emph{Caution:} On some systems, the @code{getlogin(3)}
+function, which this intrinsic calls at run time,
+is either not implemented or returns a null pointer.
+In the latter case, this intrinsic returns blanks
+in @var{Login}.
+
 @node GetPId Intrinsic
 @subsubsection GetPId Intrinsic
 @cindex GetPId intrinsic
@@ -9093,8 +9107,6 @@ Description:
 Returns the process's runtime in seconds---the same value as the
 UNIX function @code{etime} returns.
 
-This routine is known from Cray Fortran.
-
 For information on other intrinsics with the same name:
 @xref{Second Intrinsic (subroutine)}.
 
@@ -9109,7 +9121,7 @@ CALL Second(@var{Seconds})
 @end example
 
 @noindent
-@var{Seconds}: @code{REAL(KIND=1)}; scalar; INTENT(OUT).
+@var{Seconds}: @code{REAL}; scalar; INTENT(OUT).
 
 @noindent
 Intrinsic groups: @code{unix}.
@@ -9120,7 +9132,7 @@ Description:
 Returns the process's runtime in seconds in @var{Seconds}---the same value
 as the UNIX function @code{etime} returns.
 
-This routine is known from Cray Fortran.  @xref{Cpu_Time Intrinsic}
+This routine is known from Cray Fortran.  @xref{CPU_Time Intrinsic}
 for a standard equivalent.
 
 For information on other intrinsics with the same name:
index 0b699b75e96320d63a5ffaefe087527a07509d33..5ab530be809873a8d402a3a3e17fd3fc16dc04b6 100644 (file)
@@ -1,5 +1,5 @@
 /* intrin.c -- Recognize references to intrinsics
-   Copyright (C) 1995-1997 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998 Free Software Foundation, Inc.
    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
 
 This file is part of GNU Fortran.
index c4105c96dfadffbd7414acf16fc9c235851f5226..29766543c8ff7e4d74d93744d6d82ae4dd7cde60 100644 (file)
@@ -76,7 +76,7 @@ DEFNAME       ("COS",         "cos",          "Cos",          genNONE,        specCOS)
 DEFNAME        ("COSD",        "cosd",         "CosD",         genNONE,        specCOSD)       /* VXT */
 DEFNAME        ("COSH",        "cosh",         "CosH",         genNONE,        specCOSH)
 DEFNAME        ("COUNT",       "count",        "Count",        genNONE,        specCOUNT)      /* F90 */
-DEFNAME        ("CPU_TIME",    "cpu_time",     "Cpu_Time",     genNONE,        specCPU_TIME)   /* F95 */
+DEFNAME        ("CPU_TIME",    "cpu_time",     "CPU_Time",     genNONE,        specCPU_TIME)   /* F95 */
 DEFNAME        ("CSHIFT",      "cshift",       "CShift",       genNONE,        specCSHIFT)     /* F90 */
 DEFNAME        ("CSIN",        "csin",         "CSin",         genNONE,        specCSIN)
 DEFNAME        ("CSQRT",       "csqrt",        "CSqRt",        genNONE,        specCSQRT)
@@ -3206,7 +3206,7 @@ DEFIMP    (TAN,           "TAN",          L_TAN,TAN,,     "R=:0:X=R*")
 DEFIMP (TANH,          "TANH",         L_TANH,TANH,,   "R=:0:X=R*")
 
 DEFIMP (ABORT,         "ABORT",        ABORT,,,        "--:-:")
-DEFIMP  (ACCESS,       "ACCESS",       ACCESS,,,       "I1:-:Name=A1,Mode=A1")
+DEFIMP (ACCESS,        "ACCESS",       ACCESS,,,       "I1:-:Name=A1,Mode=A1")
 DEFIMP (ACHAR,         "ACHAR",        ,,,             "A1:-:I=I*")
 DEFIMP (ALARM,         "ALARM",        ALARM,,,        "--:-:Seconds=I*,Handler=s*,Status=?I1w")
 DEFIMP (AND,           "AND",          ,,,             "B=:*:I=B*,J=B*")
@@ -3229,10 +3229,10 @@ DEFIMP  (CHDIR_subr,    "CHDIR_subr",   CHDIR,,,        "--:-:Dir=A1,Status=?I1w")
 DEFIMP (CHMOD_func,    "CHMOD_func",   CHMOD,,,        "I1:-:Name=A1,Mode=A1")
 DEFIMP (CHMOD_subr,    "CHMOD_subr",   CHMOD,,,        "--:-:Name=A1,Mode=A1,Status=?I1w")
 DEFIMP (COMPLEX,       "COMPLEX",      ,,,             "C=:*:Real=S*,Imag=S*")
-DEFIMP  (CPU_TIME,     "CPU_TIME",     SECOND,,,       "--:-:Seconds=R1w")
-DEFIMP  (CTIME_func,   "CTIME_func",   CTIME,,,        "A1*:-:STime=I*")
-DEFIMP  (CTIME_subr,   "CTIME_subr",   CTIME,,,        "--:-:Result=A1w,STime=I*")
-DEFIMP  (DATE,         "DATE",         DATE,,,         "--:-:Date=A1w")
+DEFIMP (CPU_TIME,      "CPU_TIME",     SECOND,,,       "--:-:Seconds=R*w")
+DEFIMP (CTIME_func,    "CTIME_func",   CTIME,,,        "A1*:-:STime=I*")
+DEFIMP (CTIME_subr,    "CTIME_subr",   CTIME,,,        "--:-:Result=A1w,STime=I*")
+DEFIMP (DATE,          "DATE",         DATE,,,         "--:-:Date=A1w")
 DEFIMP (DBESJ0,        "DBESJ0",       L_BESJ0,,,      "R2:-:X=R2")
 DEFIMP (DBESJ1,        "DBESJ1",       L_BESJ1,,,      "R2:-:X=R2")
 DEFIMP (DBESJN,        "DBESJN",       L_BESJN,,,      "R2:-:N=I*,X=R2")
@@ -3245,28 +3245,28 @@ DEFIMP  (DERFC,         "DERFC",        L_ERFC,DERFC,,  "R2:-:X=R2")
 DEFIMP (DFLOAT,        "DFLOAT",       ,,,             "R2:-:A=I*")
 DEFIMP (DIMAG,         "DIMAG",        ,DIMAG,,        "R2:-:Z=C2")
 DEFIMP (DREAL,         "DREAL",        ,,,             "R2:-:A=N*")
-DEFIMP  (DTIME_func,   "DTIME_func",   DTIME,,,        "R1:-:TArray=R1(2)w")
-DEFIMP  (DTIME_subr,   "DTIME_subr",   DTIME,,,        "--:-:Result=R1w,TArray=R1(2)w")
+DEFIMP (DTIME_func,    "DTIME_func",   DTIME,,,        "R1:-:TArray=R1(2)w")
+DEFIMP (DTIME_subr,    "DTIME_subr",   DTIME,,,        "--:-:Result=R1w,TArray=R1(2)w")
 DEFIMP (ERF,           "ERF",          L_ERF,ERF,,     "R=:0:X=R*")
 DEFIMP (ERFC,          "ERFC",         L_ERFC,ERFC,,   "R=:0:X=R*")
-DEFIMP  (ETIME_func,   "ETIME_func",   ETIME,,,        "R1:-:TArray=R1(2)w")
-DEFIMP  (ETIME_subr,   "ETIME_subr",   ETIME,,,        "--:-:Result=R1w,TArray=R1(2)w")
+DEFIMP (ETIME_func,    "ETIME_func",   ETIME,,,        "R1:-:TArray=R1(2)w")
+DEFIMP (ETIME_subr,    "ETIME_subr",   ETIME,,,        "--:-:Result=R1w,TArray=R1(2)w")
 DEFIMP (EXIT,          "EXIT",         EXIT,,,         "--:-:Status=?I*")
-DEFIMP  (FDATE_func,   "FDATE_func",   FDATE,,,        "A1*:-:")
-DEFIMP  (FDATE_subr,   "FDATE_subr",   FDATE,,,        "--:-:Date=A1w")
-DEFIMP  (FGET_func,    "FGET_func",    FGET,,,         "I1:-:C=A1w")
-DEFIMP  (FGET_subr,    "FGET_subr",    FGET,,,         "--:-:C=A1w,Status=?I1w")
-DEFIMP  (FGETC_func,   "FGETC_func",   FGETC,,,        "I1:-:Unit=I*,C=A1w")
-DEFIMP  (FGETC_subr,   "FGETC_subr",   FGETC,,,        "--:-:Unit=I*,C=A1w,Status=?I1w")
+DEFIMP (FDATE_func,    "FDATE_func",   FDATE,,,        "A1*:-:")
+DEFIMP (FDATE_subr,    "FDATE_subr",   FDATE,,,        "--:-:Date=A1w")
+DEFIMP (FGET_func,     "FGET_func",    FGET,,,         "I1:-:C=A1w")
+DEFIMP (FGET_subr,     "FGET_subr",    FGET,,,         "--:-:C=A1w,Status=?I1w")
+DEFIMP (FGETC_func,    "FGETC_func",   FGETC,,,        "I1:-:Unit=I*,C=A1w")
+DEFIMP (FGETC_subr,    "FGETC_subr",   FGETC,,,        "--:-:Unit=I*,C=A1w,Status=?I1w")
 DEFIMP (FLUSH,         "FLUSH",        ,,,             "--:-:Unit=?I*")
-DEFIMP  (FNUM,         "FNUM",         FNUM,,,         "I1:-:Unit=I*")
-DEFIMP  (FPUT_func,    "FPUT_func",    FPUT,,,         "I1:-:C=A1")
-DEFIMP  (FPUT_subr,    "FPUT_subr",    FPUT,,,         "--:-:C=A1,Status=?I1w")
-DEFIMP  (FPUTC_func,   "FPUTC_func",   FPUTC,,,        "I1:-:Unit=I*,C=A1")
-DEFIMP  (FPUTC_subr,   "FPUTC_subr",   FPUTC,,,        "--:-:Unit=I*,C=A1,Status=?I1w")
+DEFIMP (FNUM,          "FNUM",         FNUM,,,         "I1:-:Unit=I*")
+DEFIMP (FPUT_func,     "FPUT_func",    FPUT,,,         "I1:-:C=A1")
+DEFIMP (FPUT_subr,     "FPUT_subr",    FPUT,,,         "--:-:C=A1,Status=?I1w")
+DEFIMP (FPUTC_func,    "FPUTC_func",   FPUTC,,,        "I1:-:Unit=I*,C=A1")
+DEFIMP (FPUTC_subr,    "FPUTC_subr",   FPUTC,,,        "--:-:Unit=I*,C=A1,Status=?I1w")
 DEFIMP (FSEEK,         "FSEEK",        FSEEK,,,        "--:-:Unit=I*,Offset=I*,Whence=I*,ErrLab=?g*")
-DEFIMP  (FSTAT_func,   "FSTAT_func",   FSTAT,,,        "I1:-:Unit=I*,SArray=I1(13)w")
-DEFIMP  (FSTAT_subr,   "FSTAT_subr",   FSTAT,,,        "--:-:Unit=I*,SArray=I1(13)w,Status=?I1w")
+DEFIMP (FSTAT_func,    "FSTAT_func",   FSTAT,,,        "I1:-:Unit=I*,SArray=I1(13)w")
+DEFIMP (FSTAT_subr,    "FSTAT_subr",   FSTAT,,,        "--:-:Unit=I*,SArray=I1(13)w,Status=?I1w")
 DEFIMP (FTELL_func,    "FTELL_func",   FTELL,,,        "I1:-:Unit=I*")
 DEFIMP (FTELL_subr,    "FTELL_subr",   FTELL,,,        "--:-:Unit=I*,Offset=I1w")
 DEFIMP (GERROR,        "GERROR",       GERROR,,,       "--:-:Message=A1w")
@@ -3278,7 +3278,7 @@ DEFIMP    (GETLOG,        "GETLOG",       GETLOG,,,       "--:-:Login=A1w")
 DEFIMP (GETPID,        "GETPID",       GETPID,,,       "I1:-:")
 DEFIMP (GETUID,        "GETUID",       GETUID,,,       "I1:-:")
 DEFIMP (GETENV,        "GETENV",       GETENV,,,       "--:-:Name=A1,Value=A1w")
-DEFIMP  (GMTIME,       "GMTIME",       GMTIME,,,       "--:-:STime=I1,TArray=I1(9)w")
+DEFIMP (GMTIME,        "GMTIME",       GMTIME,,,       "--:-:STime=I1,TArray=I1(9)w")
 DEFIMP (HOSTNM_func,   "HOSTNM_func",  HOSTNM,,,       "I1:-:Name=A1w")
 DEFIMP (HOSTNM_subr,   "HOSTNM_subr",  HOSTNM,,,       "--:-:Name=A1w,Status=?I1w")
 DEFIMP (IACHAR,        "IACHAR",       ,,,             "I1:-:C=A*")
@@ -3287,63 +3287,63 @@ DEFIMP  (IARGC,         "IARGC",        IARGC,,,        "I1:-:")
 DEFIMP (IBCLR,         "IBCLR",        ,,,             "I=:0:I=I*,Pos=I*")
 DEFIMP (IBITS,         "IBITS",        ,,,             "I=:0:I=I*,Pos=I*,Len=I*")
 DEFIMP (IBSET,         "IBSET",        ,,,             "I=:0:I=I*,Pos=I*")
-DEFIMP  (IDATE_unix,   "IDATE_unix",   IDATE,,,        "--:-:TArray=I1(3)w")
-DEFIMP  (IDATE_vxt,    "IDATE_vxt",    VXTIDATE,,,     "--:-:M=I1w,D=I1w,Y=I1w")
+DEFIMP (IDATE_unix,    "IDATE_unix",   IDATE,,,        "--:-:TArray=I1(3)w")
+DEFIMP (IDATE_vxt,     "IDATE_vxt",    VXTIDATE,,,     "--:-:M=I1w,D=I1w,Y=I1w")
 DEFIMP (IEOR,          "IEOR",         ,,,             "I=:*:I=I*,J=I*")
 DEFIMP (IOR,           "IOR",          ,,,             "I=:*:I=I*,J=I*")
-DEFIMP  (IERRNO,       "IERRNO",       IERRNO,,,       "I1:-:")
+DEFIMP (IERRNO,        "IERRNO",       IERRNO,,,       "I1:-:")
 DEFIMP (IMAGPART,      "IMAGPART",     ,,,             "R=:0:Z=C*")
 DEFIMP (INT2,          "INT2",         ,,,             "I6:-:A=N*")
 DEFIMP (INT8,          "INT8",         ,,,             "I2:-:A=N*")
-DEFIMP  (IRAND,                "IRAND",        IRAND,,,        "I1:-:Flag=?I*")
-DEFIMP  (ISATTY,       "ISATTY",       ISATTY,,,       "L1:-:Unit=I*")
+DEFIMP (IRAND,         "IRAND",        IRAND,,,        "I1:-:Flag=?I*")
+DEFIMP (ISATTY,        "ISATTY",       ISATTY,,,       "L1:-:Unit=I*")
 DEFIMP (ISHFT,         "ISHFT",        ,,,             "I=:0:I=I*,Shift=I*")
 DEFIMP (ISHFTC,        "ISHFTC",       ,,,             "I=:0:I=I*,Shift=I*,Size=I*")
-DEFIMP  (ITIME,                "ITIME",        ITIME,,,        "--:-:TArray=I1(3)w")
-DEFIMP  (KILL_func,    "KILL_func",    KILL,,,         "I1:-:Pid=I*,Signal=I*")
-DEFIMP  (KILL_subr,    "KILL_subr",    KILL,,,         "--:-:Pid=I*,Signal=I*,Status=?I1w")
-DEFIMP  (LINK_func,    "LINK_func",    LINK,,,         "I1:-:Path1=A1,Path2=A1")
-DEFIMP  (LINK_subr,    "LINK_subr",    LINK,,,         "--:-:Path1=A1,Path2=A1,Status=?I1w")
-DEFIMP  (LNBLNK,       "LNBLNK",       LNBLNK,,,       "I1:-:String=A1")
+DEFIMP (ITIME,         "ITIME",        ITIME,,,        "--:-:TArray=I1(3)w")
+DEFIMP (KILL_func,     "KILL_func",    KILL,,,         "I1:-:Pid=I*,Signal=I*")
+DEFIMP (KILL_subr,     "KILL_subr",    KILL,,,         "--:-:Pid=I*,Signal=I*,Status=?I1w")
+DEFIMP (LINK_func,     "LINK_func",    LINK,,,         "I1:-:Path1=A1,Path2=A1")
+DEFIMP (LINK_subr,     "LINK_subr",    LINK,,,         "--:-:Path1=A1,Path2=A1,Status=?I1w")
+DEFIMP (LNBLNK,        "LNBLNK",       LNBLNK,,,       "I1:-:String=A1")
 DEFIMP (LONG,          "LONG",         ,,,             "I1:-:A=I6")
-DEFIMP  (LSTAT_func,   "LSTAT_func",   LSTAT,,,        "I1:-:File=A1,SArray=I1(13)w")
-DEFIMP  (LSTAT_subr,   "LSTAT_subr",   LSTAT,,,        "--:-:File=A1,SArray=I1(13)w,Status=?I1w")
-DEFIMP  (LTIME,                "LTIME",        LTIME,,,        "--:-:STime=I1,TArray=I1(9)w")
+DEFIMP (LSTAT_func,    "LSTAT_func",   LSTAT,,,        "I1:-:File=A1,SArray=I1(13)w")
+DEFIMP (LSTAT_subr,    "LSTAT_subr",   LSTAT,,,        "--:-:File=A1,SArray=I1(13)w,Status=?I1w")
+DEFIMP (LTIME,         "LTIME",        LTIME,,,        "--:-:STime=I1,TArray=I1(9)w")
 DEFIMP (LOC,           "LOC",          ,,,             "I7:-:Entity=-*&&")
 DEFIMP (LSHIFT,        "LSHIFT",       ,,,             "I=:0:I=I*,Shift=I*")
-DEFIMP  (MCLOCK,       "MCLOCK",       MCLOCK,,,       "I1:-:")
-DEFIMP  (MCLOCK8,      "MCLOCK8",      MCLOCK,,,       "I2:-:")
+DEFIMP (MCLOCK,        "MCLOCK",       MCLOCK,,,       "I1:-:")
+DEFIMP (MCLOCK8,       "MCLOCK8",      MCLOCK,,,       "I2:-:")
 DEFIMP (MVBITS,        "MVBITS",       ,,,             "--:-:From=I*,FromPos=I*,Len=I*,TO=IAx,ToPos=I*")
 DEFIMP (NOT,           "NOT",          ,,,             "I=:0:I=I*")
 DEFIMP (OR,            "OR",           ,,,             "B=:*:I=B*,J=B*")
 DEFIMP (PERROR,        "PERROR",       PERROR,,,       "--:-:String=A1")
-DEFIMP  (RAND,         "RAND",         RAND,,,         "R1:-:Flag=?I*")
+DEFIMP (RAND,          "RAND",         RAND,,,         "R1:-:Flag=?I*")
 DEFIMP (REALPART,      "REALPART",     ,,,             "R=:0:Z=C*")
-DEFIMP  (RENAME_func,  "RENAME_func",  RENAME,,,       "I1:-:Path1=A1,Path2=A1")
-DEFIMP  (RENAME_subr,  "RENAME_subr",  RENAME,,,       "--:-:Path1=A1,Path2=A1,Status=?I1w")
+DEFIMP (RENAME_func,   "RENAME_func",  RENAME,,,       "I1:-:Path1=A1,Path2=A1")
+DEFIMP (RENAME_subr,   "RENAME_subr",  RENAME,,,       "--:-:Path1=A1,Path2=A1,Status=?I1w")
 DEFIMP (RSHIFT,        "RSHIFT",       ,,,             "I=:0:I=I*,Shift=I*")
-DEFIMP  (SECNDS,       "SECNDS",       SECNDS,,,       "R1:-:T=R1")
-DEFIMP  (SECOND_func,  "SECOND_func",  SECOND,SECOND,, "R1:-:")
-DEFIMP  (SECOND_subr,  "SECOND_subr",  SECOND,,,       "--:-:Seconds=R1w")
+DEFIMP (SECNDS,        "SECNDS",       SECNDS,,,       "R1:-:T=R1")
+DEFIMP (SECOND_func,   "SECOND_func",  SECOND,SECOND,, "R1:-:")
+DEFIMP (SECOND_subr,   "SECOND_subr",  SECOND,,,       "--:-:Seconds=R*w")
 DEFIMP (SHORT,         "SHORT",        ,,,             "I6:-:A=I*")
 DEFIMP (SIGNAL_func,   "SIGNAL_func",  L_SIGNAL,,,     "I7:-:Number=I*,Handler=s*")
 DEFIMP (SIGNAL_subr,   "SIGNAL_subr",  L_SIGNAL,,,     "--:-:Number=I*,Handler=s*,Status=?I7w")
 DEFIMP (SLEEP,         "SLEEP",        SLEEP,,,        "--:-:Seconds=I1")
-DEFIMP  (SRAND,                "SRAND",        SRAND,,,        "--:-:Seed=I*")
-DEFIMP  (STAT_func,    "STAT_func",    STAT,,,         "I1:-:File=A1,SArray=I1(13)w")
-DEFIMP  (STAT_subr,    "STAT_subr",    STAT,,,         "--:-:File=A1,SArray=I1(13)w,Status=?I1w")
-DEFIMP  (SYMLNK_func,  "SYMLNK_func",  SYMLNK,,,       "I1:-:Path1=A1,Path2=A1")
-DEFIMP  (SYMLNK_subr,  "SYMLNK_subr",  SYMLNK,,,       "--:-:Path1=A1,Path2=A1,Status=?I1w")
+DEFIMP (SRAND,         "SRAND",        SRAND,,,        "--:-:Seed=I*")
+DEFIMP (STAT_func,     "STAT_func",    STAT,,,         "I1:-:File=A1,SArray=I1(13)w")
+DEFIMP (STAT_subr,     "STAT_subr",    STAT,,,         "--:-:File=A1,SArray=I1(13)w,Status=?I1w")
+DEFIMP (SYMLNK_func,   "SYMLNK_func",  SYMLNK,,,       "I1:-:Path1=A1,Path2=A1")
+DEFIMP (SYMLNK_subr,   "SYMLNK_subr",  SYMLNK,,,       "--:-:Path1=A1,Path2=A1,Status=?I1w")
 DEFIMP (SYSTEM_func,   "SYSTEM_func",  SYSTEM,SYSTEM,SYSTEM,"I1:-:Command=A1")
 DEFIMP (SYSTEM_subr,   "SYSTEM_subr",  SYSTEM,,,       "--:-:Command=A1,Status=?I1w")
 DEFIMP (SYSTEM_CLOCK,  "SYSTEM_CLOCK", SYSTEM_CLOCK,,, "--:-:Count=I1w,Rate=I1w,Max=I1w")
 DEFIMP (TIME8,         "TIME8",        TIME,,,         "I2:-:")
 DEFIMP (TIME_unix,     "TIME_unix",    TIME,,,         "I1:-:")
 DEFIMP (TIME_vxt,      "TIME_vxt",     VXTTIME,,,      "--:-:Time=A1[8]w")
-DEFIMP  (TTYNAM_func,  "TTYNAM_func",  TTYNAM,,,       "A1*:-:Unit=I*")
-DEFIMP  (TTYNAM_subr,  "TTYNAM_subr",  TTYNAM,,,       "--:-:Name=A1w,Unit=I*")
-DEFIMP  (UMASK_func,   "UMASK_func",   UMASK,,,        "I1:-:Mask=I*")
-DEFIMP  (UMASK_subr,   "UMASK_subr",   UMASK,,,        "--:-:Mask=I*,Old=?I1w")
+DEFIMP (TTYNAM_func,   "TTYNAM_func",  TTYNAM,,,       "A1*:-:Unit=I*")
+DEFIMP (TTYNAM_subr,   "TTYNAM_subr",  TTYNAM,,,       "--:-:Name=A1w,Unit=I*")
+DEFIMP (UMASK_func,    "UMASK_func",   UMASK,,,        "I1:-:Mask=I*")
+DEFIMP (UMASK_subr,    "UMASK_subr",   UMASK,,,        "--:-:Mask=I*,Old=?I1w")
 DEFIMP (UNLINK_func,   "UNLINK_func",  UNLINK,,,       "I1:-:File=A1")
 DEFIMP (UNLINK_subr,   "UNLINK_subr",  UNLINK,,,       "--:-:File=A1,Status=?I1w")
 DEFIMP (XOR,           "XOR",          ,,,             "B=:*:I=B*,J=B*")
index 7b031dcc57a65dbe21eb6d99a907e6fb9f663c07..51082fb837f9fc1db746a8a5c40067be359d1829 100644 (file)
@@ -1,5 +1,5 @@
 /* lang-options.h file for Fortran
-   Copyright (C) 1995-1998 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997 Free Software Foundation, Inc.
    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
 
 This file is part of GNU Fortran.
@@ -103,6 +103,10 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   "-fcase-upper",
   "-fcase-lower",
   "-fcase-preserve",
+  "-fbadu77-intrinsics-delete",
+  "-fbadu77-intrinsics-hide",
+  "-fbadu77-intrinsics-disable",
+  "-fbadu77-intrinsics-enable",
   "-fdcp-intrinsics-delete",
   "-fdcp-intrinsics-hide",
   "-fdcp-intrinsics-disable",
@@ -111,18 +115,14 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   "-ff2c-intrinsics-hide",
   "-ff2c-intrinsics-disable",
   "-ff2c-intrinsics-enable",
-  "-fgnu-intrinsics-delete",
-  "-fgnu-intrinsics-hide",
-  "-fgnu-intrinsics-disable",
-  "-fgnu-intrinsics-enable",
-  "-fbadu77-intrinsics-delete",
-  "-fbadu77-intrinsics-hide",
-  "-fbadu77-intrinsics-disable",
-  "-fbadu77-intrinsics-enable",
   "-ff90-intrinsics-delete",
   "-ff90-intrinsics-hide",
   "-ff90-intrinsics-disable",
   "-ff90-intrinsics-enable",
+  "-fgnu-intrinsics-delete",
+  "-fgnu-intrinsics-hide",
+  "-fgnu-intrinsics-disable",
+  "-fgnu-intrinsics-enable",
   "-fmil-intrinsics-delete",
   "-fmil-intrinsics-hide",
   "-fmil-intrinsics-disable",
index 2853dfd13d1551a40aa9802f9cb4620aec5bc510..00c7c5cea7c91aa6db35443ffb1c8173533be84a 100644 (file)
@@ -5,7 +5,7 @@
 @c The text of this file appears in the file BUGS
 @c in the G77 distribution, as well as in the G77 manual.
 
-@c 1997-10-10
+@c 1998-03-16
 
 @ifclear NEWSONLY
 @node News
 Changes made to recent versions of GNU Fortran are listed
 below, with the most recent version first.
 
-The changes are generally listed with code-generation
-bugs first, followed by compiler crashes involving valid
-code, new features, fixes to existing features, new
-diagnostics, internal improvements, and miscellany.
+The changes are generally listed in order:
+
+@enumerate
+@item
+Code-generation and run-time-library bugs
+
+@item
+Compiler and run-time-library crashes involving valid code
+
+@item
+New features
+
+@item
+Fixes and enhancements to existing features
+
+@item
+New diagnostics
+
+@item
+Internal improvements
+
+@item
+Miscellany
+@end enumerate
+
 This order is not strict---for example, some items
 involve a combination of these elements.
 
 @heading In 0.5.22:
 @itemize @bullet
 @item
-Fix a compiler crash on statements such as
-@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
-@samp{Z} is @code{DOUBLE COMPLEX}.
+Fix code generation for iterative @code{DO} loops that
+have one or more references to the iteration variable,
+or to aliases of it, in their control expressions.
+For example, @samp{DO 10 J=2,J} now is compiled correctly.
 
+@cindex DNRM2
+@cindex stack, 387 coprocessor
+@cindex ix86
+@cindex -O2
 @item
-Improve diagnostic messages from @code{libf2c}
-so it is more likely that the printing of the
-active format string is limited to the string,
-with no trailing garbage being printed.
+Fix a code-generation bug that afflicted
+Intel x86 targets when @samp{-O2} was specified
+compiling, for example, an old version of
+the @samp{DNRM2} routine.
 
-(Unlike @code{f2c}, @code{g77} does not append
-a null byte to its compiled form of every
-format string specified via a @code{FORMAT} statement.
-However, @code{f2c} would exhibit the problem
-anyway for a statement like @samp{PRINT '(I)garbage', 1}
-by printing @samp{(I)garbage} as the format string.)
+The x87 coprocessor stack was being
+mismanaged in cases involving assigned @code{GOTO}
+and @code{ASSIGN}.
 
 @item
-Improve compilation of FORMAT expressions so that
-a null byte is appended to the last operand if it
-is a constant.
-This provides a cleaner run-time diagnostic as provided
-by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
+Fix @code{DTime} intrinsic so as not to truncate
+results to integer values (on some systems).
 
 @item
 Fix @code{SIGNAL} intrinsic so it offers portable
 support for 64-bit systems (such as Digital Alphas
 running GNU/Linux).
 
+@item
+Fix run-time crash involving @code{NAMELIST} on 64-bit
+machines such as Alphas.
+
+@item
+Fix @code{g77} version of @code{libf2c} so it no longer
+produces a spurious @samp{I/O recursion} diagnostic at run time
+when an I/O operation (such as @samp{READ *,I}) is interrupted
+in a manner that causes the program to be terminated
+via the @samp{f_exit} routine (such as via @kbd{C-c}).
+
+@item
+Fix @code{g77} crash triggered by @code{CASE} statement with
+an omitted lower or upper bound.
+
+@item
+Fix @code{g77} crash compiling references to @code{CPU_Time}
+intrinsic.
+
+@item
+Fix @code{g77} crash
+(or apparently infinite run-time)
+when compiling certain complicated expressions
+involving @code{COMPLEX} arithmetic
+(especially multiplication).
+
+@item
+Fix @code{g77} crash on statements such as
+@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
+@samp{Z} is @code{DOUBLE COMPLEX}.
+
+@item
+Fix a @code{g++} crash.
+
 @item
 Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
 compile-time constant @code{INTEGER} expression.
 
 @item
-Fix code generation for iterative @code{DO} loops that
-have one or more references to the iteration variable,
-or to aliases of it, in their control expressions.
-For example, @samp{DO 10 J=2,J} now is compiled correctly.
+Fix @code{g77} @samp{-g} option so procedures that
+use @samp{ENTRY} can be stepped through, line by line,
+in @code{gdb}.
 
 @item
-Fix a compiler crash involving optimization of
-certain complicated expressions involving @code{COMPLEX}
-arithmetic (especially multiplication).
+Fix a profiling-related bug in @code{gcc} back end for
+Intel x86 architecture.
+
+@item
+Allow any @code{REAL} argument to intrinsics
+@code{Second} and @code{CPU_Time}.
+
+@item
+Allow any numeric argument to intrinsics
+@code{Int2} and @code{Int8}.
 
 @item
-Fix an internal error compiling the @code{Cpu_Time} intrinsic.
+Use @code{tempnam}, if available, to open scratch files
+(as in @samp{OPEN(STATUS='SCRATCH')}
+so that the @code{TMPDIR} environment variable,
+if present, is used.
 
 @item
 Rename the @code{gcc} keyword @code{restrict} to
@@ -82,9 +145,18 @@ Support for @code{restrict} is now more like support
 for @code{complex}.
 
 @item
-Fix @code{DTime} intrinsic so as not to truncate
-results to integer values (on some systems) and allow general numeric
-args for the  @code{Int2} and @code{Int8} intrinsics.
+Fix @samp{-fpedantic} to not reject procedure invocations
+such as @samp{I=J()} and @samp{CALL FOO()}.
+
+@item
+Fix @samp{-fugly-comma} to affect invocations of
+only external procedures.
+Restore rejection of gratuitous trailing omitted
+arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
+
+@item
+Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
+@samp{-fbadu77-intrinsics-*} options.
 
 @item
 Improve diagnostic messages from @code{libf2c}
@@ -92,15 +164,37 @@ so it is more likely that the printing of the
 active format string is limited to the string,
 with no trailing garbage being printed.
 
-(Unlike @code{f2c}, @code{g77} does not append
+(Unlike @code{f2c}, @code{g77} did not append
 a null byte to its compiled form of every
 format string specified via a @code{FORMAT} statement.
 However, @code{f2c} would exhibit the problem
 anyway for a statement like @samp{PRINT '(I)garbage', 1}
 by printing @samp{(I)garbage} as the format string.)
 
+@item
+Improve compilation of FORMAT expressions so that
+a null byte is appended to the last operand if it
+is a constant.
+This provides a cleaner run-time diagnostic as provided
+by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
+
+@item
+Fix various crashes involving code with diagnosed errors.
+
+@item
+Fix cross-compilation bug when configuring @code{libf2c}.
+
+@item
+Improve diagnostics.
+
+@item
+Improve documentation and indexing.
+
 @item
 Upgrade to @code{libf2c} as of 1997-09-23.
+This fixes a formatted-I/O bug that afflicted
+64-bit systems with 32-bit integers
+(such as Digital Alpha running GNU/Linux).
 @end itemize
 
 @heading In 0.5.21:
index dac22817dabb0330e18fc781d0f215e80b5b3873..8c2adfb74f8823e79cd27ee29019471ef92b09ef 100644 (file)
@@ -1,5 +1,5 @@
 /* std.c -- Implementation File (module.c template V1.0)
-   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998 Free Software Foundation, Inc.
    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
 
 This file is part of GNU Fortran.
index f7168f0dfdddf69352ad84ca4d56e07b872228b7..e09654232b60bbb418fc1d1b0bec9e2fdfc90e34 100644 (file)
@@ -1,5 +1,5 @@
 /* ste.c -- Implementation File (module.c template V1.0)
-   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998 Free Software Foundation, Inc.
    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
 
 This file is part of GNU Fortran.
index 8dfe68d77825a3888c1122710ba7df51855080a0..638a71ae3dd14dae378245540c75c0dc08a03b25 100644 (file)
@@ -1,5 +1,5 @@
 /* target.c -- Implementation File (module.c template V1.0)
-   Copyright (C) 1995-1997 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998 Free Software Foundation, Inc.
    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
 
 This file is part of GNU Fortran.
index 9cbabbdb590ab1789e918ccd6aecef5384358d58..6fbc1caa87d93858e8f396b8a0794a15e7d53347 100644 (file)
@@ -31,4 +31,4 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 #include "version.h"
 
-char *ffe_version_string = "0.5.22-19970929";
+char *ffe_version_string = "0.5.22-release";