diff -Nrc3pad gcc-3.4.3/BUGS gcc-3.4.4/BUGS *** gcc-3.4.3/BUGS Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/BUGS Thu May 19 09:58:07 2005 *************** Table of Contents *** 31,42 **** The main purpose of a bug report is to enable us to fix the bug. The most important prerequisite for this is that the report must be ! complete and self-contained, which we explain in detail below. Before you report a bug, please check the [19]list of well-known bugs ! and, if possible in any way, try a current development snapshot. If ! you want to report a bug with versions of GCC before 3.1 we strongly ! recommend upgrading to the current release first. Before reporting that GCC compiles your code incorrectly, please compile it with gcc -Wall and see whether this shows anything wrong --- 31,42 ---- The main purpose of a bug report is to enable us to fix the bug. The most important prerequisite for this is that the report must be ! complete and self-contained. Before you report a bug, please check the [19]list of well-known bugs ! and, if possible, try a current development snapshot. If you want to ! report a bug with versions of GCC before 3.4 we strongly recommend ! upgrading to the current release first. Before reporting that GCC compiles your code incorrectly, please compile it with gcc -Wall and see whether this shows anything wrong *************** Summarized bug reporting instructions *** 81,89 **** compiled, such that retrying a sufficient number of times results in a successful compilation; this is a symptom of a hardware problem, not of a compiler bug (sorry) - * E-mail messages that complement previous, incomplete bug reports. - Post a new, self-contained, full bug report instead, if possible - as a follow-up to the original bug report * Assembly files (*.s) produced by the compiler, or any binary files, such as object files, executables, core files, or precompiled header files --- 81,86 ---- *************** Detailed bug reporting instructions *** 119,133 **** gcc -v -save-temps all-your-options source-file - Typically the preprocessed file (extension .i for C or .ii for C++, - and .f if the preprocessor is used on Fortran files) will be large, so - please compress the resulting file with one of the popular compression - programs such as bzip2, gzip, zip or compress (in decreasing order of - preference). Use maximum compression (-9) if available. Please include - the compressed preprocessor output in your bug report, even if the - source code is freely available elsewhere; it makes the job of our - volunteer testers much easier. - The only excuses to not send us the preprocessed sources are (i) if you've found a bug in the preprocessor, (ii) if you've reduced the testcase to a small file that doesn't include any other file or (iii) --- 116,121 ---- *************** Detailed bug reporting instructions *** 140,151 **** although you may want to post parts of it to point out assembly code you consider to be wrong. - Whether to use MIME attachments or uuencode is up to you. In any case, - make sure the compiler command line, version and error output are in - plain text, so that we don't have to decode the bug report in order to - tell who should take care of it. A meaningful subject indicating - language and platform also helps. - Please avoid posting an archive (.tar, .shar or .zip); we generally need just a single file to reproduce the bug (the .i/.ii/.f preprocessed file), and, by storing it in an archive, you're just --- 128,133 ---- *************** Detailed bug reporting instructions *** 158,173 **** included in the body of your bug report as plain text, even if needlessly duplicated as part of an archive. - If you fail to supply enough information for a bug report to be - reproduced, someone will probably ask you to post additional - information (or just ignore your bug report, if they're in a bad day, - so try to get it right on the first posting :-). In this case, please - post the additional information to the bug reporting mailing list, not - just to the person who requested it, unless explicitly told so. If - possible, please include in this follow-up all the information you had - supplied in the incomplete bug report (including the preprocessor - output), so that the new bug report is self-contained. - Detailed bug reporting instructions for GNAT See the [24]previous section for bug reporting instructions for GCC --- 140,145 ---- *************** References *** 837,840 **** 36. http://www.ncits.org/cplusplus.htm 37. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html 38. http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html ! 39. http://gcc.gnu.org/onlinedocs/gcc/C---Misunderstandings.html --- 809,812 ---- 36. http://www.ncits.org/cplusplus.htm 37. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html 38. http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html ! 39. http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Misunderstandings.html diff -Nrc3pad gcc-3.4.3/ChangeLog gcc-3.4.4/ChangeLog *** gcc-3.4.3/ChangeLog Fri Nov 5 03:33:10 2004 --- gcc-3.4.4/ChangeLog Thu May 19 07:46:15 2005 *************** *** 1,3 **** --- 1,26 ---- + 2005-05-19 Release Manager + + * GCC 3.4.4 released. + + 2005-05-08 Matt Kraai + + * README.SCO: Update the URL. + + 2005-03-08 Daniel Jacobowitz + + * configure.in: Use an absolute path to install-sh. + * configure: Regenerated. + + 2005-01-12 David Edelsohn + Andreas Schwab + + PR bootstrap/18033 + * config-ml.in: Eval option if surrounded by single quotes. + + 2005-01-06 Laurent GUERBY + + * MAINTAINERS: Update my email address. + 2004-11-04 Release Manager * GCC 3.4.3 released. diff -Nrc3pad gcc-3.4.3/INSTALL/binaries.html gcc-3.4.4/INSTALL/binaries.html *** gcc-3.4.3/INSTALL/binaries.html Fri Nov 5 04:14:12 2004 --- gcc-3.4.4/INSTALL/binaries.html Thu May 19 09:58:07 2005 *************** *** 2,91 **** Installing GCC: Binaries ! ! ! ! - - !

Installing GCC: Binaries

! We are often asked about pre-compiled versions of GCC. While we cannot provide these for all platforms, below you'll find links to binaries for various platforms where creating them by yourself is not easy due to various reasons. !

Please note that we did not create these binaries, nor do we support them. If you have any problems installing them, please contact their makers. !

!

In addition to those specific offerings, you can get a binary distribution CD-ROM from the Free Software Foundation. It contains binaries for a number of platforms, and *************** not contain the latest version of GCC, b *** 106,118 **** bootstrapping the compiler. An updated version of that disk is in the works. !


!

Return to the GCC Installation page - - - - - --- 93,101 ---- bootstrapping the compiler. An updated version of that disk is in the works. !


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/build.html gcc-3.4.4/INSTALL/build.html *** gcc-3.4.3/INSTALL/build.html Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/INSTALL/build.html Thu May 19 09:58:07 2005 *************** *** 2,299 **** Installing GCC: Building ! ! ! ! - - !

Installing GCC: Building

! Now that GCC is configured, you are ready to build the compiler and runtime libraries. !

Some commands executed when making the compiler may fail (return a ! nonzero status) and be ignored by make. These failures, which are often due to files that were not found, are expected, and can safely be ignored. !

It is normal to have compiler warnings when compiling certain files. Unless you are a GCC developer, you can generally ignore these warnings unless they cause compilation to fail. Developers should attempt to fix any warnings encountered, however they can temporarily continue past warnings-as-errors by specifying the configure flag ! --disable-werror. !

On certain old systems, defining certain environment variables such as ! CC can interfere with the functioning of make. !

If you encounter seemingly strange errors when trying to build the compiler in a directory other than the source directory, it could be because you have previously configured the compiler in the source directory. Make sure you have done all the necessary preparations. !

If you build GCC on a BSD system using a directory stored in an old System ! V file system, problems may occur in running fixincludes if the System V file system doesn't support symbolic links. These problems result in a failure to fix the declaration of size_t in ! sys/types.h. If you find that size_t is a signed type and that type mismatches occur, this could be the cause. !

The solution is not to use such a directory for building GCC. !

When building from CVS or snapshots, or if you modify parser sources, you need the Bison parser generator installed. Any version 1.25 or later should work; older versions may also work. If you do not modify parser sources, releases contain the Bison-generated files and you do not need Bison installed to build them. !

When building from CVS or snapshots, or if you modify Texinfo documentation, you need version 4.2 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. !

0.1 Building a native compiler

!

For a native build issue the command make bootstrap. This will build the entire GCC system, which includes the following steps: !

  • Build host tools necessary to build the compiler such as texinfo, bison, gperf. !
  • Build target tools for use by the compiler such as binutils (bfd, binutils, gas, gprof, ld, and opcodes) if they have been individually linked or moved into the top level GCC source tree before configuring. !
  • Perform a 3-stage bootstrap of the compiler. !
  • Perform a comparison test of the stage2 and stage3 compilers. !
  • Build runtime libraries using the stage3 compiler from the previous step. !
!

If you are short on disk space you might consider make ! bootstrap-lean instead. This is identical to make ! bootstrap except that object files from the stage1 and stage2 of the 3-stage bootstrap of the compiler are deleted as soon as they are no longer needed. !

If you want to save additional space during the bootstrap and in the final installation as well, you can build the compiler binaries without debugging information as in the following example. This will save roughly 40% of disk space both for the bootstrap and the final installation. (Libraries will still contain debugging information.) !

          make CFLAGS='-O' LIBCFLAGS='-g -O2' \
!             LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
  
!

If you wish to use non-default GCC flags when compiling the stage2 and stage3 compilers, set BOOT_CFLAGS on the command line when doing ! make bootstrap. Non-default optimization flags are less well ! tested here than the default of -g -O2, but should still work. In a few cases, you may find that you need to specify special flags such ! as -msoft-float here to complete the bootstrap; or, if the native compiler miscompiles the stage1 compiler, you may need to work around this, by choosing BOOT_CFLAGS to avoid the parts of the ! stage1 compiler that were miscompiled, or by using make ! bootstrap4 to increase the number of stages of bootstrap. !

If you used the flag --enable-languages=... to restrict the compilers to be built, only those you've actually enabled will be built. This will of course only build those runtime libraries, for which the particular compiler has been built. Please note, ! that re-defining LANGUAGES when calling make bootstrap does not work anymore! !

If the comparison of stage2 and stage3 fails, this normally indicates that the stage2 compiler has compiled GCC incorrectly, and is therefore a potentially serious bug which you should investigate and report. (On a few systems, meaningful comparison of object files is impossible; they ! always appear “different”. If you encounter this problem, you will ! need to disable comparison in the Makefile.) !

0.2 Building a cross compiler

We recommend reading the crossgcc FAQ for information about building cross compilers. !

When building a cross compiler, it is not generally possible to do a 3-stage bootstrap of the compiler. This makes for an interesting problem as parts of GCC can only be built with GCC. !

To build a cross compiler, we first recommend building and installing a native compiler. You can then use the native GCC compiler to build the cross compiler. The installed native compiler needs to be GCC version 2.95 or later. !

Assuming you have already installed a native copy of GCC and configured ! your cross compiler, issue the command make, which performs the following steps: !

  • Build host tools necessary to build the compiler such as texinfo, bison, gperf. !
  • Build target tools for use by the compiler such as binutils (bfd, binutils, gas, gprof, ld, and opcodes) if they have been individually linked or moved into the top level GCC source tree before configuring. !
  • Build the compiler (single stage only). !
  • Build runtime libraries using the compiler from the previous step.
!

Note that if an error occurs in any step the make process will exit. !

If you are not building GNU binutils in the same source tree as GCC, you will need a cross-assembler and cross-linker installed before configuring GCC. Put them in the directory ! prefix/target/bin. Here is a table of the tools you should put in this directory: !

!
as
This should be the cross-assembler. !
ld
This should be the cross-linker. !
ar
This should be the cross-archiver: a program which can manipulate archive files (linker libraries) in the target machine's format. !
ranlib
This should be a program to construct a symbol table in an archive file.
!

The installation of GCC will find these programs in that directory, and copy or link them to the proper place to for the cross-compiler to find them when run later. !

The easiest way to provide these files is to build the Binutils package. ! Configure it with the same --host and --target options that you use for configuring GCC, then build and install them. They install their executables automatically into the proper directory. Alas, they do not support all the targets that GCC supports. !

If you are not building a C library in the same source tree as GCC, you should also provide the target libraries and headers before configuring GCC, specifying the directories with ! --with-sysroot or --with-headers and ! --with-libs. Many targets also require “start files” such ! as crt0.o and ! crtn.o which are linked into each executable. There may be several ! alternatives for crt0.o, for use with profiling or other compilation options. Check your target's definition of STARTFILE_SPEC to find out what start files it uses. !

0.3 Building in parallel

!

You can use make bootstrap MAKE="make -j 2" -j 2, or just ! make -j 2 bootstrap for GNU Make 3.79 and above, instead of ! make bootstrap to build GCC in parallel. You can also specify a bigger number, and in most cases using a value greater than the number of processors in your machine will result in fewer and shorter I/O latency hits, thus improving overall throughput; this is especially true for slow drives and network filesystems. !

0.4 Building the Ada compiler

In order to build GNAT, the Ada compiler, you need a working GNAT compiler (GNAT version 3.14 or later, or GCC version 3.1 or later), ! including GNAT tools such as gnatmake and gnatlink, since the Ada front end is written in Ada (with some GNAT-specific extensions), and GNU make. !

configure does not test whether the GNAT installation works and has a sufficiently recent version; if too old a GNAT version is ! installed, the build will fail unless --enable-languages is used to disable building the Ada front end. !

At the moment, the GNAT library and several tools for GNAT are not built ! by make bootstrap. For a native build, you have to invoke ! make gnatlib_and_tools in the objdir/gcc subdirectory before proceeding with the next steps. For a cross build, you need to invoke ! make gnatlib cross-gnattools ada.all.cross. For a canadian ! cross you only need to invoke make cross-gnattools; the GNAT library would be the same as the one built for the cross compiler. !

For example, you can build a native Ada compiler by issuing the ! following commands (assuming make is GNU make): !

         cd objdir
!          srcdir/configure --enable-languages=c,ada
!          cd objdir
!          make bootstrap
!          cd gcc
!          make gnatlib_and_tools
!          cd ..
  
!

Currently, when compiling the Ada front end, you cannot use the parallel build feature described in the previous section. !

0.5 Building with profile feedback

It is possible to use profile feedback to optimize the compiler itself. This should result in a faster compiler binary. Experiments done on x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C programs. To bootstrap compiler with profile feedback, use make profiledbootstrap. !

When make profiledbootstrap is run, it will first build a stage1 compiler. This compiler is used to build a stageprofile compiler instrumented to collect execution counts of instruction and branch probabilities. Then runtime libraries are compiled with profile collected. Finally a stagefeedback compiler is built using the information collected. !

Unlike make bootstrap several additional restrictions apply. The compiler used to build stage1 needs to support a 64-bit integral type. It is recommended to only use GCC for this. Also parallel make is currently not supported since collisions in profile collecting may occur. !


!

Return to the GCC Installation page - - - - - - - - --- 2,285 ---- Installing GCC: Building ! ! ! !

Installing GCC: Building

Now that GCC is configured, you are ready to build the compiler and runtime libraries. !

Some commands executed when making the compiler may fail (return a ! nonzero status) and be ignored by make. These failures, which are often due to files that were not found, are expected, and can safely be ignored. !

It is normal to have compiler warnings when compiling certain files. Unless you are a GCC developer, you can generally ignore these warnings unless they cause compilation to fail. Developers should attempt to fix any warnings encountered, however they can temporarily continue past warnings-as-errors by specifying the configure flag ! --disable-werror. !

On certain old systems, defining certain environment variables such as ! CC can interfere with the functioning of make. !

If you encounter seemingly strange errors when trying to build the compiler in a directory other than the source directory, it could be because you have previously configured the compiler in the source directory. Make sure you have done all the necessary preparations. !

If you build GCC on a BSD system using a directory stored in an old System ! V file system, problems may occur in running fixincludes if the System V file system doesn't support symbolic links. These problems result in a failure to fix the declaration of size_t in ! sys/types.h. If you find that size_t is a signed type and that type mismatches occur, this could be the cause. !

The solution is not to use such a directory for building GCC. !

When building from CVS or snapshots, or if you modify parser sources, you need the Bison parser generator installed. Any version 1.25 or later should work; older versions may also work. If you do not modify parser sources, releases contain the Bison-generated files and you do not need Bison installed to build them. !

When building from CVS or snapshots, or if you modify Texinfo documentation, you need version 4.2 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. !

Building a native compiler

!

For a native build issue the command make bootstrap. This will build the entire GCC system, which includes the following steps: !

  • Build host tools necessary to build the compiler such as texinfo, bison, gperf. !
  • Build target tools for use by the compiler such as binutils (bfd, binutils, gas, gprof, ld, and opcodes) if they have been individually linked or moved into the top level GCC source tree before configuring. !
  • Perform a 3-stage bootstrap of the compiler. !
  • Perform a comparison test of the stage2 and stage3 compilers. !
  • Build runtime libraries using the stage3 compiler from the previous step. !
!

If you are short on disk space you might consider make ! bootstrap-lean instead. This is identical to make ! bootstrap except that object files from the stage1 and stage2 of the 3-stage bootstrap of the compiler are deleted as soon as they are no longer needed. !

If you want to save additional space during the bootstrap and in the final installation as well, you can build the compiler binaries without debugging information as in the following example. This will save roughly 40% of disk space both for the bootstrap and the final installation. (Libraries will still contain debugging information.) !

     make CFLAGS='-O' LIBCFLAGS='-g -O2' \
!        LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
  
! !

If you wish to use non-default GCC flags when compiling the stage2 and stage3 compilers, set BOOT_CFLAGS on the command line when doing ! make bootstrap. Non-default optimization flags are less well ! tested here than the default of -g -O2, but should still work. In a few cases, you may find that you need to specify special flags such ! as -msoft-float here to complete the bootstrap; or, if the native compiler miscompiles the stage1 compiler, you may need to work around this, by choosing BOOT_CFLAGS to avoid the parts of the ! stage1 compiler that were miscompiled, or by using make ! bootstrap4 to increase the number of stages of bootstrap. !

If you used the flag --enable-languages=... to restrict the compilers to be built, only those you've actually enabled will be built. This will of course only build those runtime libraries, for which the particular compiler has been built. Please note, ! that re-defining LANGUAGES when calling make bootstrap does not work anymore! !

If the comparison of stage2 and stage3 fails, this normally indicates that the stage2 compiler has compiled GCC incorrectly, and is therefore a potentially serious bug which you should investigate and report. (On a few systems, meaningful comparison of object files is impossible; they ! always appear "different". If you encounter this problem, you will ! need to disable comparison in the Makefile.) !

Building a cross compiler

We recommend reading the crossgcc FAQ for information about building cross compilers. !

When building a cross compiler, it is not generally possible to do a 3-stage bootstrap of the compiler. This makes for an interesting problem as parts of GCC can only be built with GCC. !

To build a cross compiler, we first recommend building and installing a native compiler. You can then use the native GCC compiler to build the cross compiler. The installed native compiler needs to be GCC version 2.95 or later. !

Assuming you have already installed a native copy of GCC and configured ! your cross compiler, issue the command make, which performs the following steps: !

  • Build host tools necessary to build the compiler such as texinfo, bison, gperf. !
  • Build target tools for use by the compiler such as binutils (bfd, binutils, gas, gprof, ld, and opcodes) if they have been individually linked or moved into the top level GCC source tree before configuring. !
  • Build the compiler (single stage only). !
  • Build runtime libraries using the compiler from the previous step.
!

Note that if an error occurs in any step the make process will exit. !

If you are not building GNU binutils in the same source tree as GCC, you will need a cross-assembler and cross-linker installed before configuring GCC. Put them in the directory ! prefix/target/bin. Here is a table of the tools you should put in this directory: !

!
as !
This should be the cross-assembler. !
ld !
This should be the cross-linker. !
ar !
This should be the cross-archiver: a program which can manipulate archive files (linker libraries) in the target machine's format. !
ranlib !
This should be a program to construct a symbol table in an archive file.
!

The installation of GCC will find these programs in that directory, and copy or link them to the proper place to for the cross-compiler to find them when run later. !

The easiest way to provide these files is to build the Binutils package. ! Configure it with the same --host and --target options that you use for configuring GCC, then build and install them. They install their executables automatically into the proper directory. Alas, they do not support all the targets that GCC supports. !

If you are not building a C library in the same source tree as GCC, you should also provide the target libraries and headers before configuring GCC, specifying the directories with ! --with-sysroot or --with-headers and ! --with-libs. Many targets also require "start files" such ! as crt0.o and ! crtn.o which are linked into each executable. There may be several ! alternatives for crt0.o, for use with profiling or other compilation options. Check your target's definition of STARTFILE_SPEC to find out what start files it uses. !

Building in parallel

!

You can use make bootstrap MAKE="make -j 2" -j 2, or just ! make -j 2 bootstrap for GNU Make 3.79 and above, instead of ! make bootstrap to build GCC in parallel. You can also specify a bigger number, and in most cases using a value greater than the number of processors in your machine will result in fewer and shorter I/O latency hits, thus improving overall throughput; this is especially true for slow drives and network filesystems. !

Building the Ada compiler

In order to build GNAT, the Ada compiler, you need a working GNAT compiler (GNAT version 3.14 or later, or GCC version 3.1 or later), ! including GNAT tools such as gnatmake and gnatlink, since the Ada front end is written in Ada (with some GNAT-specific extensions), and GNU make. !

configure does not test whether the GNAT installation works and has a sufficiently recent version; if too old a GNAT version is ! installed, the build will fail unless --enable-languages is used to disable building the Ada front end. !

At the moment, the GNAT library and several tools for GNAT are not built ! by make bootstrap. For a native build, you have to invoke ! make gnatlib_and_tools in the objdir/gcc subdirectory before proceeding with the next steps. For a cross build, you need to invoke ! make gnatlib cross-gnattools ada.all.cross. For a canadian ! cross you only need to invoke make cross-gnattools; the GNAT library would be the same as the one built for the cross compiler. !

For example, you can build a native Ada compiler by issuing the ! following commands (assuming make is GNU make): !

    cd objdir
!     srcdir/configure --enable-languages=c,ada
!     cd objdir
!     make bootstrap
!     cd gcc
!     make gnatlib_and_tools
!     cd ..
  
! !

Currently, when compiling the Ada front end, you cannot use the parallel build feature described in the previous section. !

Building with profile feedback

It is possible to use profile feedback to optimize the compiler itself. This should result in a faster compiler binary. Experiments done on x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C programs. To bootstrap compiler with profile feedback, use make profiledbootstrap. !

When make profiledbootstrap is run, it will first build a stage1 compiler. This compiler is used to build a stageprofile compiler instrumented to collect execution counts of instruction and branch probabilities. Then runtime libraries are compiled with profile collected. Finally a stagefeedback compiler is built using the information collected. !

Unlike make bootstrap several additional restrictions apply. The compiler used to build stage1 needs to support a 64-bit integral type. It is recommended to only use GCC for this. Also parallel make is currently not supported since collisions in profile collecting may occur. !


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/configure.html gcc-3.4.4/INSTALL/configure.html *** gcc-3.4.3/INSTALL/configure.html Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/INSTALL/configure.html Thu May 19 09:58:07 2005 *************** *** 2,238 **** Installing GCC: Configuration ! ! ! ! - - !

Installing GCC: Configuration

! Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure for both native and cross targets. !

We use srcdir to refer to the toplevel source directory for GCC; we use objdir to refer to the toplevel build/object directory. !

If you obtained the sources via CVS, srcdir must refer to the top ! gcc directory, the one where the MAINTAINERS can be found, ! and not its gcc subdirectory, otherwise the build will fail. !

If either srcdir or objdir is located on an automounted NFS ! file system, the shell's built-in pwd command will return temporary pathnames. Using these can lead to various sorts of build ! problems. To avoid this issue, set the PWDCMD environment ! variable to an automounter-aware pwd command, e.g., ! pawd or amq -w, during the configuration and build phases. !

First, we highly recommend that GCC be built into a separate directory than the sources which does not reside within the source tree. This is how we generally build GCC; building where srcdir == objdir should still work, but doesn't get extensive testing; building where objdir is a subdirectory of srcdir is unsupported. !

If you have previously built GCC in the same directory for a ! different target machine, do make distclean to delete all files ! that might be invalid. One of the files this deletes is Makefile; ! if make distclean complains that Makefile does not exist ! or issues a message like “don't know how to make distclean” it probably means that the directory is already suitably clean. However, with the recommended method of building in a separate objdir, you should simply use a different objdir for each target. !

Second, when configuring a native system, either cc or ! gcc must be in your path or you must set CC in your environment before running configure. Otherwise the configuration scripts may fail. !

Note that the bootstrap compiler and the resulting GCC must be link compatible, else the bootstrap will fail with linker errors about incompatible object file formats. Several multilibed targets are affected by this requirement, see host/target specific installation notes. !

To configure GCC: !

        % mkdir objdir
!         % cd objdir
!         % srcdir/configure [options] [target]
  
-

Target specification

!
  • GCC has code to correctly determine the correct value for target for nearly all native systems. Therefore, we highly recommend you not provide a configure target when configuring a native compiler. !
  • target must be specified as --target=target when configuring a cross compiler; examples of valid targets would be i960-rtems, m68k-coff, sh-elf, etc. !
  • Specifying just target instead of --target=target implies that the host defaults to target.
!

Options specification

Use options to override several configure time options for ! GCC. A list of supported options follows; configure ! --help may list other options, but those not listed below may not work and should not normally be used. !

Note that each --enable option has a corresponding ! --disable option and that each --with option has a ! corresponding --without option. !

!
--prefix=dirname
Specify the toplevel installation directory. This is the recommended way to install the tools into a directory other than the default. The toplevel installation directory defaults to ! /usr/local. !

We highly recommend against dirname being the same or a subdirectory of objdir or vice versa. If specifying a directory beneath a user's home directory tree, some shells will not expand ! dirname correctly if it contains the ~ metacharacter; use ! $HOME instead. !

The following standard autoconf options are supported. Normally you should not need to use these options. !

!
--exec-prefix=dirname
Specify the toplevel installation directory for architecture-dependent ! files. The default is prefix. !
--bindir=dirname
Specify the installation directory for the executables called by users ! (such as gcc and g++). The default is ! exec-prefix/bin. !
--libdir=dirname
Specify the installation directory for object code libraries and ! internal data files of GCC. The default is exec-prefix/lib. !
--libexecdir=dirname
Specify the installation directory for internal executables of GCC. ! The default is exec-prefix/libexec. !
--with-slibdir=dirname
Specify the installation directory for the shared libgcc library. The ! default is libdir. !
--infodir=dirname
Specify the installation directory for documentation in info format. ! The default is prefix/info. !
--datadir=dirname
Specify the installation directory for some architecture-independent ! data files referenced by GCC. The default is prefix/share. !
--mandir=dirname
Specify the installation directory for manual pages. The default is ! prefix/man. (Note that the manual pages are only extracts from the full GCC manuals, which are provided in Texinfo format. The manpages are derived by an automatic conversion process from parts of the full manual.) !
--with-gxx-include-dir=dirname
Specify the installation directory for G++ header files. The default is ! prefix/include/c++/version. !
!
--program-prefix=prefix
GCC supports some transformations of the names of its programs when installing them. This option prepends prefix to the names of programs to install in bindir (see above). For example, specifying ! --program-prefix=foo- would result in gcc ! being installed as /usr/local/bin/foo-gcc. !
--program-suffix=suffix
Appends suffix to the names of programs to install in bindir ! (see above). For example, specifying --program-suffix=-3.1 ! would result in gcc being installed as ! /usr/local/bin/gcc-3.1. !
--program-transform-name=pattern
Applies the sed script pattern to be applied to the names of programs to install in bindir (see above). pattern has to ! consist of one or more basic sed editing commands, separated by ! semicolons. For example, if you want the gcc program name to be ! transformed to the installed program /usr/local/bin/myowngcc and ! the g++ program name to be transformed to ! /usr/local/bin/gspecial++ without changing other program names, you could use the pattern ! --program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/' to achieve this effect. !

All three options can be combined and used together, resulting in more complex conversion patterns. As a basic rule, prefix (and suffix) are prepended (appended) before further transformations can happen with a special transformation script pattern. !

As currently implemented, this option only takes effect for native builds; cross compiler binaries' names are not transformed even when a transformation is explicitly asked for by one of these options. !

For native builds, some of the installed programs are also installed with the target alias in front of their name, as in ! i686-pc-linux-gnu-gcc. All of the above transformations happen before the target alias is prepended to the name - so, specifying ! --program-prefix=foo- and program-suffix=-3.1, the resulting binary would be installed as ! /usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1. !

As a last shortcoming, none of the installed Ada programs are transformed yet, which will be fixed in some time. !

--with-local-prefix=dirname
Specify the installation directory for local include files. The default is ! /usr/local. Specify this option if you want the compiler to ! search directory dirname/include for locally installed ! header files instead of /usr/local/include. !

You should specify --with-local-prefix only if your ! site has a different convention (not /usr/local) for where to put site-specific files. !

The default value for --with-local-prefix is /usr/local ! regardless of the value of --prefix. Specifying ! --prefix has no effect on which directory GCC searches for local header files. This may seem counterintuitive, but actually it is logical. !

The purpose of --prefix is to specify where to install ! GCC. The local header files in /usr/local/include—if you put ! any in that directory—are not part of GCC. They are part of other ! programs—perhaps many others. (GCC installs its own header files in ! another directory which is based on the --prefix value.) !

Both the local-prefix include directory and the GCC-prefix include directory are part of GCC's "system include" directories. Although these two directories are not fixed, they need to be searched in the proper order for the correct processing of the include_next directive. The --- 2,240 ---- Installing GCC: Configuration ! ! ! !

Installing GCC: Configuration

Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure for both native and cross targets. !

We use srcdir to refer to the toplevel source directory for GCC; we use objdir to refer to the toplevel build/object directory. !

If you obtained the sources via CVS, srcdir must refer to the top ! gcc directory, the one where the MAINTAINERS can be found, ! and not its gcc subdirectory, otherwise the build will fail. !

If either srcdir or objdir is located on an automounted NFS ! file system, the shell's built-in pwd command will return temporary pathnames. Using these can lead to various sorts of build ! problems. To avoid this issue, set the PWDCMD environment ! variable to an automounter-aware pwd command, e.g., ! pawd or amq -w, during the configuration and build phases. !

First, we highly recommend that GCC be built into a separate directory than the sources which does not reside within the source tree. This is how we generally build GCC; building where srcdir == objdir should still work, but doesn't get extensive testing; building where objdir is a subdirectory of srcdir is unsupported. !

If you have previously built GCC in the same directory for a ! different target machine, do make distclean to delete all files ! that might be invalid. One of the files this deletes is Makefile; ! if make distclean complains that Makefile does not exist ! or issues a message like "don't know how to make distclean" it probably means that the directory is already suitably clean. However, with the recommended method of building in a separate objdir, you should simply use a different objdir for each target. !

Second, when configuring a native system, either cc or ! gcc must be in your path or you must set CC in your environment before running configure. Otherwise the configuration scripts may fail. !

Note that the bootstrap compiler and the resulting GCC must be link compatible, else the bootstrap will fail with linker errors about incompatible object file formats. Several multilibed targets are affected by this requirement, see host/target specific installation notes. !

To configure GCC: !

   % mkdir objdir
!    % cd objdir
!    % srcdir/configure [options] [target]
  
!

Target specification

! !
  • GCC has code to correctly determine the correct value for target for nearly all native systems. Therefore, we highly recommend you not provide a configure target when configuring a native compiler. !
  • target must be specified as --target=target when configuring a cross compiler; examples of valid targets would be i960-rtems, m68k-coff, sh-elf, etc. !
  • Specifying just target instead of --target=target implies that the host defaults to target.
!

Options specification

Use options to override several configure time options for ! GCC. A list of supported options follows; configure ! --help may list other options, but those not listed below may not work and should not normally be used. !

Note that each --enable option has a corresponding ! --disable option and that each --with option has a ! corresponding --without option. !

!
--prefix=dirname !
Specify the toplevel installation directory. This is the recommended way to install the tools into a directory other than the default. The toplevel installation directory defaults to ! /usr/local. !

We highly recommend against dirname being the same or a subdirectory of objdir or vice versa. If specifying a directory beneath a user's home directory tree, some shells will not expand ! dirname correctly if it contains the ~ metacharacter; use ! $HOME instead. !

The following standard autoconf options are supported. Normally you should not need to use these options. !

!
--exec-prefix=dirname !
Specify the toplevel installation directory for architecture-dependent ! files. The default is prefix. !
--bindir=dirname !
Specify the installation directory for the executables called by users ! (such as gcc and g++). The default is ! exec-prefix/bin. !
--libdir=dirname !
Specify the installation directory for object code libraries and ! internal data files of GCC. The default is exec-prefix/lib. !
--libexecdir=dirname !
Specify the installation directory for internal executables of GCC. ! The default is exec-prefix/libexec. !
--with-slibdir=dirname !
Specify the installation directory for the shared libgcc library. The ! default is libdir. !
--infodir=dirname !
Specify the installation directory for documentation in info format. ! The default is prefix/info. !
--datadir=dirname !
Specify the installation directory for some architecture-independent ! data files referenced by GCC. The default is prefix/share. !
--mandir=dirname !
Specify the installation directory for manual pages. The default is ! prefix/man. (Note that the manual pages are only extracts from the full GCC manuals, which are provided in Texinfo format. The manpages are derived by an automatic conversion process from parts of the full manual.) !
--with-gxx-include-dir=dirname !
Specify the installation directory for G++ header files. The default is ! prefix/include/c++/version. !
!
--program-prefix=prefix !
GCC supports some transformations of the names of its programs when installing them. This option prepends prefix to the names of programs to install in bindir (see above). For example, specifying ! --program-prefix=foo- would result in gcc ! being installed as /usr/local/bin/foo-gcc. !
--program-suffix=suffix !
Appends suffix to the names of programs to install in bindir ! (see above). For example, specifying --program-suffix=-3.1 ! would result in gcc being installed as ! /usr/local/bin/gcc-3.1. !
--program-transform-name=pattern !
Applies the sed script pattern to be applied to the names of programs to install in bindir (see above). pattern has to ! consist of one or more basic sed editing commands, separated by ! semicolons. For example, if you want the gcc program name to be ! transformed to the installed program /usr/local/bin/myowngcc and ! the g++ program name to be transformed to ! /usr/local/bin/gspecial++ without changing other program names, you could use the pattern ! --program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/' to achieve this effect. !

All three options can be combined and used together, resulting in more complex conversion patterns. As a basic rule, prefix (and suffix) are prepended (appended) before further transformations can happen with a special transformation script pattern. !

As currently implemented, this option only takes effect for native builds; cross compiler binaries' names are not transformed even when a transformation is explicitly asked for by one of these options. !

For native builds, some of the installed programs are also installed with the target alias in front of their name, as in ! i686-pc-linux-gnu-gcc. All of the above transformations happen before the target alias is prepended to the name - so, specifying ! --program-prefix=foo- and program-suffix=-3.1, the resulting binary would be installed as ! /usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1. !

As a last shortcoming, none of the installed Ada programs are transformed yet, which will be fixed in some time. !

--with-local-prefix=dirname !
Specify the installation directory for local include files. The default is ! /usr/local. Specify this option if you want the compiler to ! search directory dirname/include for locally installed ! header files instead of /usr/local/include. !

You should specify --with-local-prefix only if your ! site has a different convention (not /usr/local) for where to put site-specific files. !

The default value for --with-local-prefix is /usr/local ! regardless of the value of --prefix. Specifying ! --prefix has no effect on which directory GCC searches for local header files. This may seem counterintuitive, but actually it is logical. !

The purpose of --prefix is to specify where to install ! GCC. The local header files in /usr/local/include--if you put ! any in that directory--are not part of GCC. They are part of other ! programs--perhaps many others. (GCC installs its own header files in ! another directory which is based on the --prefix value.) !

Both the local-prefix include directory and the GCC-prefix include directory are part of GCC's "system include" directories. Although these two directories are not fixed, they need to be searched in the proper order for the correct processing of the include_next directive. The *************** local-prefix include directory is search *** 240,246 **** include directory. Another characteristic of system include directories is that pedantic warnings are turned off for headers in these directories. !

Some autoconf macros add -I directory options to the compiler command line, to ensure that directories containing installed packages' headers are searched. When directory is one of GCC's system include directories, GCC will ignore the option so that system --- 242,248 ---- include directory. Another characteristic of system include directories is that pedantic warnings are turned off for headers in these directories. !

Some autoconf macros add -I directory options to the compiler command line, to ensure that directories containing installed packages' headers are searched. When directory is one of GCC's system include directories, GCC will ignore the option so that system *************** directories continue to be processed in *** 248,566 **** may result in a search order different from what was specified but the directory will still be searched. !

GCC automatically searches for ordinary libraries using ! GCC_EXEC_PREFIX. Thus, when the same installation prefix is used for both GCC and packages, GCC will automatically search for both headers and libraries. This provides a configuration that is easy to use. GCC behaves in a manner similar to that when it is ! installed as a system compiler in /usr. !

Sites that need to install multiple versions of GCC may not want to use the above simple configuration. It is possible to use the ! --program-prefix, --program-suffix and ! --program-transform-name options to install multiple versions into a single directory, but it may be simpler to use different prefixes ! and the --with-local-prefix option to specify the location of the site-specific files for each version. It will then be necessary for users to specify explicitly the location of local site libraries ! (e.g., with LIBRARY_PATH). !

The same value can be used for both --with-local-prefix and ! --prefix provided it is not /usr. This can be used ! to avoid the default search of /usr/local/include. !

Do not specify /usr as the --with-local-prefix! ! The directory you use for --with-local-prefix must not contain any of the system's standard header files. If it did contain them, certain programs would be miscompiled (including GNU Emacs, on certain targets), because this would override and nullify the header ! file corrections made by the fixincludes script. !

Indications are that people who use this option use it based on mistaken ideas of what it is for. People use it as if it specified where to install part of GCC. Perhaps they make this assumption because installing GCC creates the directory. !

--enable-shared[=package[,...]]
Build shared versions of libraries, if shared libraries are supported on the target platform. Unlike GCC 2.95.x and earlier, shared libraries are enabled by default on all platforms that support shared libraries, ! except for libobjc which is built as a static library only by default. !

If a list of packages is given as an argument, build shared libraries only for the listed packages. For other packages, only static libraries will be built. Package names currently recognized in the GCC tree are ! libgcc (also known as gcc), libstdc++ (not ! libstdc++-v3), libffi, zlib, boehm-gc and ! libjava. Note that libobjc does not recognize itself by ! any name, so, if you list package names in --enable-shared, ! you will only get static Objective-C libraries. libf2c and ! libiberty do not support shared libraries at all. !

Use --disable-shared to build only static libraries. Note that ! --disable-shared does not accept a list of package names as ! argument, only --enable-shared does. !

--with-gnu-as
Specify that the compiler should assume that the assembler it finds is the GNU assembler. However, this does not modify the rules to find an assembler and will result in confusion if the assembler found is not actually the GNU assembler. (Confusion may also result if the compiler finds the GNU assembler but has not been ! configured with --with-gnu-as.) If you have more than one assembler installed on your system, you may want to use this option in ! connection with --with-as=pathname. !

The following systems are the only ones where it makes a difference whether you use the GNU assembler. On any other system, ! --with-gnu-as has no effect. !

    !
  • hppa1.0-any-any !
  • hppa1.1-any-any !
  • i386-any-sysv !
  • m68k-bull-sysv !
  • m68k-hp-hpux !
  • m68000-hp-hpux !
  • m68000-att-sysv !
  • any-lynx-lynxos !
  • mips-any !
  • sparc-sun-solaris2.any !
  • sparc64-any-solaris2.any
!

On the systems listed above (except for the HP-PA, the SPARC, for ISC on ! the 386, and for mips-sgi-irix5.*), if you use the GNU assembler, ! you should also use the GNU linker (and specify --with-gnu-ld). !

--with-as=pathname
Specify that the compiler should use the assembler pointed to by pathname, rather than the one found by the standard rules to find an assembler, which are: !
    !
  • Check the libexec/gcc/target/version directory, where libexec defaults to ! exec-prefix/libexec and exec-prefix defaults to ! prefix which defaults to /usr/local unless overridden by ! the --prefix=pathname switch described above. target is the target system triple, such as ! sparc-sun-solaris2.7, and version denotes the GCC version, such as 3.0. !
  • Check operating system specific directories (e.g. /usr/ccs/bin on Sun Solaris 2).
! Note that these rules do not check for the value of PATH. You may ! want to use --with-as if no assembler is installed in the directories listed above, or if you have multiple assemblers installed and want to choose one that is not found by the above rules. !
--with-gnu-ld
Same as --with-gnu-as but for the linker. !
--with-ld=pathname
Same as --with-as but for the linker. !
--with-stabs
Specify that stabs debugging information should be used instead of whatever format the host normally uses. Normally GCC uses the same debug format as the host system. !

On MIPS based systems and on Alphas, you must specify whether you want GCC to create the normal ECOFF debugging format, or to use BSD-style stabs passed through the ECOFF symbol table. The normal ECOFF debug format cannot fully handle languages other than C. BSD stabs format can handle other languages, but it only works with the GNU debugger GDB. !

Normally, GCC uses the ECOFF debugging format by default; if you ! prefer BSD stabs, specify --with-stabs when you configure GCC. !

No matter which default you choose when you configure GCC, the user ! can use the -gcoff and -gstabs+ options to specify explicitly the debug format for a particular compilation. !

--with-stabs is meaningful on the ISC system on the 386, also, if ! --with-gas is used. It selects use of stabs debugging information embedded in COFF output. This kind of debugging information supports C++ well; ordinary COFF debugging information does not. !

--with-stabs is also meaningful on 386 systems running SVR4. It selects use of stabs debugging information embedded in ELF output. The C++ compiler currently (2.6.0) does not support the DWARF debugging information normally used on 386 SVR4 platforms; stabs provide a workable alternative. This requires gas and gdb, as the normal SVR4 tools can not generate or interpret stabs. !

--disable-multilib
Specify that multiple target libraries to support different target variants, calling conventions, etc should not be built. The default is to build a predefined set of them. !

Some targets provide finer-grained control over which multilibs are built ! (e.g., --disable-softfloat): !

!
arc-*-elf*
biendian. !
arm-*-*
fpu, 26bit, underscore, interwork, biendian, nofmult. !
m68*-*-*
softfloat, m68881, m68000, m68020. !
mips*-*-*
single-float, biendian, softfloat. !
powerpc*-*-*, rs6000*-*-*
aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, sysv, aix. !
!
--enable-threads
Specify that the target supports threads. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++ and Java. On some systems, this is the default. !

In general, the best (and, in many cases, the only known) threading model available will be configured for use. Beware that on some systems, GCC has not been taught what threading models are generally ! available for the system. In this case, --enable-threads is an ! alias for --enable-threads=single. !

--disable-threads
Specify that threading support should be disabled for the system. ! This is an alias for --enable-threads=single. !
--enable-threads=lib
Specify that lib is the thread support library. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++ and Java. The possibilities for lib are: !
!
aix
AIX thread support. !
dce
DCE thread support. !
gnat
Ada tasking support. For non-Ada programs, this setting is equivalent ! to single. When used in conjunction with the Ada run time, it causes GCC to use the same thread primitives as Ada uses. This option is necessary when using both Ada and the back end exception handling, which is the default for most Ada targets. !
mach
Generic MACH thread support, known to work on NeXTSTEP. (Please note ! that the file needed to support this configuration, gthr-mach.h, is missing and thus this setting will cause a known bootstrap failure.) !
no
This is an alias for single. !
posix
Generic POSIX thread support. !
rtems
RTEMS thread support. !
single
Disable thread support, should work for all platforms. !
solaris
Sun Solaris 2 thread support. !
vxworks
VxWorks thread support. !
win32
Microsoft Win32 API thread support.
!
--with-cpu=cpu
Specify which cpu variant the compiler should generate code for by default. ! cpu will be used as the default value of the -mcpu= switch. This option is only supported on some targets, including ARM, i386, PowerPC, and SPARC. !
--with-schedule=cpu
--with-arch=cpu
--with-tune=cpu
--with-abi=abi
--with-float=type
These configure options provide default values for the -mschedule=, ! -march=, -mtune=, and -mabi= options and for ! -mhard-float or -msoft-float. As with --with-cpu, which switches will be accepted and acceptable values of the arguments depend on the target. !
--enable-altivec
Specify that the target supports AltiVec vector enhancements. This option will adjust the ABI for AltiVec enhancements, as well as generate AltiVec code when appropriate. This option is only available for PowerPC systems. !
--enable-__cxa_atexit
Define if you want to use __cxa_atexit, rather than atexit, to register C++ destructors for local statics and global objects. This is essential for fully standards-compliant handling of destructors, but requires __cxa_atexit in libc. This option is currently only available on systems with GNU libc. When enabled, this will cause ! -fuse-cxa-exit to be passed by default. !
--enable-target-optspace
Specify that target libraries should be optimized for code space instead of code speed. This is the default for the m32r platform. !
--disable-cpp
Specify that a user visible cpp program should not be installed. !
--with-cpp-install-dir=dirname
Specify that the user visible cpp program should be installed ! in prefix/dirname/cpp, in addition to bindir. !
--enable-initfini-array
Force the use of sections .init_array and .fini_array (instead of .init and .fini) for constructors and ! destructors. Option --disable-initfini-array has the opposite effect. If neither option is specified, the configure script will try to guess whether the .init_array and .fini_array sections are supported and, if they are, use them. !
--enable-maintainer-mode
The build rules that ! regenerate the GCC master message catalog gcc.pot are normally disabled. This is because it can only be rebuilt if the complete source tree is present. If you have changed the sources and want to rebuild the ! catalog, configuring with --enable-maintainer-mode will enable this. Note that you need a recent version of the gettext tools to do so. !
--enable-generated-files-in-srcdir
Neither the .c and .h files that are generated from bison and flex nor the info manuals and man pages that are built from the .texi files are present in the CVS development tree. When building GCC from that development tree, or from a snapshot which are created from CVS, then those generated files are placed in your build directory, which allows for the source to be in a readonly directory. !

If you configure with --enable-generated-files-in-srcdir then those generated files will go into the source directory. This is mainly intended for generating release or prerelease tarballs of the GCC sources, since it is not a requirement that the users of source releases to have flex, bison, or makeinfo. !

--enable-version-specific-runtime-libs
Specify that runtime libraries should be installed in the compiler specific ! subdirectory (libdir/gcc) rather than the usual places. In ! addition, libstdc++'s include files will be installed into ! libdir unless you overruled it by using ! --with-gxx-include-dir=dirname. Using this option is particularly useful if you intend to use several versions of GCC in ! parallel. This is currently supported by libf2c and ! libstdc++, and is the default for libobjc which cannot be changed in this case. !
--enable-languages=lang1,lang2,...
Specify that only a particular subset of compilers and their runtime libraries should be built. For a list of valid values for langN you can issue the following command in the ! gcc directory of your GCC source tree:
!
          grep language= */config-lang.in
!      
!

Currently, you can use any of the following: ada, c, c++, f77, java, objc. Building the Ada compiler has special requirements, see below.
! If you do not pass this flag, all languages available in the gcc sub-tree will be configured. Re-defining LANGUAGES when calling ! make bootstrap does not work anymore, as those language sub-directories might not have been configured! !

--with-dwarf2
Specify that the compiler should use DWARF 2 debugging information as the default. !
--enable-win32-registry
--enable-win32-registry=key
--disable-win32-registry
The --enable-win32-registry option enables Microsoft Windows-hosted GCC to look up installations paths in the registry using the following key: !
          HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\key
!      
!

key defaults to GCC version number, and can be overridden by the ! --enable-win32-registry=key option. Vendors and distributors who use custom installers are encouraged to provide a different key, perhaps one comprised of vendor name and GCC version number, to avoid conflict with existing installations. This feature is enabled ! by default, and can be disabled by --disable-win32-registry option. This option has no effect on the other hosts. !

--nfp
Specify that the machine does not have a floating point unit. This ! option only applies to m68k-sun-sunosn. On any other ! system, --nfp has no effect. !
--enable-werror
--disable-werror
--enable-werror=yes
--enable-werror=no
When you specify this option, it controls whether certain files in the ! compiler are built with -Werror in bootstrap stage2 and later. ! If you don't specify it, -Werror is turned on for the main development trunk. However it defaults to off for release branches and ! final releases. The specific files which get -Werror are controlled by the Makefiles. !
--enable-checking
--enable-checking=list
When you specify this option, the compiler is built to perform checking of tree node types when referencing fields of that node, and some other internal consistency checks. This does not change the generated code, but adds error checking within the compiler. This will slow down the --- 250,622 ---- may result in a search order different from what was specified but the directory will still be searched. !

GCC automatically searches for ordinary libraries using ! GCC_EXEC_PREFIX. Thus, when the same installation prefix is used for both GCC and packages, GCC will automatically search for both headers and libraries. This provides a configuration that is easy to use. GCC behaves in a manner similar to that when it is ! installed as a system compiler in /usr. !

Sites that need to install multiple versions of GCC may not want to use the above simple configuration. It is possible to use the ! --program-prefix, --program-suffix and ! --program-transform-name options to install multiple versions into a single directory, but it may be simpler to use different prefixes ! and the --with-local-prefix option to specify the location of the site-specific files for each version. It will then be necessary for users to specify explicitly the location of local site libraries ! (e.g., with LIBRARY_PATH). !

The same value can be used for both --with-local-prefix and ! --prefix provided it is not /usr. This can be used ! to avoid the default search of /usr/local/include. !

Do not specify /usr as the --with-local-prefix! ! The directory you use for --with-local-prefix must not contain any of the system's standard header files. If it did contain them, certain programs would be miscompiled (including GNU Emacs, on certain targets), because this would override and nullify the header ! file corrections made by the fixincludes script. !

Indications are that people who use this option use it based on mistaken ideas of what it is for. People use it as if it specified where to install part of GCC. Perhaps they make this assumption because installing GCC creates the directory. !

--enable-shared[=package[,...]] !
Build shared versions of libraries, if shared libraries are supported on the target platform. Unlike GCC 2.95.x and earlier, shared libraries are enabled by default on all platforms that support shared libraries, ! except for libobjc which is built as a static library only by default. !

If a list of packages is given as an argument, build shared libraries only for the listed packages. For other packages, only static libraries will be built. Package names currently recognized in the GCC tree are ! libgcc (also known as gcc), libstdc++ (not ! libstdc++-v3), libffi, zlib, boehm-gc and ! libjava. Note that libobjc does not recognize itself by ! any name, so, if you list package names in --enable-shared, ! you will only get static Objective-C libraries. libf2c and ! libiberty do not support shared libraries at all. !

Use --disable-shared to build only static libraries. Note that ! --disable-shared does not accept a list of package names as ! argument, only --enable-shared does. !

--with-gnu-as !
Specify that the compiler should assume that the assembler it finds is the GNU assembler. However, this does not modify the rules to find an assembler and will result in confusion if the assembler found is not actually the GNU assembler. (Confusion may also result if the compiler finds the GNU assembler but has not been ! configured with --with-gnu-as.) If you have more than one assembler installed on your system, you may want to use this option in ! connection with --with-as=pathname. !

The following systems are the only ones where it makes a difference whether you use the GNU assembler. On any other system, ! --with-gnu-as has no effect. !

    !
  • hppa1.0-any-any !
  • hppa1.1-any-any !
  • i386-any-sysv !
  • m68k-bull-sysv !
  • m68k-hp-hpux !
  • m68000-hp-hpux !
  • m68000-att-sysv !
  • any-lynx-lynxos !
  • mips-any !
  • sparc-sun-solaris2.any !
  • sparc64-any-solaris2.any
!

On the systems listed above (except for the HP-PA, the SPARC, for ISC on ! the 386, and for mips-sgi-irix5.*), if you use the GNU assembler, ! you should also use the GNU linker (and specify --with-gnu-ld). !

--with-as=pathname !
Specify that the compiler should use the assembler pointed to by pathname, rather than the one found by the standard rules to find an assembler, which are: !
    !
  • Check the libexec/gcc/target/version directory, where libexec defaults to ! exec-prefix/libexec and exec-prefix defaults to ! prefix which defaults to /usr/local unless overridden by ! the --prefix=pathname switch described above. target is the target system triple, such as ! sparc-sun-solaris2.7, and version denotes the GCC version, such as 3.0. !
  • Check operating system specific directories (e.g. /usr/ccs/bin on Sun Solaris 2).
! Note that these rules do not check for the value of PATH. You may ! want to use --with-as if no assembler is installed in the directories listed above, or if you have multiple assemblers installed and want to choose one that is not found by the above rules. !
--with-gnu-ld !
Same as --with-gnu-as but for the linker. !
--with-ld=pathname !
Same as --with-as but for the linker. !
--with-stabs !
Specify that stabs debugging information should be used instead of whatever format the host normally uses. Normally GCC uses the same debug format as the host system. !

On MIPS based systems and on Alphas, you must specify whether you want GCC to create the normal ECOFF debugging format, or to use BSD-style stabs passed through the ECOFF symbol table. The normal ECOFF debug format cannot fully handle languages other than C. BSD stabs format can handle other languages, but it only works with the GNU debugger GDB. !

Normally, GCC uses the ECOFF debugging format by default; if you ! prefer BSD stabs, specify --with-stabs when you configure GCC. !

No matter which default you choose when you configure GCC, the user ! can use the -gcoff and -gstabs+ options to specify explicitly the debug format for a particular compilation. !

--with-stabs is meaningful on the ISC system on the 386, also, if ! --with-gas is used. It selects use of stabs debugging information embedded in COFF output. This kind of debugging information supports C++ well; ordinary COFF debugging information does not. !

--with-stabs is also meaningful on 386 systems running SVR4. It selects use of stabs debugging information embedded in ELF output. The C++ compiler currently (2.6.0) does not support the DWARF debugging information normally used on 386 SVR4 platforms; stabs provide a workable alternative. This requires gas and gdb, as the normal SVR4 tools can not generate or interpret stabs. !

--disable-multilib !
Specify that multiple target libraries to support different target variants, calling conventions, etc should not be built. The default is to build a predefined set of them. !

Some targets provide finer-grained control over which multilibs are built ! (e.g., --disable-softfloat): !

!
arc-*-elf* !
biendian. !
arm-*-* !
fpu, 26bit, underscore, interwork, biendian, nofmult. !
m68*-*-* !
softfloat, m68881, m68000, m68020. !
mips*-*-* !
single-float, biendian, softfloat. !
powerpc*-*-*, rs6000*-*-* !
aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, sysv, aix. !
!
--enable-threads !
Specify that the target supports threads. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++ and Java. On some systems, this is the default. !

In general, the best (and, in many cases, the only known) threading model available will be configured for use. Beware that on some systems, GCC has not been taught what threading models are generally ! available for the system. In this case, --enable-threads is an ! alias for --enable-threads=single. !

--disable-threads !
Specify that threading support should be disabled for the system. ! This is an alias for --enable-threads=single. !
--enable-threads=lib !
Specify that lib is the thread support library. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++ and Java. The possibilities for lib are: !
!
aix !
AIX thread support. !
dce !
DCE thread support. !
gnat !
Ada tasking support. For non-Ada programs, this setting is equivalent ! to single. When used in conjunction with the Ada run time, it causes GCC to use the same thread primitives as Ada uses. This option is necessary when using both Ada and the back end exception handling, which is the default for most Ada targets. !
mach !
Generic MACH thread support, known to work on NeXTSTEP. (Please note ! that the file needed to support this configuration, gthr-mach.h, is missing and thus this setting will cause a known bootstrap failure.) !
no !
This is an alias for single. !
posix !
Generic POSIX thread support. !
rtems !
RTEMS thread support. !
single !
Disable thread support, should work for all platforms. !
solaris !
Sun Solaris 2 thread support. !
vxworks !
VxWorks thread support. !
win32 !
Microsoft Win32 API thread support.
!
--with-cpu=cpu !
Specify which cpu variant the compiler should generate code for by default. ! cpu will be used as the default value of the -mcpu= switch. This option is only supported on some targets, including ARM, i386, PowerPC, and SPARC. !
--with-schedule=cpu !
--with-arch=cpu !
--with-tune=cpu !
--with-abi=abi !
--with-float=type !
These configure options provide default values for the -mschedule=, ! -march=, -mtune=, and -mabi= options and for ! -mhard-float or -msoft-float. As with --with-cpu, which switches will be accepted and acceptable values of the arguments depend on the target. !
--enable-altivec !
Specify that the target supports AltiVec vector enhancements. This option will adjust the ABI for AltiVec enhancements, as well as generate AltiVec code when appropriate. This option is only available for PowerPC systems. !
--enable-__cxa_atexit !
Define if you want to use __cxa_atexit, rather than atexit, to register C++ destructors for local statics and global objects. This is essential for fully standards-compliant handling of destructors, but requires __cxa_atexit in libc. This option is currently only available on systems with GNU libc. When enabled, this will cause ! -fuse-cxa-exit to be passed by default. !
--enable-target-optspace !
Specify that target libraries should be optimized for code space instead of code speed. This is the default for the m32r platform. !
--disable-cpp !
Specify that a user visible cpp program should not be installed. !
--with-cpp-install-dir=dirname !
Specify that the user visible cpp program should be installed ! in prefix/dirname/cpp, in addition to bindir. !
--enable-initfini-array !
Force the use of sections .init_array and .fini_array (instead of .init and .fini) for constructors and ! destructors. Option --disable-initfini-array has the opposite effect. If neither option is specified, the configure script will try to guess whether the .init_array and .fini_array sections are supported and, if they are, use them. !
--enable-maintainer-mode !
The build rules that ! regenerate the GCC master message catalog gcc.pot are normally disabled. This is because it can only be rebuilt if the complete source tree is present. If you have changed the sources and want to rebuild the ! catalog, configuring with --enable-maintainer-mode will enable this. Note that you need a recent version of the gettext tools to do so. !
--enable-generated-files-in-srcdir !
Neither the .c and .h files that are generated from bison and flex nor the info manuals and man pages that are built from the .texi files are present in the CVS development tree. When building GCC from that development tree, or from a snapshot which are created from CVS, then those generated files are placed in your build directory, which allows for the source to be in a readonly directory. !

If you configure with --enable-generated-files-in-srcdir then those generated files will go into the source directory. This is mainly intended for generating release or prerelease tarballs of the GCC sources, since it is not a requirement that the users of source releases to have flex, bison, or makeinfo. !

--enable-version-specific-runtime-libs !
Specify that runtime libraries should be installed in the compiler specific ! subdirectory (libdir/gcc) rather than the usual places. In ! addition, libstdc++'s include files will be installed into ! libdir unless you overruled it by using ! --with-gxx-include-dir=dirname. Using this option is particularly useful if you intend to use several versions of GCC in ! parallel. This is currently supported by libf2c and ! libstdc++, and is the default for libobjc which cannot be changed in this case. !
--enable-languages=lang1,lang2,... !
Specify that only a particular subset of compilers and their runtime libraries should be built. For a list of valid values for langN you can issue the following command in the ! gcc directory of your GCC source tree:
!
grep language= */config-lang.in
! 
! Currently, you can use any of the following: ada, c, c++, f77, java, objc. Building the Ada compiler has special requirements, see below.
! If you do not pass this flag, all languages available in the gcc sub-tree will be configured. Re-defining LANGUAGES when calling ! make bootstrap does not work anymore, as those language sub-directories might not have been configured! !
--with-dwarf2 !
Specify that the compiler should use DWARF 2 debugging information as the default. !
--enable-win32-registry !
--enable-win32-registry=key !
--disable-win32-registry !
The --enable-win32-registry option enables Microsoft Windows-hosted GCC to look up installations paths in the registry using the following key: !
HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\key
! 
! !

key defaults to GCC version number, and can be overridden by the ! --enable-win32-registry=key option. Vendors and distributors who use custom installers are encouraged to provide a different key, perhaps one comprised of vendor name and GCC version number, to avoid conflict with existing installations. This feature is enabled ! by default, and can be disabled by --disable-win32-registry option. This option has no effect on the other hosts. !

--nfp !
Specify that the machine does not have a floating point unit. This ! option only applies to m68k-sun-sunosn. On any other ! system, --nfp has no effect. !
--enable-werror !
--disable-werror !
--enable-werror=yes !
--enable-werror=no !
When you specify this option, it controls whether certain files in the ! compiler are built with -Werror in bootstrap stage2 and later. ! If you don't specify it, -Werror is turned on for the main development trunk. However it defaults to off for release branches and ! final releases. The specific files which get -Werror are controlled by the Makefiles. !
--enable-checking !
--enable-checking=list !
When you specify this option, the compiler is built to perform checking of tree node types when referencing fields of that node, and some other internal consistency checks. This does not change the generated code, but adds error checking within the compiler. This will slow down the *************** compiler and may only work properly if y *** 568,783 **** with GCC. This is on by default when building from CVS or snapshots, but off for releases. More control over the checks may be had by specifying list; the categories of checks available are ! misc, tree, gc, rtl, rtlflag, ! fold, gcac and valgrind. The check valgrind ! requires the external valgrind simulator, available from http://valgrind.kde.org/. The default when list is ! not specified is misc,tree,gc,rtlflag; the checks rtl, ! gcac and valgrind are very expensive. !
--enable-coverage
--enable-coverage=level
With this option, the compiler is built to collect self coverage information, every time it is run. This is for internal development purposes, and only works when the compiler is being built with gcc. The level argument controls whether the compiler is built optimized or ! not, values are opt and noopt. For coverage analysis you want to disable optimization, for performance analysis you want to enable optimization. When coverage is enabled, the default level is without optimization. !
--enable-gather-detailed-mem-stats
When this option is specified more detailed information on memory allocation is gathered. This information is printed when using ! -fmem-report. !
--enable-nls
--disable-nls
The --enable-nls option enables Native Language Support (NLS), which lets GCC output diagnostics in languages other than American English. Native Language Support is enabled by default if not doing a ! canadian cross build. The --disable-nls option disables NLS. !
--with-included-gettext
If NLS is enabled, the --with-included-gettext option causes the build ! procedure to prefer its copy of GNU gettext. !
--with-catgets
If NLS is enabled, and if the host lacks gettext but has the inferior catgets interface, the GCC build procedure normally ignores catgets and instead uses GCC's copy of the GNU ! gettext library. The --with-catgets option causes the build procedure to use the host's catgets in this situation. !
--with-libiconv-prefix=dir
Search for libiconv header files in dir/include and ! libiconv library files in dir/lib. !
--enable-obsolete
Enable configuration for an obsoleted system. If you attempt to configure GCC for a system (build, host, or target) which has been obsoleted, and you do not specify this flag, configure will halt with an error message. !

All support for systems which have been obsoleted in one release of GCC is removed entirely in the next major release, unless someone steps forward to maintain the port.

!

Cross-Compiler-Specific Options

The following options only apply to building cross compilers. !

!
--with-sysroot
--with-sysroot=dir
Tells GCC to consider dir as the root of a tree that contains a (subset of) the root filesystem of the target operating system. Target system headers, libraries and run-time object files will be searched in there. The specified directory is not copied into the ! install tree, unlike the options --with-headers and ! --with-libs that this option obsoletes. The default value, ! in case --with-sysroot is not given an argument, is ! ${gcc_tooldir}/sys-root. If the specified directory is a ! subdirectory of ${exec_prefix}, then it will be found relative to the GCC binaries if the installation tree is moved. !
--with-headers
--with-headers=dir
Deprecated in favor of --with-sysroot. Specifies that target headers are available when building a cross compiler. The dir argument specifies a directory which has the target include ! files. These include files will be copied into the gcc install ! directory. This option with the dir argument is required when ! building a cross compiler, if prefix/target/sys-include ! doesn't pre-exist. If prefix/target/sys-include does ! pre-exist, the dir argument may be omitted. fixincludes will be run on these files to make them compatible with GCC. !
--without-headers
Tells GCC not use any target headers from a libc when building a cross compiler. When crossing to GNU/Linux, you need the headers so GCC can build the exception handling for libgcc. See CrossGCC for more information on this option. !
--with-libs
--with-libs=``dir1 dir2 ... dirN''
Deprecated in favor of --with-sysroot. Specifies a list of directories which contain the target runtime ! libraries. These libraries will be copied into the gcc install directory. If the directory list is omitted, this option has no effect. !
--with-newlib
Specifies that newlib is being used as the target C library. This causes __eprintf to be ! omitted from libgcc.a on the assumption that it will be provided by ! newlib.
!

Java-Specific Options

The following option applies to the build of the Java front end. !

!
--disable-libgcj
Specify that the run-time libraries used by GCJ should not be built. This is useful in case you intend to use GCJ with some other run-time, or you're going to install it separately, or it just happens not to build on your particular machine. In general, if the Java front end is enabled, the GCJ libraries will be enabled too, unless they're known to not work on ! the target platform. If GCJ is enabled but libgcj isn't built, you may need to port it; in this case, before modifying the top-level ! configure.in so that libgcj is enabled by default on this platform, ! you may use --enable-libgcj to override the default. !
!

The following options apply to building libgcj. !

General Options
!
!
--disable-getenv-properties
Don't set system properties from GCJ_PROPERTIES. !
--enable-hash-synchronization
Use a global hash table for monitor locks. Ordinarily, ! libgcj's configure script automatically makes the correct choice for this option for your platform. Only use this if you know you need the library to be configured differently. !
--enable-interpreter
Enable the Java interpreter. The interpreter is automatically enabled by default on all platforms that support it. This option is really only useful if you want to disable the interpreter ! (using --disable-interpreter). !
--disable-java-net
Disable java.net. This disables the native part of java.net only, using non-functional stubs for native method implementations. !
--disable-jvmpi
Disable JVMPI support. !
--with-ecos
Enable runtime eCos target support. !
--without-libffi
Don't use libffi. This will disable the interpreter and JNI ! support as well, as these require libffi to work. !
--enable-libgcj-debug
Enable runtime debugging code. !
--enable-libgcj-multifile
If specified, causes all .java source files to be ! compiled into .class files in one invocation of ! gcj. This can speed up build time, but is more resource-intensive. If this option is unspecified or ! disabled, gcj is invoked once for each .java ! file to compile into a .class file. !
--with-libiconv-prefix=DIR
Search for libiconv in DIR/include and DIR/lib. !
--enable-sjlj-exceptions
Force use of builtin_setjmp for exceptions. configure ordinarily picks the correct value based on the platform. Only use this option if you are sure you need a different setting. !
--with-system-zlib
Use installed zlib rather than that included with GCC. !
--with-win32-nlsapi=ansi, unicows or unicode
Indicates how MinGW libgcj translates between UNICODE characters and the Win32 API. !
!
ansi
Use the single-byte char and the Win32 A functions natively, translating to and from UNICODE when using these functions. If unspecified, this is the default. !
unicows
Use the WCHAR and Win32 W functions natively. Adds ! -lunicows to libgcj.spec to link with libunicows. ! unicows.dll needs to be deployed on Microsoft Windows 9X machines ! running built executables. libunicows.a, an open-source import library around Microsoft's unicows.dll, is obtained from http://libunicows.sourceforge.net/, which also gives details ! on getting unicows.dll from Microsoft. !
unicode
Use the WCHAR and Win32 W functions natively. Does not ! add -lunicows to libgcj.spec. The built executables will only run on Microsoft Windows NT and above.
!
!
AWT-Specific Options
!
!
--with-x
Use the X Window System. !
--enable-java-awt=PEER(S)
Specifies the AWT peer library or libraries to build alongside ! libgcj. If this option is unspecified or disabled, AWT ! will be non-functional. Current valid values are gtk and ! xlib. Multiple libraries should be separated by a ! comma (i.e. --enable-java-awt=gtk,xlib). !
--enable-gtk-cairo
Build the cairo Graphics2D implementation on GTK. !
--enable-java-gc=TYPE
Choose garbage collector. Defaults to boehm if unspecified. !
--disable-gtktest
Do not try to compile and run a test GTK+ program. !
--disable-glibtest
Do not try to compile and run a test GLIB program. !
--with-libart-prefix=PFX
Prefix where libart is installed (optional). !
--with-libart-exec-prefix=PFX
Exec prefix where libart is installed (optional). !
--disable-libarttest
Do not try to compile and run a test libart program.
!


!

Return to the GCC Installation page - - - - - - - - - --- 624,874 ---- with GCC. This is on by default when building from CVS or snapshots, but off for releases. More control over the checks may be had by specifying list; the categories of checks available are ! misc, tree, gc, rtl, rtlflag, ! fold, gcac and valgrind. The check valgrind ! requires the external valgrind simulator, available from http://valgrind.kde.org/. The default when list is ! not specified is misc,tree,gc,rtlflag; the checks rtl, ! gcac and valgrind are very expensive. !

--enable-coverage !
--enable-coverage=level !
With this option, the compiler is built to collect self coverage information, every time it is run. This is for internal development purposes, and only works when the compiler is being built with gcc. The level argument controls whether the compiler is built optimized or ! not, values are opt and noopt. For coverage analysis you want to disable optimization, for performance analysis you want to enable optimization. When coverage is enabled, the default level is without optimization. !
--enable-gather-detailed-mem-stats !
When this option is specified more detailed information on memory allocation is gathered. This information is printed when using ! -fmem-report. !
--enable-nls !
--disable-nls !
The --enable-nls option enables Native Language Support (NLS), which lets GCC output diagnostics in languages other than American English. Native Language Support is enabled by default if not doing a ! canadian cross build. The --disable-nls option disables NLS. !
--with-included-gettext !
If NLS is enabled, the --with-included-gettext option causes the build ! procedure to prefer its copy of GNU gettext. !
--with-catgets !
If NLS is enabled, and if the host lacks gettext but has the inferior catgets interface, the GCC build procedure normally ignores catgets and instead uses GCC's copy of the GNU ! gettext library. The --with-catgets option causes the build procedure to use the host's catgets in this situation. !
--with-libiconv-prefix=dir !
Search for libiconv header files in dir/include and ! libiconv library files in dir/lib. !
--enable-obsolete !
Enable configuration for an obsoleted system. If you attempt to configure GCC for a system (build, host, or target) which has been obsoleted, and you do not specify this flag, configure will halt with an error message. !

All support for systems which have been obsoleted in one release of GCC is removed entirely in the next major release, unless someone steps forward to maintain the port.

!

Cross-Compiler-Specific Options

The following options only apply to building cross compilers. !

!
--with-sysroot !
--with-sysroot=dir !
Tells GCC to consider dir as the root of a tree that contains a (subset of) the root filesystem of the target operating system. Target system headers, libraries and run-time object files will be searched in there. The specified directory is not copied into the ! install tree, unlike the options --with-headers and ! --with-libs that this option obsoletes. The default value, ! in case --with-sysroot is not given an argument, is ! ${gcc_tooldir}/sys-root. If the specified directory is a ! subdirectory of ${exec_prefix}, then it will be found relative to the GCC binaries if the installation tree is moved. !
--with-headers !
--with-headers=dir !
Deprecated in favor of --with-sysroot. Specifies that target headers are available when building a cross compiler. The dir argument specifies a directory which has the target include ! files. These include files will be copied into the gcc install ! directory. This option with the dir argument is required when ! building a cross compiler, if prefix/target/sys-include ! doesn't pre-exist. If prefix/target/sys-include does ! pre-exist, the dir argument may be omitted. fixincludes will be run on these files to make them compatible with GCC. !
--without-headers !
Tells GCC not use any target headers from a libc when building a cross compiler. When crossing to GNU/Linux, you need the headers so GCC can build the exception handling for libgcc. See CrossGCC for more information on this option. !
--with-libs !
--with-libs=``dir1 dir2 ... dirN'' !
Deprecated in favor of --with-sysroot. Specifies a list of directories which contain the target runtime ! libraries. These libraries will be copied into the gcc install directory. If the directory list is omitted, this option has no effect. !
--with-newlib !
Specifies that newlib is being used as the target C library. This causes __eprintf to be ! omitted from libgcc.a on the assumption that it will be provided by ! newlib.
!

Java-Specific Options

The following option applies to the build of the Java front end. !

!
--disable-libgcj !
Specify that the run-time libraries used by GCJ should not be built. This is useful in case you intend to use GCJ with some other run-time, or you're going to install it separately, or it just happens not to build on your particular machine. In general, if the Java front end is enabled, the GCJ libraries will be enabled too, unless they're known to not work on ! the target platform. If GCJ is enabled but libgcj isn't built, you may need to port it; in this case, before modifying the top-level ! configure.in so that libgcj is enabled by default on this platform, ! you may use --enable-libgcj to override the default. !
!

The following options apply to building libgcj. !

General Options
!
!
--disable-getenv-properties !
Don't set system properties from GCJ_PROPERTIES. !
--enable-hash-synchronization !
Use a global hash table for monitor locks. Ordinarily, ! libgcj's configure script automatically makes the correct choice for this option for your platform. Only use this if you know you need the library to be configured differently. !
--enable-interpreter !
Enable the Java interpreter. The interpreter is automatically enabled by default on all platforms that support it. This option is really only useful if you want to disable the interpreter ! (using --disable-interpreter). !
--disable-java-net !
Disable java.net. This disables the native part of java.net only, using non-functional stubs for native method implementations. !
--disable-jvmpi !
Disable JVMPI support. !
--with-ecos !
Enable runtime eCos target support. !
--without-libffi !
Don't use libffi. This will disable the interpreter and JNI ! support as well, as these require libffi to work. !
--enable-libgcj-debug !
Enable runtime debugging code. !
--enable-libgcj-multifile !
If specified, causes all .java source files to be ! compiled into .class files in one invocation of ! gcj. This can speed up build time, but is more resource-intensive. If this option is unspecified or ! disabled, gcj is invoked once for each .java ! file to compile into a .class file. !
--with-libiconv-prefix=DIR !
Search for libiconv in DIR/include and DIR/lib. !
--enable-sjlj-exceptions !
Force use of builtin_setjmp for exceptions. configure ordinarily picks the correct value based on the platform. Only use this option if you are sure you need a different setting. !
--with-system-zlib !
Use installed zlib rather than that included with GCC. !
--with-win32-nlsapi=ansi, unicows or unicode !
Indicates how MinGW libgcj translates between UNICODE characters and the Win32 API. !
!
ansi !
Use the single-byte char and the Win32 A functions natively, translating to and from UNICODE when using these functions. If unspecified, this is the default. !
unicows !
Use the WCHAR and Win32 W functions natively. Adds ! -lunicows to libgcj.spec to link with libunicows. ! unicows.dll needs to be deployed on Microsoft Windows 9X machines ! running built executables. libunicows.a, an open-source import library around Microsoft's unicows.dll, is obtained from http://libunicows.sourceforge.net/, which also gives details ! on getting unicows.dll from Microsoft. !
unicode !
Use the WCHAR and Win32 W functions natively. Does not ! add -lunicows to libgcj.spec. The built executables will only run on Microsoft Windows NT and above.
!
!
AWT-Specific Options
!
!
--with-x !
Use the X Window System. !
--enable-java-awt=PEER(S) !
Specifies the AWT peer library or libraries to build alongside ! libgcj. If this option is unspecified or disabled, AWT ! will be non-functional. Current valid values are gtk and ! xlib. Multiple libraries should be separated by a ! comma (i.e. --enable-java-awt=gtk,xlib). !
--enable-gtk-cairo !
Build the cairo Graphics2D implementation on GTK. !
--enable-java-gc=TYPE !
Choose garbage collector. Defaults to boehm if unspecified. !
--disable-gtktest !
Do not try to compile and run a test GTK+ program. !
--disable-glibtest !
Do not try to compile and run a test GLIB program. !
--with-libart-prefix=PFX !
Prefix where libart is installed (optional). !
--with-libart-exec-prefix=PFX !
Exec prefix where libart is installed (optional). !
--disable-libarttest !
Do not try to compile and run a test libart program.
!
!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/download.html gcc-3.4.4/INSTALL/download.html *** gcc-3.4.3/INSTALL/download.html Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/INSTALL/download.html Thu May 19 09:58:07 2005 *************** *** 2,89 **** Downloading GCC ! ! ! ! - - !

Downloading GCC

! GCC is distributed via CVS and FTP ! tarballs compressed with gzip or ! bzip2. It is possible to download a full distribution or specific components. !

Please refer to the releases web page for information on how to obtain GCC. !

The full distribution includes the C, C++, Objective-C, Fortran, Java, and Ada (in case of GCC 3.1 and later) compilers. The full distribution also includes runtime libraries for C++, Objective-C, Fortran, and Java. In GCC 3.0 and later versions, GNU compiler testsuites are also included in the full distribution. !

If you choose to download specific components, you must download the core GCC distribution plus any language specific distributions you wish to use. The core distribution includes the C language front end as well as the shared components. Each language has a tarball which includes the language front end as well as the language runtime (when appropriate). !

Unpack the core distribution as well as any language specific distributions in the same directory. !

If you also intend to build binutils (either to upgrade an existing installation or for use in place of the corresponding tools of your OS), unpack the binutils distribution either in the same directory or a separate one. In the latter case, add symbolic links to any components of the binutils you intend to build alongside the compiler ! (bfd, binutils, gas, gprof, ld, ! opcodes, ...) to the directory containing the GCC sources. !


!

Return to the GCC Installation page - - - - - - - - - - --- 2,67 ---- Downloading GCC ! ! ! !

Downloading GCC

GCC is distributed via CVS and FTP ! tarballs compressed with gzip or ! bzip2. It is possible to download a full distribution or specific components. !

Please refer to the releases web page for information on how to obtain GCC. !

The full distribution includes the C, C++, Objective-C, Fortran, Java, and Ada (in case of GCC 3.1 and later) compilers. The full distribution also includes runtime libraries for C++, Objective-C, Fortran, and Java. In GCC 3.0 and later versions, GNU compiler testsuites are also included in the full distribution. !

If you choose to download specific components, you must download the core GCC distribution plus any language specific distributions you wish to use. The core distribution includes the C language front end as well as the shared components. Each language has a tarball which includes the language front end as well as the language runtime (when appropriate). !

Unpack the core distribution as well as any language specific distributions in the same directory. !

If you also intend to build binutils (either to upgrade an existing installation or for use in place of the corresponding tools of your OS), unpack the binutils distribution either in the same directory or a separate one. In the latter case, add symbolic links to any components of the binutils you intend to build alongside the compiler ! (bfd, binutils, gas, gprof, ld, ! opcodes, ...) to the directory containing the GCC sources. !


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/finalinstall.html gcc-3.4.4/INSTALL/finalinstall.html *** gcc-3.4.3/INSTALL/finalinstall.html Fri Nov 5 04:14:12 2004 --- gcc-3.4.4/INSTALL/finalinstall.html Thu May 19 09:58:07 2005 *************** *** 2,91 **** Installing GCC: Final installation ! ! ! ! - - !

Installing GCC: Final installation

Now that GCC has been built (and optionally tested), you can install it with !
     cd objdir; make install
  
!

We strongly recommend to install into a target directory where there is no previous version of GCC present. !

That step completes the installation of GCC; user level binaries can ! be found in prefix/bin where prefix is the value ! you specified with the --prefix to configure (or ! /usr/local by default). (If you specified --bindir, that directory will be used instead; otherwise, if you specified ! --exec-prefix, exec-prefix/bin will be used.) Headers for the C++ and Java libraries are installed in ! prefix/include; libraries in libdir ! (normally prefix/lib); internal parts of the compiler in ! libdir/gcc and libexecdir/gcc; documentation ! in info format in infodir (normally ! prefix/info). !

When installing cross-compilers, GCC's executables ! are not only installed into bindir, that ! is, exec-prefix/bin, but additionally into ! exec-prefix/target-alias/bin, if that directory exists. Typically, such tooldirs hold target-specific binutils, including assembler and linker. !

Installation into a temporary staging area or into a chroot jail can be achieved with the command !

     make DESTDIR=path-to-rootdir install
  
!

where path-to-rootdir is the absolute path of a directory relative to which all installation paths will be interpreted. Note that the directory specified by DESTDIR need not exist yet; it will be created if necessary. !

There is a subtle point with tooldirs and DESTDIR: If you relocate a cross-compiler installation with ! e.g. DESTDIR=rootdir, then the directory ! rootdir/exec-prefix/target-alias/bin will be filled with duplicated GCC executables only if it already exists, it will not be created otherwise. This is regarded as a feature, not as a bug, because it gives slightly more control to the packagers using the DESTDIR feature. !

If you built a released version of GCC using make bootstrap then please quickly review the build status page for your release, available from http://gcc.gnu.org/buildstat.html. If your system is not listed for the version of GCC that you built, --- 2,81 ---- Installing GCC: Final installation ! ! ! !

Installing GCC: Final installation

Now that GCC has been built (and optionally tested), you can install it with !
cd objdir; make install
  
! !

We strongly recommend to install into a target directory where there is no previous version of GCC present. !

That step completes the installation of GCC; user level binaries can ! be found in prefix/bin where prefix is the value ! you specified with the --prefix to configure (or ! /usr/local by default). (If you specified --bindir, that directory will be used instead; otherwise, if you specified ! --exec-prefix, exec-prefix/bin will be used.) Headers for the C++ and Java libraries are installed in ! prefix/include; libraries in libdir ! (normally prefix/lib); internal parts of the compiler in ! libdir/gcc and libexecdir/gcc; documentation ! in info format in infodir (normally ! prefix/info). !

When installing cross-compilers, GCC's executables ! are not only installed into bindir, that ! is, exec-prefix/bin, but additionally into ! exec-prefix/target-alias/bin, if that directory exists. Typically, such tooldirs hold target-specific binutils, including assembler and linker. !

Installation into a temporary staging area or into a chroot jail can be achieved with the command !

make DESTDIR=path-to-rootdir install
  
! !

where path-to-rootdir is the absolute path of a directory relative to which all installation paths will be interpreted. Note that the directory specified by DESTDIR need not exist yet; it will be created if necessary. !

There is a subtle point with tooldirs and DESTDIR: If you relocate a cross-compiler installation with ! e.g. DESTDIR=rootdir, then the directory ! rootdir/exec-prefix/target-alias/bin will be filled with duplicated GCC executables only if it already exists, it will not be created otherwise. This is regarded as a feature, not as a bug, because it gives slightly more control to the packagers using the DESTDIR feature. !

If you built a released version of GCC using make bootstrap then please quickly review the build status page for your release, available from http://gcc.gnu.org/buildstat.html. If your system is not listed for the version of GCC that you built, *************** send a note to *** 94,158 **** that you successfully built and installed GCC. Include the following information: !

    !
  • Output from running srcdir/config.guess. Do not send that file itself, just the one-line output from running it. !
  • The output of gcc -v for your newly installed gcc. This tells us which version of GCC you built and the options you passed to configure. !
  • Whether you enabled all languages or a subset of them. If you used a full distribution then this information is part of the configure ! options in the output of gcc -v, but if you downloaded the ! “core” compiler plus additional front ends then it isn't apparent which ones you built unless you tell us about it. !
  • If the build was for GNU/Linux, also include: !
    • The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3); ! this information should be available from /etc/issue. !
    • The version of the Linux kernel, available from uname --version ! or uname -a. !
    • The version of glibc you used; for RPM-based systems like Red Hat, ! Mandrake, and SuSE type rpm -q glibc to get the glibc version, ! and on systems like Debian and Progeny use dpkg -l libc6.
    ! For other systems, you can include similar information if you think it is relevant. !
  • Any other information that you think would be useful to people building GCC on the same configuration. The new entry in the build status list will include a link to the archived copy of your message.
!

We'd also like to know if the host/target specific installation notes didn't include your host/target information or if that information is incomplete or out of date. Send a note to gcc@gcc.gnu.org detailing how the information should be changed. !

If you find a bug, please report it following the bug reporting guidelines. !

If you want to print the GCC manuals, do cd objdir; make ! dvi. You will need to have texi2dvi (version at least 4.2) ! and TeX installed. This creates a number of .dvi files in ! subdirectories of objdir; these may be converted for ! printing with programs such as dvips. You can also buy printed manuals from the Free Software Foundation, though such manuals may not be for the most recent version of GCC. !


!

Return to the GCC Installation page - - - - - - --- 84,143 ---- that you successfully built and installed GCC. Include the following information: !

    !
  • Output from running srcdir/config.guess. Do not send that file itself, just the one-line output from running it. !
  • The output of gcc -v for your newly installed gcc. This tells us which version of GCC you built and the options you passed to configure. !
  • Whether you enabled all languages or a subset of them. If you used a full distribution then this information is part of the configure ! options in the output of gcc -v, but if you downloaded the ! "core" compiler plus additional front ends then it isn't apparent which ones you built unless you tell us about it. !
  • If the build was for GNU/Linux, also include: !
    • The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3); ! this information should be available from /etc/issue. !
    • The version of the Linux kernel, available from uname --version ! or uname -a. !
    • The version of glibc you used; for RPM-based systems like Red Hat, ! Mandrake, and SuSE type rpm -q glibc to get the glibc version, ! and on systems like Debian and Progeny use dpkg -l libc6.
    ! For other systems, you can include similar information if you think it is relevant. !
  • Any other information that you think would be useful to people building GCC on the same configuration. The new entry in the build status list will include a link to the archived copy of your message.
!

We'd also like to know if the host/target specific installation notes didn't include your host/target information or if that information is incomplete or out of date. Send a note to gcc@gcc.gnu.org detailing how the information should be changed. !

If you find a bug, please report it following the bug reporting guidelines. !

If you want to print the GCC manuals, do cd objdir; make ! dvi. You will need to have texi2dvi (version at least 4.2) ! and TeX installed. This creates a number of .dvi files in ! subdirectories of objdir; these may be converted for ! printing with programs such as dvips. You can also buy printed manuals from the Free Software Foundation, though such manuals may not be for the most recent version of GCC. !


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/gfdl.html gcc-3.4.4/INSTALL/gfdl.html *** gcc-3.4.3/INSTALL/gfdl.html Fri Nov 5 04:14:12 2004 --- gcc-3.4.4/INSTALL/gfdl.html Thu May 19 09:58:08 2005 *************** *** 2,59 **** Installing GCC: GNU Free Documentation License ! ! ! ! - - !

Installing GCC: GNU Free Documentation License

!

Installing GCC: GNU Free Documentation License

!

Version 1.2, November 2002
!
     Copyright © 2000,2001,2002 Free Software Foundation, Inc.
!      59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
!      
!      Everyone is permitted to copy and distribute verbatim copies
!      of this license document, but changing it is not allowed.
  
-
    -
  1. PREAMBLE !

    The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. --- 2,47 ---- Installing GCC: GNU Free Documentation License ! ! ! !

    Installing GCC: GNU Free Documentation License

    !

    Installing GCC: GNU Free Documentation License

    !
    Version 1.2, November 2002
    !
    Copyright © 2000,2001,2002 Free Software Foundation, Inc.
    ! 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
      
    ! Everyone is permitted to copy and distribute verbatim copies
    ! of this license document, but changing it is not allowed.
      
    !
      !

    1. PREAMBLE ! !

      The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. *************** Secondarily, this License preserves for *** 61,72 **** to get credit for their work, while not being considered responsible for modifications made by others. !

      This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. !

      We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; --- 49,60 ---- to get credit for their work, while not being considered responsible for modifications made by others. !

      This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. !

      We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; *************** it can be used for any textual work, reg *** 74,96 **** whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. !

    2. APPLICABILITY AND DEFINITIONS !

      This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that ! work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a ! licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. !

      A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. !

      A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall --- 62,84 ---- whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. !

    3. APPLICABILITY AND DEFINITIONS !

      This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that ! work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a ! licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. !

      A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. !

      A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall *************** connection with the subject or with rela *** 101,107 **** commercial, philosophical, ethical or political position regarding them. !

      The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not --- 89,95 ---- commercial, philosophical, ethical or political position regarding them. !

      The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not *************** allowed to be designated as Invariant. *** 109,120 **** Invariant Sections. If the Document does not identify any Invariant Sections then there are none. !

      The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. !

      A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of --- 97,108 ---- Invariant Sections. If the Document does not identify any Invariant Sections then there are none. !

      The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. !

      A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of *************** to text formatters. A copy made in an o *** 125,170 **** format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount ! of text. A copy that is not “Transparent” is called “Opaque”. !

      Examples of suitable formats for Transparent copies include plain ! ascii without markup, Texinfo input format, LaTeX input ! format, SGML or XML using a publicly available ! DTD, and standard-conforming simple HTML, ! PostScript or PDF designed for human modification. Examples ! of transparent image formats include PNG, XCF and ! JPG. Opaque formats include proprietary formats that can be ! read and edited only by proprietary word processors, SGML or ! XML for which the DTD and/or processing tools are ! not generally available, and the machine-generated HTML, ! PostScript or PDF produced by some word processors for output purposes only. !

      The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in ! formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. !

      A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a ! specific section name mentioned below, such as “Acknowledgements”, ! “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a ! section “Entitled XYZ” according to this definition. !

      The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. !

    4. VERBATIM COPYING !

      You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other --- 113,158 ---- format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount ! of text. A copy that is not "Transparent" is called "Opaque". !

      Examples of suitable formats for Transparent copies include plain ! ASCII without markup, Texinfo input format, LaTeX input ! format, SGML or XML using a publicly available ! DTD, and standard-conforming simple HTML, ! PostScript or PDF designed for human modification. Examples ! of transparent image formats include PNG, XCF and ! JPG. Opaque formats include proprietary formats that can be ! read and edited only by proprietary word processors, SGML or ! XML for which the DTD and/or processing tools are ! not generally available, and the machine-generated HTML, ! PostScript or PDF produced by some word processors for output purposes only. !

      The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in ! formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. !

      A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a ! specific section name mentioned below, such as "Acknowledgements", ! "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a ! section "Entitled XYZ" according to this definition. !

      The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. !

    5. VERBATIM COPYING !

      You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other *************** copying of the copies you make or distri *** 174,185 **** compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. !

      You may also lend copies, under the same conditions stated above, and you may publicly display copies. !

    6. COPYING IN QUANTITY !

      If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover --- 162,173 ---- compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. !

      You may also lend copies, under the same conditions stated above, and you may publicly display copies. !

    7. COPYING IN QUANTITY !

      If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover *************** Copying with changes limited to the cove *** 192,203 **** the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. !

      If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. !

      If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using --- 180,191 ---- the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. !

      If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. !

      If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using *************** location until at least one year after t *** 210,306 **** Opaque copy (directly or through your agents or retailers) of that edition to the public. !

      It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. !

    8. MODIFICATIONS !

      You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: !

        !
      1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. !
      2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. !
      3. State on the Title page the name of the publisher of the Modified Version, as the publisher. !
      4. Preserve all the copyright notices of the Document. !
      5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. !
      6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. !
      7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. !
      8. Include an unaltered copy of this License. !
      9. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If ! there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. !
      10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions ! it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. !
      11. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. !
      12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. !
      13. Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version. !
      14. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section. !
      15. Preserve any Warranty Disclaimers. !
      !

      If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. !

      You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various ! parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. !

      You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or --- 198,294 ---- Opaque copy (directly or through your agents or retailers) of that edition to the public. !

      It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. !

    9. MODIFICATIONS !

      You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: !

        !

      1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. !
      2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. !
      3. State on the Title page the name of the publisher of the Modified Version, as the publisher. !
      4. Preserve all the copyright notices of the Document. !
      5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. !
      6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. !
      7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. !
      8. Include an unaltered copy of this License. !
      9. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If ! there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. !
      10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions ! it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. !
      11. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. !
      12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. !
      13. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. !
      14. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. !
      15. Preserve any Warranty Disclaimers. !
      !

      If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. !

      You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various ! parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. !

      You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or *************** by arrangement made by the same entity y *** 310,329 **** you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. !

      The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. !

    10. COMBINING DOCUMENTS !

      You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. !

      The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by --- 298,317 ---- you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. !

      The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. !

    11. COMBINING DOCUMENTS !

      You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. !

      The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by *************** author or publisher of that section if k *** 332,368 **** Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. !

      In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled ! “History”; likewise combine any sections Entitled “Acknowledgements”, ! and any sections Entitled “Dedications”. You must delete all ! sections Entitled “Endorsements.” !

    12. COLLECTIONS OF DOCUMENTS !

      You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. !

      You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. !

    13. AGGREGATION WITH INDEPENDENT WORKS !

      A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or ! distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. !

      If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the --- 320,356 ---- Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. !

      In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled ! "History"; likewise combine any sections Entitled "Acknowledgements", ! and any sections Entitled "Dedications". You must delete all ! sections Entitled "Endorsements." !

    14. COLLECTIONS OF DOCUMENTS !

      You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. !

      You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. !

    15. AGGREGATION WITH INDEPENDENT WORKS !

      A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or ! distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. !

      If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the *************** electronic equivalent of covers if the D *** 370,378 **** Otherwise they must appear on printed covers that bracket the whole aggregate. !

    16. TRANSLATION !

      Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include --- 358,366 ---- Otherwise they must appear on printed covers that bracket the whole aggregate. !

    17. TRANSLATION !

      Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include *************** of those notices and disclaimers. In ca *** 385,398 **** the translation and the original version of this License or a notice or disclaimer, the original version will prevail. !

      If a section in the Document is Entitled “Acknowledgements”, ! “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. !

    18. TERMINATION !

      You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, --- 373,386 ---- the translation and the original version of this License or a notice or disclaimer, the original version will prevail. !

      If a section in the Document is Entitled "Acknowledgements", ! "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. !

    19. TERMINATION !

      You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, *************** parties who have received copies, or rig *** 400,461 **** License will not have their licenses terminated so long as such parties remain in full compliance. !

    20. FUTURE REVISIONS OF THIS LICENSE !

      The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. !

      Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this ! License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. !

    !

    ADDENDUM: How to use this License for your documents

    To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

           Copyright (C)  year  your name.
    !        Permission is granted to copy, distribute and/or modify this document
    !        under the terms of the GNU Free Documentation License, Version 1.2
    !        or any later version published by the Free Software Foundation;
    !        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    !        A copy of the license is included in the section entitled ``GNU
    !        Free Documentation License''.
      
    -

    If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, - replace the “with...Texts.” line with this: !

             with the Invariant Sections being list their titles, with
    !          the Front-Cover Texts being list, and with the Back-Cover Texts
    !          being list.
      
    !

    If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. !

    If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. ! ! ! ! !


    !

    Return to the GCC Installation page - - --- 388,446 ---- License will not have their licenses terminated so long as such parties remain in full compliance. !

  2. FUTURE REVISIONS OF THIS LICENSE !

    The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. !

    Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this ! License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. !

!

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

  Copyright (C)  year  your name.
!   Permission is granted to copy, distribute and/or modify this document
!   under the terms of the GNU Free Documentation License, Version 1.2
!   or any later version published by the Free Software Foundation;
!   with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
!   A copy of the license is included in the section entitled ``GNU
!   Free Documentation License''.
  
!

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, ! replace the "with...Texts." line with this: ! !

    with the Invariant Sections being list their titles, with
!     the Front-Cover Texts being list, and with the Back-Cover Texts
!     being list.
  
! !

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. !

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. !


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/index.html gcc-3.4.4/INSTALL/index.html *** gcc-3.4.3/INSTALL/index.html Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/INSTALL/index.html Thu May 19 09:58:07 2005 *************** *** 2,122 **** Installing GCC ! ! ! ! - - !

Installing GCC

The latest version of this document is always available at http://gcc.gnu.org/install/. !

This document describes the generic installation procedure for GCC as well as detailing some target specific installation instructions. !

GCC includes several components that previously were separate distributions with their own installation instructions. This document supersedes all package specific installation instructions. !

Before starting the build/install procedure please check the host/target specific installation notes. We recommend you browse the entire generic installation instructions before you proceed. !

Lists of successful builds for released versions of GCC are available at http://gcc.gnu.org/buildstat.html. These lists are updated as new information becomes available. !

The installation procedure itself is broken into five steps. !

    !
  1. Prerequisites
  2. Downloading the source
  3. Configuration
  4. Building
  5. Testing (optional)
  6. Final install !
!

Please note that GCC does not support make uninstall and probably won't do so in the near future as this would open a can of worms. Instead, we suggest that you install GCC into a directory of its own and simply remove that directory when you do not need that specific version of GCC any longer, and, if shared libraries are installed there as well, no more binaries exist that use them. !

There are also some old installation instructions, which are mostly obsolete but still contain some information which has not yet been merged into the main part of this manual. !


!

Return to the GCC Installation page !

Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. !

! 
! 
! Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the ! license is included in the section entitled “GNU Free Documentation License”. !

(a) The FSF's Front-Cover Text is: !

A GNU Manual !

(b) The FSF's Back-Cover Text is: !

You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. - - - - - - - - - - - - - --- 2,96 ---- Installing GCC ! ! ! !

Installing GCC

The latest version of this document is always available at http://gcc.gnu.org/install/. !

This document describes the generic installation procedure for GCC as well as detailing some target specific installation instructions. !

GCC includes several components that previously were separate distributions with their own installation instructions. This document supersedes all package specific installation instructions. !

Before starting the build/install procedure please check the host/target specific installation notes. We recommend you browse the entire generic installation instructions before you proceed. !

Lists of successful builds for released versions of GCC are available at http://gcc.gnu.org/buildstat.html. These lists are updated as new information becomes available. !

The installation procedure itself is broken into five steps. !

    !

  1. Prerequisites
  2. Downloading the source
  3. Configuration
  4. Building
  5. Testing (optional)
  6. Final install !
!

Please note that GCC does not support make uninstall and probably won't do so in the near future as this would open a can of worms. Instead, we suggest that you install GCC into a directory of its own and simply remove that directory when you do not need that specific version of GCC any longer, and, if shared libraries are installed there as well, no more binaries exist that use them. !

There are also some old installation instructions, which are mostly obsolete but still contain some information which has not yet been merged into the main part of this manual. !


!

! Return to the GCC Installation page ! Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. !

!

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the ! license is included in the section entitled "GNU Free Documentation License". !

(a) The FSF's Front-Cover Text is: !

A GNU Manual !

(b) The FSF's Back-Cover Text is: !

You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. diff -Nrc3pad gcc-3.4.3/INSTALL/old.html gcc-3.4.4/INSTALL/old.html *** gcc-3.4.3/INSTALL/old.html Fri Nov 5 04:14:12 2004 --- gcc-3.4.4/INSTALL/old.html Thu May 19 09:58:07 2005 *************** *** 2,116 **** Installing GCC: Old documentation ! ! ! ! - - !

Installing GCC: Old documentation

Old installation documentation

!

Note most of this information is out of date and superseded by the previous chapters of this manual. It is provided for historical reference only, because of a lack of volunteers to merge it into the main manual. !

Here is the procedure for installing GCC on a GNU or Unix system. !

    !
  1. If you have chosen a configuration for GCC which requires other GNU tools (such as GAS or the GNU linker) instead of the standard system tools, install the required tools in the build directory under the names ! as, ld or whatever is appropriate. !

    Alternatively, you can do subsequent compilation using a value of the PATH environment variable such that the necessary GNU tools come before the standard system tools. !

  2. Specify the host, build and target machine configurations. You do this ! when you run the configure script. !

    The build machine is the system which you are using, the host machine is the system where you want to run the resulting compiler (normally the build machine), and the target machine is the system for which you want the compiler to generate code. !

    If you are building a compiler to produce code for the machine it runs on (a native compiler), you normally do not need to specify any operands ! to configure; it will try to guess the type of machine you are on and use that as the build, host and target machines. So you don't need to specify a configuration when building a native compiler unless ! configure cannot figure out what your configuration is or guesses wrong. !

    In those cases, specify the build machine's configuration name ! with the --host option; the host and target will default to be the same as the host machine. !

    Here is an example: !

              ./configure --host=sparc-sun-sunos4.1
    !      
    !

    A configuration name may be canonical or it may be more or less abbreviated. !

    A canonical configuration name has three parts, separated by dashes. ! It looks like this: cpu-company-system. ! (The three parts may themselves contain dashes; configure can figure out which dashes serve which purpose.) For example, ! m68k-sun-sunos4.1 specifies a Sun 3. !

    You can also replace parts of the configuration by nicknames or aliases. ! For example, sun3 stands for m68k-sun, so ! sun3-sunos4.1 is another way to specify a Sun 3. !

    You can specify a version number after any of the system types, and some of the CPU types. In most cases, the version is irrelevant, and will be ignored. So you might as well specify the version if you know it. !

    See Configurations, for a list of supported configuration names and notes on many of the configurations. You should check the notes in that section before proceeding any further with the installation of GCC. !

!

Configurations Supported by GCC

! Here are the possible CPU types: !
! 1750a, a29k, alpha, arm, avr, cn, clipper, dsp16xx, elxsi, fr30, h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r, m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el, --- 2,105 ---- Installing GCC: Old documentation ! ! ! !

Installing GCC: Old documentation

Old installation documentation

!

Note most of this information is out of date and superseded by the previous chapters of this manual. It is provided for historical reference only, because of a lack of volunteers to merge it into the main manual. !

Here is the procedure for installing GCC on a GNU or Unix system. !

    !

  1. If you have chosen a configuration for GCC which requires other GNU tools (such as GAS or the GNU linker) instead of the standard system tools, install the required tools in the build directory under the names ! as, ld or whatever is appropriate. !

    Alternatively, you can do subsequent compilation using a value of the PATH environment variable such that the necessary GNU tools come before the standard system tools. !

  2. Specify the host, build and target machine configurations. You do this ! when you run the configure script. !

    The build machine is the system which you are using, the host machine is the system where you want to run the resulting compiler (normally the build machine), and the target machine is the system for which you want the compiler to generate code. !

    If you are building a compiler to produce code for the machine it runs on (a native compiler), you normally do not need to specify any operands ! to configure; it will try to guess the type of machine you are on and use that as the build, host and target machines. So you don't need to specify a configuration when building a native compiler unless ! configure cannot figure out what your configuration is or guesses wrong. !

    In those cases, specify the build machine's configuration name ! with the --host option; the host and target will default to be the same as the host machine. !

    Here is an example: !

    ./configure --host=sparc-sun-sunos4.1
    ! 
    ! !

    A configuration name may be canonical or it may be more or less abbreviated. !

    A canonical configuration name has three parts, separated by dashes. ! It looks like this: cpu-company-system. ! (The three parts may themselves contain dashes; configure can figure out which dashes serve which purpose.) For example, ! m68k-sun-sunos4.1 specifies a Sun 3. !

    You can also replace parts of the configuration by nicknames or aliases. ! For example, sun3 stands for m68k-sun, so ! sun3-sunos4.1 is another way to specify a Sun 3. !

    You can specify a version number after any of the system types, and some of the CPU types. In most cases, the version is irrelevant, and will be ignored. So you might as well specify the version if you know it. !

    See Configurations, for a list of supported configuration names and notes on many of the configurations. You should check the notes in that section before proceeding any further with the installation of GCC. !

!

Configurations Supported by GCC

!

Here are the possible CPU types: ! !

1750a, a29k, alpha, arm, avr, cn, clipper, dsp16xx, elxsi, fr30, h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r, m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el, *************** mn10200, mn10300, ns32k, pdp11, powerpc, *** 118,127 **** sparclite, sparc64, v850, vax, we32k.
!

Here are the recognized company names. As you can see, customary abbreviations are used rather than the longer official names. -

acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent, convex, crds, dec, dg, dolphin, --- 107,115 ---- sparclite, sparc64, v850, vax, we32k.
!

Here are the recognized company names. As you can see, customary abbreviations are used rather than the longer official names.

acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent, convex, crds, dec, dg, dolphin, *************** mips, motorola, ncr, next, ns, omron, pl *** 130,143 **** sequent, sgi, sony, sun, tti, unicom, wrs.
!

The company name is meaningful only to disambiguate when the rest of the information supplied is insufficient. You can omit it, writing ! just cpu-system, if it is not needed. For example, ! vax-ultrix4.2 is equivalent to vax-dec-ultrix4.2. !

Here is a list of system types: !

386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux, linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs, --- 118,131 ---- sequent, sgi, sony, sun, tti, unicom, wrs.
!

The company name is meaningful only to disambiguate when the rest of the information supplied is insufficient. You can omit it, writing ! just cpu-system, if it is not needed. For example, ! vax-ultrix4.2 is equivalent to vax-dec-ultrix4.2. !

Here is a list of system types: !

386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux, linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs, *************** solaris, sunos, sym, sysv, udi, ultrix, *** 146,180 **** vxworks, winnt, xenix.
!

You can omit the system type; then configure guesses the operating system from the CPU and company. !

You can add a version number to the system type; this may or may not ! make a difference. For example, you can write bsd4.3 or ! bsd4.4 to distinguish versions of BSD. In practice, the version ! number is most needed for sysv3 and sysv4, which are often treated differently. !

linux-gnu is the canonical name for the GNU/Linux target; however ! GCC will also accept linux. The version of the kernel in use is ! not relevant on these systems. A suffix such as libc1 or aout distinguishes major versions of the C library; all of the suffixed versions are obsolete. !

If you specify an impossible combination such as i860-dg-vms, ! then you may get an error message from configure, or it may ignore part of the information and do the best it can with the rest. ! configure always prints the canonical name for the alternative that it used. GCC does not support all possible alternatives. !

Often a particular model of machine has a name. Many machine names are recognized as aliases for CPU/company combinations. Thus, the machine ! name sun3, mentioned above, is an alias for m68k-sun. Sometimes we accept a company name as a machine name, when the name is popularly used for a particular machine. Here is a table of the known machine names: !

3300, 3b1, 3bn, 7300, altos3068, altos, apollo68, att-7300, balance, convex-cn, crds, decstation-3100, --- 134,168 ---- vxworks, winnt, xenix.
!

You can omit the system type; then configure guesses the operating system from the CPU and company. !

You can add a version number to the system type; this may or may not ! make a difference. For example, you can write bsd4.3 or ! bsd4.4 to distinguish versions of BSD. In practice, the version ! number is most needed for sysv3 and sysv4, which are often treated differently. !

linux-gnu is the canonical name for the GNU/Linux target; however ! GCC will also accept linux. The version of the kernel in use is ! not relevant on these systems. A suffix such as libc1 or aout distinguishes major versions of the C library; all of the suffixed versions are obsolete. !

If you specify an impossible combination such as i860-dg-vms, ! then you may get an error message from configure, or it may ignore part of the information and do the best it can with the rest. ! configure always prints the canonical name for the alternative that it used. GCC does not support all possible alternatives. !

Often a particular model of machine has a name. Many machine names are recognized as aliases for CPU/company combinations. Thus, the machine ! name sun3, mentioned above, is an alias for m68k-sun. Sometimes we accept a company name as a machine name, when the name is popularly used for a particular machine. Here is a table of the known machine names: !

3300, 3b1, 3bn, 7300, altos3068, altos, apollo68, att-7300, balance, convex-cn, crds, decstation-3100, *************** rtpc, sun2, sun386i, sun386, sun3, *** 189,211 **** sun4, symmetry, tower-32, tower.
!

Remember that a machine name specifies both the cpu type and the company name. If you want to install your own homemade configuration files, you can ! use local as the company name to access them. If you use ! configuration cpu-local, the configuration name without the cpu prefix is used to form the configuration file names. !

Thus, if you specify m68k-local, configuration uses ! files m68k.md, local.h, m68k.c, ! xm-local.h, t-local, and x-local, all in the ! directory config/m68k.


!

Return to the GCC Installation page - - - --- 177,197 ---- sun4, symmetry, tower-32, tower.

!

Remember that a machine name specifies both the cpu type and the company name. If you want to install your own homemade configuration files, you can ! use local as the company name to access them. If you use ! configuration cpu-local, the configuration name without the cpu prefix is used to form the configuration file names. !

Thus, if you specify m68k-local, configuration uses ! files m68k.md, local.h, m68k.c, ! xm-local.h, t-local, and x-local, all in the ! directory config/m68k.


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/prerequisites.html gcc-3.4.4/INSTALL/prerequisites.html *** gcc-3.4.3/INSTALL/prerequisites.html Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/INSTALL/prerequisites.html Thu May 19 09:58:07 2005 *************** *** 2,209 **** Prerequisites for GCC ! ! ! ! - - !

Prerequisites for GCC

! GCC requires that various tools and packages be available for use in the build procedure. Modifying GCC sources requires additional tools described below. !

Tools/packages necessary for building GCC

!
!
ISO C90 compiler
Necessary to bootstrap the GCC package, although versions of GCC prior to 3.4 also allow bootstrapping with a traditional (K&R) C compiler. !

To make all languages in a cross-compiler or other configuration where 3-stage bootstrap is not performed, you need to start with an existing GCC binary (version 2.95 or later) because source code for language frontends other than C might use GCC extensions. !

GNAT
In order to build the Ada compiler (GNAT) you must already have GNAT installed because portions of the Ada frontend are written in Ada (with GNAT extensions.) Refer to the Ada installation instructions for more specific information. !
A “working” POSIX compatible shell, or GNU bash
! Necessary when running configure because some ! /bin/sh shells have bugs and may crash when configuring the ! target libraries. In other cases, /bin/sh or even some ! ksh have disastrous corner-case performance problems. This ! can cause target configure runs to literally take days to complete in some cases. !

So on some platforms /bin/ksh is sufficient, on others it isn't. See the host/target specific instructions for your platform, or ! use bash to be sure. Then set CONFIG_SHELL in your ! environment to your “good” shell prior to running ! configure/make. !

zsh is not a fully compliant POSIX shell and will not work when configuring GCC. !

GNU binutils
Necessary in some circumstances, optional in others. See the host/target specific instructions for your platform for the exact requirements. !
gzip version 1.2.4 (or later) or
bzip2 version 1.0.2 (or later)
! Necessary to uncompress GCC tar files when source code is obtained via FTP mirror sites. !
GNU make version 3.79.1 (or later)
You must have GNU make installed to build GCC. !
GNU tar version 1.12 (or later)
Necessary (only on some platforms) to untar the source code. Many ! systems' tar programs will also work, only try GNU ! tar if you have problems.
!

Tools/packages necessary for modifying GCC

!
!
autoconf versions 2.13 and 2.57
GNU m4 version 1.4 (or later)
! Necessary when modifying configure.in, aclocal.m4, etc. ! to regenerate configure and config.in files. Most ! directories require autoconf 2.13 (exactly), but libiberty, ! fastjar, libstdc++-v3, libjava/libltdl, and gcc require autoconf 2.57 (exactly). !
automake versions 1.4-gcj and 1.7.9
! Necessary when modifying a Makefile.am file to regenerate its ! associated Makefile.in. !

Much of GCC does not use automake, so directly edit the Makefile.in ! file. Specifically this applies to the gcc, intl, ! libf2c, libiberty, libobjc directories as well as any of their subdirectories. !

The libstdc++-v3, libjava/libltdl, and fastjar directories require automake 1.7.9. However, the Java directories, which ! include boehm-gc, libffi, libjava, and zlib, require a modified version of automake 1.4 downloadable from ftp://gcc.gnu.org/pub/java/automake-gcj-1.4.tar.gz. !

gettext version 0.12 (or later)
! Needed to regenerate gcc.pot. !
gperf version 2.7.2 (or later)
! Necessary when modifying gperf input files, e.g. ! gcc/cp/cfns.gperf to regenerate its associated header file, e.g. ! gcc/cp/cfns.h. !
expect version ???
tcl version ???
dejagnu version ???
Necessary to run the GCC testsuite. !
autogen version 5.5.4 (or later) and
guile version 1.4.1 (or later)
! Necessary to regenerate fixinc/fixincl.x from ! fixinc/inclhack.def and fixinc/*.tpl. !

Necessary to run the fixinc make check. !

Necessary to regenerate the top level Makefile.in file from ! Makefile.tpl and Makefile.def. !

GNU Bison version 1.28 (or later)
Berkeley yacc (byacc) is also reported to work other than for java. !

Necessary when modifying *.y files. !

Necessary to build GCC during development because the generated output files are not included in the CVS repository. They are included in releases. !

Flex version 2.5.4 (or later)
! Necessary when modifying *.l files. !

Necessary to build GCC during development because the generated output files are not included in the CVS repository. They are included in releases. !

Texinfo version 4.2 (or later)
! Necessary for running makeinfo when modifying *.texi files to test your changes. !

Necessary to build GCC documentation during development because the generated output files are not included in the CVS repository. They are included in releases. !

TeX (any working version)
! Necessary for running texi2dvi, used when running ! make dvi to create DVI files. !
cvs version 1.10 (or later)
ssh (any version)
Necessary to access the CVS repository. Public releases and weekly snapshots of the development sources are also available via FTP. !
perl version 5.6.1 (or later)
! Necessary when regenerating Makefile dependencies in libiberty. ! Necessary when regenerating libiberty/functions.texi. Necessary when generating manpages from Texinfo manuals. Used by various scripts to generate some files included in CVS (mainly Unicode-related and rarely changing) from source tables. !
GNU diffutils version 2.7 (or later)
Necessary when creating changes to GCC source code to submit for review. !
patch version 2.5.4 (or later)
! Necessary when applying patches, created with diff, to one's own sources.
!


!

Return to the GCC Installation page - - - - - - - - - - - --- 2,213 ---- Prerequisites for GCC ! ! ! !

Prerequisites for GCC

GCC requires that various tools and packages be available for use in the build procedure. Modifying GCC sources requires additional tools described below. !

Tools/packages necessary for building GCC

!
!
ISO C90 compiler !
Necessary to bootstrap the GCC package, although versions of GCC prior to 3.4 also allow bootstrapping with a traditional (K&R) C compiler. !

To make all languages in a cross-compiler or other configuration where 3-stage bootstrap is not performed, you need to start with an existing GCC binary (version 2.95 or later) because source code for language frontends other than C might use GCC extensions. !

GNAT !
In order to build the Ada compiler (GNAT) you must already have GNAT installed because portions of the Ada frontend are written in Ada (with GNAT extensions.) Refer to the Ada installation instructions for more specific information. !
A "working" POSIX compatible shell, or GNU bash !
! Necessary when running configure because some ! /bin/sh shells have bugs and may crash when configuring the ! target libraries. In other cases, /bin/sh or even some ! ksh have disastrous corner-case performance problems. This ! can cause target configure runs to literally take days to complete in some cases. !

So on some platforms /bin/ksh is sufficient, on others it isn't. See the host/target specific instructions for your platform, or ! use bash to be sure. Then set CONFIG_SHELL in your ! environment to your "good" shell prior to running ! configure/make. !

zsh is not a fully compliant POSIX shell and will not work when configuring GCC. !

GNU binutils !
Necessary in some circumstances, optional in others. See the host/target specific instructions for your platform for the exact requirements. !
gzip version 1.2.4 (or later) or !
bzip2 version 1.0.2 (or later) !
! Necessary to uncompress GCC tar files when source code is obtained via FTP mirror sites. !
GNU make version 3.79.1 (or later) !
You must have GNU make installed to build GCC. !
GNU tar version 1.12 (or later) !
Necessary (only on some platforms) to untar the source code. Many ! systems' tar programs will also work, only try GNU ! tar if you have problems.
!

Tools/packages necessary for modifying GCC

!
!
autoconf versions 2.13 and 2.57 !
GNU m4 version 1.4 (or later) !
! Necessary when modifying configure.in, aclocal.m4, etc. ! to regenerate configure and config.in files. Most ! directories require autoconf 2.13 (exactly), but libiberty, ! fastjar, libstdc++-v3, libjava/libltdl, and gcc require autoconf 2.57 (exactly). !
automake versions 1.4-gcj and 1.7.9 !
! Necessary when modifying a Makefile.am file to regenerate its ! associated Makefile.in. !

Much of GCC does not use automake, so directly edit the Makefile.in ! file. Specifically this applies to the gcc, intl, ! libf2c, libiberty, libobjc directories as well as any of their subdirectories. !

The libstdc++-v3, libjava/libltdl, and fastjar directories require automake 1.7.9. However, the Java directories, which ! include boehm-gc, libffi, libjava, and zlib, require a modified version of automake 1.4 downloadable from ftp://gcc.gnu.org/pub/java/automake-gcj-1.4.tar.gz. !

gettext version 0.12 (or later) !
! Needed to regenerate gcc.pot. !
gperf version 2.7.2 (or later) !
! Necessary when modifying gperf input files, e.g. ! gcc/cp/cfns.gperf to regenerate its associated header file, e.g. ! gcc/cp/cfns.h. !
expect version ??? !
tcl version ??? !
dejagnu version ??? !
Necessary to run the GCC testsuite. !
autogen version 5.5.4 (or later) and !
guile version 1.4.1 (or later) !
! Necessary to regenerate fixinc/fixincl.x from ! fixinc/inclhack.def and fixinc/*.tpl. !

Necessary to run the fixinc make check. !

Necessary to regenerate the top level Makefile.in file from ! Makefile.tpl and Makefile.def. !

GNU Bison version 1.28 (or later) !
Berkeley yacc (byacc) is also reported to work other than for java. !

Necessary when modifying *.y files. !

Necessary to build GCC during development because the generated output files are not included in the CVS repository. They are included in releases. !

Flex version 2.5.4 (or later) !
! Necessary when modifying *.l files. !

Necessary to build GCC during development because the generated output files are not included in the CVS repository. They are included in releases. !

Texinfo version 4.2 (or later) !
! Necessary for running makeinfo when modifying *.texi files to test your changes. !

Necessary to build GCC documentation during development because the generated output files are not included in the CVS repository. They are included in releases. !

TeX (any working version) !
! Necessary for running texi2dvi, used when running ! make dvi to create DVI files. !
cvs version 1.10 (or later) !
ssh (any version) !
Necessary to access the CVS repository. Public releases and weekly snapshots of the development sources are also available via FTP. !
perl version 5.6.1 (or later) !
! Necessary when regenerating Makefile dependencies in libiberty. ! Necessary when regenerating libiberty/functions.texi. Necessary when generating manpages from Texinfo manuals. Used by various scripts to generate some files included in CVS (mainly Unicode-related and rarely changing) from source tables. !
GNU diffutils version 2.7 (or later) !
Necessary when creating changes to GCC source code to submit for review. !
patch version 2.5.4 (or later) !
! Necessary when applying patches, created with diff, to one's own sources.
!
!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/specific.html gcc-3.4.4/INSTALL/specific.html *** gcc-3.4.3/INSTALL/specific.html Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/INSTALL/specific.html Thu May 19 09:58:07 2005 *************** *** 2,178 **** Host/Target specific installation notes for GCC ! ! ! ! - - !

Host/Target specific installation notes for GCC

! Please read this document carefully before installing the GNU Compiler Collection on your machine. ! ! !


!

alpha*-*-*

This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target. !

We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries. !


!

alpha*-dec-osf*

Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. !

As of GCC 3.2, versions before alpha*-dec-osf4 are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) !

In Digital Unix V4.0, virtual memory exhausted bootstrap failures ! may be fixed by configuring with --with-gc=simple, reconfiguring Kernel Virtual Memory and Swap parameters ! per the /usr/sbin/sys_check Tuning Suggestions, or applying the patch in http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html. !

In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not ! currently (2001-06-13) work with mips-tfile. As a workaround, we need to use the old assembler, invoked via the barely documented ! -oldas option. To bootstrap GCC, you either need to use the Compaq C Compiler: !

        % CC=cc srcdir/configure [options] [target]
  
-

or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0: !

        % CC=gcc -Wa,-oldas srcdir/configure [options] [target]
  
!

As of GNU binutils 2.11.2, neither GNU as nor GNU ld are supported on Tru64 UNIX, so you must not configure GCC with ! --with-gnu-as or --with-gnu-ld. !

GCC writes a .verstamp directive to the assembler output file unless it is built as a cross-compiler. It gets the version to use from ! the system header file /usr/include/stamp.h. If you install a new version of DEC Unix, you should rebuild GCC to pick up the new version stamp. !

Note that since the Alpha is a 64-bit architecture, cross-compilers from 32-bit machines will not generate code as efficient as that generated when the compiler is running on a 64-bit machine because many optimizations that depend on being able to represent a word on the --- 2,165 ---- Host/Target specific installation notes for GCC ! ! ! !

Host/Target specific installation notes for GCC

Please read this document carefully before installing the GNU Compiler Collection on your machine. ! ! !
!

alpha*-*-*

This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target. !

We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries. !


!

alpha*-dec-osf*

Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. !

As of GCC 3.2, versions before alpha*-dec-osf4 are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) !

In Digital Unix V4.0, virtual memory exhausted bootstrap failures ! may be fixed by configuring with --with-gc=simple, reconfiguring Kernel Virtual Memory and Swap parameters ! per the /usr/sbin/sys_check Tuning Suggestions, or applying the patch in http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html. !

In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not ! currently (2001-06-13) work with mips-tfile. As a workaround, we need to use the old assembler, invoked via the barely documented ! -oldas option. To bootstrap GCC, you either need to use the Compaq C Compiler: !

   % CC=cc srcdir/configure [options] [target]
  
!

or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0: ! !

   % CC=gcc -Wa,-oldas srcdir/configure [options] [target]
  
! !

As of GNU binutils 2.11.2, neither GNU as nor GNU ld are supported on Tru64 UNIX, so you must not configure GCC with ! --with-gnu-as or --with-gnu-ld. !

GCC writes a .verstamp directive to the assembler output file unless it is built as a cross-compiler. It gets the version to use from ! the system header file /usr/include/stamp.h. If you install a new version of DEC Unix, you should rebuild GCC to pick up the new version stamp. !

Note that since the Alpha is a 64-bit architecture, cross-compilers from 32-bit machines will not generate code as efficient as that generated when the compiler is running on a 64-bit machine because many optimizations that depend on being able to represent a word on the *************** target in an integral value on the host *** 180,400 **** cross-compilers on the Alpha for 32-bit machines has only been tested in a few cases and may not work properly. !

make compare may fail on old versions of DEC Unix unless you add ! -save-temps to CFLAGS. On these systems, the name of the assembler input file is stored in the object file, and that makes comparison fail if it differs between the stage1 and ! stage2 compilations. The option -save-temps forces a fixed name to be used for the assembler input file, instead of a ! randomly chosen name in /tmp. Do not add -save-temps unless the comparisons fail without that option. If you add ! -save-temps, you will have to manually delete the .i and ! .s files after each series of compilations. !

GCC now supports both the native (ECOFF) debugging format used by DBX and GDB and an encapsulated STABS format for use only with GDB. See the ! discussion of the --with-stabs option of configure above for more information on these formats and how to select them. !

There is a bug in DEC's assembler that produces incorrect line numbers ! for ECOFF format when the .align directive is used. To work around this problem, GCC will not emit such alignment directives while writing ECOFF format debugging information even if optimization is being performed. Unfortunately, this has the very undesirable ! side-effect that code addresses when -O is specified are ! different depending on whether or not -g is also specified. !

To avoid this behavior, specify -gstabs+ and use GDB instead of DBX. DEC is now aware of this problem with the assembler and hopes to provide a fix shortly. !


!

alphaev5-cray-unicosmk*

Cray T3E systems running Unicos/Mk. !

This port is incomplete and has many known bugs. We hope to improve the support for this target soon. Currently, only the C front end is supported, and it is not possible to build parallel applications. Cray modules are not supported; in particular, Craylibs are assumed to be in ! /opt/ctl/craylibs/craylibs. !

You absolutely must use GNU make on this platform. Also, you need to tell GCC where to find the assembler and the linker. The ! simplest way to do so is by providing --with-as and ! --with-ld to configure, e.g. !

         configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
!            --enable-languages=c
  
!

The comparison test during make bootstrap fails on Unicos/Mk because the assembler inserts timestamps into object files. You should ! be able to work around this by doing make all after getting this failure. !


!

arc-*-elf

Argonaut ARC processor. This configuration is intended for embedded systems. !


!

arm-*-elf

!

xscale-*-*

ARM-family processors. Subtargets that use the ELF object format require GNU binutils 2.13 or newer. Such subtargets include: arm-*-freebsd, arm-*-netbsdelf, arm-*-*linux, arm-*-rtems and arm-*-kaos. !


!

arm-*-coff

ARM-family processors. Note that there are two different varieties of PE format subtarget supported: arm-wince-pe and arm-pe as well as a standard COFF target arm-*-coff. !


!

arm-*-aout

ARM-family processors. These targets support the AOUT file format: arm-*-aout, arm-*-netbsd. !


!

avr

ATMEL AVR-family micro controllers. These are used in embedded applications. There are no standard Unix configurations. ! See “AVR Options” in the main manual for the list of supported MCU types. !

Use configure --target=avr --enable-languages="c" to configure GCC. !

Further installation notes and other useful information about AVR tools can also be obtained from: !

!

We strongly recommend using binutils 2.13 or newer. !

The following error: !

       Error: register required
  
-

indicates that you should upgrade to a newer version of the binutils. !


!

c4x

Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal Processors. These are used in embedded applications. There are no standard Unix configurations. ! See “TMS320C3x/C4x Options” in the main manual for the list of supported MCU types. !

GCC can be configured as a cross compiler for both the C3x and C4x ! architectures on the same system. Use configure --target=c4x ! --enable-languages="c,c++" to configure. !

Further installation notes and other useful information about C4x tools can also be obtained from: !

!


!

CRIS

CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip series. These are used in embedded applications. !

See “CRIS Options” in the main manual for a list of CRIS-specific options. !

There are a few different CRIS targets: !

!
cris-axis-aout
Old target. Includes a multilib for the elinux a.out-based target. No multilibs for newer architecture variants. !
cris-axis-elf
Mainly for monolithic embedded systems. Includes a multilib for the ! v10 core used in ETRAX 100 LX. !
cris-axis-linux-gnu
A GNU/Linux port for the CRIS architecture, currently targeting ! ETRAX 100 LX by default.
!

For cris-axis-aout and cris-axis-elf you need binutils 2.11 or newer. For cris-axis-linux-gnu you need binutils 2.12 or newer. !

Pre-packaged tools can be obtained from ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/. More information about this platform is available at http://developer.axis.com/. !


!

DOS

Please have a look at the binaries page. !

You cannot install GCC by itself on MSDOS; it will not compile under any MSDOS compiler except itself. You need to get the complete compilation package DJGPP, which includes binaries as well as sources, and includes all the necessary compilation tools and libraries. !


!

dsp16xx

A port to the AT&T DSP1610 family of processors. !


!

*-*-freebsd*

!

The version of binutils installed in /usr/bin probably works with this release of GCC. However, on FreeBSD 4, bootstrapping against the latest FSF binutils is known to improve overall testsuite results; and, on FreeBSD/alpha, using binutils 2.14 or later is required to build libjava. !

Support for FreeBSD 1 was discontinued in GCC 3.2. !

Support for FreeBSD 2 will be discontinued after GCC 3.4. The following was true for GCC 3.1 but the current status is unknown. For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All configuration support and files as shipped with GCC 2.95 are still in place. FreeBSD 2.2.7 has been known to bootstrap completely; however, it is unknown which version of binutils was used (it is assumed that it ! was the system copy in /usr/bin) and C++ EH failures were noted. !

For FreeBSD using the ELF file format: DWARF 2 debugging is now the default for all CPU architectures. It had been the default on ! FreeBSD/alpha since its inception. You may use -gstabs instead ! of -g, if you really want the old debugging format. There are no known issues with mixing object files and libraries with different debugging formats. Otherwise, this release of GCC should now match more of the configuration used in the stock FreeBSD configuration of GCC. In ! particular, --enable-threads is now configured by default. However, as a general user, do not attempt to replace the system compiler with this release. Known to bootstrap and check with good results on FreeBSD 4.9-STABLE and 5-CURRENT. In the past, known to bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5, 4.8-STABLE. !

In principle, --enable-threads is now compatible with ! --enable-libgcj on FreeBSD. However, it has only been built ! and tested on i386-*-freebsd[45] and alpha-*-freebsd[45]. The static library may be incorrectly built (symbols are missing at link time). There is a rare timing-based startup hang (probably involves an --- 167,392 ---- cross-compilers on the Alpha for 32-bit machines has only been tested in a few cases and may not work properly. !

make compare may fail on old versions of DEC Unix unless you add ! -save-temps to CFLAGS. On these systems, the name of the assembler input file is stored in the object file, and that makes comparison fail if it differs between the stage1 and ! stage2 compilations. The option -save-temps forces a fixed name to be used for the assembler input file, instead of a ! randomly chosen name in /tmp. Do not add -save-temps unless the comparisons fail without that option. If you add ! -save-temps, you will have to manually delete the .i and ! .s files after each series of compilations. !

GCC now supports both the native (ECOFF) debugging format used by DBX and GDB and an encapsulated STABS format for use only with GDB. See the ! discussion of the --with-stabs option of configure above for more information on these formats and how to select them. !

There is a bug in DEC's assembler that produces incorrect line numbers ! for ECOFF format when the .align directive is used. To work around this problem, GCC will not emit such alignment directives while writing ECOFF format debugging information even if optimization is being performed. Unfortunately, this has the very undesirable ! side-effect that code addresses when -O is specified are ! different depending on whether or not -g is also specified. !

To avoid this behavior, specify -gstabs+ and use GDB instead of DBX. DEC is now aware of this problem with the assembler and hopes to provide a fix shortly. !


!

alphaev5-cray-unicosmk*

Cray T3E systems running Unicos/Mk. !

This port is incomplete and has many known bugs. We hope to improve the support for this target soon. Currently, only the C front end is supported, and it is not possible to build parallel applications. Cray modules are not supported; in particular, Craylibs are assumed to be in ! /opt/ctl/craylibs/craylibs. !

You absolutely must use GNU make on this platform. Also, you need to tell GCC where to find the assembler and the linker. The ! simplest way to do so is by providing --with-as and ! --with-ld to configure, e.g. !

    configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
!       --enable-languages=c
  
! !

The comparison test during make bootstrap fails on Unicos/Mk because the assembler inserts timestamps into object files. You should ! be able to work around this by doing make all after getting this failure. !


!

arc-*-elf

Argonaut ARC processor. This configuration is intended for embedded systems. !


!

arm-*-elf

!

xscale-*-*

ARM-family processors. Subtargets that use the ELF object format require GNU binutils 2.13 or newer. Such subtargets include: arm-*-freebsd, arm-*-netbsdelf, arm-*-*linux, arm-*-rtems and arm-*-kaos. !


!

arm-*-coff

ARM-family processors. Note that there are two different varieties of PE format subtarget supported: arm-wince-pe and arm-pe as well as a standard COFF target arm-*-coff. !


!

arm-*-aout

ARM-family processors. These targets support the AOUT file format: arm-*-aout, arm-*-netbsd. !


!

avr

ATMEL AVR-family micro controllers. These are used in embedded applications. There are no standard Unix configurations. ! See "AVR Options" in the main manual for the list of supported MCU types. !

Use configure --target=avr --enable-languages="c" to configure GCC. !

Further installation notes and other useful information about AVR tools can also be obtained from: !

!

We strongly recommend using binutils 2.13 or newer. !

The following error: !

  Error: register required
  
!

indicates that you should upgrade to a newer version of the binutils. !


! !

c4x

Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal Processors. These are used in embedded applications. There are no standard Unix configurations. ! See "TMS320C3x/C4x Options" in the main manual for the list of supported MCU types. !

GCC can be configured as a cross compiler for both the C3x and C4x ! architectures on the same system. Use configure --target=c4x ! --enable-languages="c,c++" to configure. !

Further installation notes and other useful information about C4x tools can also be obtained from: !

!
!

CRIS

CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip series. These are used in embedded applications. !

See "CRIS Options" in the main manual for a list of CRIS-specific options. !

There are a few different CRIS targets: !

!
cris-axis-aout !
Old target. Includes a multilib for the elinux a.out-based target. No multilibs for newer architecture variants. !
cris-axis-elf !
Mainly for monolithic embedded systems. Includes a multilib for the ! v10 core used in ETRAX 100 LX. !
cris-axis-linux-gnu !
A GNU/Linux port for the CRIS architecture, currently targeting ! ETRAX 100 LX by default.
!

For cris-axis-aout and cris-axis-elf you need binutils 2.11 or newer. For cris-axis-linux-gnu you need binutils 2.12 or newer. !

Pre-packaged tools can be obtained from ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/. More information about this platform is available at http://developer.axis.com/. !


!

DOS

Please have a look at the binaries page. !

You cannot install GCC by itself on MSDOS; it will not compile under any MSDOS compiler except itself. You need to get the complete compilation package DJGPP, which includes binaries as well as sources, and includes all the necessary compilation tools and libraries. !


!

dsp16xx

A port to the AT&T DSP1610 family of processors. !


!

*-*-freebsd*

!

The version of binutils installed in /usr/bin probably works with this release of GCC. However, on FreeBSD 4, bootstrapping against the latest FSF binutils is known to improve overall testsuite results; and, on FreeBSD/alpha, using binutils 2.14 or later is required to build libjava. !

Support for FreeBSD 1 was discontinued in GCC 3.2. !

Support for FreeBSD 2 will be discontinued after GCC 3.4. The following was true for GCC 3.1 but the current status is unknown. For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All configuration support and files as shipped with GCC 2.95 are still in place. FreeBSD 2.2.7 has been known to bootstrap completely; however, it is unknown which version of binutils was used (it is assumed that it ! was the system copy in /usr/bin) and C++ EH failures were noted. !

For FreeBSD using the ELF file format: DWARF 2 debugging is now the default for all CPU architectures. It had been the default on ! FreeBSD/alpha since its inception. You may use -gstabs instead ! of -g, if you really want the old debugging format. There are no known issues with mixing object files and libraries with different debugging formats. Otherwise, this release of GCC should now match more of the configuration used in the stock FreeBSD configuration of GCC. In ! particular, --enable-threads is now configured by default. However, as a general user, do not attempt to replace the system compiler with this release. Known to bootstrap and check with good results on FreeBSD 4.9-STABLE and 5-CURRENT. In the past, known to bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5, 4.8-STABLE. !

In principle, --enable-threads is now compatible with ! --enable-libgcj on FreeBSD. However, it has only been built ! and tested on i386-*-freebsd[45] and alpha-*-freebsd[45]. The static library may be incorrectly built (symbols are missing at link time). There is a rare timing-based startup hang (probably involves an *************** libjava) exposes severe threaded signal- *** 404,558 **** supported by FreeBSD will require additional configuration tuning in, at the very least, both boehm-gc and libffi. !

Shared libgcc_s.so is now built and installed by default. !


!

h8300-hms

Renesas H8/300 series of processors. !

Please have a look at the binaries page. !

The calling convention and structure layout has changed in release 2.6. All code must be recompiled. The calling convention now passes the first three arguments in function calls in registers. Structures are no longer a multiple of 2 bytes. !


!

hppa*-hp-hpux*

Support for HP-UX version 9 and older was discontinued in GCC 3.4. !

We highly recommend using gas/binutils 2.8 or newer on all hppa platforms; you may encounter a variety of problems when using the HP assembler. !

Specifically, -g does not work on HP-UX (since that system uses a peculiar debugging format which GCC does not know about), unless you use GAS and GDB and configure GCC with the ! --with-gnu-as and ! --with-as=... options. !

If you wish to use the pa-risc 2.0 architecture support with a 32-bit runtime, you must use either the HP assembler, or gas/binutils 2.11 or newer. !

There are two default scheduling models for instructions. These are PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc architecture specified for the target machine when configuring. PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when ! the target is a hppa1* machine. !

The PROCESSOR_8000 model is not well suited to older processors. Thus, it is important to completely specify the machine architecture when configuring if you want a model other than PROCESSOR_8000. The macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different default scheduling model is desired. !

More specific information to hppa*-hp-hpux* targets follows. !


!

hppa*-hp-hpux10

For hpux10.20, we highly recommend you pick up the latest sed patch PHCO_19798 from HP. HP has two sites which provide patches free of charge: !

!

The HP assembler on these systems has some problems. Most notably the assembler inserts timestamps into each object file it creates, causing ! the 3-stage comparison test to fail during a make bootstrap. ! You should be able to continue by saying make all after getting ! the failure from make bootstrap. !


!

hppa*-hp-hpux11

GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot be used to compile GCC 3.0 and up. !

Refer to binaries for information about obtaining precompiled GCC binaries for HP-UX. Precompiled binaries must be obtained to build the Ada language as it can't be bootstrapped using C. Ada is only available for the 32-bit PA-RISC runtime. The libffi and libjava haven't been ported to HP-UX and don't build. !

It is possible to build GCC 3.3 starting with the bundled HP compiler, but the process requires several steps. GCC 3.3 can then be used to build later versions. The fastjar program contains ISO C code and can't be built with the HP bundled compiler. This problem can be avoided by not building the Java language. For example, use the ! --enable-languages="c,c++,f77,objc" option in your configure command. !

Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's unbundled compiler, or a binary distribution of GCC. !

There are several possible approaches to building the distribution. Binutils can be built first using the HP tools. Then, the GCC distribution can be built. The second approach is to build GCC first using the HP tools, then build binutils, then rebuild GCC. There have been problems with various binary distributions, so it is best not to start from a binary distribution. !

On 64-bit capable systems, there are two distinct targets. Different installation prefixes must be used if both are to be installed on ! the same system. The hppa[1-2]*-hp-hpux11* target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. ! The hppa64-hp-hpux11* target generates 64-bit code for the PA-RISC 2.0 architecture. The HP and GNU linkers are both supported for this target. !

The script config.guess now selects the target type based on the compiler ! detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. ! When CC is used, the definition should contain the options that are ! needed whenever CC is used. !

Specifically, options that determine the runtime architecture must be ! in CC to correctly select the target for the build. It is also ! convenient to place many other compiler options in CC. For example, ! CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" can be used to bootstrap the GCC 3.3 branch with the HP compiler in ! 64-bit K&R/bundled mode. The +DA2.0W option will result in ! the automatic selection of the hppa64-hp-hpux11* target. The macro definition table of cpp needs to be increased for a successful build with the HP compiler. _CLASSIC_TYPES and _HPUX_SOURCE need to be defined when building with the bundled compiler, or when using the ! -Ac option. These defines aren't necessary with -Ae. !

It is best to explicitly configure the hppa64-hp-hpux11* target ! with the --with-ld=... option. This overrides the standard search for ld. The two linkers supported on this target require different commands. The default linker is determined during configuration. As a result, it's not possible to switch linkers in the middle of a GCC build. This has been been reported to sometimes occur in unified builds of binutils and GCC. !

With GCC 3.0 through 3.2, you must use binutils 2.11 or above. As of GCC 3.3, binutils 2.14 or later is required. !

Although the HP assembler can be used for an initial build, it shouldn't be used with any languages other than C and perhaps Fortran due to its many limitations. For example, it does not support weak symbols or alias definitions. As a result, explicit template instantiations are required when using C++. This makes it difficult if not impossible to build many C++ applications. You can't generate debugging information when using ! the HP assembler. Finally, make bootstrap fails in the final comparison of object modules due to the time stamps that it inserts into the modules. The bootstrap can be continued from this point with ! make all. !

A recent linker patch must be installed for the correct operation of GCC 3.3 and later. PHSS_26559 and PHSS_24304 are the oldest linker patches that are known to work. They are for HP-UX 11.00 and 11.11, respectively. PHSS_24303, the companion to --- 396,551 ---- supported by FreeBSD will require additional configuration tuning in, at the very least, both boehm-gc and libffi. !

Shared libgcc_s.so is now built and installed by default. !


!

h8300-hms

Renesas H8/300 series of processors. !

Please have a look at the binaries page. !

The calling convention and structure layout has changed in release 2.6. All code must be recompiled. The calling convention now passes the first three arguments in function calls in registers. Structures are no longer a multiple of 2 bytes. !


!

hppa*-hp-hpux*

Support for HP-UX version 9 and older was discontinued in GCC 3.4. !

We highly recommend using gas/binutils 2.8 or newer on all hppa platforms; you may encounter a variety of problems when using the HP assembler. !

Specifically, -g does not work on HP-UX (since that system uses a peculiar debugging format which GCC does not know about), unless you use GAS and GDB and configure GCC with the ! --with-gnu-as and ! --with-as=... options. !

If you wish to use the pa-risc 2.0 architecture support with a 32-bit runtime, you must use either the HP assembler, or gas/binutils 2.11 or newer. !

There are two default scheduling models for instructions. These are PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc architecture specified for the target machine when configuring. PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when ! the target is a hppa1* machine. !

The PROCESSOR_8000 model is not well suited to older processors. Thus, it is important to completely specify the machine architecture when configuring if you want a model other than PROCESSOR_8000. The macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different default scheduling model is desired. !

More specific information to hppa*-hp-hpux* targets follows. !


!

hppa*-hp-hpux10

For hpux10.20, we highly recommend you pick up the latest sed patch PHCO_19798 from HP. HP has two sites which provide patches free of charge: !

!

The HP assembler on these systems has some problems. Most notably the assembler inserts timestamps into each object file it creates, causing ! the 3-stage comparison test to fail during a make bootstrap. ! You should be able to continue by saying make all after getting ! the failure from make bootstrap. !


!

hppa*-hp-hpux11

GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot be used to compile GCC 3.0 and up. !

Refer to binaries for information about obtaining precompiled GCC binaries for HP-UX. Precompiled binaries must be obtained to build the Ada language as it can't be bootstrapped using C. Ada is only available for the 32-bit PA-RISC runtime. The libffi and libjava haven't been ported to HP-UX and don't build. !

It is possible to build GCC 3.3 starting with the bundled HP compiler, but the process requires several steps. GCC 3.3 can then be used to build later versions. The fastjar program contains ISO C code and can't be built with the HP bundled compiler. This problem can be avoided by not building the Java language. For example, use the ! --enable-languages="c,c++,f77,objc" option in your configure command. !

Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's unbundled compiler, or a binary distribution of GCC. !

There are several possible approaches to building the distribution. Binutils can be built first using the HP tools. Then, the GCC distribution can be built. The second approach is to build GCC first using the HP tools, then build binutils, then rebuild GCC. There have been problems with various binary distributions, so it is best not to start from a binary distribution. !

On 64-bit capable systems, there are two distinct targets. Different installation prefixes must be used if both are to be installed on ! the same system. The hppa[1-2]*-hp-hpux11* target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. ! The hppa64-hp-hpux11* target generates 64-bit code for the PA-RISC 2.0 architecture. The HP and GNU linkers are both supported for this target. !

The script config.guess now selects the target type based on the compiler ! detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. ! When CC is used, the definition should contain the options that are ! needed whenever CC is used. !

Specifically, options that determine the runtime architecture must be ! in CC to correctly select the target for the build. It is also ! convenient to place many other compiler options in CC. For example, ! CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" can be used to bootstrap the GCC 3.3 branch with the HP compiler in ! 64-bit K&R/bundled mode. The +DA2.0W option will result in ! the automatic selection of the hppa64-hp-hpux11* target. The macro definition table of cpp needs to be increased for a successful build with the HP compiler. _CLASSIC_TYPES and _HPUX_SOURCE need to be defined when building with the bundled compiler, or when using the ! -Ac option. These defines aren't necessary with -Ae. !

It is best to explicitly configure the hppa64-hp-hpux11* target ! with the --with-ld=... option. This overrides the standard search for ld. The two linkers supported on this target require different commands. The default linker is determined during configuration. As a result, it's not possible to switch linkers in the middle of a GCC build. This has been been reported to sometimes occur in unified builds of binutils and GCC. !

With GCC 3.0 through 3.2, you must use binutils 2.11 or above. As of GCC 3.3, binutils 2.14 or later is required. !

Although the HP assembler can be used for an initial build, it shouldn't be used with any languages other than C and perhaps Fortran due to its many limitations. For example, it does not support weak symbols or alias definitions. As a result, explicit template instantiations are required when using C++. This makes it difficult if not impossible to build many C++ applications. You can't generate debugging information when using ! the HP assembler. Finally, make bootstrap fails in the final comparison of object modules due to the time stamps that it inserts into the modules. The bootstrap can be continued from this point with ! make all. !

A recent linker patch must be installed for the correct operation of GCC 3.3 and later. PHSS_26559 and PHSS_24304 are the oldest linker patches that are known to work. They are for HP-UX 11.00 and 11.11, respectively. PHSS_24303, the companion to *************** oldest linker patches that are known to *** 560,566 **** patches have been superseded. Consult the HP patch database to obtain the currently recommended linker patch for your system. !

The patches are necessary for the support of weak symbols on the 32-bit port, and for the running of initializers and finalizers. Weak symbols are implemented using SOM secondary definition symbols. Prior to HP-UX 11, there are bugs in the linker support for secondary symbols. --- 553,559 ---- patches have been superseded. Consult the HP patch database to obtain the currently recommended linker patch for your system. !

The patches are necessary for the support of weak symbols on the 32-bit port, and for the running of initializers and finalizers. Weak symbols are implemented using SOM secondary definition symbols. Prior to HP-UX 11, there are bugs in the linker support for secondary symbols. *************** The patches correct a problem of linker *** 568,668 **** libraries containing secondary symbols, as well as various other linking issues involving secondary symbols. !

GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to run initializers and finalizers on the 64-bit port. The 32-bit port ! uses the linker +init and +fini options for the same purpose. The patches correct various problems with the +init/+fini options, including program core dumps. Binutils 2.14 corrects a problem on the 64-bit port resulting from HP's non-standard use of the .init and .fini sections for array initializers and finalizers. !

There are a number of issues to consider in selecting which linker to use with the 64-bit port. The GNU 64-bit linker can only create dynamic ! binaries. The -static option causes linking with archive libraries but doesn't produce a truly static binary. Dynamic binaries still require final binding by the dynamic loader to resolve a set of dynamic-loader-defined symbols. The default behavior of the HP linker is the same as the GNU linker. However, it can generate true 64-bit ! static binaries using the +compat option. !

The HP 64-bit linker doesn't support linkonce semantics. As a result, C++ programs have many more sections than they should. !

The GNU 64-bit linker has some issues with shared library support and exceptions. As a result, we only support libgcc in archive format. For similar reasons, dwarf2 unwind and exception support are disabled. The GNU linker also has problems creating binaries ! with -static. It doesn't provide stubs for internal calls to global functions in shared libraries, so these calls can't be overloaded. !

Thread support is not implemented in GCC 3.0 through 3.2, so the ! --enable-threads configure option does not work. In 3.3 and later, POSIX threads are supported. The optional DCE thread library is not supported. !

This port still is undergoing significant development. !


!

i370-*-*

This port is very preliminary and has many known bugs. We hope to have a higher-quality port for this machine soon. !


!

*-*-linux-gnu

Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present in glibc 2.2.5 and later. More information is available in the libstdc++-v3 documentation. !


!

i?86-*-linux*aout

!

Use this configuration to generate a.out binaries on Linux-based GNU systems. This configuration is being superseded. !


!

i?86-*-linux*

As of GCC 3.3, binutils 2.13.1 or later is required for this platform. See bug 10877 for more information. !

If you receive Signal 11 errors when building on GNU/Linux, then it is possible you have a hardware problem. Further information on this can be found on www.bitwizard.nl. !

Some recent versions of GNU/Linux, such as Fedora Core 1, support exec-shield-randomize. Turning this on interferes with precompiled headers. If you need to use precompiled headers, exec-shield-randomize can be turned off for the entire system by ! editing /etc/sysctl.conf and adding a line: !

     kernel.exec-shield-randomize = 0
  
!

You may then need to run sysctl -p. !

This will be fixed in future releases of GCC. !


!

i?86-*-sco3.2v5*

Use this for the SCO OpenServer Release 5 family of operating systems. !

Unlike earlier versions of GCC, the ability to generate COFF with this target is no longer provided. !

Earlier versions of GCC emitted DWARF 1 when generating ELF to allow the system debugger to be used. That support was too burdensome to maintain. GCC now emits only DWARF 2 for this target. This means you may use either the UDK debugger or GDB to debug programs built by this version of GCC. !

GCC is now only supported on releases 5.0.4 and later, and requires that you install Support Level Supplement OSS646B or later, and Support Level Supplement OSS631C or later. If you are using release 5.0.7 of OpenServer, you must have at least the first maintenance pack installed --- 561,661 ---- libraries containing secondary symbols, as well as various other linking issues involving secondary symbols. !

GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to run initializers and finalizers on the 64-bit port. The 32-bit port ! uses the linker +init and +fini options for the same purpose. The patches correct various problems with the +init/+fini options, including program core dumps. Binutils 2.14 corrects a problem on the 64-bit port resulting from HP's non-standard use of the .init and .fini sections for array initializers and finalizers. !

There are a number of issues to consider in selecting which linker to use with the 64-bit port. The GNU 64-bit linker can only create dynamic ! binaries. The -static option causes linking with archive libraries but doesn't produce a truly static binary. Dynamic binaries still require final binding by the dynamic loader to resolve a set of dynamic-loader-defined symbols. The default behavior of the HP linker is the same as the GNU linker. However, it can generate true 64-bit ! static binaries using the +compat option. !

The HP 64-bit linker doesn't support linkonce semantics. As a result, C++ programs have many more sections than they should. !

The GNU 64-bit linker has some issues with shared library support and exceptions. As a result, we only support libgcc in archive format. For similar reasons, dwarf2 unwind and exception support are disabled. The GNU linker also has problems creating binaries ! with -static. It doesn't provide stubs for internal calls to global functions in shared libraries, so these calls can't be overloaded. !

Thread support is not implemented in GCC 3.0 through 3.2, so the ! --enable-threads configure option does not work. In 3.3 and later, POSIX threads are supported. The optional DCE thread library is not supported. !

This port still is undergoing significant development. !


!

i370-*-*

This port is very preliminary and has many known bugs. We hope to have a higher-quality port for this machine soon. !


!

*-*-linux-gnu

Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present in glibc 2.2.5 and later. More information is available in the libstdc++-v3 documentation. !


!

i?86-*-linux*aout

!

Use this configuration to generate a.out binaries on Linux-based GNU systems. This configuration is being superseded. !


!

i?86-*-linux*

As of GCC 3.3, binutils 2.13.1 or later is required for this platform. See bug 10877 for more information. !

If you receive Signal 11 errors when building on GNU/Linux, then it is possible you have a hardware problem. Further information on this can be found on www.bitwizard.nl. !

Some recent versions of GNU/Linux, such as Fedora Core 1, support exec-shield-randomize. Turning this on interferes with precompiled headers. If you need to use precompiled headers, exec-shield-randomize can be turned off for the entire system by ! editing /etc/sysctl.conf and adding a line: !

kernel.exec-shield-randomize = 0
  
! You may then need to run sysctl -p. !

This will be fixed in future releases of GCC. !


!

i?86-*-sco3.2v5*

Use this for the SCO OpenServer Release 5 family of operating systems. !

Unlike earlier versions of GCC, the ability to generate COFF with this target is no longer provided. !

Earlier versions of GCC emitted DWARF 1 when generating ELF to allow the system debugger to be used. That support was too burdensome to maintain. GCC now emits only DWARF 2 for this target. This means you may use either the UDK debugger or GDB to debug programs built by this version of GCC. !

GCC is now only supported on releases 5.0.4 and later, and requires that you install Support Level Supplement OSS646B or later, and Support Level Supplement OSS631C or later. If you are using release 5.0.7 of OpenServer, you must have at least the first maintenance pack installed *************** visit *** 679,740 **** for the latest versions of these (and other potentially useful) supplements. !

Although there is support for using the native assembler, it is recommended that you configure GCC to use the GNU assembler. You do this by using the flags ! --with-gnu-as. You should use a modern version of GNU binutils. Version 2.13.2.1 was used for all ! testing. In general, only the --with-gnu-as option is tested. A modern bintuils (as well as a plethora of other development related GNU utilities) can be found in Support Level Supplement OSS658A, the "GNU Development Tools" package. See the SCO web and ftp sites for details. That package also contains the currently "officially supported" version of GCC, version 2.95.3. It is useful for bootstrapping this version. !


!

i?86-*-udk

This target emulates the SCO Universal Development Kit and requires that package be installed. (If it is installed, you will have a ! /udk/usr/ccs/bin/cc file present.) It's very much like the ! i?86-*-unixware7* target but is meant to be used when hosting on a system where UDK isn't the default compiler such as OpenServer 5 or Unixware 2. This target will generate binaries that will run on OpenServer, Unixware 2, or Unixware 7, with the same warnings and caveats as the SCO UDK. !

This target is a little tricky to build because we have to distinguish it from the native tools (so it gets headers, startups, and libraries from the right place) while making the tools not think we're actually building a cross compiler. The easiest way to do this is with a configure command like this: !

         CC=/udk/usr/ccs/bin/cc /your/path/to/gcc/configure \
!            --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
  
!

You should substitute i686 in the above command with the appropriate processor for your host. !

After the usual make bootstrap and ! make install, you can then access the UDK-targeted GCC ! tools by adding udk- before the commonly known name. For ! example, to invoke the C compiler, you would use udk-gcc. They will coexist peacefully with any native-target GCC tools you may have installed. !


!

ia64-*-linux

IA-64 processor (also known as IPF, or Itanium Processor Family) running GNU/Linux. !

If you are using the installed system libunwind library with ! --with-system-libunwind, then you must use libunwind 0.98 or later. !

None of the following versions of GCC has an ABI that is compatible with any of the other versions in this list, with the exception that Red Hat 2.96 and Trillian 000171 are compatible with each other: 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. --- 672,734 ---- for the latest versions of these (and other potentially useful) supplements. !

Although there is support for using the native assembler, it is recommended that you configure GCC to use the GNU assembler. You do this by using the flags ! --with-gnu-as. You should use a modern version of GNU binutils. Version 2.13.2.1 was used for all ! testing. In general, only the --with-gnu-as option is tested. A modern bintuils (as well as a plethora of other development related GNU utilities) can be found in Support Level Supplement OSS658A, the "GNU Development Tools" package. See the SCO web and ftp sites for details. That package also contains the currently "officially supported" version of GCC, version 2.95.3. It is useful for bootstrapping this version. !


!

i?86-*-udk

This target emulates the SCO Universal Development Kit and requires that package be installed. (If it is installed, you will have a ! /udk/usr/ccs/bin/cc file present.) It's very much like the ! i?86-*-unixware7* target but is meant to be used when hosting on a system where UDK isn't the default compiler such as OpenServer 5 or Unixware 2. This target will generate binaries that will run on OpenServer, Unixware 2, or Unixware 7, with the same warnings and caveats as the SCO UDK. !

This target is a little tricky to build because we have to distinguish it from the native tools (so it gets headers, startups, and libraries from the right place) while making the tools not think we're actually building a cross compiler. The easiest way to do this is with a configure command like this: !

    CC=/udk/usr/ccs/bin/cc /your/path/to/gcc/configure \
!       --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
  
! !

You should substitute i686 in the above command with the appropriate processor for your host. !

After the usual make bootstrap and ! make install, you can then access the UDK-targeted GCC ! tools by adding udk- before the commonly known name. For ! example, to invoke the C compiler, you would use udk-gcc. They will coexist peacefully with any native-target GCC tools you may have installed. !


!

ia64-*-linux

IA-64 processor (also known as IPF, or Itanium Processor Family) running GNU/Linux. !

If you are using the installed system libunwind library with ! --with-system-libunwind, then you must use libunwind 0.98 or later. !

None of the following versions of GCC has an ABI that is compatible with any of the other versions in this list, with the exception that Red Hat 2.96 and Trillian 000171 are compatible with each other: 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. *************** GCC 3.1 or later is recommended for comp *** 743,1337 **** As of version 3.1 GCC is believed to be fully ABI compliant, and hence no more major ABI changes are expected. !


!

ia64-*-hpux*

Building GCC on this target requires the GNU Assembler. The bundled HP assembler will not work. To prevent GCC from using the wrong assembler, ! the option --with-gnu-as may be necessary. !

The GCC libunwind library has not been ported to HPUX. This means that for ! GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. ! For gcc 3.4.3 and later, --enable-libunwind-exceptions is removed and the system libunwind library will always be used. !


! !

*-ibm-aix*

Support for AIX version 3 and older was discontinued in GCC 3.4. !

AIX Make frequently has problems with GCC makefiles. GNU Make 3.79.1 or newer is recommended to build on this platform. !

To speed up the configuration phases of bootstrapping and installing GCC, ! one may use GNU Bash instead of AIX /bin/sh, e.g., !

        % CONFIG_SHELL=/opt/freeware/bin/bash
!         % export CONFIG_SHELL
  
!

and then proceed as described in the build instructions, where we strongly recommend using GNU make and specifying an absolute path to invoke srcdir/configure. !

Errors involving alloca when building GCC generally are due to an incorrect definition of CC in the Makefile or mixing files compiled with the native C compiler and GCC. During the stage1 phase of ! the build, the native AIX compiler must be invoked as cc ! (not xlc). Once configure has been informed of ! xlc, one needs to use make distclean to remove the ! configure cache files and ensure that CC environment variable ! does not provide a definition that will confuse configure. If this error occurs during stage2 or later, then the problem most likely is the version of Make (see above). !

The native as and ld are recommended for bootstrapping on AIX 4 and required for bootstrapping on AIX 5L. The GNU Assembler reports that it supports WEAK symbols on AIX 4, which causes GCC to try to utilize weak symbol functionality although it is not supported. The GNU Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC. The native AIX tools do interoperate with GCC. !

Building libstdc++.a requires a fix for an AIX Assembler bug APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a fix for another AIX Assembler bug and a co-dependent AIX Archiver fix referenced as APAR IY53606 (AIX 5.2) or a APAR IY54774 (AIX 5.1) !

libstdc++ in GCC 3.4 increments the major version number of the ! shared object and GCC installation places the libstdc++.a shared library in a common location which will overwrite the and GCC 3.3 version of the shared library. Applications either need to be re-linked against the new shared library or the GCC 3.1 and GCC 3.3 ! versions of the libstdc++ shared object needs to be available ! to the AIX runtime loader. The GCC 3.1 libstdc++.so.4, if ! present, and GCC 3.3 libstdc++.so.5 shared objects can be installed for runtime dynamic loading using the following steps to set ! the F_LOADONLY flag in the shared object for each ! multilib libstdc++.a installed: !

Extract the shared objects from the currently installed ! libstdc++.a archive: !

        % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  
!

Enable the F_LOADONLY flag so that the shared object will be available for runtime dynamic loading, but not linking: !

        % strip -e libstdc++.so.4 libstdc++.so.5
  
!

Archive the runtime-only shared object in the GCC 3.4 ! libstdc++.a archive: !

        % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  
!

Linking executables and shared libraries may produce warnings of duplicate symbols. The assembly files generated by GCC for AIX always have included multiple symbol definitions for certain global variable and function declarations in the original program. The warnings should not prevent the linker from producing a correct library or runnable executable. !

AIX 4.3 utilizes a “large format” archive to support both 32-bit and 64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1 to parse archive libraries did not handle the new format correctly. These routines are used by GCC and result in error messages during ! linking such as “not a COFF file”. The version of the routines shipped ! with AIX 4.3.1 should work for a 32-bit environment. The -g option of the archive command may be used to create archives of 32-bit ! objects using the original “small format”. A correct version of the routines is shipped with AIX 4.3.2 and above. !

Some versions of the AIX binder (linker) can fail with a relocation ! overflow severe error when the -bbigtoc option is used to link GCC-produced object files into an executable that overflows the TOC. A fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U455193. !

The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core with a segmentation fault when invoked by any version of GCC. A fix for APAR IX87327 is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above. !

The initial assembler shipped with AIX 4.3.0 generates incorrect object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above. !

AIX provides National Language Support (NLS). Compilers and assemblers use NLS to support locale-specific representations of various data ! formats including floating-point numbers (e.g., . vs , for separating decimal fractions). There have been problems reported where GCC does not produce the same floating-point formats that the assembler ! expects. If one encounters this problem, set the LANG ! environment variable to C or En_US. !

By default, GCC for AIX 4.1 and above produces code that can be used on both Power or PowerPC processors. !

A default can be specified with the -mcpu=cpu_type ! switch and using the configure option --with-cpu-cpu_type. !


!

ip2k-*-elf

Ubicom IP2022 micro controller. This configuration is intended for embedded systems. There are no standard Unix configurations. !

Use configure --target=ip2k-elf --enable-languages=c to configure GCC. !


!

iq2000-*-elf

Vitesse IQ2000 processors. These are used in embedded applications. There are no standard Unix configurations. !


!

m32r-*-elf

Renesas M32R processor. This configuration is intended for embedded systems. !


!

m6811-elf

Motorola 68HC11 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !


!

m6812-elf

Motorola 68HC12 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !


!

m68k-hp-hpux

HP 9000 series 300 or 400 running HP-UX. HP-UX version 8.0 has a bug in the assembler that prevents compilation of GCC. This bug manifests itself during the first stage of compilation, while ! building libgcc2.a: !

     _floatdisf
!      cc1: warning: `-g' option not supported on this version of GCC
!      cc1: warning: `-g1' option not supported on this version of GCC
!      ./xgcc: Internal compiler error: program as got fatal signal 11
  
!

A patched version of the assembler is available as the file ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler. If you have HP software support, the patch can also be obtained directly from HP, as described in the following note: !

This is the patched assembler, to patch SR#1653-010439, where the assembler aborts on floating point constants. !

The bug is not really in the assembler, but in the shared library ! version of the function “cvtnum(3c)”. The bug on “cvtnum(3c)” is SR#4701-078451. Anyway, the attached assembler uses the archive ! library version of “cvtnum(3c)” and thus does not exhibit the bug.

!

This patch is also known as PHCO_4484. !

In addition gdb does not understand that native HP-UX format, so you must use gas if you wish to use gdb. !

On HP-UX version 8.05, but not on 8.07 or more recent versions, the ! fixproto shell script triggers a bug in the system shell. If you encounter this problem, upgrade your operating system or use BASH (the ! GNU shell) to run fixproto. This bug will cause the fixproto program to report an error of the form: !

     ./fixproto: sh internal 1K buffer overflow
  
!

To fix this, you can also change the first line of the fixproto script to look like: !

     #!/bin/ksh
  
-


!

mips-*-*

!

If on a MIPS system you get an error message saying “does not have gp ! sections for all it's [sic] sectons [sic]”, don't worry about it. This happens whenever you use GAS with the MIPS linker, but there is not really anything wrong, and it is okay to use the output file. You can stop such warnings by installing the GNU linker. !

It would be nice to extend GAS to produce the gp tables, but they are optional, and there should not be a warning about their absence. !

The libstdc++ atomic locking routines for MIPS targets requires MIPS II and later. A patch went in just after the GCC 3.3 release to ! make mips*-*-* use the generic implementation instead. You can also ! configure for mipsel-elf as a workaround. The ! mips*-*-linux* target continues to use the MIPS II routines. More work on this is expected in future releases. !

Cross-compilers for the Mips as target using the Mips assembler currently do not work, because the auxiliary programs ! mips-tdump.c and mips-tfile.c can't be compiled on anything but a Mips. It does work to cross compile for a Mips if you use the GNU assembler and linker. !


!

mips-sgi-irix5

!

In order to compile GCC on an SGI running IRIX 5, the compiler_dev.hdr subsystem must be installed from the IDO CD-ROM supplied by SGI. It is also available for download from ftp://ftp.sgi.com/sgi/IRIX5.3/iris-development-option-5.3.tardist. !

If you use the MIPS C compiler to bootstrap, it may be necessary to increase its table size for switch statements with the ! -Wf,-XNg1500 option. If you use the -O2 ! optimization option, you also need to use -Olimit 3000. !

To enable debugging under IRIX 5, you must use GNU binutils 2.15 or ! later, and use the --with-gnu-as and --with-gnu-ld ! configure options when configuring GCC. You need to use GNU ! ar and nm, also distributed with GNU binutils. !

Some users have reported that /bin/sh will hang during bootstrap. This problem can be avoided by running the commands: !

        % CONFIG_SHELL=/bin/ksh
!         % export CONFIG_SHELL
  
-

before starting the build. !


!

mips-sgi-irix6

!

If you are using SGI's MIPSpro cc as your bootstrap compiler, you must ensure that the N32 ABI is in use. To test this, compile a simple C ! file with cc and then run file on the resulting object file. The output should look like: !

     test.o: ELF N32 MSB ...
  
-

If you see: !

     test.o: ELF 32-bit MSB ...
  
-

or !

     test.o: ELF 64-bit MSB ...
  
!

then your version of cc uses the O32 or N64 ABI by default. You ! should set the environment variable CC to cc -n32 before configuring GCC. SGI's MIPSpro 7.2 assembler may misassemble parts of the compiler, causing bootstrap failures. MIPSpro 7.3 is known to work. MIPSpro C 7.4 may cause bootstrap failures, too, due to a bug when inlining memcmp. Either add -U__INLINE_INTRINSICS ! to the CC environment variable as a workaround or upgrade to MIPSpro C 7.4.1m. !

If you want the resulting gcc to run on old 32-bit systems ! with the MIPS R4400 CPU, you need to ensure that only code for the mips3 instruction set architecture (ISA) is generated. While GCC 3.x does ! this correctly, both GCC 2.95 and SGI's MIPSpro cc may change the ISA depending on the machine where GCC is built. Using one of them ! as the bootstrap compiler may result in mips4 code, which won't run at ! all on mips3-only systems. For the test program above, you should see: !

     test.o: ELF N32 MSB mips-3 ...
  
-

If you get: !

     test.o: ELF N32 MSB mips-4 ...
  
-

instead, you should set the environment variable CC to cc - -n32 -mips3 or gcc -mips3 respectively before configuring GCC. !

GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs. If you build GCC on a system that doesn't have the N64 libraries installed or cannot run 64-bit binaries, ! you need to configure with --disable-multilib so GCC doesn't try to use them. This will disable building the O32 libraries, too. ! Look for /usr/lib64/libc.so.1 to see if you have the 64-bit libraries installed. !

To enable debugging for the O32 ABI, you must use GNU as from ! GNU binutils 2.15 or later. You may also use GNU ld, but this is not required and currently causes some problems with Ada. !

The --enable-threads option doesn't currently work, a patch is ! in preparation for a future release. The --enable-libgcj option is disabled by default: IRIX 6 uses a very low default limit ! (20480) for the command line length. Although libtool contains a ! workaround for this problem, at least the N64 libgcj is known not to build despite this, running into an internal error of the native ! ld. A sure fix is to increase this limit (ncargs) to its maximum of 262144 bytes. If you have root access, you can use the ! systune command to do this. !

See http://freeware.sgi.com/ for more information about using GCC on IRIX platforms. !


!

powerpc-*-*

!

You can specify a default version for the -mcpu=cpu_type ! switch by using the configure option --with-cpu-cpu_type. !


!

powerpc-*-darwin*

PowerPC running Darwin (Mac OS X kernel). !

Pre-installed versions of Mac OS X may not include any developer tools, meaning that you will not be able to build GCC from source. Tool binaries are available at ! http://developer.apple.com/tools/compilers.html (free registration required). !

The default stack limit of 512K is too small, which may cause compiles to fail with 'Bus error'. Set the stack larger, for instance ! by doing limit stack 800. It's a good idea to use the GNU ! preprocessor instead of Apple's cpp-precomp during the first stage of ! bootstrapping; this is automatic when doing make bootstrap, but ! to do it from the toplevel objdir you will need to say make ! CC='cc -no-cpp-precomp' bootstrap. !

The version of GCC shipped by Apple typically includes a number of extensions not available in a standard GCC release. These extensions are generally specific to Mac programming. !


!

powerpc-*-elf, powerpc-*-sysv4

PowerPC system in big endian mode, running System V.4. !


!

powerpc-*-linux-gnu*

You will need ! binutils 2.13.90.0.10 or newer for a working GCC. !


!

powerpc-*-netbsd*

PowerPC system in big endian mode running NetBSD. To build the documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included Texinfo version 3.12). !


!

powerpc-*-eabisim

Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. !


!

powerpc-*-eabi

Embedded PowerPC system in big endian mode. !


!

powerpcle-*-elf, powerpcle-*-sysv4

PowerPC system in little endian mode, running System V.4. !


!

powerpcle-*-eabisim

Embedded PowerPC system in little endian mode for use in running under the PSIM simulator. !


!

powerpcle-*-eabi

Embedded PowerPC system in little endian mode. !


!

s390-*-linux*

S/390 system running GNU/Linux for S/390. !


!

s390x-*-linux*

zSeries system (64-bit) running GNU/Linux for zSeries. !


!

s390x-ibm-tpf*

zSeries system (64-bit) running TPF. This platform is supported as cross-compilation target only. !


! ! ! !

*-*-solaris2*

Sun does not ship a C compiler with Solaris 2. To bootstrap and install GCC you first have to install a pre-built compiler, see the binaries page for details. !

The Solaris 2 /bin/sh will often fail to configure ! libstdc++-v3, boehm-gc or libjava. We therefore recommend to use the following sequence of commands to bootstrap and install GCC: !

        % CONFIG_SHELL=/bin/ksh
!         % export CONFIG_SHELL
  
!

and then proceed as described in the build instructions. In addition we strongly recommend specifying an absolute path to invoke srcdir/configure. !

Solaris 2 comes with a number of optional OS packages. Some of these are needed to use GCC fully, namely SUNWarc, SUNWbtool, SUNWesu, SUNWhea, SUNWlibm, SUNWsprot, and SUNWtoo. If you did not install all optional packages when installing Solaris 2, you will need to verify that the packages that GCC needs are installed. !

To check whether an optional package is installed, use ! the pkginfo command. To add an optional package, use the ! pkgadd command. For further details, see the Solaris 2 documentation. !

Trying to use the linker and other tools in ! /usr/ucb to install GCC has been observed to cause trouble. For example, the linker may hang indefinitely. The fix is to remove ! /usr/ucb from your PATH. !

The build process works more smoothly with the legacy Sun tools so, if you ! have /usr/xpg4/bin in your PATH, we recommend that you place ! /usr/bin before /usr/xpg4/bin for the duration of the build. !

All releases of GNU binutils prior to 2.11.2 have known bugs on this platform. We recommend the use of GNU binutils 2.11.2 or later, or the ! vendor tools (Sun as, Sun ld). Note that your mileage may vary if you use a combination of the GNU tools and the Sun tools: while ! the combination GNU as + Sun ld should reasonably work, ! the reverse combination Sun as + GNU ld is known to cause memory corruption at runtime in some cases for C++ programs. !

The stock GNU binutils 2.15 release is broken on this platform because of a single bug. It has been fixed on the 2.15 branch in the CVS repository. You can obtain a working version by checking out the binutils-2_15-branch from the CVS repository or applying the patch http://sources.redhat.com/ml/binutils-cvs/2004-09/msg00036.html to the release. !

Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or ! newer: g++ will complain that types are missing. These headers assume that omitting the type means int; this assumption worked for C89 but is wrong for C++, and is now wrong for C99 also. !

g++ accepts such (invalid) constructs with the option ! -fpermissive; it will assume that any missing type is int (as defined by C89). !

There are patches for Solaris 2.6 (105633-56 or newer for SPARC, 106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC, 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC, 108653-22 for Intel) that fix this bug. !

Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC ! itself, rather it is a kernel bug triggered by the expect program which is used only by the GCC testsuite driver. When the bug ! causes the expect program to miss anticipated output, extra testsuite failures appear. !

There are patches for Solaris 8 (117350-12 or newer for SPARC, 117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for SPARC, 117172-11 or newer for Intel) that address this problem. !


!

sparc-sun-solaris2*

When GCC is configured to use binutils 2.11.2 or later the binaries produced are smaller than the ones produced using Sun's native tools; this difference is quite significant for binaries containing debugging information. !

Sun as 4.x is broken in that it cannot cope with long symbol names. A typical error message might look similar to the following: !

     /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
!        can't compute value of an expression involving an external symbol.
  
!

This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris 2.6 and has been fixed in later (5.x) versions of the assembler, starting with Solaris 7. !

Starting with Solaris 7, the operating system is capable of executing 64-bit SPARC V9 binaries. GCC 3.1 and later properly supports ! this; the -m64 option enables 64-bit code generation. However, if all you want is code tuned for the UltraSPARC CPU, you ! should try the -mtune=ultrasparc option instead, which produces code that, unlike full 64-bit code, can still run on non-UltraSPARC machines. !

When configuring on a Solaris 7 or later system that is running a kernel that supports only 32-bit binaries, one must configure with ! --disable-multilib, since we will not be able to build the 64-bit target libraries. !

GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of the GNU compiler (especially GCC 3.0.x versions), which lead to the miscompilation of the stage1 compiler and the subsequent failure of the bootstrap process. A workaround is to use GCC 3.2.3 as an intermediary stage, i.e. to bootstrap that compiler with the base compiler and then use it to bootstrap the final compiler. !

GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes a bootstrap failure in form of a miscompilation of the stage1 compiler by the Sun compiler. This is Sun bug 4974440. This is fixed with patch 112760-07. !

GCC 3.4 changed the default debugging format from STABS to DWARF-2 for 32-bit code on Solaris 7 and later. If you are using the Sun assembler, this change apparently runs afoul of Sun bug 4910101, for which (as of 2004-05-23) there is no fix. A symptom of the problem is ! that you cannot compile C++ programs like groff 1.19.1 without getting messages similar to the following: !

     ld: warning: relocation error: R_SPARC_UA32: ...
!        external symbolic relocation against non-allocatable section
!        .debug_info cannot be processed at runtime: relocation ignored.
  
-

To work around this problem, compile with -gstabs+ instead of - plain -g. !


!

sparc-sun-solaris2.7

Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 --- 737,1344 ---- As of version 3.1 GCC is believed to be fully ABI compliant, and hence no more major ABI changes are expected. !


!

ia64-*-hpux*

Building GCC on this target requires the GNU Assembler. The bundled HP assembler will not work. To prevent GCC from using the wrong assembler, ! the option --with-gnu-as may be necessary. !

The GCC libunwind library has not been ported to HPUX. This means that for ! GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. ! For gcc 3.4.3 and later, --enable-libunwind-exceptions is removed and the system libunwind library will always be used. !


! !

*-ibm-aix*

Support for AIX version 3 and older was discontinued in GCC 3.4. !

AIX Make frequently has problems with GCC makefiles. GNU Make 3.79.1 or newer is recommended to build on this platform. !

To speed up the configuration phases of bootstrapping and installing GCC, ! one may use GNU Bash instead of AIX /bin/sh, e.g., !

   % CONFIG_SHELL=/opt/freeware/bin/bash
!    % export CONFIG_SHELL
  
! !

and then proceed as described in the build instructions, where we strongly recommend using GNU make and specifying an absolute path to invoke srcdir/configure. !

Errors involving alloca when building GCC generally are due to an incorrect definition of CC in the Makefile or mixing files compiled with the native C compiler and GCC. During the stage1 phase of ! the build, the native AIX compiler must be invoked as cc ! (not xlc). Once configure has been informed of ! xlc, one needs to use make distclean to remove the ! configure cache files and ensure that CC environment variable ! does not provide a definition that will confuse configure. If this error occurs during stage2 or later, then the problem most likely is the version of Make (see above). !

The native as and ld are recommended for bootstrapping on AIX 4 and required for bootstrapping on AIX 5L. The GNU Assembler reports that it supports WEAK symbols on AIX 4, which causes GCC to try to utilize weak symbol functionality although it is not supported. The GNU Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC. The native AIX tools do interoperate with GCC. !

Building libstdc++.a requires a fix for an AIX Assembler bug APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a fix for another AIX Assembler bug and a co-dependent AIX Archiver fix referenced as APAR IY53606 (AIX 5.2) or a APAR IY54774 (AIX 5.1) !

libstdc++ in GCC 3.4 increments the major version number of the ! shared object and GCC installation places the libstdc++.a shared library in a common location which will overwrite the and GCC 3.3 version of the shared library. Applications either need to be re-linked against the new shared library or the GCC 3.1 and GCC 3.3 ! versions of the libstdc++ shared object needs to be available ! to the AIX runtime loader. The GCC 3.1 libstdc++.so.4, if ! present, and GCC 3.3 libstdc++.so.5 shared objects can be installed for runtime dynamic loading using the following steps to set ! the F_LOADONLY flag in the shared object for each ! multilib libstdc++.a installed: !

Extract the shared objects from the currently installed ! libstdc++.a archive: !

   % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  
! !

Enable the F_LOADONLY flag so that the shared object will be available for runtime dynamic loading, but not linking: !

   % strip -e libstdc++.so.4 libstdc++.so.5
  
! !

Archive the runtime-only shared object in the GCC 3.4 ! libstdc++.a archive: !

   % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  
! !

Linking executables and shared libraries may produce warnings of duplicate symbols. The assembly files generated by GCC for AIX always have included multiple symbol definitions for certain global variable and function declarations in the original program. The warnings should not prevent the linker from producing a correct library or runnable executable. !

AIX 4.3 utilizes a "large format" archive to support both 32-bit and 64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1 to parse archive libraries did not handle the new format correctly. These routines are used by GCC and result in error messages during ! linking such as "not a COFF file". The version of the routines shipped ! with AIX 4.3.1 should work for a 32-bit environment. The -g option of the archive command may be used to create archives of 32-bit ! objects using the original "small format". A correct version of the routines is shipped with AIX 4.3.2 and above. !

Some versions of the AIX binder (linker) can fail with a relocation ! overflow severe error when the -bbigtoc option is used to link GCC-produced object files into an executable that overflows the TOC. A fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U455193. !

The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core with a segmentation fault when invoked by any version of GCC. A fix for APAR IX87327 is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above. !

The initial assembler shipped with AIX 4.3.0 generates incorrect object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above. !

AIX provides National Language Support (NLS). Compilers and assemblers use NLS to support locale-specific representations of various data ! formats including floating-point numbers (e.g., . vs , for separating decimal fractions). There have been problems reported where GCC does not produce the same floating-point formats that the assembler ! expects. If one encounters this problem, set the LANG ! environment variable to C or En_US. !

By default, GCC for AIX 4.1 and above produces code that can be used on both Power or PowerPC processors. !

A default can be specified with the -mcpu=cpu_type ! switch and using the configure option --with-cpu-cpu_type. !


!

ip2k-*-elf

Ubicom IP2022 micro controller. This configuration is intended for embedded systems. There are no standard Unix configurations. !

Use configure --target=ip2k-elf --enable-languages=c to configure GCC. !


!

iq2000-*-elf

Vitesse IQ2000 processors. These are used in embedded applications. There are no standard Unix configurations. !


!

m32r-*-elf

Renesas M32R processor. This configuration is intended for embedded systems. !


!

m6811-elf

Motorola 68HC11 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !


!

m6812-elf

Motorola 68HC12 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !


!

m68k-hp-hpux

HP 9000 series 300 or 400 running HP-UX. HP-UX version 8.0 has a bug in the assembler that prevents compilation of GCC. This bug manifests itself during the first stage of compilation, while ! building libgcc2.a: !

_floatdisf
! cc1: warning: `-g' option not supported on this version of GCC
! cc1: warning: `-g1' option not supported on this version of GCC
! ./xgcc: Internal compiler error: program as got fatal signal 11
  
! !

A patched version of the assembler is available as the file ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler. If you have HP software support, the patch can also be obtained directly from HP, as described in the following note: !

This is the patched assembler, to patch SR#1653-010439, where the assembler aborts on floating point constants. !

The bug is not really in the assembler, but in the shared library ! version of the function "cvtnum(3c)". The bug on "cvtnum(3c)" is SR#4701-078451. Anyway, the attached assembler uses the archive ! library version of "cvtnum(3c)" and thus does not exhibit the bug.

!

This patch is also known as PHCO_4484. !

In addition gdb does not understand that native HP-UX format, so you must use gas if you wish to use gdb. !

On HP-UX version 8.05, but not on 8.07 or more recent versions, the ! fixproto shell script triggers a bug in the system shell. If you encounter this problem, upgrade your operating system or use BASH (the ! GNU shell) to run fixproto. This bug will cause the fixproto program to report an error of the form: !

./fixproto: sh internal 1K buffer overflow
  
! !

To fix this, you can also change the first line of the fixproto script to look like: !

#!/bin/ksh
  
!
!

mips-*-*

! !

If on a MIPS system you get an error message saying "does not have gp ! sections for all it's [sic] sectons [sic]", don't worry about it. This happens whenever you use GAS with the MIPS linker, but there is not really anything wrong, and it is okay to use the output file. You can stop such warnings by installing the GNU linker. !

It would be nice to extend GAS to produce the gp tables, but they are optional, and there should not be a warning about their absence. !

The libstdc++ atomic locking routines for MIPS targets requires MIPS II and later. A patch went in just after the GCC 3.3 release to ! make mips*-*-* use the generic implementation instead. You can also ! configure for mipsel-elf as a workaround. The ! mips*-*-linux* target continues to use the MIPS II routines. More work on this is expected in future releases. !

Cross-compilers for the Mips as target using the Mips assembler currently do not work, because the auxiliary programs ! mips-tdump.c and mips-tfile.c can't be compiled on anything but a Mips. It does work to cross compile for a Mips if you use the GNU assembler and linker. !


!

mips-sgi-irix5

!

In order to compile GCC on an SGI running IRIX 5, the compiler_dev.hdr subsystem must be installed from the IDO CD-ROM supplied by SGI. It is also available for download from ftp://ftp.sgi.com/sgi/IRIX5.3/iris-development-option-5.3.tardist. !

If you use the MIPS C compiler to bootstrap, it may be necessary to increase its table size for switch statements with the ! -Wf,-XNg1500 option. If you use the -O2 ! optimization option, you also need to use -Olimit 3000. !

To enable debugging under IRIX 5, you must use GNU binutils 2.15 or ! later, and use the --with-gnu-as and --with-gnu-ld ! configure options when configuring GCC. You need to use GNU ! ar and nm, also distributed with GNU binutils. !

Some users have reported that /bin/sh will hang during bootstrap. This problem can be avoided by running the commands: !

   % CONFIG_SHELL=/bin/ksh
!    % export CONFIG_SHELL
  
!

before starting the build. !


!

mips-sgi-irix6

! !

If you are using SGI's MIPSpro cc as your bootstrap compiler, you must ensure that the N32 ABI is in use. To test this, compile a simple C ! file with cc and then run file on the resulting object file. The output should look like: !

test.o: ELF N32 MSB ...
  
!

If you see: ! !

test.o: ELF 32-bit MSB ...
  
!

or ! !

test.o: ELF 64-bit MSB ...
  
! !

then your version of cc uses the O32 or N64 ABI by default. You ! should set the environment variable CC to cc -n32 before configuring GCC. SGI's MIPSpro 7.2 assembler may misassemble parts of the compiler, causing bootstrap failures. MIPSpro 7.3 is known to work. MIPSpro C 7.4 may cause bootstrap failures, too, due to a bug when inlining memcmp. Either add -U__INLINE_INTRINSICS ! to the CC environment variable as a workaround or upgrade to MIPSpro C 7.4.1m. !

If you want the resulting gcc to run on old 32-bit systems ! with the MIPS R4400 CPU, you need to ensure that only code for the mips3 instruction set architecture (ISA) is generated. While GCC 3.x does ! this correctly, both GCC 2.95 and SGI's MIPSpro cc may change the ISA depending on the machine where GCC is built. Using one of them ! as the bootstrap compiler may result in mips4 code, which won't run at ! all on mips3-only systems. For the test program above, you should see: !

test.o: ELF N32 MSB mips-3 ...
  
!

If you get: ! !

test.o: ELF N32 MSB mips-4 ...
  
!

instead, you should set the environment variable CC to cc ! -n32 -mips3 or gcc -mips3 respectively before configuring GCC. ! !

GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs. If you build GCC on a system that doesn't have the N64 libraries installed or cannot run 64-bit binaries, ! you need to configure with --disable-multilib so GCC doesn't try to use them. This will disable building the O32 libraries, too. ! Look for /usr/lib64/libc.so.1 to see if you have the 64-bit libraries installed. !

To enable debugging for the O32 ABI, you must use GNU as from ! GNU binutils 2.15 or later. You may also use GNU ld, but this is not required and currently causes some problems with Ada. !

The --enable-threads option doesn't currently work, a patch is ! in preparation for a future release. The --enable-libgcj option is disabled by default: IRIX 6 uses a very low default limit ! (20480) for the command line length. Although libtool contains a ! workaround for this problem, at least the N64 libgcj is known not to build despite this, running into an internal error of the native ! ld. A sure fix is to increase this limit (ncargs) to its maximum of 262144 bytes. If you have root access, you can use the ! systune command to do this. !

See http://freeware.sgi.com/ for more information about using GCC on IRIX platforms. !


!

powerpc-*-*

!

You can specify a default version for the -mcpu=cpu_type ! switch by using the configure option --with-cpu-cpu_type. !


!

powerpc-*-darwin*

PowerPC running Darwin (Mac OS X kernel). !

Pre-installed versions of Mac OS X may not include any developer tools, meaning that you will not be able to build GCC from source. Tool binaries are available at ! http://developer.apple.com/darwin/projects/compiler/ (free registration required). !

The default stack limit of 512K is too small, which may cause compiles to fail with 'Bus error'. Set the stack larger, for instance ! by doing limit stack 800. It's a good idea to use the GNU ! preprocessor instead of Apple's cpp-precomp during the first stage of ! bootstrapping; this is automatic when doing make bootstrap, but ! to do it from the toplevel objdir you will need to say make ! CC='cc -no-cpp-precomp' bootstrap. !

The version of GCC shipped by Apple typically includes a number of extensions not available in a standard GCC release. These extensions are generally specific to Mac programming. !


!

powerpc-*-elf, powerpc-*-sysv4

PowerPC system in big endian mode, running System V.4. !


!

powerpc*-*-linux-gnu*

You will need ! binutils 2.15 or newer for a working GCC. !


!

powerpc-*-netbsd*

PowerPC system in big endian mode running NetBSD. To build the documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included Texinfo version 3.12). !


!

powerpc-*-eabisim

Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. !


!

powerpc-*-eabi

Embedded PowerPC system in big endian mode. !


!

powerpcle-*-elf, powerpcle-*-sysv4

PowerPC system in little endian mode, running System V.4. !


!

powerpcle-*-eabisim

Embedded PowerPC system in little endian mode for use in running under the PSIM simulator. !


!

powerpcle-*-eabi

Embedded PowerPC system in little endian mode. !


!

s390-*-linux*

S/390 system running GNU/Linux for S/390. !


!

s390x-*-linux*

zSeries system (64-bit) running GNU/Linux for zSeries. !


!

s390x-ibm-tpf*

zSeries system (64-bit) running TPF. This platform is supported as cross-compilation target only. !


!

*-*-solaris2*

Sun does not ship a C compiler with Solaris 2. To bootstrap and install GCC you first have to install a pre-built compiler, see the binaries page for details. !

The Solaris 2 /bin/sh will often fail to configure ! libstdc++-v3, boehm-gc or libjava. We therefore recommend to use the following sequence of commands to bootstrap and install GCC: !

   % CONFIG_SHELL=/bin/ksh
!    % export CONFIG_SHELL
  
! !

and then proceed as described in the build instructions. In addition we strongly recommend specifying an absolute path to invoke srcdir/configure. !

Solaris 2 comes with a number of optional OS packages. Some of these are needed to use GCC fully, namely SUNWarc, SUNWbtool, SUNWesu, SUNWhea, SUNWlibm, SUNWsprot, and SUNWtoo. If you did not install all optional packages when installing Solaris 2, you will need to verify that the packages that GCC needs are installed. !

To check whether an optional package is installed, use ! the pkginfo command. To add an optional package, use the ! pkgadd command. For further details, see the Solaris 2 documentation. !

Trying to use the linker and other tools in ! /usr/ucb to install GCC has been observed to cause trouble. For example, the linker may hang indefinitely. The fix is to remove ! /usr/ucb from your PATH. !

The build process works more smoothly with the legacy Sun tools so, if you ! have /usr/xpg4/bin in your PATH, we recommend that you place ! /usr/bin before /usr/xpg4/bin for the duration of the build. !

All releases of GNU binutils prior to 2.11.2 have known bugs on this platform. We recommend the use of GNU binutils 2.11.2 or later, or the ! vendor tools (Sun as, Sun ld). Note that your mileage may vary if you use a combination of the GNU tools and the Sun tools: while ! the combination GNU as + Sun ld should reasonably work, ! the reverse combination Sun as + GNU ld is known to cause memory corruption at runtime in some cases for C++ programs. !

The stock GNU binutils 2.15 release is broken on this platform because of a single bug. It has been fixed on the 2.15 branch in the CVS repository. You can obtain a working version by checking out the binutils-2_15-branch from the CVS repository or applying the patch http://sources.redhat.com/ml/binutils-cvs/2004-09/msg00036.html to the release. !

Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or ! newer: g++ will complain that types are missing. These headers assume that omitting the type means int; this assumption worked for C89 but is wrong for C++, and is now wrong for C99 also. !

g++ accepts such (invalid) constructs with the option ! -fpermissive; it will assume that any missing type is int (as defined by C89). !

There are patches for Solaris 2.6 (105633-56 or newer for SPARC, 106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC, 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC, 108653-22 for Intel) that fix this bug. !

Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC ! itself, rather it is a kernel bug triggered by the expect program which is used only by the GCC testsuite driver. When the bug ! causes the expect program to miss anticipated output, extra testsuite failures appear. !

There are patches for Solaris 8 (117350-12 or newer for SPARC, 117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for SPARC, 117172-11 or newer for Intel) that address this problem. !


!

sparc-sun-solaris2*

When GCC is configured to use binutils 2.11.2 or later the binaries produced are smaller than the ones produced using Sun's native tools; this difference is quite significant for binaries containing debugging information. !

Sun as 4.x is broken in that it cannot cope with long symbol names. A typical error message might look similar to the following: !

/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
!   can't compute value of an expression involving an external symbol.
  
! !

This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris 2.6 and has been fixed in later (5.x) versions of the assembler, starting with Solaris 7. !

Starting with Solaris 7, the operating system is capable of executing 64-bit SPARC V9 binaries. GCC 3.1 and later properly supports ! this; the -m64 option enables 64-bit code generation. However, if all you want is code tuned for the UltraSPARC CPU, you ! should try the -mtune=ultrasparc option instead, which produces code that, unlike full 64-bit code, can still run on non-UltraSPARC machines. !

When configuring on a Solaris 7 or later system that is running a kernel that supports only 32-bit binaries, one must configure with ! --disable-multilib, since we will not be able to build the 64-bit target libraries. !

GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of the GNU compiler (especially GCC 3.0.x versions), which lead to the miscompilation of the stage1 compiler and the subsequent failure of the bootstrap process. A workaround is to use GCC 3.2.3 as an intermediary stage, i.e. to bootstrap that compiler with the base compiler and then use it to bootstrap the final compiler. !

GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes a bootstrap failure in form of a miscompilation of the stage1 compiler by the Sun compiler. This is Sun bug 4974440. This is fixed with patch 112760-07. !

GCC 3.4 changed the default debugging format from STABS to DWARF-2 for 32-bit code on Solaris 7 and later. If you are using the Sun assembler, this change apparently runs afoul of Sun bug 4910101, for which (as of 2004-05-23) there is no fix. A symptom of the problem is ! that you cannot compile C++ programs like groff 1.19.1 without getting messages similar to the following: !

ld: warning: relocation error: R_SPARC_UA32: ...
!   external symbolic relocation against non-allocatable section
!   .debug_info cannot be processed at runtime: relocation ignored.
  
!

To work around this problem, compile with -gstabs+ instead of ! plain -g. !


! !

sparc-sun-solaris2.7

Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 *************** and later, including all EGCS releases. *** 1339,1359 **** 107058-01 for all Solaris 7 users, but around 1999-09-01 it started to recommend it only for people who use Sun's compilers. !

Here are some workarounds to this problem: !

  • Do not install Sun patch 107058-01 until after Sun releases a complete patch for bug 4210064. This is the simplest course to take, unless you must also use Sun's C compiler. Unfortunately 107058-01 is preinstalled on some new Solaris 7-based hosts, so you may have to back it out. !
  • Copy the original, unpatched Solaris 7 ! /usr/ccs/bin/as into ! /usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as, adjusting the latter name to fit your local conventions and software version numbers. !
  • Install Sun patch 106950-03 (1999-05-25) or later. Nobody with both 107058-01 and 106950-03 installed has reported the bug with GCC and Sun's dynamic linker. This last course of action is riskiest, for two reasons. First, you must install 106950 on all hosts that --- 1346,1366 ---- 107058-01 for all Solaris 7 users, but around 1999-09-01 it started to recommend it only for people who use Sun's compilers. !

    Here are some workarounds to this problem: !

    • Do not install Sun patch 107058-01 until after Sun releases a complete patch for bug 4210064. This is the simplest course to take, unless you must also use Sun's C compiler. Unfortunately 107058-01 is preinstalled on some new Solaris 7-based hosts, so you may have to back it out. !
    • Copy the original, unpatched Solaris 7 ! /usr/ccs/bin/as into ! /usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as, adjusting the latter name to fit your local conventions and software version numbers. !
    • Install Sun patch 106950-03 (1999-05-25) or later. Nobody with both 107058-01 and 106950-03 installed has reported the bug with GCC and Sun's dynamic linker. This last course of action is riskiest, for two reasons. First, you must install 106950 on all hosts that *************** the bug. The current (as of 2004-05-23) *** 1365,1564 **** the Solaris 7 Recommended Patch Cluster.
    !

    GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler, which causes a bootstrap failure when linking the 64-bit shared version of libgcc. A typical error message is: !

         ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
    !        symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned.
      
    -

    This bug has been fixed in the final 5.0 version of the assembler. !


    !

    sparc-*-linux*

    GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 or newer on this platform. All earlier binutils and glibc releases mishandled unaligned relocations on sparc-*-* targets. !


    !

    sparc64-*-solaris2*

    The following compiler flags must be specified in the configure step in order to bootstrap this target with the Sun compiler: !

            % CC="cc -xildoff -xarch=v9" srcdir/configure [options] [target]
      
    !

    -xildoff turns off the incremental linker, and -xarch=v9 specifies the SPARC-V9 architecture to the Sun linker and assembler. !


    !

    sparcv9-*-solaris2*

    This is a synonym for sparc64-*-solaris2*. !


    !

    *-*-sysv*

    On System V release 3, you may get this error message while linking: !

         ld fatal: failed to write symbol name something
    !       in strings table for file whatever
      
    !

    This probably indicates that the disk is full or your ulimit won't allow the file to be as large as it needs to be. !

    This problem can also result because the kernel parameter MAXUMEM is too small. If so, you must regenerate the kernel and make the value much larger. The default value is reported to be 1024; a value of 32768 is said to work. Smaller values may also work. !

    On System V, if you get an error like this, !

         /usr/local/lib/bison.simple: In function `yyparse':
    !      /usr/local/lib/bison.simple:625: virtual memory exhausted
      
    -

    that too indicates a problem with disk space, ulimit, or MAXUMEM. !

    On a System V release 4 system, make sure /usr/bin precedes ! /usr/ucb in PATH. The cc command in ! /usr/ucb uses libraries which have bugs. !


    !

    vax-dec-ultrix

    !

    Don't try compiling with VAX C (vcc). It produces incorrect code in some cases (for example, when alloca is used). !


    !

    *-*-vxworks*

    Support for VxWorks is in flux. At present GCC supports only the very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. Support for VxWorks AE would also be welcome; we believe this is merely ! a matter of writing an appropriate “configlette” (see below). We are not interested in supporting older, a.out or COFF-based, versions of VxWorks in GCC 3. !

    VxWorks comes with an older version of GCC installed in ! $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. ! Before running configure, create the directories prefix ! and prefix/bin. Link or copy the appropriate assembler, ! linker, etc. into prefix/bin, and set your PATH to ! include that directory while running both configure and ! make. !

    You must give configure the ! --with-headers=$WIND_BASE/target/h switch so that it can find the VxWorks system headers. Since VxWorks is a cross compilation ! target only, you must also specify --target=target. ! configure will attempt to create the directory ! prefix/target/sys-include and copy files into it; ! make sure the user running configure has sufficient privilege to do so. !

    GCC's exception handling runtime requires a special “configlette” ! module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in that file to add the module to your kernel build. (Future versions of VxWorks will incorporate this module.) !


    !

    x86_64-*-*, amd64-*-*

    GCC supports the x86-64 architecture implemented by the AMD64 processor (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. On GNU/Linux the default is a bi-arch compiler which is able to generate ! both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch). !


    !

    xtensa-*-elf

    This target is intended for embedded Xtensa systems using the ! newlib C library. It uses ELF but does not support shared objects. Designed-defined instructions specified via the Tensilica Instruction Extension (TIE) language are only supported through inline assembly. !

    The Xtensa configuration information must be specified prior to ! building GCC. The include/xtensa-config.h header file contains the configuration information. If you created your own Xtensa configuration with the Xtensa Processor Generator, the downloaded files include a customized copy of this header file, which you can use to replace the default header file. !


    !

    xtensa-*-linux*

    This target is for Xtensa systems running GNU/Linux. It supports ELF shared objects and the GNU C library (glibc). It also generates position-independent code (PIC) regardless of whether the ! -fpic or -fPIC options are used. In other respects, this target is the same as the ! xtensa-*-elf target. !


    !

    Microsoft Windows (32-bit)

    A port of GCC 2.95.2 and 3.x is included with the Cygwin environment. !

    Current (as of early 2001) snapshots of GCC will build under Cygwin without modification. !

    GCC does not currently build with Microsoft's C++ compiler and there are no plans to make it do so. !


    !

    OS/2

    GCC does not currently support OS/2. However, Andrew Zabolotny has been working on a generic OS/2 port with pgcc. The current code can be found at http://www.goof.com/pcg/os2/. !

    An older copy of GCC 2.8.1 is included with the EMX tools available at ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/. !


    !

    Older systems

    GCC contains support files for many older (1980s and early 1990s) Unix variants. For the most part, support for these systems has not been deliberately removed, but it has not been maintained for several years and may suffer from bitrot. !

    Starting with GCC 3.1, each release has a list of “obsoleted” systems. Support for these systems is still present in that release, but ! configure will fail unless the --enable-obsolete option is given. Unless a maintainer steps forward, support for these systems will be removed from the next release of GCC. !

    Support for old systems as hosts for GCC can cause problems if the workarounds for compiler, library and operating system bugs affect the cleanliness or maintainability of the rest of GCC. In some cases, to bring GCC up on such a system, if still possible with current GCC, may require first installing an old version of GCC which did work on that system, and using it to compile a more recent GCC, to avoid bugs in the vendor compiler. Old releases of GCC 1 and GCC 2 are available in the ! old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using ! fixincludes, but bugs or deficiencies in libraries and the operating system may still cause problems. !

    Support for older systems as targets for cross-compilation is less problematic than support for them as hosts for GCC; if an enthusiast wishes to make such a target work again (including resurrecting any of the targets that never worked with GCC 2, starting from the last CVS --- 1372,1575 ---- the Solaris 7 Recommended Patch Cluster.

!

GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler, which causes a bootstrap failure when linking the 64-bit shared version of libgcc. A typical error message is: !

ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
!   symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned.
  
!

This bug has been fixed in the final 5.0 version of the assembler. !


! !

sparc-*-linux*

GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 or newer on this platform. All earlier binutils and glibc releases mishandled unaligned relocations on sparc-*-* targets. !


!

sparc64-*-solaris2*

The following compiler flags must be specified in the configure step in order to bootstrap this target with the Sun compiler: !

   % CC="cc -xildoff -xarch=v9" srcdir/configure [options] [target]
  
! !

-xildoff turns off the incremental linker, and -xarch=v9 specifies the SPARC-V9 architecture to the Sun linker and assembler. !


!

sparcv9-*-solaris2*

This is a synonym for sparc64-*-solaris2*. !


!

*-*-sysv*

On System V release 3, you may get this error message while linking: !

ld fatal: failed to write symbol name something
!  in strings table for file whatever
  
! !

This probably indicates that the disk is full or your ulimit won't allow the file to be as large as it needs to be. !

This problem can also result because the kernel parameter MAXUMEM is too small. If so, you must regenerate the kernel and make the value much larger. The default value is reported to be 1024; a value of 32768 is said to work. Smaller values may also work. !

On System V, if you get an error like this, !

/usr/local/lib/bison.simple: In function `yyparse':
! /usr/local/lib/bison.simple:625: virtual memory exhausted
  
!

that too indicates a problem with disk space, ulimit, or MAXUMEM. !

On a System V release 4 system, make sure /usr/bin precedes ! /usr/ucb in PATH. The cc command in ! /usr/ucb uses libraries which have bugs. !


!

vax-dec-ultrix

! !

Don't try compiling with VAX C (vcc). It produces incorrect code in some cases (for example, when alloca is used). !


!

*-*-vxworks*

Support for VxWorks is in flux. At present GCC supports only the very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. Support for VxWorks AE would also be welcome; we believe this is merely ! a matter of writing an appropriate "configlette" (see below). We are not interested in supporting older, a.out or COFF-based, versions of VxWorks in GCC 3. !

VxWorks comes with an older version of GCC installed in ! $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. ! Before running configure, create the directories prefix ! and prefix/bin. Link or copy the appropriate assembler, ! linker, etc. into prefix/bin, and set your PATH to ! include that directory while running both configure and ! make. !

You must give configure the ! --with-headers=$WIND_BASE/target/h switch so that it can find the VxWorks system headers. Since VxWorks is a cross compilation ! target only, you must also specify --target=target. ! configure will attempt to create the directory ! prefix/target/sys-include and copy files into it; ! make sure the user running configure has sufficient privilege to do so. !

GCC's exception handling runtime requires a special "configlette" ! module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in that file to add the module to your kernel build. (Future versions of VxWorks will incorporate this module.) !


!

x86_64-*-*, amd64-*-*

GCC supports the x86-64 architecture implemented by the AMD64 processor (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. On GNU/Linux the default is a bi-arch compiler which is able to generate ! both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch). !


!

xtensa-*-elf

This target is intended for embedded Xtensa systems using the ! newlib C library. It uses ELF but does not support shared objects. Designed-defined instructions specified via the Tensilica Instruction Extension (TIE) language are only supported through inline assembly. !

The Xtensa configuration information must be specified prior to ! building GCC. The include/xtensa-config.h header file contains the configuration information. If you created your own Xtensa configuration with the Xtensa Processor Generator, the downloaded files include a customized copy of this header file, which you can use to replace the default header file. !


!

xtensa-*-linux*

This target is for Xtensa systems running GNU/Linux. It supports ELF shared objects and the GNU C library (glibc). It also generates position-independent code (PIC) regardless of whether the ! -fpic or -fPIC options are used. In other respects, this target is the same as the ! xtensa-*-elf target. !


!

Microsoft Windows (32-bit)

A port of GCC 2.95.2 and 3.x is included with the Cygwin environment. !

Current (as of early 2001) snapshots of GCC will build under Cygwin without modification. !

GCC does not currently build with Microsoft's C++ compiler and there are no plans to make it do so. !


!

OS/2

GCC does not currently support OS/2. However, Andrew Zabolotny has been working on a generic OS/2 port with pgcc. The current code can be found at http://www.goof.com/pcg/os2/. !

An older copy of GCC 2.8.1 is included with the EMX tools available at ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/. !


!

Older systems

GCC contains support files for many older (1980s and early 1990s) Unix variants. For the most part, support for these systems has not been deliberately removed, but it has not been maintained for several years and may suffer from bitrot. !

Starting with GCC 3.1, each release has a list of "obsoleted" systems. Support for these systems is still present in that release, but ! configure will fail unless the --enable-obsolete option is given. Unless a maintainer steps forward, support for these systems will be removed from the next release of GCC. !

Support for old systems as hosts for GCC can cause problems if the workarounds for compiler, library and operating system bugs affect the cleanliness or maintainability of the rest of GCC. In some cases, to bring GCC up on such a system, if still possible with current GCC, may require first installing an old version of GCC which did work on that system, and using it to compile a more recent GCC, to avoid bugs in the vendor compiler. Old releases of GCC 1 and GCC 2 are available in the ! old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using ! fixincludes, but bugs or deficiencies in libraries and the operating system may still cause problems. !

Support for older systems as targets for cross-compilation is less problematic than support for them as hosts for GCC; if an enthusiast wishes to make such a target work again (including resurrecting any of the targets that never worked with GCC 2, starting from the last CVS *************** version before they were removed), patch *** 1567,1596 **** likely to be accepted, since they should not affect the support for more modern targets. !

For some systems, old versions of GNU binutils may also be useful, ! and are available from pub/binutils/old-releases on sources.redhat.com mirror sites. !

Some of the information on specific systems above relates to such older systems, but much of the information about GCC on such systems (which may no longer be applicable to current GCC) is to be found in the GCC texinfo manual. !


!

all ELF targets (SVR4, Solaris 2, etc.)

C++ support is significantly better on ELF targets if you use the GNU linker; duplicate copies of inlines, vtables and template instantiations will be discarded automatically. !


!

Return to the GCC Installation page - - - - --- 1578,1604 ---- likely to be accepted, since they should not affect the support for more modern targets. !

For some systems, old versions of GNU binutils may also be useful, ! and are available from pub/binutils/old-releases on sources.redhat.com mirror sites. !

Some of the information on specific systems above relates to such older systems, but much of the information about GCC on such systems (which may no longer be applicable to current GCC) is to be found in the GCC texinfo manual. !


!

all ELF targets (SVR4, Solaris 2, etc.)

C++ support is significantly better on ELF targets if you use the GNU linker; duplicate copies of inlines, vtables and template instantiations will be discarded automatically. !


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/INSTALL/test.html gcc-3.4.4/INSTALL/test.html *** gcc-3.4.3/INSTALL/test.html Fri Nov 5 04:14:11 2004 --- gcc-3.4.4/INSTALL/test.html Thu May 19 09:58:07 2005 *************** *** 2,46 **** Installing GCC: Testing ! ! ! ! - - !

Installing GCC: Testing

! Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have been submitted to the --- 2,33 ---- Installing GCC: Testing ! ! ! !

Installing GCC: Testing

Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have been submitted to the *************** This step is optional and may require yo *** 52,195 **** but it can give you confidence in your new GCC installation or point out problems before you install and start using your new GCC. !

First, you must have downloaded the testsuites. These are part of the full distribution, but if you downloaded the ! “core” compiler plus any front ends, you must download the testsuites separately. !

Second, you must have the testing tools installed. This includes DejaGnu 1.4.1 or 1.4.3 and later, Tcl, and Expect; the DejaGnu site has links to these. !

If the directories where runtest and expect were ! installed are not in the PATH, you may need to set the following environment variables appropriately, as in the following example (which ! assumes that DejaGnu has been installed under /usr/local): !

          TCL_LIBRARY = /usr/local/share/tcl8.0
!           DEJAGNULIBS = /usr/local/share/dejagnu
  
!

(On systems such as Cygwin, these paths are required to be actual paths, not mounts or links; presumably this is due to some lack of portability in the DejaGnu code.) !

Finally, you can run the testsuite (which may take a long time): !

          cd objdir; make -k check
  
!

This will test various components of GCC, such as compiler front ends and runtime libraries. While running the testsuite, DejaGnu might emit some harmless messages resembling ! WARNING: Couldn't find the global config file. or ! WARNING: Couldn't find tool init file that can be ignored. !

0.1 How can you run the testsuite on selected tests?

In order to run sets of tests selectively, there are targets ! make check-gcc and make check-g++ ! in the gcc subdirectory of the object directory. You can also ! just run make check in a subdirectory of the object directory. !

A more selective way to just run all gcc execute tests in the testsuite is to use !

         make check-gcc RUNTESTFLAGS="execute.exp other-options"
  
-

Likewise, in order to run only the g++ “old-deja” tests in - the testsuite with filenames matching 9805*, you would use !

         make check-g++ RUNTESTFLAGS="old-deja.exp=9805* other-options"
  
-

The *.exp files are located in the testsuite directories of the GCC - source, the most important ones being compile.exp, - execute.exp, dg.exp and old-deja.exp. - To get a list of the possible *.exp files, pipe the - output of make check into a file and look at the - Running ... .exp lines. !

0.2 Passing options and running multiple testsuites

You can pass multiple options to the testsuite using the ! --target_board option of DejaGNU, either passed as part of ! RUNTESTFLAGS, or directly to runtest if you prefer to work outside the makefiles. For example, !

         make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fno-strength-reduce"
  
!

will run the standard g++ testsuites (“unix” is the target name for a standard native testsuite situation), passing ! -O3 -fno-strength-reduce to the compiler on every test, i.e., slashes separate options. !

You can run the testsuites multiple times using combinations of options with a syntax similar to the brace expansion of popular shells: !

         ..."--target_board=arm-sim{-mhard-float,-msoft-float}{-O1,-O2,-O3,}"
  
!

(Note the empty option caused by the trailing comma in the final group.) ! The following will run each testsuite eight times using the arm-sim target, as if you had specified all possible combinations yourself: !

         --target_board=arm-sim/-mhard-float/-O1
!          --target_board=arm-sim/-mhard-float/-O2
!          --target_board=arm-sim/-mhard-float/-O3
!          --target_board=arm-sim/-mhard-float
!          --target_board=arm-sim/-msoft-float/-O1
!          --target_board=arm-sim/-msoft-float/-O2
!          --target_board=arm-sim/-msoft-float/-O3
!          --target_board=arm-sim/-msoft-float
  
!

They can be combined as many times as you wish, in arbitrary ways. This list: !

         ..."--target_board=unix/-Wextra{-O3,-fno-strength-reduce}{-fomit-frame-pointer,}"
  
-

will generate four combinations, all involving -Wextra. !

The disadvantage to this method is that the testsuites are run in serial, which is a waste on multiprocessor systems. For users with GNU Make and a shell which performs brace expansion, you can run the testsuites in ! parallel by having the shell perform the combinations and make ! do the parallel runs. Instead of using --target_board, use a special makefile target: !

         make -jN check-testsuite//test-target/option1/option2/...
  
-

For example, !

         make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  
!

will run three concurrent “make-gcc” testsuites, eventually testing all ten combinations as described above. Note that this is currently only ! supported in the gcc subdirectory. (To see how this works, try ! typing echo before the example given here.) !

0.3 Additional testing for Java Class Libraries

!

The Java runtime tests can be executed via make check ! in the target/libjava/testsuite directory in the build tree. !

The Mauve Project provides a suite of tests for the Java Class Libraries. This suite can be run as part of libgcj testing by placing the Mauve tree within the libjava ! testsuite at libjava/testsuite/libjava.mauve/mauve, or by ! specifying the location of that tree when invoking make, as in ! make MAUVEDIR=~/mauve check. !

Jacks is a free testsuite that tests Java compiler front ends. This suite can be run as part of libgcj testing by placing the Jacks tree within ! the libjava testsuite at libjava/testsuite/libjava.jacks/jacks. !

0.4 How to interpret test results

!

The result of running the testsuite are various *.sum and *.log ! files in the testsuite subdirectories. The *.log files contain a detailed log of the compiler invocations and the corresponding ! results, the *.sum files summarize the results. These summaries contain status codes for all tests: !

  • PASS: the test passed as expected
  • XPASS: the test unexpectedly passed
  • FAIL: the test unexpectedly failed --- 39,192 ---- but it can give you confidence in your new GCC installation or point out problems before you install and start using your new GCC. !

    First, you must have downloaded the testsuites. These are part of the full distribution, but if you downloaded the ! "core" compiler plus any front ends, you must download the testsuites separately. !

    Second, you must have the testing tools installed. This includes DejaGnu 1.4.1 or 1.4.3 and later, Tcl, and Expect; the DejaGnu site has links to these. !

    If the directories where runtest and expect were ! installed are not in the PATH, you may need to set the following environment variables appropriately, as in the following example (which ! assumes that DejaGnu has been installed under /usr/local): !

         TCL_LIBRARY = /usr/local/share/tcl8.0
    !      DEJAGNULIBS = /usr/local/share/dejagnu
      
    ! !

    (On systems such as Cygwin, these paths are required to be actual paths, not mounts or links; presumably this is due to some lack of portability in the DejaGnu code.) !

    Finally, you can run the testsuite (which may take a long time): !

         cd objdir; make -k check
      
    ! !

    This will test various components of GCC, such as compiler front ends and runtime libraries. While running the testsuite, DejaGnu might emit some harmless messages resembling ! WARNING: Couldn't find the global config file. or ! WARNING: Couldn't find tool init file that can be ignored. !

    How can you run the testsuite on selected tests?

    In order to run sets of tests selectively, there are targets ! make check-gcc and make check-g++ ! in the gcc subdirectory of the object directory. You can also ! just run make check in a subdirectory of the object directory. !

    A more selective way to just run all gcc execute tests in the testsuite is to use !

        make check-gcc RUNTESTFLAGS="execute.exp other-options"
      
    !

    Likewise, in order to run only the g++ "old-deja" tests in ! the testsuite with filenames matching 9805*, you would use ! !

        make check-g++ RUNTESTFLAGS="old-deja.exp=9805* other-options"
      
    !

    The *.exp files are located in the testsuite directories of the GCC ! source, the most important ones being compile.exp, ! execute.exp, dg.exp and old-deja.exp. ! To get a list of the possible *.exp files, pipe the ! output of make check into a file and look at the ! Running ... .exp lines. ! !

    Passing options and running multiple testsuites

    You can pass multiple options to the testsuite using the ! --target_board option of DejaGNU, either passed as part of ! RUNTESTFLAGS, or directly to runtest if you prefer to work outside the makefiles. For example, !

        make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fno-strength-reduce"
      
    ! !

    will run the standard g++ testsuites ("unix" is the target name for a standard native testsuite situation), passing ! -O3 -fno-strength-reduce to the compiler on every test, i.e., slashes separate options. !

    You can run the testsuites multiple times using combinations of options with a syntax similar to the brace expansion of popular shells: !

        ..."--target_board=arm-sim{-mhard-float,-msoft-float}{-O1,-O2,-O3,}"
      
    ! !

    (Note the empty option caused by the trailing comma in the final group.) ! The following will run each testsuite eight times using the arm-sim target, as if you had specified all possible combinations yourself: !

        --target_board=arm-sim/-mhard-float/-O1
    !     --target_board=arm-sim/-mhard-float/-O2
    !     --target_board=arm-sim/-mhard-float/-O3
    !     --target_board=arm-sim/-mhard-float
    !     --target_board=arm-sim/-msoft-float/-O1
    !     --target_board=arm-sim/-msoft-float/-O2
    !     --target_board=arm-sim/-msoft-float/-O3
    !     --target_board=arm-sim/-msoft-float
      
    ! !

    They can be combined as many times as you wish, in arbitrary ways. This list: !

        ..."--target_board=unix/-Wextra{-O3,-fno-strength-reduce}{-fomit-frame-pointer,}"
      
    !

    will generate four combinations, all involving -Wextra. ! !

    The disadvantage to this method is that the testsuites are run in serial, which is a waste on multiprocessor systems. For users with GNU Make and a shell which performs brace expansion, you can run the testsuites in ! parallel by having the shell perform the combinations and make ! do the parallel runs. Instead of using --target_board, use a special makefile target: !

        make -jN check-testsuite//test-target/option1/option2/...
      
    !

    For example, ! !

        make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
      
    ! !

    will run three concurrent "make-gcc" testsuites, eventually testing all ten combinations as described above. Note that this is currently only ! supported in the gcc subdirectory. (To see how this works, try ! typing echo before the example given here.) !

    Additional testing for Java Class Libraries

    !

    The Java runtime tests can be executed via make check ! in the target/libjava/testsuite directory in the build tree. !

    The Mauve Project provides a suite of tests for the Java Class Libraries. This suite can be run as part of libgcj testing by placing the Mauve tree within the libjava ! testsuite at libjava/testsuite/libjava.mauve/mauve, or by ! specifying the location of that tree when invoking make, as in ! make MAUVEDIR=~/mauve check. ! Jacks is a free testsuite that tests Java compiler front ends. This suite can be run as part of libgcj testing by placing the Jacks tree within ! the libjava testsuite at libjava/testsuite/libjava.jacks/jacks. !

    How to interpret test results

    !

    The result of running the testsuite are various *.sum and *.log ! files in the testsuite subdirectories. The *.log files contain a detailed log of the compiler invocations and the corresponding ! results, the *.sum files summarize the results. These summaries contain status codes for all tests: !

    • PASS: the test passed as expected
    • XPASS: the test unexpectedly passed
    • FAIL: the test unexpectedly failed *************** contain status codes for all tests: *** 199,233 ****
    • WARNING: the testsuite detected a possible problem
    !

    It is normal for some tests to report unexpected failures. At the current time the testing harness does not allow fine grained control over whether or not a test is expected to fail. This problem should be fixed in future releases. !

    0.5 Submitting test results

    If you want to report the results to the GCC project, use the ! contrib/test_summary shell script. Start it in the objdir with !

             srcdir/contrib/test_summary -p your_commentary.txt \
    !              -m gcc-testresults@gcc.gnu.org |sh
      
    !

    This script uses the Mail program to send the results, so ! make sure it is in your PATH. The file your_commentary.txt is prepended to the testsuite summary and should contain any special remarks you have on your results or your build environment. Please do not edit the testsuite result block or the subject line, as these messages may be automatically processed. !


    !

    Return to the GCC Installation page - - - - - - - --- 196,225 ----

  • WARNING: the testsuite detected a possible problem
!

It is normal for some tests to report unexpected failures. At the current time the testing harness does not allow fine grained control over whether or not a test is expected to fail. This problem should be fixed in future releases. !

Submitting test results

If you want to report the results to the GCC project, use the ! contrib/test_summary shell script. Start it in the objdir with !

    srcdir/contrib/test_summary -p your_commentary.txt \
!         -m gcc-testresults@gcc.gnu.org |sh
  
! !

This script uses the Mail program to send the results, so ! make sure it is in your PATH. The file your_commentary.txt is prepended to the testsuite summary and should contain any special remarks you have on your results or your build environment. Please do not edit the testsuite result block or the subject line, as these messages may be automatically processed. !


!

! Return to the GCC Installation page diff -Nrc3pad gcc-3.4.3/LAST_UPDATED gcc-3.4.4/LAST_UPDATED *** gcc-3.4.3/LAST_UPDATED Fri Nov 5 04:14:06 2004 --- gcc-3.4.4/LAST_UPDATED Thu May 19 09:58:01 2005 *************** *** 1 **** ! Obtained from CVS: -rgcc_3_4_3_release --- 1 ---- ! Obtained from CVS: -rgcc_3_4_4_release diff -Nrc3pad gcc-3.4.3/MAINTAINERS gcc-3.4.4/MAINTAINERS *** gcc-3.4.3/MAINTAINERS Wed Oct 6 12:00:26 2004 --- gcc-3.4.4/MAINTAINERS Fri Jan 7 18:50:14 2005 *************** Doug Evans dje@transmeta.com *** 209,215 **** Kaveh Ghazi ghazi@caip.rutgers.edu Matthew Gingell gingell@gnat.com Anthony Green green@redhat.com ! Laurent Guerby guerby@acm.org Olivier Hainque hainque@act-europe.fr Stuart Hastings stuart@apple.com Matthew Hiller hiller@redhat.com --- 209,215 ---- Kaveh Ghazi ghazi@caip.rutgers.edu Matthew Gingell gingell@gnat.com Anthony Green green@redhat.com ! Laurent Guerby laurent@guerby.net Olivier Hainque hainque@act-europe.fr Stuart Hastings stuart@apple.com Matthew Hiller hiller@redhat.com diff -Nrc3pad gcc-3.4.3/MD5SUMS gcc-3.4.4/MD5SUMS *** gcc-3.4.3/MD5SUMS Fri Nov 5 05:34:05 2004 --- gcc-3.4.4/MD5SUMS Thu May 19 10:48:39 2005 *************** *** 1,33 **** 757f7513a1cb3ac08fed2e7833000078 .cvsignore 8c00452ef1e298846493ec8b239f93e2 ABOUT-NLS ! fc4e93d3ad89a6a7c5e9434dfc67d605 BUGS 94d55d512a9ba36caa9b7df079bae19f COPYING 7fbc338309ac38fefcd64b04bb903e34 COPYING.LIB ! 2515d9ebd2c66519b7b88cad7c285a78 ChangeLog b0a6854a6b4c8c22dde51124e6cd7b51 FAQ 23b8927fe1fb0ab321c09a4f0500aa4c INSTALL/README ! c897e4f8cb534abfeaf44759d59395b2 INSTALL/binaries.html ! fc9b0324a3c395877790f6c4867414c8 INSTALL/build.html ! 29feef46775c49555a0d308bb6e30d2c INSTALL/configure.html ! 10411821332d4d14b9f51d11a618ccea INSTALL/download.html ! 1560915116813cb1c486e42b0aff7094 INSTALL/finalinstall.html ! bb7577123c5f8298d2fcd6800e601f51 INSTALL/gfdl.html ! a9fcd697dc6dcafdcd6f1f24c6aed994 INSTALL/index.html ! b349bd473a6997e0d76c10630ccc03a8 INSTALL/old.html ! 5d6de25454da263ca404719fa1449932 INSTALL/prerequisites.html ! 71ef18c577675cee98b42015976a8a1d INSTALL/specific.html ! 0a1aecf4dbe174e3b397c7bd2056fa5d INSTALL/test.html ! ce44a7ca77a07658c7f513021a47ba1e LAST_UPDATED ! 7e6b35f6483044207ed73efa9c9c1ea7 MAINTAINERS fffd671f51fabeb12dd1b148070e5bde Makefile.def b53d5ca47f0c7288646d5eb2974772a0 Makefile.in d605ff4d33b9395183faecade4501374 Makefile.tpl ! a852cf4f501a6fa32686a15b57701078 NEWS 750a7546d281ac42eb2ce87949457731 README ! c63d2446c687f13238f28e9322abcef1 README.SCO b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c 761033ad4a2f6479bdf3b7002c9c0b9d boehm-gc/BCC_MAKEFILE ! 6bfc053acdb5ddf8c42964c37eeab918 boehm-gc/ChangeLog c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE 3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c 5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx --- 1,33 ---- 757f7513a1cb3ac08fed2e7833000078 .cvsignore 8c00452ef1e298846493ec8b239f93e2 ABOUT-NLS ! 4c5dd571eb8c39e849a820e4b426c18a BUGS 94d55d512a9ba36caa9b7df079bae19f COPYING 7fbc338309ac38fefcd64b04bb903e34 COPYING.LIB ! 475cc9b2b5770ef339b864a38316fbe7 ChangeLog b0a6854a6b4c8c22dde51124e6cd7b51 FAQ 23b8927fe1fb0ab321c09a4f0500aa4c INSTALL/README ! 2145c3cc080592934419864522347f80 INSTALL/binaries.html ! 095d1d461b416d46482f039aa0980627 INSTALL/build.html ! 20341e1afac9c4cc122479eccd7beb90 INSTALL/configure.html ! 96f36928dc6fae2de0311c1634332f67 INSTALL/download.html ! 9217c1a81230857bff630326effe1e99 INSTALL/finalinstall.html ! 6652f03081aacf5f5372888b9bfb2203 INSTALL/gfdl.html ! 4883ea30f0f83b45d4c4cbfea86ae285 INSTALL/index.html ! a8243538c4076167e1a821b8f45364b5 INSTALL/old.html ! 732b67ecbeb09f06a1fb898d221144de INSTALL/prerequisites.html ! 80589eec4256dde3dada159f56450776 INSTALL/specific.html ! a38684fc901f2fffbe0cd1a32b873325 INSTALL/test.html ! 2415e8062bfc2773c3f318ef1f8d3238 LAST_UPDATED ! 85154476825cea544fcd9e9820371bdd MAINTAINERS fffd671f51fabeb12dd1b148070e5bde Makefile.def b53d5ca47f0c7288646d5eb2974772a0 Makefile.in d605ff4d33b9395183faecade4501374 Makefile.tpl ! 95b73c64d7c8fd9730fa6c2bd941f64d NEWS 750a7546d281ac42eb2ce87949457731 README ! de94b5f5c3d835b587741180b2ded958 README.SCO b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c 761033ad4a2f6479bdf3b7002c9c0b9d boehm-gc/BCC_MAKEFILE ! 8eb8b6944c99317acc9776d2a584670b boehm-gc/ChangeLog c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE 3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c 5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx *************** b19b7b67bff97d0bceba827fedb07d32 boehm- *** 60,68 **** 54e78fc2c05e222974829de212cf8012 boehm-gc/checksums.c dd4451f9cdfc36cdb86703965f758ec2 boehm-gc/config.guess 6cdae8120da06ebd9981c7a5a813550b boehm-gc/config.sub ! 147506ba7fd623f45603b7aa2da2c92c boehm-gc/configure ! 94d0d40deeeff4a75fffb12fc53d84f4 boehm-gc/configure.host ! c7a1d6d52333e5eb8fe55784fc4c8ebb boehm-gc/configure.in 61ccb6486d45cc6d99201cc19f3c579c boehm-gc/cord/cordbscs.c 80f590e0236ce7f644d8d757ed49eadd boehm-gc/cord/cordprnt.c 6339c19bf76fdd2db761b5997df6652b boehm-gc/cord/cordtest.c --- 60,68 ---- 54e78fc2c05e222974829de212cf8012 boehm-gc/checksums.c dd4451f9cdfc36cdb86703965f758ec2 boehm-gc/config.guess 6cdae8120da06ebd9981c7a5a813550b boehm-gc/config.sub ! 348029fc95cb71f18863d03626da7ce5 boehm-gc/configure ! 56328341fbfbe66715779252aa61943e boehm-gc/configure.host ! 90199b74c58bc797fdb1db1e27aa48f5 boehm-gc/configure.in 61ccb6486d45cc6d99201cc19f3c579c boehm-gc/cord/cordbscs.c 80f590e0236ce7f644d8d757ed49eadd boehm-gc/cord/cordprnt.c 6339c19bf76fdd2db761b5997df6652b boehm-gc/cord/cordtest.c *************** a81043a07411d46ddb72d9f4ffb320b6 boehm- *** 151,157 **** dcf402d646df6f3e8d1a2f9777f3415d boehm-gc/include/private/gc_locks.h 416679819bc19db10af8c309094918f2 boehm-gc/include/private/gc_pmark.h d983eda07a32723c530b3161674fabda boehm-gc/include/private/gc_priv.h ! 4054abcb719e864a2bd6b0e2aa50ae83 boehm-gc/include/private/gcconfig.h fbe5032f5ffd11c46b1e9ae03a9fbc1b boehm-gc/include/private/pthread_stop_world.h fad5730818daa7279a81bc32b2f1c648 boehm-gc/include/private/pthread_support.h 49fb24b2deb64ef9df1e605d5897cac4 boehm-gc/include/private/solaris_threads.h --- 151,157 ---- dcf402d646df6f3e8d1a2f9777f3415d boehm-gc/include/private/gc_locks.h 416679819bc19db10af8c309094918f2 boehm-gc/include/private/gc_pmark.h d983eda07a32723c530b3161674fabda boehm-gc/include/private/gc_priv.h ! 31fcdae1e355cceebe0b2b66e8c692e7 boehm-gc/include/private/gcconfig.h fbe5032f5ffd11c46b1e9ae03a9fbc1b boehm-gc/include/private/pthread_stop_world.h fad5730818daa7279a81bc32b2f1c648 boehm-gc/include/private/pthread_support.h 49fb24b2deb64ef9df1e605d5897cac4 boehm-gc/include/private/solaris_threads.h *************** a8e9ffb46cc342981c064a266ea26fb6 boehm- *** 172,182 **** bc994884d395541d40c4192919a89a21 boehm-gc/mkinstalldirs 41f5ff1648fe32ba5f78cc53122ba3cf boehm-gc/new_hblk.c e308d74d7779ecc729bad15d2cb03904 boehm-gc/obj_map.c ! c8bdf684444c79a9dc96f08093f2709f boehm-gc/os_dep.c ebb806366e4b75f72ac42bfcdda1d318 boehm-gc/pc_excludes 243e968dd0ce5897ecf1900c3ab8e5eb boehm-gc/pcr_interface.c 97b0970bfe84a6ea60b3ced8a9305695 boehm-gc/powerpc_darwin_mach_dep.s ! bcfc62546907d4fb97cae2331f99a4cc boehm-gc/pthread_stop_world.c aec5113a49c1bddfa9086703367f91d7 boehm-gc/pthread_support.c 8df5132173bc2d55d2feaefc9067e97d boehm-gc/ptr_chck.c 89d7ce652a21c4bdfa74466317cf7a87 boehm-gc/real_malloc.c --- 172,182 ---- bc994884d395541d40c4192919a89a21 boehm-gc/mkinstalldirs 41f5ff1648fe32ba5f78cc53122ba3cf boehm-gc/new_hblk.c e308d74d7779ecc729bad15d2cb03904 boehm-gc/obj_map.c ! be13c78707b4b027541a89fed3968279 boehm-gc/os_dep.c ebb806366e4b75f72ac42bfcdda1d318 boehm-gc/pc_excludes 243e968dd0ce5897ecf1900c3ab8e5eb boehm-gc/pcr_interface.c 97b0970bfe84a6ea60b3ced8a9305695 boehm-gc/powerpc_darwin_mach_dep.s ! 96b3dde98944b3608a5170be989ba363 boehm-gc/pthread_stop_world.c aec5113a49c1bddfa9086703367f91d7 boehm-gc/pthread_support.c 8df5132173bc2d55d2feaefc9067e97d boehm-gc/ptr_chck.c 89d7ce652a21c4bdfa74466317cf7a87 boehm-gc/real_malloc.c *************** be63b8535621eef2af539d7885fbf5cc boehm- *** 199,211 **** f5b1861a2f39c2c2bc8cb4a07c335a9f boehm-gc/typd_mlc.c 81331ae81296a647f2a2d4c7875591a8 boehm-gc/version.h b1241072185fcd50c00644b37dff7a1d boehm-gc/win32_threads.c ! e24f38098b6646377a9fe48b4b43ce08 bugs.html ! b1f75000fa90c6bd41148c49280e5dc6 config-ml.in dd4451f9cdfc36cdb86703965f758ec2 config.guess d41fc4b87cd95b533ca5abf5b4254969 config.if 697e549e7b5504f8de63e95a7158a53d config.rpath 6cdae8120da06ebd9981c7a5a813550b config.sub ! 6225bf6f2333e27f0c7711d267f2a727 config/ChangeLog 1eaed99306a232c1f2579d48c964f565 config/accross.m4 8a438e0d0b59ce7f15a3fc38bd1b4714 config/acinclude.m4 a1b1540fda3bb91674c5ac1ed659b9c8 config/acx.m4 --- 199,211 ---- f5b1861a2f39c2c2bc8cb4a07c335a9f boehm-gc/typd_mlc.c 81331ae81296a647f2a2d4c7875591a8 boehm-gc/version.h b1241072185fcd50c00644b37dff7a1d boehm-gc/win32_threads.c ! d40ac3dacf445eabdeec3005ee212a9f bugs.html ! f06150ed46e7289da04db7b2e330d1cc config-ml.in dd4451f9cdfc36cdb86703965f758ec2 config.guess d41fc4b87cd95b533ca5abf5b4254969 config.if 697e549e7b5504f8de63e95a7158a53d config.rpath 6cdae8120da06ebd9981c7a5a813550b config.sub ! 1d0c19fe96cb6ca19d627ebbcf4b4bf0 config/ChangeLog 1eaed99306a232c1f2579d48c964f565 config/accross.m4 8a438e0d0b59ce7f15a3fc38bd1b4714 config/acinclude.m4 a1b1540fda3bb91674c5ac1ed659b9c8 config/acx.m4 *************** fa84a282ce7cd6876d1eac368a31a368 config *** 244,271 **** 12b3030d3d59526c374c15af4f5944dd config/mt-wince b963319bdff419a7b32cb107b047433d config/no-executables.m4 d3cecf02bb97035177818aefbb0e0833 config/progtest.m4 ! 0e4fb51f74caee42a8888ffa6de6552c configure ! 4a4e933fb6fe66323e31652d3d404e20 configure.in ! ff9883aae2e16134bd3839856090a530 contrib/ChangeLog 04ba084a5d02480dcd6bdc57f6031682 contrib/analyze_brprob d718f7aa23da7d4f25b48a5607b9fc7c contrib/compare_tests c023ea56fbc55a6e24d7a5cdcd09d903 contrib/convert_to_f2c 5589c59573f03394b25b2854f94b8c74 contrib/convert_to_g2c f581e79a8e2d0f1952218e94c2d9844b contrib/download_f2c 3060a6f740228ce0b4196fc05be4f0f1 contrib/gcc_build ! c81ed9f7667971057241b0f676220e83 contrib/gcc_update 48cbb3050eaf94f8bfbee3c6899c54ec contrib/gccbug.el 885a0d9a2b857f4802b2ba5ff0733ed4 contrib/gennews 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c fa945bac89ee68b410027dcfe1312f4b contrib/index-prop 20179e1289a3a0ff7a6869666b1252e1 contrib/newcvsroot 1a7e182574673a0ba979ec4ebca2944c contrib/paranoia.cc ! cfa8e4d68abb00690a6410ace47429fc contrib/reghunt/ChangeLog ab31219466ac7df2a1aa15900540bc8a contrib/reghunt/README c210204c3d2fb73e3b50091c96dc44bf contrib/reghunt/reg_periodic 1e75f6b1b2d25ba1c3bb07f86ecb9ee2 contrib/reghunt/reg_search 0ef47a46d2e384a9532935891338c161 contrib/reghunt/reg_test_template ! e9120f2637eb69650a8bff6f8c5d75c7 contrib/regression/ChangeLog 0fa02760faf8d2db000bacfd82f0deef contrib/regression/README 9b00383d0f60b998dfce820ee67ff19d contrib/regression/btest-gcc.sh 57b2176bd936777562a9baa0812892a0 contrib/regression/objs-gcc.sh --- 244,271 ---- 12b3030d3d59526c374c15af4f5944dd config/mt-wince b963319bdff419a7b32cb107b047433d config/no-executables.m4 d3cecf02bb97035177818aefbb0e0833 config/progtest.m4 ! 46bc94c57403d2e0d7cea61e5d54c48f configure ! e965973396abcf8da8eeb2761d801a58 configure.in ! 763006dbd9198810322c557e3b434a54 contrib/ChangeLog 04ba084a5d02480dcd6bdc57f6031682 contrib/analyze_brprob d718f7aa23da7d4f25b48a5607b9fc7c contrib/compare_tests c023ea56fbc55a6e24d7a5cdcd09d903 contrib/convert_to_f2c 5589c59573f03394b25b2854f94b8c74 contrib/convert_to_g2c f581e79a8e2d0f1952218e94c2d9844b contrib/download_f2c 3060a6f740228ce0b4196fc05be4f0f1 contrib/gcc_build ! 6411fa471168117552f003fd07b3ea4a contrib/gcc_update 48cbb3050eaf94f8bfbee3c6899c54ec contrib/gccbug.el 885a0d9a2b857f4802b2ba5ff0733ed4 contrib/gennews 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c fa945bac89ee68b410027dcfe1312f4b contrib/index-prop 20179e1289a3a0ff7a6869666b1252e1 contrib/newcvsroot 1a7e182574673a0ba979ec4ebca2944c contrib/paranoia.cc ! 45b5af32f6ef07125f9609f8b84e1d23 contrib/reghunt/ChangeLog ab31219466ac7df2a1aa15900540bc8a contrib/reghunt/README c210204c3d2fb73e3b50091c96dc44bf contrib/reghunt/reg_periodic 1e75f6b1b2d25ba1c3bb07f86ecb9ee2 contrib/reghunt/reg_search 0ef47a46d2e384a9532935891338c161 contrib/reghunt/reg_test_template ! 8537d08b25a423dde881da7ceb052595 contrib/regression/ChangeLog 0fa02760faf8d2db000bacfd82f0deef contrib/regression/README 9b00383d0f60b998dfce820ee67ff19d contrib/regression/btest-gcc.sh 57b2176bd936777562a9baa0812892a0 contrib/regression/objs-gcc.sh *************** c1739220c79bbaf9ebb9e5d4cb530c7e contri *** 278,284 **** dbe6dec25102f59632c7a62ec0e62158 fastjar/AUTHORS bdb1454b8697cdb175027e91b4834fdc fastjar/CHANGES bae3019b4c6dc4138c217864bd04331f fastjar/COPYING ! 926c9cf7adb275ca48df2626e2eb90d2 fastjar/ChangeLog 209e12e13fbd7d098b1c8f52859c291f fastjar/INSTALL 8bb1ce39f1b67fa99e968d5c967e20e8 fastjar/Makefile.am 8493faea54b91ce22541b493f8e38552 fastjar/Makefile.in --- 278,284 ---- dbe6dec25102f59632c7a62ec0e62158 fastjar/AUTHORS bdb1454b8697cdb175027e91b4834fdc fastjar/CHANGES bae3019b4c6dc4138c217864bd04331f fastjar/COPYING ! 180e75f655fd7d59448da61921a17d61 fastjar/ChangeLog 209e12e13fbd7d098b1c8f52859c291f fastjar/INSTALL 8bb1ce39f1b67fa99e968d5c967e20e8 fastjar/Makefile.am 8493faea54b91ce22541b493f8e38552 fastjar/Makefile.in *************** d90cbec543592f0cd43d9de4e8b4c6c0 fastja *** 293,303 **** 4ff9ddb145f39e6adef242cab5457ee8 fastjar/configure.ac 11d8607a786579eb40e9af1364ba7530 fastjar/dostime.c c44ff949fe567a1667a14d5973f62aef fastjar/dostime.h ! 6fe54a0ab05ad7c95713cfea6adc9bbd fastjar/fastjar.info 5ffbee2989d77015ad4ac966773e463b fastjar/fastjar.texi ! 9babbd6fbc0198cf5ff74d6e1cc20c0d fastjar/grepjar.1 d66630536f4ad8fe249cb6cd115ae1d1 fastjar/install-defs.sh.in ! 4c8b9d0a30f59882bf470335264aee01 fastjar/jar.1 4fc3b8f0c1af92661330be086741c2e4 fastjar/jargrep.c b88ab791613fcc11cb2dcc67d74a2552 fastjar/jargrep.h de1a944f9b2499b326fa958b1039d217 fastjar/jartool.c --- 293,303 ---- 4ff9ddb145f39e6adef242cab5457ee8 fastjar/configure.ac 11d8607a786579eb40e9af1364ba7530 fastjar/dostime.c c44ff949fe567a1667a14d5973f62aef fastjar/dostime.h ! 32963ca614710ad59cd46b9f1501bcfb fastjar/fastjar.info 5ffbee2989d77015ad4ac966773e463b fastjar/fastjar.texi ! 871447c6ffb832fb976407a8da6e8931 fastjar/grepjar.1 d66630536f4ad8fe249cb6cd115ae1d1 fastjar/install-defs.sh.in ! 2237a990b17d74ba816ea51bbfb76d4b fastjar/jar.1 4fc3b8f0c1af92661330be086741c2e4 fastjar/jargrep.c b88ab791613fcc11cb2dcc67d74a2552 fastjar/jargrep.h de1a944f9b2499b326fa958b1039d217 fastjar/jartool.c *************** ed3a9885d67984747babe5731898ed5a gcc/.c *** 309,315 **** 3a3ffc0ce8bd3fa0865f001299994af3 gcc/ABOUT-GCC-NLS 94d55d512a9ba36caa9b7df079bae19f gcc/COPYING 7fbc338309ac38fefcd64b04bb903e34 gcc/COPYING.LIB ! a6840698e36699b438f0ab67cc82151c gcc/ChangeLog 9f3eae1e23bcd4166785b0386b467eef gcc/ChangeLog.0 fc0aaf9fc3d0b7a20690add95f3bc80a gcc/ChangeLog.1 f2ccc60251a264a176216de47c552020 gcc/ChangeLog.10 --- 309,315 ---- 3a3ffc0ce8bd3fa0865f001299994af3 gcc/ABOUT-GCC-NLS 94d55d512a9ba36caa9b7df079bae19f gcc/COPYING 7fbc338309ac38fefcd64b04bb903e34 gcc/COPYING.LIB ! 9f15c9f5363ae59e68f901a384e3862d gcc/ChangeLog 9f3eae1e23bcd4166785b0386b467eef gcc/ChangeLog.0 fc0aaf9fc3d0b7a20690add95f3bc80a gcc/ChangeLog.1 f2ccc60251a264a176216de47c552020 gcc/ChangeLog.10 *************** cc09ce1ef3704378bfc6acf0f2c9cef4 gcc/Ch *** 326,332 **** 5af5721f6387aa8aa5fb200e025dd573 gcc/FSFChangeLog.10 f7f665544fb6aa08551b37283f6c56de gcc/FSFChangeLog.11 e9338f95acc1e6aedc8de663291c4032 gcc/LANGUAGES ! 0c2b8ac4a9848a815c6010cb2c17e695 gcc/Makefile.in 00919fda1a585fdc4a1be1fec2eeb0bb gcc/ONEWS 455903ad4ff71fa5c5340ef7ae41a0e6 gcc/README-fixinc f88d9228718a255b827d6f417063d62d gcc/README.Portability --- 326,332 ---- 5af5721f6387aa8aa5fb200e025dd573 gcc/FSFChangeLog.10 f7f665544fb6aa08551b37283f6c56de gcc/FSFChangeLog.11 e9338f95acc1e6aedc8de663291c4032 gcc/LANGUAGES ! 8dd837104e37cd8c1dde496f19c4a3f2 gcc/Makefile.in 00919fda1a585fdc4a1be1fec2eeb0bb gcc/ONEWS 455903ad4ff71fa5c5340ef7ae41a0e6 gcc/README-fixinc f88d9228718a255b827d6f417063d62d gcc/README.Portability *************** c537f947aadb891aa3f3df592556dac3 gcc/ad *** 570,576 **** efd938244dc007371fa3fc3bcb03eee2 gcc/ada/86numaux.adb 91664ab38ca6f4c19c784e6323ea6329 gcc/ada/86numaux.ads ffb195b6cd01db5d43ffe386f26c6acb gcc/ada/9drpc.adb ! cafc62f14081a04c310c837bb6ef8050 gcc/ada/ChangeLog bc0f6b466c2c392dc6ecea77af347cc9 gcc/ada/Make-lang.in fd9934e106e179122470edb6678e669f gcc/ada/Makefile.adalib f869f8c1890c4ed120cbaf3310b43736 gcc/ada/Makefile.generic --- 570,576 ---- efd938244dc007371fa3fc3bcb03eee2 gcc/ada/86numaux.adb 91664ab38ca6f4c19c784e6323ea6329 gcc/ada/86numaux.ads ffb195b6cd01db5d43ffe386f26c6acb gcc/ada/9drpc.adb ! 97016b0e6cb8563a9f81bc2174db02aa gcc/ada/ChangeLog bc0f6b466c2c392dc6ecea77af347cc9 gcc/ada/Make-lang.in fd9934e106e179122470edb6678e669f gcc/ada/Makefile.adalib f869f8c1890c4ed120cbaf3310b43736 gcc/ada/Makefile.generic *************** b45e37576ae0407389ba7291607bdcc1 gcc/ad *** 699,705 **** bd390f4506070e1fc694afa7e0f77dd2 gcc/ada/a-strunb.ads 8e387348e59f8204847d867b7e29be12 gcc/ada/a-ststio.adb 38cfc62229c82907536ce71950d535b2 gcc/ada/a-ststio.ads ! 4bc732f15bfc6373f4a8464f95a0591a gcc/ada/a-stunau.adb 650b23d8f50eb34ff0c098e768cb89fd gcc/ada/a-stunau.ads 9e45f27fef30548ff332dd99b7384e44 gcc/ada/a-stwibo.adb 9d380f10a60306c30d8a643a18d78914 gcc/ada/a-stwibo.ads --- 699,705 ---- bd390f4506070e1fc694afa7e0f77dd2 gcc/ada/a-strunb.ads 8e387348e59f8204847d867b7e29be12 gcc/ada/a-ststio.adb 38cfc62229c82907536ce71950d535b2 gcc/ada/a-ststio.ads ! 2aeba1f56e12898f9f8280e012a684a1 gcc/ada/a-stunau.adb 650b23d8f50eb34ff0c098e768cb89fd gcc/ada/a-stunau.ads 9e45f27fef30548ff332dd99b7384e44 gcc/ada/a-stwibo.adb 9d380f10a60306c30d8a643a18d78914 gcc/ada/a-stwibo.ads *************** f2ff55a7b728f5df593018038cb454ef gcc/ad *** 1874,1880 **** 237bad9273d56f2145e29d6220ab3223 gcc/alias.c be1dd85992dfb012266f26aa39bff033 gcc/alloc-pool.c c279ff553669b088052503283575eb05 gcc/alloc-pool.h ! b3a05d0563502a0498501258e42871ba gcc/attribs.c 4f98a5e3bafa477b6ce7d61b534c29c9 gcc/basic-block.h f83d570eb4b3476ee1d99708c5637981 gcc/bb-reorder.c 249b333abdb4723e09b932694315c9ad gcc/bitmap.c --- 1874,1880 ---- 237bad9273d56f2145e29d6220ab3223 gcc/alias.c be1dd85992dfb012266f26aa39bff033 gcc/alloc-pool.c c279ff553669b088052503283575eb05 gcc/alloc-pool.h ! 7a155635384af4399be30823b8e13517 gcc/attribs.c 4f98a5e3bafa477b6ce7d61b534c29c9 gcc/basic-block.h f83d570eb4b3476ee1d99708c5637981 gcc/bb-reorder.c 249b333abdb4723e09b932694315c9ad gcc/bitmap.c *************** d1ebc83778d01f8ef1336a882065bb6c gcc/bi *** 1882,1921 **** f9c5b6d4ad916d435b59739f764f5043 gcc/bt-load.c 6d9bbbbcf5850a7d937ff76b3e967f84 gcc/builtin-attrs.def 199ea5ae1396703cb25bd96babe1bb14 gcc/builtin-types.def ! c40c769fcbbd8835586f0ccd9f780f76 gcc/builtins.c 2951237f5506a15e20890d22e631379f gcc/builtins.def 01ae51f8868f16dc3f7569a4d605eab9 gcc/c-aux-info.c ! 09285e5c67e2b8f0510f69b0547dcc3c gcc/c-common.c e6dffbf568b0ed35c966882911960c61 gcc/c-common.def 08630772588f45dbaaaa6d47c0eb2f94 gcc/c-common.h 8447e935bc81dc31a1f016d8dda2bd42 gcc/c-config-lang.in 3894f0b2ccc017e81ad527827aedacd5 gcc/c-convert.c 3efa472adcd828e631a5b586bd7aaf33 gcc/c-cppbuiltin.c ! c5746094bbef8a4acca29f921ef3c10b gcc/c-decl.c 0c3e16e1538a5ca0fe56b7205f1c7352 gcc/c-dump.c 0b8d0626fe8d8d96c5abe33672b9008e gcc/c-errors.c ! 6896891c0a06aacf861998a42a08a189 gcc/c-format.c 44e5dbfe659545c12defce6f6e1193af gcc/c-incpath.c 25bd62a48dbed14d2e1a165790e130dc gcc/c-incpath.h 8f47217c0acd85106e93572bc99a888e gcc/c-lang.c 2bfd4dca710e1379a7fa4b70a4400e74 gcc/c-lex.c 254b00fef5f384765a3beb7b148259e2 gcc/c-objc-common.c ! 35a7d14db6b4b02829a0d74c70d987ff gcc/c-opts.c a64dbcc53d7c02bdd2f6f56e099ec434 gcc/c-parse.c 8b43b3f9b2ef816cb235953a09ad8a8b gcc/c-parse.in 01426c1ce7817deb87acf849a72f9a04 gcc/c-parse.y 30280928b4893da39c43459e67da1127 gcc/c-pch.c ! 2d756a4945fd7ef4777d801dd056d1b5 gcc/c-ppoutput.c 810cb73f678afa008af44b97413de544 gcc/c-pragma.c 99cf443d6b47a9dd335f232a89da7363 gcc/c-pragma.h 1392bd7cc432acfd282e014563f12382 gcc/c-pretty-print.c e403bf531a21ac966e8af5945bab24a6 gcc/c-pretty-print.h ! b81abbecb9b9822b357b20bb8d995121 gcc/c-semantics.c d611226907b5a983e74827ce578121ef gcc/c-tree.h ! c92fbaf4d708e1ebca42e50f2ea9498c gcc/c-typeck.c ! 17bada4f4b99aa60efc4c4b50761993b gcc/c.opt 6ec7744e0d705692f3a27013c3b31e82 gcc/caller-save.c ! 6630501faa36621bebb27093114b8d29 gcc/calls.c 3b4538be3c1ff8c161b35a5c0a8c8edf gcc/cfg.c b396e0405d346a4c9d063994355c5ba5 gcc/cfganal.c 1a0b22a7bfad82e1e54fde7b646f7421 gcc/cfgbuild.c --- 1882,1921 ---- f9c5b6d4ad916d435b59739f764f5043 gcc/bt-load.c 6d9bbbbcf5850a7d937ff76b3e967f84 gcc/builtin-attrs.def 199ea5ae1396703cb25bd96babe1bb14 gcc/builtin-types.def ! 8425585cfa46e9a2a1a527ca039bfc07 gcc/builtins.c 2951237f5506a15e20890d22e631379f gcc/builtins.def 01ae51f8868f16dc3f7569a4d605eab9 gcc/c-aux-info.c ! d32b2f3ede2822a2d3baff1043222ac4 gcc/c-common.c e6dffbf568b0ed35c966882911960c61 gcc/c-common.def 08630772588f45dbaaaa6d47c0eb2f94 gcc/c-common.h 8447e935bc81dc31a1f016d8dda2bd42 gcc/c-config-lang.in 3894f0b2ccc017e81ad527827aedacd5 gcc/c-convert.c 3efa472adcd828e631a5b586bd7aaf33 gcc/c-cppbuiltin.c ! 3792a20a6cf64eb7d7527250e4e1d238 gcc/c-decl.c 0c3e16e1538a5ca0fe56b7205f1c7352 gcc/c-dump.c 0b8d0626fe8d8d96c5abe33672b9008e gcc/c-errors.c ! eb26a040c7ec02b630cde0c906a05a8e gcc/c-format.c 44e5dbfe659545c12defce6f6e1193af gcc/c-incpath.c 25bd62a48dbed14d2e1a165790e130dc gcc/c-incpath.h 8f47217c0acd85106e93572bc99a888e gcc/c-lang.c 2bfd4dca710e1379a7fa4b70a4400e74 gcc/c-lex.c 254b00fef5f384765a3beb7b148259e2 gcc/c-objc-common.c ! fe89e9c2eeba1d2ace81c88f85fbc8f7 gcc/c-opts.c a64dbcc53d7c02bdd2f6f56e099ec434 gcc/c-parse.c 8b43b3f9b2ef816cb235953a09ad8a8b gcc/c-parse.in 01426c1ce7817deb87acf849a72f9a04 gcc/c-parse.y 30280928b4893da39c43459e67da1127 gcc/c-pch.c ! e655648ba8129ed632c25d1b168e1d76 gcc/c-ppoutput.c 810cb73f678afa008af44b97413de544 gcc/c-pragma.c 99cf443d6b47a9dd335f232a89da7363 gcc/c-pragma.h 1392bd7cc432acfd282e014563f12382 gcc/c-pretty-print.c e403bf531a21ac966e8af5945bab24a6 gcc/c-pretty-print.h ! 908728831b84073fb780859b383d7047 gcc/c-semantics.c d611226907b5a983e74827ce578121ef gcc/c-tree.h ! 6147236e3465f2be9835530eb9d659b6 gcc/c-typeck.c ! d0eb1ea15e72ab57313442eaac2e3d78 gcc/c.opt 6ec7744e0d705692f3a27013c3b31e82 gcc/caller-save.c ! 86942542f303503c4a8e4836312a28e8 gcc/calls.c 3b4538be3c1ff8c161b35a5c0a8c8edf gcc/cfg.c b396e0405d346a4c9d063994355c5ba5 gcc/cfganal.c 1a0b22a7bfad82e1e54fde7b646f7421 gcc/cfgbuild.c *************** f7ac0fce1358a4545f8afa5bbce76554 gcc/cf *** 1932,1952 **** 4a425602993c95b37216930a42664f64 gcc/cgraph.c 7a3a8efe361c219aae444414841154ac gcc/cgraph.h 413ff6dcad1dea7d69fc8714f9c34038 gcc/cgraphunit.c ! 29b0638b3190e581371fba1308adb018 gcc/collect2.c a4ee0107ae740285068b14c374b02e9b gcc/collect2.h ! 49b78c9958dbc39949c748a71d4969a7 gcc/combine.c d4ac664b1f1f9503f5f021e51d494548 gcc/common.opt 153eba9df77c122c16c81291535eb8b9 gcc/conditions.h 7268433f5f31ab6d3e611f124107d987 gcc/config.build ! f878d8c960de35ae9b750370756763b7 gcc/config.gcc 24e40268b898546fb6b8f2c58268b40b gcc/config.host ! 7acb84d423d0571c3f4d2636ef182da8 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README cdbc22c1c4884517b199f895c2d5c9fc gcc/config/alpha/alpha-modes.def 1456f8a17d381aca68c6342c6ea5166d gcc/config/alpha/alpha-protos.h ! 5086267394b315fa737bd38a5ac203d2 gcc/config/alpha/alpha.c dc328308f315f46302d19117928150ff gcc/config/alpha/alpha.h ! 6cf5378ea5dd710151d779b34d32e987 gcc/config/alpha/alpha.md b871fa4b646882b6d3edc34b07418cdf gcc/config/alpha/crtfastmath.c f8b43ce21e17483c5615aeefcaa5e048 gcc/config/alpha/elf.h 04869f4c48d153c27b6bf3d9514829e4 gcc/config/alpha/ev4.md --- 1932,1952 ---- 4a425602993c95b37216930a42664f64 gcc/cgraph.c 7a3a8efe361c219aae444414841154ac gcc/cgraph.h 413ff6dcad1dea7d69fc8714f9c34038 gcc/cgraphunit.c ! ea02f53168dfe632f605cb2f8bb8579e gcc/collect2.c a4ee0107ae740285068b14c374b02e9b gcc/collect2.h ! 2968c6f2185dfea91273057f400e7a6d gcc/combine.c d4ac664b1f1f9503f5f021e51d494548 gcc/common.opt 153eba9df77c122c16c81291535eb8b9 gcc/conditions.h 7268433f5f31ab6d3e611f124107d987 gcc/config.build ! 47dd738a3d1c6338ef133dca0125534b gcc/config.gcc 24e40268b898546fb6b8f2c58268b40b gcc/config.host ! 8896c4975dbca6b58c4ea92dbb62f33b gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README cdbc22c1c4884517b199f895c2d5c9fc gcc/config/alpha/alpha-modes.def 1456f8a17d381aca68c6342c6ea5166d gcc/config/alpha/alpha-protos.h ! ab9df3254cd24371f6b6850b283aace3 gcc/config/alpha/alpha.c dc328308f315f46302d19117928150ff gcc/config/alpha/alpha.h ! f4b793e6d6cdec70b23c13ea55369446 gcc/config/alpha/alpha.md b871fa4b646882b6d3edc34b07418cdf gcc/config/alpha/crtfastmath.c f8b43ce21e17483c5615aeefcaa5e048 gcc/config/alpha/elf.h 04869f4c48d153c27b6bf3d9514829e4 gcc/config/alpha/ev4.md *************** badb0143395e80583210aa4ab17150c5 gcc/co *** 1966,1972 **** 985c6b7b42c51c99cd3459e0f60e6158 gcc/config/alpha/t-crtfm b779aa9db141bfd9c1272f8d21e4b00e gcc/config/alpha/t-ieee c6a2a791146d67d036100ec3e54c53e4 gcc/config/alpha/t-osf-pthread ! 30a44dbf9bf8c0441998af2978d344c0 gcc/config/alpha/t-osf4 4098f940703b404acc95f6930ee5adea gcc/config/alpha/t-unicosmk a55b683441d09dc8487a85470a557580 gcc/config/alpha/t-vms 801c9903de067c653ed7a4b36af18c8c gcc/config/alpha/t-vms64 --- 1966,1972 ---- 985c6b7b42c51c99cd3459e0f60e6158 gcc/config/alpha/t-crtfm b779aa9db141bfd9c1272f8d21e4b00e gcc/config/alpha/t-ieee c6a2a791146d67d036100ec3e54c53e4 gcc/config/alpha/t-osf-pthread ! cdada606305bbe6f526140670a86478a gcc/config/alpha/t-osf4 4098f940703b404acc95f6930ee5adea gcc/config/alpha/t-unicosmk a55b683441d09dc8487a85470a557580 gcc/config/alpha/t-vms 801c9903de067c653ed7a4b36af18c8c gcc/config/alpha/t-vms64 *************** bc82b161a15b608894cd0d39ff5704c3 gcc/co *** 1991,2006 **** cc55d56384cbf38f5c16f94d1e4da1a3 gcc/config/arc/arc.h 1812d664418a5625c83a18bf4e6ca91a gcc/config/arc/arc.md 164b12fbf9f62c635966f4f0e7292436 gcc/config/arc/initfini.c ! 767509c792486815416830604040936d gcc/config/arc/lib1funcs.asm 8716ec248f8b7b4307c4e712160acdeb gcc/config/arc/t-arc e2ef2709a9fcbac870f018869a0d90b8 gcc/config/arm/README-interworking ab3c4301685d5368172781bd1011cfca gcc/config/arm/aof.h 828bc13f93c69ef0e104bb437d2d69dc gcc/config/arm/aout.h 3a303b7ce5cba3cc50b00c4f50ba8fe1 gcc/config/arm/arm-modes.def ! 2e32165adcb5c2fc9919805cae2461ff gcc/config/arm/arm-protos.h ! 3eb03289d5c4f92d9124047fb04790ae gcc/config/arm/arm.c 9f9cf014d527ad6cb5821612efcd1494 gcc/config/arm/arm.h ! 73d3d2df2973098d16443d87997be8ce gcc/config/arm/arm.md 0fa7dac2eca4345e8a1ae9fb6db99e74 gcc/config/arm/cirrus.md 2687d51d6dcdf992acbabd6c2fed535c gcc/config/arm/coff.h 01232e5e6e06b0b35e58aae62e3309ad gcc/config/arm/crti.asm --- 1991,2006 ---- cc55d56384cbf38f5c16f94d1e4da1a3 gcc/config/arc/arc.h 1812d664418a5625c83a18bf4e6ca91a gcc/config/arc/arc.md 164b12fbf9f62c635966f4f0e7292436 gcc/config/arc/initfini.c ! 0f6cebc17e2ff7e0619853a662958c2b gcc/config/arc/lib1funcs.asm 8716ec248f8b7b4307c4e712160acdeb gcc/config/arc/t-arc e2ef2709a9fcbac870f018869a0d90b8 gcc/config/arm/README-interworking ab3c4301685d5368172781bd1011cfca gcc/config/arm/aof.h 828bc13f93c69ef0e104bb437d2d69dc gcc/config/arm/aout.h 3a303b7ce5cba3cc50b00c4f50ba8fe1 gcc/config/arm/arm-modes.def ! 7b601191990ed666d7c41018563ea131 gcc/config/arm/arm-protos.h ! 388ad8dedc2275eae2af0bf2661cc760 gcc/config/arm/arm.c 9f9cf014d527ad6cb5821612efcd1494 gcc/config/arm/arm.h ! 3bf29835863c7026485952b6e0a1c507 gcc/config/arm/arm.md 0fa7dac2eca4345e8a1ae9fb6db99e74 gcc/config/arm/cirrus.md 2687d51d6dcdf992acbabd6c2fed535c gcc/config/arm/coff.h 01232e5e6e06b0b35e58aae62e3309ad gcc/config/arm/crti.asm *************** ff0d30158002a03eb306d7ea2b138a61 gcc/co *** 2031,2038 **** 5a8ef7705a4b2d9c6af43b0358baf865 gcc/config/arm/t-arm-coff ecda6c90717f527e9abaa26c6f7e77a8 gcc/config/arm/t-arm-elf 7ea9f71fee151194843ee36499b5c446 gcc/config/arm/t-linux ! 285d71972edf216f64f3164073919fef gcc/config/arm/t-netbsd a38c693422d9e3e0bb4c4fb8dffcdabd gcc/config/arm/t-pe 1c820b92bc6549b7e31bfb7ab041cc21 gcc/config/arm/t-semi be87610100021f1329b99bc0d755c9b5 gcc/config/arm/t-strongarm-elf 2ade9b3cb641eb053c4ee8345e749d21 gcc/config/arm/t-strongarm-pe --- 2031,2039 ---- 5a8ef7705a4b2d9c6af43b0358baf865 gcc/config/arm/t-arm-coff ecda6c90717f527e9abaa26c6f7e77a8 gcc/config/arm/t-arm-elf 7ea9f71fee151194843ee36499b5c446 gcc/config/arm/t-linux ! c9bde8e67b668191093d4e206cdd9a5b gcc/config/arm/t-netbsd a38c693422d9e3e0bb4c4fb8dffcdabd gcc/config/arm/t-pe + cbb317a4a7cd4064b379cd1aa2aa96cd gcc/config/arm/t-rtems 1c820b92bc6549b7e31bfb7ab041cc21 gcc/config/arm/t-semi be87610100021f1329b99bc0d755c9b5 gcc/config/arm/t-strongarm-elf 2ade9b3cb641eb053c4ee8345e749d21 gcc/config/arm/t-strongarm-pe *************** d4b832c7aa27463b7c01fdd4a97e14cc gcc/co *** 2047,2066 **** b5e25aee99e6c3e5a02d16e35c3bdb4c gcc/config/arm/xscale-coff.h a44ceec913b6374da873a1e35bd09b76 gcc/config/arm/xscale-elf.h 00755ba12eb70fc9297effe31225a259 gcc/config/avr/avr-protos.h ! 51491b70c84055d7fdd5ad3bc5fe8fca gcc/config/avr/avr.c ee4ab8e5b9fd24e0f9756df7b38c2bbd gcc/config/avr/avr.h ! aec595a82af2dd4b3a35e28d869423a8 gcc/config/avr/avr.md 03b995ccfb9f42f4958999fddb3f2af9 gcc/config/avr/libgcc.S ! 17f1ff647dff158caceed8af8760fe3b gcc/config/avr/t-avr 7aee29431880721e88d5d34448ed980f gcc/config/c4x/c4x-c.c 9fcebfe82fd35cc045dc19a381087642 gcc/config/c4x/c4x-modes.def bec99aeeb55fb203d779799c92cb97b6 gcc/config/c4x/c4x-protos.h fd3cd34bfcc9ac4ba9abebe60bebcf3e gcc/config/c4x/c4x.c ! bc2328d9302a20bc2489c621abd01ab7 gcc/config/c4x/c4x.h cbc9498c90cd56d8828b4f9302138b0b gcc/config/c4x/c4x.md db4d38b6b73666d6246b1d13d88737ff gcc/config/c4x/libgcc.S 26c90a9d5977b200ec07ac587f4e10e8 gcc/config/c4x/rtems.h 4fdf00f5884edc1e3e534a63ea4c63e7 gcc/config/c4x/t-c4x 737a2a3d6832f92552c51f14df901ea0 gcc/config/chorus.h cd7ebb30894a53cd3affaf52411266d1 gcc/config/cris/aout.h c0124aeca2397b068b1bd9c7aae3ceba gcc/config/cris/arit.c --- 2048,2070 ---- b5e25aee99e6c3e5a02d16e35c3bdb4c gcc/config/arm/xscale-coff.h a44ceec913b6374da873a1e35bd09b76 gcc/config/arm/xscale-elf.h 00755ba12eb70fc9297effe31225a259 gcc/config/avr/avr-protos.h ! 47f992383436dc7b72f5c903d1e981b4 gcc/config/avr/avr.c ee4ab8e5b9fd24e0f9756df7b38c2bbd gcc/config/avr/avr.h ! 7358c66942e47acd5d21140c075ad433 gcc/config/avr/avr.md 03b995ccfb9f42f4958999fddb3f2af9 gcc/config/avr/libgcc.S ! 90768cd4cb6a0275699eacc523ee5cf1 gcc/config/avr/rtems.h ! cc7b1f402395964467ec99e81f88530f gcc/config/avr/t-avr ! 6aa29f64f366fd362ab1f548d54415cc gcc/config/avr/t-rtems 7aee29431880721e88d5d34448ed980f gcc/config/c4x/c4x-c.c 9fcebfe82fd35cc045dc19a381087642 gcc/config/c4x/c4x-modes.def bec99aeeb55fb203d779799c92cb97b6 gcc/config/c4x/c4x-protos.h fd3cd34bfcc9ac4ba9abebe60bebcf3e gcc/config/c4x/c4x.c ! 115ff00a7e2547086460e582cc88d0a3 gcc/config/c4x/c4x.h cbc9498c90cd56d8828b4f9302138b0b gcc/config/c4x/c4x.md db4d38b6b73666d6246b1d13d88737ff gcc/config/c4x/libgcc.S 26c90a9d5977b200ec07ac587f4e10e8 gcc/config/c4x/rtems.h 4fdf00f5884edc1e3e534a63ea4c63e7 gcc/config/c4x/t-c4x + 279bb82d95432acaf7f5a5a352c812fa gcc/config/c4x/t-rtems 737a2a3d6832f92552c51f14df901ea0 gcc/config/chorus.h cd7ebb30894a53cd3affaf52411266d1 gcc/config/cris/aout.h c0124aeca2397b068b1bd9c7aae3ceba gcc/config/cris/arit.c *************** a2355e2e8266b279cad6bf913c579a5f gcc/co *** 2108,2114 **** 4e833e43d8a4a49c563cf6f6a9e04dc7 gcc/config/fr30/lib1funcs.asm b11ea133da1b239a015796811b03e23b gcc/config/fr30/t-fr30 bf2176e1eee68deffe236a9735a8f3db gcc/config/freebsd-nthr.h ! 095482cd1713e11ab16e41308588e6fe gcc/config/freebsd-spec.h 99c3be8b7f1d7a86ba300ef7d0a5c1c8 gcc/config/freebsd.h acbf95585222995e750d460be6be625b gcc/config/frv/cmovd.c 5ca13398f66879cea3a8bb4050f50d3b gcc/config/frv/cmovh.c --- 2112,2118 ---- 4e833e43d8a4a49c563cf6f6a9e04dc7 gcc/config/fr30/lib1funcs.asm b11ea133da1b239a015796811b03e23b gcc/config/fr30/t-fr30 bf2176e1eee68deffe236a9735a8f3db gcc/config/freebsd-nthr.h ! 11c46d6f2c4cdc046e1d0d3b5b5d45bc gcc/config/freebsd-spec.h 99c3be8b7f1d7a86ba300ef7d0a5c1c8 gcc/config/freebsd.h acbf95585222995e750d460be6be625b gcc/config/frv/cmovd.c 5ca13398f66879cea3a8bb4050f50d3b gcc/config/frv/cmovh.c *************** d7d8c782b899d2204f2514b294680da9 gcc/co *** 2169,2181 **** 790bf7406867cce6a821adf63fa39d3c gcc/config/i386/cygming.h 53ea09f0520426453dce8c956f2a977c gcc/config/i386/cygwin.asm 07af59c661a925e3970e41e53259a37a gcc/config/i386/cygwin.h ! eea864280d070bd8436c86f2654054d8 gcc/config/i386/cygwin1.c 54754401e910c99d1f7511538c5ff139 gcc/config/i386/cygwin2.c 6c4605ee0785dbfb087cd1ce7971ee38 gcc/config/i386/darwin.h 7519670b1eecca211c908cdc9408b8eb gcc/config/i386/djgpp.h 3497d2fca4368efbb1bc9478c0c0f482 gcc/config/i386/emmintrin.h cab57e6c054354cef8eeda3be0749e09 gcc/config/i386/freebsd-aout.h ! 62adc44f6d77fb606e831ee05c802065 gcc/config/i386/freebsd.h 6d476ad513e9299cb75ab8b52a80a66f gcc/config/i386/freebsd64.h cf85b36bdb63fe7fdc4dcee66b5039e2 gcc/config/i386/gas.h 3d6c4acadac62736b94454830f7a63a4 gcc/config/i386/gmon-sol2.c --- 2173,2185 ---- 790bf7406867cce6a821adf63fa39d3c gcc/config/i386/cygming.h 53ea09f0520426453dce8c956f2a977c gcc/config/i386/cygwin.asm 07af59c661a925e3970e41e53259a37a gcc/config/i386/cygwin.h ! 1455938a0aa0fd1b7bfad25ecdc86747 gcc/config/i386/cygwin1.c 54754401e910c99d1f7511538c5ff139 gcc/config/i386/cygwin2.c 6c4605ee0785dbfb087cd1ce7971ee38 gcc/config/i386/darwin.h 7519670b1eecca211c908cdc9408b8eb gcc/config/i386/djgpp.h 3497d2fca4368efbb1bc9478c0c0f482 gcc/config/i386/emmintrin.h cab57e6c054354cef8eeda3be0749e09 gcc/config/i386/freebsd-aout.h ! 6c663fb39c44c552da2cc546096bf622 gcc/config/i386/freebsd.h 6d476ad513e9299cb75ab8b52a80a66f gcc/config/i386/freebsd64.h cf85b36bdb63fe7fdc4dcee66b5039e2 gcc/config/i386/gas.h 3d6c4acadac62736b94454830f7a63a4 gcc/config/i386/gmon-sol2.c *************** e1dff66831f5affa27a1f28e5386192d gcc/co *** 2186,2196 **** 72cec548264c865a141bd264bdc4fc1a gcc/config/i386/i386-coff.h 816e38540e286cd1b1bae60b44180394 gcc/config/i386/i386-interix.h 9c3634535b436138b84f40c4f8add917 gcc/config/i386/i386-interix3.h ! 23a503cc3aa922a8962eed0adb506c94 gcc/config/i386/i386-modes.def ! 9bc79e7140196dabab7f3533563ef58a gcc/config/i386/i386-protos.h ! 875b8bdcc0e89a2172539b0e5b652770 gcc/config/i386/i386.c ! 0a6d3d085a76b92330dde7853bc307fc gcc/config/i386/i386.h ! ee699268df70fc4c83c9d70a3ad67888 gcc/config/i386/i386.md 5ffe40ec341446d7b52d9632bda88b3c gcc/config/i386/i386elf.h 62ac88d540b38a9a4a45ad8fb13a2c69 gcc/config/i386/k6.md 3d01dc4d505f2b80a9ede0b2d1aa03d4 gcc/config/i386/kaos-i386.h --- 2190,2200 ---- 72cec548264c865a141bd264bdc4fc1a gcc/config/i386/i386-coff.h 816e38540e286cd1b1bae60b44180394 gcc/config/i386/i386-interix.h 9c3634535b436138b84f40c4f8add917 gcc/config/i386/i386-interix3.h ! fcb0439482e80b6fb6708e846894ea03 gcc/config/i386/i386-modes.def ! c38d472a2807e09469841fa80dc73e16 gcc/config/i386/i386-protos.h ! 85d9826e406ccd158c73ac47391f380c gcc/config/i386/i386.c ! 64c6389ebd32746f80009055a115e435 gcc/config/i386/i386.h ! ffc7f02fc93b997f366b967dffb0514f gcc/config/i386/i386.md 5ffe40ec341446d7b52d9632bda88b3c gcc/config/i386/i386elf.h 62ac88d540b38a9a4a45ad8fb13a2c69 gcc/config/i386/k6.md 3d01dc4d505f2b80a9ede0b2d1aa03d4 gcc/config/i386/kaos-i386.h *************** cdf9f292044aa82f45ca6f2690af96e6 gcc/co *** 2242,2248 **** 9689b3495212bdd336338c7c21bae688 gcc/config/i386/t-mingw32 12bfaf1a85f439b287c609d894b2daf1 gcc/config/i386/t-nto 9abfc00ef17b31f7b5211480044b9ca5 gcc/config/i386/t-openbsd ! b376172457472958a1f8789ca959dcc0 gcc/config/i386/t-rtems-i386 f7adf22341fac379f3784888c33bfa79 gcc/config/i386/t-sco5 4b2405526f0fb1bb057f5c94aae4c5c3 gcc/config/i386/t-sol2 82c942d4bb0ed544e14d2e46f33f2ec5 gcc/config/i386/t-svr3dbx --- 2246,2252 ---- 9689b3495212bdd336338c7c21bae688 gcc/config/i386/t-mingw32 12bfaf1a85f439b287c609d894b2daf1 gcc/config/i386/t-nto 9abfc00ef17b31f7b5211480044b9ca5 gcc/config/i386/t-openbsd ! 0e7a4689ed60fa9a7bc6e67d4d1eb469 gcc/config/i386/t-rtems-i386 f7adf22341fac379f3784888c33bfa79 gcc/config/i386/t-sco5 4b2405526f0fb1bb057f5c94aae4c5c3 gcc/config/i386/t-sol2 82c942d4bb0ed544e14d2e46f33f2ec5 gcc/config/i386/t-svr3dbx *************** ebe79e8a3811e474628e7e0e0f6d19be gcc/co *** 2291,2297 **** 2ea5d0d8d17961f9dd9e8f43a7f8361c gcc/config/ia64/ia64-c.c 64e66c4ca2de187c73ee29acfaa58dce gcc/config/ia64/ia64-modes.def 5a8a96ac67ae1451a506d6c02d8a8362 gcc/config/ia64/ia64-protos.h ! d331184b087f417c38550ab1728c5f69 gcc/config/ia64/ia64.c 8221e236274f1e0a3694ca9b43279069 gcc/config/ia64/ia64.h e885d34a0ced0946c776f7fbe3de3a32 gcc/config/ia64/ia64.md fe7f3a6aab48e459a74f8ab24519a4ac gcc/config/ia64/ia64intrin.h --- 2295,2301 ---- 2ea5d0d8d17961f9dd9e8f43a7f8361c gcc/config/ia64/ia64-c.c 64e66c4ca2de187c73ee29acfaa58dce gcc/config/ia64/ia64-modes.def 5a8a96ac67ae1451a506d6c02d8a8362 gcc/config/ia64/ia64-protos.h ! d938466bf74ae2631685daa50414829d gcc/config/ia64/ia64.c 8221e236274f1e0a3694ca9b43279069 gcc/config/ia64/ia64.h e885d34a0ced0946c776f7fbe3de3a32 gcc/config/ia64/ia64.md fe7f3a6aab48e459a74f8ab24519a4ac gcc/config/ia64/ia64intrin.h *************** dcebcd9b1d9b76ed614e5223aada7551 gcc/co *** 2306,2313 **** 94b96507e57d80762054d9373f628698 gcc/config/ia64/t-glibc-libunwind 3638f53930989a47e6c7e2eef5c411f6 gcc/config/ia64/t-hpux f49737944e0698f08cb88692e12d85f8 gcc/config/ia64/t-ia64 ! eeaa5a857cce8addad0ae324fa0c9536 gcc/config/ia64/unwind-ia64.c ! 736258182d2e7e25bc6506dd9a9f55bb gcc/config/ia64/unwind-ia64.h 8f26b389e7e9bdb442723ce7e1cf889b gcc/config/interix.h 0bf57f10baef2fb83f26d79c4d0b0f48 gcc/config/interix3.h 15155862f4a068eb6cf5a1de3a5414e8 gcc/config/ip2k/crt0.S --- 2310,2317 ---- 94b96507e57d80762054d9373f628698 gcc/config/ia64/t-glibc-libunwind 3638f53930989a47e6c7e2eef5c411f6 gcc/config/ia64/t-hpux f49737944e0698f08cb88692e12d85f8 gcc/config/ia64/t-ia64 ! 556fb6feea20157b9171ffaa398e6b57 gcc/config/ia64/unwind-ia64.c ! 83c10b57157589615d8cc0cf668c37a7 gcc/config/ia64/unwind-ia64.h 8f26b389e7e9bdb442723ce7e1cf889b gcc/config/interix.h 0bf57f10baef2fb83f26d79c4d0b0f48 gcc/config/interix3.h 15155862f4a068eb6cf5a1de3a5414e8 gcc/config/ip2k/crt0.S *************** a4d2d7d2b372ee519a4bb7f167b40641 gcc/co *** 2346,2356 **** 2cf39e4b12fa0ad92705a1541b27f234 gcc/config/m68hc11/larith.asm e4189515fd9cc06584fb07722c11ad97 gcc/config/m68hc11/m68hc11-crt0.S d0fccd1f2f2f01ae715c2512dcddddc8 gcc/config/m68hc11/m68hc11-protos.h ! b128109dc9ca03310c7169aefdcea791 gcc/config/m68hc11/m68hc11.c 80b189406d9beec4bddf8c60b34df12c gcc/config/m68hc11/m68hc11.h ! 44462f81d93c2c1d6c49da01c3ec0cc4 gcc/config/m68hc11/m68hc11.md a4fb550a8d5a48b85e5dd0d8b36312bd gcc/config/m68hc11/m68hc12.h ! 07954bea8040635671f07fdeaf95c2be gcc/config/m68hc11/t-m68hc11-gas 855065df2da8b466dddb832afd1ee1d1 gcc/config/m68k/coff.h a8d7619893f57775eaa1c41c8d162394 gcc/config/m68k/crti.s 1704b72f91721465cb4e1595eabbc96e gcc/config/m68k/crtn.s --- 2350,2360 ---- 2cf39e4b12fa0ad92705a1541b27f234 gcc/config/m68hc11/larith.asm e4189515fd9cc06584fb07722c11ad97 gcc/config/m68hc11/m68hc11-crt0.S d0fccd1f2f2f01ae715c2512dcddddc8 gcc/config/m68hc11/m68hc11-protos.h ! 369b550eb603e8a1d8f74acf56443561 gcc/config/m68hc11/m68hc11.c 80b189406d9beec4bddf8c60b34df12c gcc/config/m68hc11/m68hc11.h ! 21a0fdc1c8558ad2334883622be99142 gcc/config/m68hc11/m68hc11.md a4fb550a8d5a48b85e5dd0d8b36312bd gcc/config/m68hc11/m68hc12.h ! 0bc2adfc56a4f29ef00fdb03c52a9614 gcc/config/m68hc11/t-m68hc11-gas 855065df2da8b466dddb832afd1ee1d1 gcc/config/m68k/coff.h a8d7619893f57775eaa1c41c8d162394 gcc/config/m68k/crti.s 1704b72f91721465cb4e1595eabbc96e gcc/config/m68k/crtn.s *************** fe4f7dc0d15d86adb28e1948cbdf9c52 gcc/co *** 2382,2388 **** 24e375f411f35a73cacf2ee33b4bde26 gcc/config/m68k/t-m68kbare abcc59077f1d1920140fec58a5f5b19c gcc/config/m68k/t-m68kelf 6dc1bdac2a817f97d98ddda8c0715b01 gcc/config/m68k/t-openbsd ! fb3cf1c6d40474f87039394ca55d9a27 gcc/config/m68k/t-rtems 4e281c631e54b8912258f84196fec9e6 gcc/config/m68k/t-slibgcc-elf-ver 131f87f1a2db51ac653aeea4f3e2a774 gcc/config/m68k/t-uclinux 09bd7397484de8dc53b51d6e8dc986ce gcc/config/m68k/uclinux.h --- 2386,2392 ---- 24e375f411f35a73cacf2ee33b4bde26 gcc/config/m68k/t-m68kbare abcc59077f1d1920140fec58a5f5b19c gcc/config/m68k/t-m68kelf 6dc1bdac2a817f97d98ddda8c0715b01 gcc/config/m68k/t-openbsd ! a21380e3e9882a8eab6009d1d07bf4f2 gcc/config/m68k/t-rtems 4e281c631e54b8912258f84196fec9e6 gcc/config/m68k/t-slibgcc-elf-ver 131f87f1a2db51ac653aeea4f3e2a774 gcc/config/m68k/t-uclinux 09bd7397484de8dc53b51d6e8dc986ce gcc/config/m68k/uclinux.h *************** c8d44836220b6f4a57929907c98b08a8 gcc/co *** 2421,2450 **** 76fc30a7a040c322fe0a26b567987af3 gcc/config/mips/linux64.h f33c0228bbcfa36f548c647c5bd65519 gcc/config/mips/mips-modes.def 305ee3824846fce68c93d482a6e2bd6f gcc/config/mips/mips-protos.h ! 18657ab85cd5f5ff748fc50cfa4c1635 gcc/config/mips/mips.c 85d78224da078d6b9f1a5e1d0727a120 gcc/config/mips/mips.h ! bd6396bc95b8605b361ae670351dc145 gcc/config/mips/mips.md d299778f4ca31c7cd3ac283066382595 gcc/config/mips/mips16.S ab4cb66144b038d6739168ef4402c35c gcc/config/mips/netbsd.h 0a69e319493a873918100a6bfa1bb96b gcc/config/mips/openbsd.h 2166bb35c6385f47c73500081eb4cf86 gcc/config/mips/r3900.h ! df5f2da58869fc1abaaa76608b49fe73 gcc/config/mips/rtems.h 162237af074f7e28d3085a1333465e16 gcc/config/mips/sdb.h 93247aef5e3c3b7406fbd6dcf2c22e1b gcc/config/mips/sr71k.md c374af376daf2438512f7e59fb7afecc gcc/config/mips/t-cross64 d5e295ebb70908142b0b3980596671cb gcc/config/mips/t-elf 41a59bc0317c1fc34a93b74695f4879b gcc/config/mips/t-gofast ed96473f0d376434f95534ae32043186 gcc/config/mips/t-iris ! b17ae64d9de3c78127a255f2e9256f5f gcc/config/mips/t-iris5-6 8d9c52a313c8dda148febb3df5290628 gcc/config/mips/t-iris5-as 33e8bea4ccb3cec5965fc14eff836345 gcc/config/mips/t-iris5-gas ! 0400d6c41914d7ab711b4c0255f194d1 gcc/config/mips/t-iris6 77e1e72efff52fbc31614e04edf89b22 gcc/config/mips/t-irix-gld 10342797d8fec11617f3e7c7b3f73262 gcc/config/mips/t-isa3264 d6db892422fb0c2ea46c8b84872f54f0 gcc/config/mips/t-linux64 714dc7318069f8a2a1da3d1ef6753696 gcc/config/mips/t-mips 78731a3fc072919a3136edb1bce8d0b8 gcc/config/mips/t-r3900 ! 73320fd2e7ab70c3cfcd3861451975a3 gcc/config/mips/t-rtems b0c5ffe42447cd0fba0800583dfb447e gcc/config/mips/t-sr71k 3d2ba3cbe2e671727cb92956c510ff91 gcc/config/mips/t-vr 59987eb573fab94df469dd55978c8ff2 gcc/config/mips/t-vxworks --- 2425,2454 ---- 76fc30a7a040c322fe0a26b567987af3 gcc/config/mips/linux64.h f33c0228bbcfa36f548c647c5bd65519 gcc/config/mips/mips-modes.def 305ee3824846fce68c93d482a6e2bd6f gcc/config/mips/mips-protos.h ! 67c96503596297539a7e0560f17e3d62 gcc/config/mips/mips.c 85d78224da078d6b9f1a5e1d0727a120 gcc/config/mips/mips.h ! e78a822b77983abec58aa8db0b8e808f gcc/config/mips/mips.md d299778f4ca31c7cd3ac283066382595 gcc/config/mips/mips16.S ab4cb66144b038d6739168ef4402c35c gcc/config/mips/netbsd.h 0a69e319493a873918100a6bfa1bb96b gcc/config/mips/openbsd.h 2166bb35c6385f47c73500081eb4cf86 gcc/config/mips/r3900.h ! ed17df716c4a394e911f4f2233405a74 gcc/config/mips/rtems.h 162237af074f7e28d3085a1333465e16 gcc/config/mips/sdb.h 93247aef5e3c3b7406fbd6dcf2c22e1b gcc/config/mips/sr71k.md c374af376daf2438512f7e59fb7afecc gcc/config/mips/t-cross64 d5e295ebb70908142b0b3980596671cb gcc/config/mips/t-elf 41a59bc0317c1fc34a93b74695f4879b gcc/config/mips/t-gofast ed96473f0d376434f95534ae32043186 gcc/config/mips/t-iris ! 07e2264d098020e54186c743501c841f gcc/config/mips/t-iris5-6 8d9c52a313c8dda148febb3df5290628 gcc/config/mips/t-iris5-as 33e8bea4ccb3cec5965fc14eff836345 gcc/config/mips/t-iris5-gas ! 0081d255880f0f1048adbfc45b11fe78 gcc/config/mips/t-iris6 77e1e72efff52fbc31614e04edf89b22 gcc/config/mips/t-irix-gld 10342797d8fec11617f3e7c7b3f73262 gcc/config/mips/t-isa3264 d6db892422fb0c2ea46c8b84872f54f0 gcc/config/mips/t-linux64 714dc7318069f8a2a1da3d1ef6753696 gcc/config/mips/t-mips 78731a3fc072919a3136edb1bce8d0b8 gcc/config/mips/t-r3900 ! 6df9a9e50ef0f9860def1cb1da901ec8 gcc/config/mips/t-rtems b0c5ffe42447cd0fba0800583dfb447e gcc/config/mips/t-sr71k 3d2ba3cbe2e671727cb92956c510ff91 gcc/config/mips/t-vr 59987eb573fab94df469dd55978c8ff2 gcc/config/mips/t-vxworks *************** bf93af7e121e2f0ea7c6132e44ade110 gcc/co *** 2455,2462 **** c1bab78e87b655044a66a6e51920a5fb gcc/config/mmix/crtn.asm 02554659568fc4120a81d73131c88910 gcc/config/mmix/mmix-modes.def 179dd5c788272fc5c6f0d28bce67ae90 gcc/config/mmix/mmix-protos.h ! eb4cff246ecd19d5c6472a54438cd404 gcc/config/mmix/mmix.c ! 6707e4d74932c2967e4119058dba673a gcc/config/mmix/mmix.h 05622b80a7d3aa8f16e0a67b21ceaba4 gcc/config/mmix/mmix.md 5ce13841c595af0f47c4466df9be3178 gcc/config/mmix/t-mmix 950f3d9bafa20f135dcb97e8b3008782 gcc/config/mn10300/linux.h --- 2459,2466 ---- c1bab78e87b655044a66a6e51920a5fb gcc/config/mmix/crtn.asm 02554659568fc4120a81d73131c88910 gcc/config/mmix/mmix-modes.def 179dd5c788272fc5c6f0d28bce67ae90 gcc/config/mmix/mmix-protos.h ! cbfed2532a04fbe5156cf66b440d1060 gcc/config/mmix/mmix.c ! 12e77a1cb5077ea4ee3b1bc7c6433215 gcc/config/mmix/mmix.h 05622b80a7d3aa8f16e0a67b21ceaba4 gcc/config/mmix/mmix.md 5ce13841c595af0f47c4466df9be3178 gcc/config/mmix/t-mmix 950f3d9bafa20f135dcb97e8b3008782 gcc/config/mn10300/linux.h *************** c27337888945f8fb651f229d5161d02e gcc/co *** 2494,2503 **** b79db2bdff3ce59678cce0a5c7e2467c gcc/config/pa/pa-modes.def 862c6e19897c6a0a0f32163fe2c231b5 gcc/config/pa/pa-osf.h 5df394c483d137380a05dda57a118381 gcc/config/pa/pa-pro-end.h ! 08b3b3bee80e09bba9c9c8468a2e0b32 gcc/config/pa/pa-protos.h ! 996da2974f7384214a6d7b00b6c6e32c gcc/config/pa/pa.c ! d5ffc22f97efe08293419c09c6b0bea5 gcc/config/pa/pa.h ! ae09261d69c052ccce9ad11c2843402a gcc/config/pa/pa.md e1b345e438499b00ac01d9929c6f9870 gcc/config/pa/pa32-linux.h 6181a58a8cc47f511d232097ae22fa86 gcc/config/pa/pa32-regs.h aac038c1ddaf0561100958e71c855886 gcc/config/pa/pa64-hpux.h --- 2498,2507 ---- b79db2bdff3ce59678cce0a5c7e2467c gcc/config/pa/pa-modes.def 862c6e19897c6a0a0f32163fe2c231b5 gcc/config/pa/pa-osf.h 5df394c483d137380a05dda57a118381 gcc/config/pa/pa-pro-end.h ! 685246344d4b9cba85ee523be344a44b gcc/config/pa/pa-protos.h ! 6adf9646aa9f60b1ac74c1ccac4f16fe gcc/config/pa/pa.c ! f01848c70d2b24bdb980ed37acc434ee gcc/config/pa/pa.h ! 248c3655951140bb54a8a910054f27a1 gcc/config/pa/pa.md e1b345e438499b00ac01d9929c6f9870 gcc/config/pa/pa32-linux.h 6181a58a8cc47f511d232097ae22fa86 gcc/config/pa/pa32-regs.h aac038c1ddaf0561100958e71c855886 gcc/config/pa/pa64-hpux.h *************** c5bf1b16987ea3e6390b65784f3a4b6a gcc/co *** 2506,2514 **** a25807809b4fc78f47de63da8e52a14a gcc/config/pa/pa64-start.h dff932eb9704f6fbcd289e8f4c47b4da gcc/config/pa/quadlib.c c265f7851c0e0620098276f5f31521b3 gcc/config/pa/rtems.h ! fd4532420fa5f3da5ffd856bc7eb68e1 gcc/config/pa/som.h 504fb8ee781c6f20c7a2b7ecfb8f3554 gcc/config/pa/t-dce-thr ! ed6bf19c8dad12d4ea856f4f57c264dd gcc/config/pa/t-hpux-shlib b513dd09b88c32ec68b0a5560392b661 gcc/config/pa/t-linux 015886f6086f4ace3337cdc1103513dc gcc/config/pa/t-linux64 22df8873a0ad9aa1be45fc3aa389a2bd gcc/config/pa/t-pa --- 2510,2518 ---- a25807809b4fc78f47de63da8e52a14a gcc/config/pa/pa64-start.h dff932eb9704f6fbcd289e8f4c47b4da gcc/config/pa/quadlib.c c265f7851c0e0620098276f5f31521b3 gcc/config/pa/rtems.h ! e9093e7f8b1ff8aaed14d98e6ede8c6b gcc/config/pa/som.h 504fb8ee781c6f20c7a2b7ecfb8f3554 gcc/config/pa/t-dce-thr ! 1a68c9aa85898e55b8289f52d4cde0bf gcc/config/pa/t-hpux-shlib b513dd09b88c32ec68b0a5560392b661 gcc/config/pa/t-linux 015886f6086f4ace3337cdc1103513dc gcc/config/pa/t-linux64 22df8873a0ad9aa1be45fc3aa389a2bd gcc/config/pa/t-pa *************** e42f365c4dc68d9be4c0da14d3a64eab gcc/co *** 2532,2549 **** 563a43cef8bad0c3e79af2fef4aea0f8 gcc/config/rs6000/7450.md ceab8b224fb0569f2db82943ca1111ae gcc/config/rs6000/7xx.md 693312ae877ed987307571b1eebf7f7d gcc/config/rs6000/8540.md ! 78c8f52e778fb3f315ca01a5173eff44 gcc/config/rs6000/aix.h ! 6f75d6ce45e79ee33b8d086538d53fea gcc/config/rs6000/aix41.h ! f99fed51a3cf6c24f13b7a9356ccccf5 gcc/config/rs6000/aix43.h 0641a4c121ec609305c7fcc6b1869117 gcc/config/rs6000/aix51.h ! efab506ed61b9795ec3f198cabf521ee gcc/config/rs6000/aix52.h f7ae12fa308ce5b1195abb20101ddec7 gcc/config/rs6000/altivec-defs.h 05224225702a90e33adf95bc69b1f0df gcc/config/rs6000/altivec.h 193acd5cbc5f449cc827e33001d32c8f gcc/config/rs6000/altivec.md ! 7e84a7177f7527c1b289109dcddb64c2 gcc/config/rs6000/beos.h 5e7b07b7ea0018a0772373b56e518603 gcc/config/rs6000/biarch64.h e53c25b00eba3d11048da25e8b1d20e3 gcc/config/rs6000/crtsavres.asm ! 8595c2d7db07b66d65a36f149162f054 gcc/config/rs6000/darwin-ldouble.c c330fd6e7176747ff3f36ecebe0ce7af gcc/config/rs6000/darwin-tramp.asm 463ebb2c33d561c9432c16b13c21be86 gcc/config/rs6000/darwin.h de31840d2de0f2dd095788f035caf5ac gcc/config/rs6000/default64.h --- 2536,2554 ---- 563a43cef8bad0c3e79af2fef4aea0f8 gcc/config/rs6000/7450.md ceab8b224fb0569f2db82943ca1111ae gcc/config/rs6000/7xx.md 693312ae877ed987307571b1eebf7f7d gcc/config/rs6000/8540.md ! 72dc81519459a5503be1839e3317aa9d gcc/config/rs6000/aix.h ! 62e8e500baf551552c57fa37cf0ec9f0 gcc/config/rs6000/aix41.h ! 79ed758b388052c4df7a9929637e273b gcc/config/rs6000/aix43.h 0641a4c121ec609305c7fcc6b1869117 gcc/config/rs6000/aix51.h ! 2696df4db2028aa8cc2576ead4a24d20 gcc/config/rs6000/aix52.h f7ae12fa308ce5b1195abb20101ddec7 gcc/config/rs6000/altivec-defs.h 05224225702a90e33adf95bc69b1f0df gcc/config/rs6000/altivec.h 193acd5cbc5f449cc827e33001d32c8f gcc/config/rs6000/altivec.md ! 58626286fe03829af72b9f202dbcb89b gcc/config/rs6000/beos.h 5e7b07b7ea0018a0772373b56e518603 gcc/config/rs6000/biarch64.h e53c25b00eba3d11048da25e8b1d20e3 gcc/config/rs6000/crtsavres.asm ! 9a7eab422f83e67fa1f34e3cffbda427 gcc/config/rs6000/darwin-ldouble-shared.c ! 621045d4ac3fb45e42e4dbb2982c5e32 gcc/config/rs6000/darwin-ldouble.c c330fd6e7176747ff3f36ecebe0ce7af gcc/config/rs6000/darwin-tramp.asm 463ebb2c33d561c9432c16b13c21be86 gcc/config/rs6000/darwin.h de31840d2de0f2dd095788f035caf5ac gcc/config/rs6000/default64.h *************** f96e6ec2a04f9e35a918ea38114f44ff gcc/co *** 2558,2566 **** 4f85feb798be4b89d8e601904d386bb0 gcc/config/rs6000/gnu.h d316211dc3e4a7b1e9a5b7b8d5ebf3c5 gcc/config/rs6000/host-darwin.c da9f2136f559a122795f556795cfd9c7 gcc/config/rs6000/kaos-ppc.h ! 0dbf93569d415611fabe66bb70dfdcf2 gcc/config/rs6000/libgcc-ppc64.ver ! a738fa5f3c3cb3cecd1c8b5cd47d76fe gcc/config/rs6000/linux.h ! 9fb7fd32cdc2542e05b00dfc028fe34c gcc/config/rs6000/linux64.h ca186f2d12c7ece629ce74ff5ebd8d57 gcc/config/rs6000/linuxaltivec.h 49c493b2aa91786c8fc7be0f50a6cf55 gcc/config/rs6000/linuxspe.h facfd092f47e8807d3c91d76b39b6ac7 gcc/config/rs6000/lynx.h --- 2563,2572 ---- 4f85feb798be4b89d8e601904d386bb0 gcc/config/rs6000/gnu.h d316211dc3e4a7b1e9a5b7b8d5ebf3c5 gcc/config/rs6000/host-darwin.c da9f2136f559a122795f556795cfd9c7 gcc/config/rs6000/kaos-ppc.h ! 7aa6f4e782960be3e2b43998ef395330 gcc/config/rs6000/libgcc-ppc64.ver ! 8ad018da6398a62b4dfa14f468fe1c84 gcc/config/rs6000/linux-unwind.h ! 0f715950e26a98a60e82a8d1c233cc14 gcc/config/rs6000/linux.h ! 55bec5232adb0d5c7c616c2bc8d17e7a gcc/config/rs6000/linux64.h ca186f2d12c7ece629ce74ff5ebd8d57 gcc/config/rs6000/linuxaltivec.h 49c493b2aa91786c8fc7be0f50a6cf55 gcc/config/rs6000/linuxspe.h facfd092f47e8807d3c91d76b39b6ac7 gcc/config/rs6000/lynx.h *************** cad3e0a6d5d6414f5f20a73fee037e27 gcc/co *** 2574,2607 **** e01aa578b9a0a1ad2d58bb7154b6b75c gcc/config/rs6000/ppc64-fp.c 62ff5a4b38545da7beaea2664d0f50f6 gcc/config/rs6000/rios1.md e3c80d8d4e193edc7b033193cc3a9df0 gcc/config/rs6000/rios2.md ! c24dc8fe34068aeab43a2ab0c5fa7c85 gcc/config/rs6000/rs6000-c.c 2f8b4e7b226eb02133f6c2b65f867f21 gcc/config/rs6000/rs6000-modes.def 2518f1792b085e951b55c05c13391da8 gcc/config/rs6000/rs6000-protos.h ! 90ea33fcb31722fbc253c3ba5bf15e3a gcc/config/rs6000/rs6000.c ! 3d183c6e169bf2ff6ac9f29a378d0b94 gcc/config/rs6000/rs6000.h ! c8222c7f4ae79bcbc68429580967a585 gcc/config/rs6000/rs6000.md 022825bbdaad18680fe32e0dd4b693bf gcc/config/rs6000/rs64.md ! 73b686d454451acedb434f8ed48a8e0b gcc/config/rs6000/rtems.h 7a8546dc092c2e0a033f4b7cc7869fbf gcc/config/rs6000/sol-ci.asm c33918bb488efdc2f45bc68097d0c0c1 gcc/config/rs6000/sol-cn.asm fc68ddb8310668f910a1bd6668b7b2ca gcc/config/rs6000/spe.h 3ee4e9c6f21d3105fedb8d16d3a12788 gcc/config/rs6000/spe.md ! e292fc4b5ac51fb9e25071f41aac52cf gcc/config/rs6000/sysv4.h c6acb0c963a6bdadf515c9394f7a08c3 gcc/config/rs6000/sysv4le.h ! 2a3f2a5192f151f7dec46de7e78b315e gcc/config/rs6000/t-aix43 ! 84def8776c0e018d10c389bc777559c3 gcc/config/rs6000/t-aix52 ec4380f6ed553077f33577f7bbaa30d1 gcc/config/rs6000/t-beos 50967a7b6e0566dfb0f387d25f466aea gcc/config/rs6000/t-darwin c16e6288fb9b5afba181974ccd9ca5cd gcc/config/rs6000/t-fprules ! af5e3d318edacb7d0c8d957d005c0b47 gcc/config/rs6000/t-linux64 5c45aee77bb799356d9f2ce892350021 gcc/config/rs6000/t-netbsd ! 1592fe0774f1cd8e8e0b7685670cbd62 gcc/config/rs6000/t-newas 6d56f068aa410b3bde020ca31fc092b8 gcc/config/rs6000/t-ppccomm b8c287dddae5e63bdbe4aa255348541f gcc/config/rs6000/t-ppcendian 4b04e095dbd46aa9f97ea23e3682f902 gcc/config/rs6000/t-ppcgas 1b8aba690a39464c4ea9c647d73d6983 gcc/config/rs6000/t-ppcos 32455d65d4625b4d6054756aadddd40a gcc/config/rs6000/t-rs6000 ! 325c599a85995fe0f35a542520315388 gcc/config/rs6000/t-rtems f4705b3cd8498a0b439e98a74ef45a9a gcc/config/rs6000/t-spe dbb0e58a422a2c1fcbf01fa1b11da737 gcc/config/rs6000/t-vxworks 10170ecf836dff4c591070311ff8d766 gcc/config/rs6000/tramp.asm --- 2580,2613 ---- e01aa578b9a0a1ad2d58bb7154b6b75c gcc/config/rs6000/ppc64-fp.c 62ff5a4b38545da7beaea2664d0f50f6 gcc/config/rs6000/rios1.md e3c80d8d4e193edc7b033193cc3a9df0 gcc/config/rs6000/rios2.md ! b5daf436c50dda3342214be328ddffee gcc/config/rs6000/rs6000-c.c 2f8b4e7b226eb02133f6c2b65f867f21 gcc/config/rs6000/rs6000-modes.def 2518f1792b085e951b55c05c13391da8 gcc/config/rs6000/rs6000-protos.h ! 0251304f1b4f844016e1e3b829bc5599 gcc/config/rs6000/rs6000.c ! 02d2fd5baa1093c99e42dd286aae8802 gcc/config/rs6000/rs6000.h ! ad01e42f7ff42b4dedab00394bac5425 gcc/config/rs6000/rs6000.md 022825bbdaad18680fe32e0dd4b693bf gcc/config/rs6000/rs64.md ! a61b8c3e0135cbc4384dfecb35d92e2e gcc/config/rs6000/rtems.h 7a8546dc092c2e0a033f4b7cc7869fbf gcc/config/rs6000/sol-ci.asm c33918bb488efdc2f45bc68097d0c0c1 gcc/config/rs6000/sol-cn.asm fc68ddb8310668f910a1bd6668b7b2ca gcc/config/rs6000/spe.h 3ee4e9c6f21d3105fedb8d16d3a12788 gcc/config/rs6000/spe.md ! e50d74aca5a371e72965282c3af43a8f gcc/config/rs6000/sysv4.h c6acb0c963a6bdadf515c9394f7a08c3 gcc/config/rs6000/sysv4le.h ! 29355f6023bda33f62d71efaf0066d54 gcc/config/rs6000/t-aix43 ! 0e448aca8d4aa71ac585187b0937011c gcc/config/rs6000/t-aix52 ec4380f6ed553077f33577f7bbaa30d1 gcc/config/rs6000/t-beos 50967a7b6e0566dfb0f387d25f466aea gcc/config/rs6000/t-darwin c16e6288fb9b5afba181974ccd9ca5cd gcc/config/rs6000/t-fprules ! e7bef416758fe1ed285d159bd6eb1127 gcc/config/rs6000/t-linux64 5c45aee77bb799356d9f2ce892350021 gcc/config/rs6000/t-netbsd ! 9ad2efda7a6d4d0f1c7479f2b1476ea6 gcc/config/rs6000/t-newas 6d56f068aa410b3bde020ca31fc092b8 gcc/config/rs6000/t-ppccomm b8c287dddae5e63bdbe4aa255348541f gcc/config/rs6000/t-ppcendian 4b04e095dbd46aa9f97ea23e3682f902 gcc/config/rs6000/t-ppcgas 1b8aba690a39464c4ea9c647d73d6983 gcc/config/rs6000/t-ppcos 32455d65d4625b4d6054756aadddd40a gcc/config/rs6000/t-rs6000 ! 2be013a722ad6aa50841afc53c5660b2 gcc/config/rs6000/t-rtems f4705b3cd8498a0b439e98a74ef45a9a gcc/config/rs6000/t-spe dbb0e58a422a2c1fcbf01fa1b11da737 gcc/config/rs6000/t-vxworks 10170ecf836dff4c591070311ff8d766 gcc/config/rs6000/tramp.asm *************** eeefd7039de87aa25aa1b1c6c11c2115 gcc/co *** 2620,2631 **** e8eaae67381efe49f38462c3d80aab04 gcc/config/s390/s390-protos.h 625ae1463a806417448358cd1fa38b78 gcc/config/s390/s390.c 3cbf3ce14cf9a12df43584dcaad6a189 gcc/config/s390/s390.h ! 55e171dc30784154a81e7f76aed64910 gcc/config/s390/s390.md 96bcc569e3d9eebb88a508768a5e540a gcc/config/s390/s390x.h da95f4fa0b0ee7d381f39f1bad0c6eba gcc/config/s390/t-crtstuff a4d892ee3aa5b2422dbb80fa4e5c8885 gcc/config/s390/t-linux64 cb43ce73d409c1ca76f8420448a377d0 gcc/config/s390/t-tpf ! c2033c6a6bcdc37be8a9f18ab3a59c56 gcc/config/s390/tpf.h 134619fe9d10cbcb81ea6c221bbba3d9 gcc/config/sh/coff.h 1f61b4e21ab5b15a11753b82252bc4f0 gcc/config/sh/crt1.asm f8ff2d24f238f9d34f2d373a85654a0c gcc/config/sh/crti.asm --- 2626,2637 ---- e8eaae67381efe49f38462c3d80aab04 gcc/config/s390/s390-protos.h 625ae1463a806417448358cd1fa38b78 gcc/config/s390/s390.c 3cbf3ce14cf9a12df43584dcaad6a189 gcc/config/s390/s390.h ! f41b5d9cccfe49653743197782996a69 gcc/config/s390/s390.md 96bcc569e3d9eebb88a508768a5e540a gcc/config/s390/s390x.h da95f4fa0b0ee7d381f39f1bad0c6eba gcc/config/s390/t-crtstuff a4d892ee3aa5b2422dbb80fa4e5c8885 gcc/config/s390/t-linux64 cb43ce73d409c1ca76f8420448a377d0 gcc/config/s390/t-tpf ! cf3aff05f62994b46f636fdbdb4e84a4 gcc/config/s390/tpf.h 134619fe9d10cbcb81ea6c221bbba3d9 gcc/config/sh/coff.h 1f61b4e21ab5b15a11753b82252bc4f0 gcc/config/sh/crt1.asm f8ff2d24f238f9d34f2d373a85654a0c gcc/config/sh/crti.asm *************** f103e349c8ba0200958d1213ab8d3de6 gcc/co *** 2652,2658 **** 7925692b53afb982a170ece73470aafb gcc/config/sh/t-be 1157ceb83a14f8d530611cd43bcccc48 gcc/config/sh/t-elf f58a4b39243e873f18ba5acf3bd02039 gcc/config/sh/t-le ! e3570d2a3c8b832f4cbe13d0bf75476c gcc/config/sh/t-linux 05933f7f72f996d1526360e1ae1a79a2 gcc/config/sh/t-monolib 67ce97b242853ada234ca99df198ca12 gcc/config/sh/t-netbsd 1da7c986f036e432f00501f55eb43c37 gcc/config/sh/t-netbsd-sh5 --- 2658,2664 ---- 7925692b53afb982a170ece73470aafb gcc/config/sh/t-be 1157ceb83a14f8d530611cd43bcccc48 gcc/config/sh/t-elf f58a4b39243e873f18ba5acf3bd02039 gcc/config/sh/t-le ! 7731245ed0ac6dc1feb9ecd99517ff52 gcc/config/sh/t-linux 05933f7f72f996d1526360e1ae1a79a2 gcc/config/sh/t-monolib 67ce97b242853ada234ca99df198ca12 gcc/config/sh/t-netbsd 1da7c986f036e432f00501f55eb43c37 gcc/config/sh/t-netbsd-sh5 *************** ffc0b6716f91bcf3cff2caf72c99c1b5 gcc/co *** 2700,2706 **** 30b31a9e109437b10fdc3c1325def7ac gcc/config/sparc/sp86x-elf.h ee2d5eebea83685cb939e1d1d7dbc5d3 gcc/config/sparc/sparc-modes.def 4f8992e2f9b3ca37e7a125a744a9b909 gcc/config/sparc/sparc-protos.h ! 41dd653556b90020b2a3686770225eee gcc/config/sparc/sparc.c aefc9b64b156e720e357113a164eaf93 gcc/config/sparc/sparc.h 8ad5c7d48755e1c5fcb4ddcbc1e83a3e gcc/config/sparc/sparc.md 9b0cb9f2cb03683a096d9494293e4295 gcc/config/sparc/sparclet.md --- 2706,2712 ---- 30b31a9e109437b10fdc3c1325def7ac gcc/config/sparc/sp86x-elf.h ee2d5eebea83685cb939e1d1d7dbc5d3 gcc/config/sparc/sparc-modes.def 4f8992e2f9b3ca37e7a125a744a9b909 gcc/config/sparc/sparc-protos.h ! 2df5951bfae096216c81537853c52880 gcc/config/sparc/sparc.c aefc9b64b156e720e357113a164eaf93 gcc/config/sparc/sparc.h 8ad5c7d48755e1c5fcb4ddcbc1e83a3e gcc/config/sparc/sparc.md 9b0cb9f2cb03683a096d9494293e4295 gcc/config/sparc/sparclet.md *************** aefc9b64b156e720e357113a164eaf93 gcc/co *** 2708,2714 **** 11832fe821d55283ce56beea7ad922fe gcc/config/sparc/sysv4-only.h ecff789a492d64ec9149c06056a19e43 gcc/config/sparc/sysv4.h ea7daa17a613a41bfe721bba0ab4e86e gcc/config/sparc/t-crtfm ! 2be142a15db1f17ab7b3629070e2fb10 gcc/config/sparc/t-elf ade54ac9be7dbef6e4427f29cb3d3f93 gcc/config/sparc/t-linux64 6f3f7caa856cae3d0684d223928518cf gcc/config/sparc/t-netbsd64 8b356fc61bbcbe16836e72ecdbc79da0 gcc/config/sparc/t-openbsd --- 2714,2720 ---- 11832fe821d55283ce56beea7ad922fe gcc/config/sparc/sysv4-only.h ecff789a492d64ec9149c06056a19e43 gcc/config/sparc/sysv4.h ea7daa17a613a41bfe721bba0ab4e86e gcc/config/sparc/t-crtfm ! 858b81947397cb7b1eea2c16f1f87dc3 gcc/config/sparc/t-elf ade54ac9be7dbef6e4427f29cb3d3f93 gcc/config/sparc/t-linux64 6f3f7caa856cae3d0684d223928518cf gcc/config/sparc/t-netbsd64 8b356fc61bbcbe16836e72ecdbc79da0 gcc/config/sparc/t-openbsd *************** c8e307e8ac576d4b0aee46452bf0c655 gcc/co *** 2735,2751 **** 46a93030da9b91a06f6a8d7e0626f650 gcc/config/t-libc-ok 2cb2759c288637060c10b81b36246d92 gcc/config/t-libgcc-pic 752b06967c2c98ca6d2e86e1db9bb4fc gcc/config/t-libunwind ! df302c7ef7c95a4be212176058cff44e gcc/config/t-libunwind-elf 88f30960537d05ea858fbd4641a2e845 gcc/config/t-linux 012c2149fbe5852a7cf303d3c65e458f gcc/config/t-linux-gnulibc1 2dde17f4e3667ba8384394397d2e3147 gcc/config/t-netbsd 24a2b54375feedb5eb220cf5e34d956c gcc/config/t-openbsd 6ebbcc6f5bc93a7e72157a6d9eb2b151 gcc/config/t-openbsd-thread 41115ab7ca3dcd1adeb9a2e03da42f38 gcc/config/t-rtems ! 4020ebb8fd05fa4ba063791a379707ed gcc/config/t-slibgcc-darwin ! ad08a9cedb5ef2571602fb11c99a3af6 gcc/config/t-slibgcc-elf-ver b5d3fe85dff400a82befa6b901b438ec gcc/config/t-slibgcc-nolc-override ! d96782b8ea633c8db7bbf445629c922d gcc/config/t-slibgcc-sld 2549dfa298e48e738d53d1736544bd5f gcc/config/t-svr4 2d52a710de52f4c0ba1806c5a6ebfe01 gcc/config/t-vxworks 17fd5cabcc31b720b23bad47cf7fe84c gcc/config/tm-dwarf2.h --- 2741,2757 ---- 46a93030da9b91a06f6a8d7e0626f650 gcc/config/t-libc-ok 2cb2759c288637060c10b81b36246d92 gcc/config/t-libgcc-pic 752b06967c2c98ca6d2e86e1db9bb4fc gcc/config/t-libunwind ! 696da632ceddd61a679e6a193d1575d8 gcc/config/t-libunwind-elf 88f30960537d05ea858fbd4641a2e845 gcc/config/t-linux 012c2149fbe5852a7cf303d3c65e458f gcc/config/t-linux-gnulibc1 2dde17f4e3667ba8384394397d2e3147 gcc/config/t-netbsd 24a2b54375feedb5eb220cf5e34d956c gcc/config/t-openbsd 6ebbcc6f5bc93a7e72157a6d9eb2b151 gcc/config/t-openbsd-thread 41115ab7ca3dcd1adeb9a2e03da42f38 gcc/config/t-rtems ! c8665e004c5f864ac3f6c7becc976114 gcc/config/t-slibgcc-darwin ! f90d6a94203dfc75190fc55b7cb07c12 gcc/config/t-slibgcc-elf-ver b5d3fe85dff400a82befa6b901b438ec gcc/config/t-slibgcc-nolc-override ! 20dbfc926b1d453cdd04bdc09184cea1 gcc/config/t-slibgcc-sld 2549dfa298e48e738d53d1736544bd5f gcc/config/t-svr4 2d52a710de52f4c0ba1806c5a6ebfe01 gcc/config/t-vxworks 17fd5cabcc31b720b23bad47cf7fe84c gcc/config/tm-dwarf2.h *************** fc02bcf5b5b4f0bbf38fc0db67d7dbd9 gcc/co *** 2769,2777 **** 0d191ac74cfe5bf9ce95dd373780f5a9 gcc/config/vax/ultrix.h 609d9fa53bbbd866343c5d2da437e5f0 gcc/config/vax/vax-modes.def 18a86c2f8411db5795b804404aca5b37 gcc/config/vax/vax-protos.h ! 2dbc24bca3dbbbd755c28723b32f0cd2 gcc/config/vax/vax.c ! c7ad49bc3904924a568ce7b009a78366 gcc/config/vax/vax.h ! f82322e9fb7f07c63334c1219ae829d5 gcc/config/vax/vax.md 1bc2419e8ff3b94ad84f7fb45d3f481f gcc/config/vax/vaxv.h c126c4de99d4774b096e7f0a805c46e6 gcc/config/vxlib.c 1ad81093d68cf1b320e37a00a7c87811 gcc/config/vxworks.h --- 2775,2783 ---- 0d191ac74cfe5bf9ce95dd373780f5a9 gcc/config/vax/ultrix.h 609d9fa53bbbd866343c5d2da437e5f0 gcc/config/vax/vax-modes.def 18a86c2f8411db5795b804404aca5b37 gcc/config/vax/vax-protos.h ! b93f6ed59baa44fcbdf2895fe6af0db3 gcc/config/vax/vax.c ! f936943926a05cbf2cd7b9ab250cee07 gcc/config/vax/vax.h ! 3aa22baa5609493160612b6be27f307e gcc/config/vax/vax.md 1bc2419e8ff3b94ad84f7fb45d3f481f gcc/config/vax/vaxv.h c126c4de99d4774b096e7f0a805c46e6 gcc/config/vxlib.c 1ad81093d68cf1b320e37a00a7c87811 gcc/config/vxworks.h *************** e955455a2d44ae397190dfd815b5eaf4 gcc/co *** 2790,2822 **** a89dd0b8f86d62a4ad2394989f4cfa48 gcc/config/xtensa/xtensa.c 0cd36a8f8b1d9297973e7ab881d97f68 gcc/config/xtensa/xtensa.h 8db9c304ed17b7272abb0251fe9b07d9 gcc/config/xtensa/xtensa.md ! cba93add1e00835642499f3bdc5985d5 gcc/configure ! 873f634169a3bebe1d66d376b3f9e48b gcc/configure.ac 17dbdc34cac134e5c8c5d1fa984f7897 gcc/conflict.c 36a3aa293be0fc065af8a15b63e73f42 gcc/convert.c 2e6366a1940cbf3d6ca17a3aa8d656ed gcc/convert.h af6632153fa98ee29a45c6c80d4335a8 gcc/coretypes.h 943f8e628e329744c93ccf32d3a18e1c gcc/coverage.c e4ad183c674fb7d59491dc2941d112d2 gcc/coverage.h ! 30cf1cc153b05fc4cda819c23809c85c gcc/cp/ChangeLog d788e4824ae889eb5c8e067a9f94a419 gcc/cp/ChangeLog.1 43a2f3aeb6c981482f5a0c2575d1e5ae gcc/cp/ChangeLog.2 b5d962198933688d83e8a77a5a2c2154 gcc/cp/ChangeLog.3 b9cb813675d1e580dd01146a550faa7c gcc/cp/ChangeLog.egcs 42ed50920d5a6097314b76a319f04827 gcc/cp/Make-lang.in 625bd1bc9937427e1e1f2416a3e799a1 gcc/cp/NEWS ! ac26dd695b0278b16494178cfbea59a9 gcc/cp/call.c 9f7a823f536eacdd59e2fc31ef4da831 gcc/cp/cfns.gperf 11598cdaa5f12bb2b4dac5a4171ff165 gcc/cp/cfns.h ! 783c09205096efdc3debe252910005ea gcc/cp/class.c 0579b0a7d724eeea2e0dbf1ce4f236ff gcc/cp/config-lang.in 3f821469b8ed8d4b28c4e25be2706601 gcc/cp/cp-lang.c 9f0a6e9ee4872c7bf54486658c8e207f gcc/cp/cp-tree.def ! 2f5cb2207f28cc0ed6292637f26c1c76 gcc/cp/cp-tree.h ! 955ba577aa6e9e937ea586f798fd6abf gcc/cp/cvt.c c916b63f805bcac359fa0fcb6a1cae32 gcc/cp/cxx-pretty-print.c 7368f585c263db5cefe01a68f33ee302 gcc/cp/cxx-pretty-print.h ! 538647fab7f871cff16a274ddc97bcbd gcc/cp/decl.c 9a79bd240dc78750256134315a9b09ba gcc/cp/decl.h 498041f7a5ff898a2b7b8818cf5181a5 gcc/cp/decl2.c c9d166d9bec71e6e50bf9c4b648a1463 gcc/cp/dump.c --- 2796,2828 ---- a89dd0b8f86d62a4ad2394989f4cfa48 gcc/config/xtensa/xtensa.c 0cd36a8f8b1d9297973e7ab881d97f68 gcc/config/xtensa/xtensa.h 8db9c304ed17b7272abb0251fe9b07d9 gcc/config/xtensa/xtensa.md ! bea2168cf865d427b1d2e36a4afd6582 gcc/configure ! f4c3b59cc15f5cbf20508539d432563d gcc/configure.ac 17dbdc34cac134e5c8c5d1fa984f7897 gcc/conflict.c 36a3aa293be0fc065af8a15b63e73f42 gcc/convert.c 2e6366a1940cbf3d6ca17a3aa8d656ed gcc/convert.h af6632153fa98ee29a45c6c80d4335a8 gcc/coretypes.h 943f8e628e329744c93ccf32d3a18e1c gcc/coverage.c e4ad183c674fb7d59491dc2941d112d2 gcc/coverage.h ! f676272aa8125624baaad45bd9ac9a02 gcc/cp/ChangeLog d788e4824ae889eb5c8e067a9f94a419 gcc/cp/ChangeLog.1 43a2f3aeb6c981482f5a0c2575d1e5ae gcc/cp/ChangeLog.2 b5d962198933688d83e8a77a5a2c2154 gcc/cp/ChangeLog.3 b9cb813675d1e580dd01146a550faa7c gcc/cp/ChangeLog.egcs 42ed50920d5a6097314b76a319f04827 gcc/cp/Make-lang.in 625bd1bc9937427e1e1f2416a3e799a1 gcc/cp/NEWS ! 78767f922b842a3344adb1fc0d4a8622 gcc/cp/call.c 9f7a823f536eacdd59e2fc31ef4da831 gcc/cp/cfns.gperf 11598cdaa5f12bb2b4dac5a4171ff165 gcc/cp/cfns.h ! 648381a94e3ca19b7daf1fe92dfd7780 gcc/cp/class.c 0579b0a7d724eeea2e0dbf1ce4f236ff gcc/cp/config-lang.in 3f821469b8ed8d4b28c4e25be2706601 gcc/cp/cp-lang.c 9f0a6e9ee4872c7bf54486658c8e207f gcc/cp/cp-tree.def ! 71c860da5e6807af14c5c131728a1cdb gcc/cp/cp-tree.h ! e3d90ebcccf424518900cdb7e67fb38e gcc/cp/cvt.c c916b63f805bcac359fa0fcb6a1cae32 gcc/cp/cxx-pretty-print.c 7368f585c263db5cefe01a68f33ee302 gcc/cp/cxx-pretty-print.h ! a6576b64f585b478219b280749507848 gcc/cp/decl.c 9a79bd240dc78750256134315a9b09ba gcc/cp/decl.h 498041f7a5ff898a2b7b8818cf5181a5 gcc/cp/decl2.c c9d166d9bec71e6e50bf9c4b648a1463 gcc/cp/dump.c *************** c9d166d9bec71e6e50bf9c4b648a1463 gcc/cp *** 2825,2863 **** 59d6f4c063f0604ea5a0ef97af43a686 gcc/cp/expr.c 84bbeb4fda515fd14310659de8729179 gcc/cp/friend.c d241a09e2725800322eca38edfa1a3ca gcc/cp/g++spec.c ! fb42a3147f2ccdc0278332ac4ff0f7d4 gcc/cp/init.c ecce0410614e704b70014527424753ee gcc/cp/lang-specs.h 817c8d2913f30ee30c3a223d61c20d02 gcc/cp/lex.c baa9b4f46b819a4f62f82398fafa95fb gcc/cp/lex.h b3268b93b1b9b69a943473f328715dfe gcc/cp/mangle.c ! 944b58791af34edbf13df0ff5c891eb5 gcc/cp/method.c ! 3b8bf5748615ab2a40b2f3a7043c61f8 gcc/cp/name-lookup.c c1bd1df229309799cf0bfcb778eeae14 gcc/cp/name-lookup.h c9cae6ab8d289fac682aaa9edc61f211 gcc/cp/operators.def 0e09ac1585be3a3dce0743202675e191 gcc/cp/optimize.c ! ad60e2e2d9818ff811d907c5577391ed gcc/cp/parser.c ! 08068f7b70b018504116a37e761e9c58 gcc/cp/pt.c 92d2ef4f1daa8febc40f6a20a69c4e08 gcc/cp/ptree.c 9ac70d2224f6e0a2cf639ffe45637323 gcc/cp/repo.c 1c494d0eac82e0831e097ec95119896c gcc/cp/rtti.c 9773431fb558784cf89051841a7ac7ea gcc/cp/search.c ! 8b8d2006abf4f4ee5f6ca519fff55cf8 gcc/cp/semantics.c ! 916adb5cabd10cb5933e3017328c69ed gcc/cp/tree.c ! 7b60bd165fe5783f6024ea243f80fd6e gcc/cp/typeck.c ! c25b9539c9891684081b24e189ca5810 gcc/cp/typeck2.c 6fb4cde37c077f753da161c45523b144 gcc/cppcharset.c 55151294bbbb8c3d0978e59c37781789 gcc/cppdefault.c 331807fdb5674eb14564aa8585eb6148 gcc/cppdefault.h a3d4708c4b4fdf9e0402a13209465fac gcc/cpperror.c 1505dde700ed30f254d798faed94df5b gcc/cppexp.c ! 56a64f028c7d8f449a5d866dddde428d gcc/cppfiles.c 6f0e3c0bb53c52c8f7d82375f3c79c0c gcc/cpphash.c 1f571f64ee10009fb093a2e4a95582bc gcc/cpphash.h a5fd2195ce24289fb2826f4586e43522 gcc/cppinit.c f82be3c5e8a6a6195219fb250d0e435f gcc/cpplex.c ! 4f5e0ed4dad79ef54921e36489f04de7 gcc/cpplib.c 625272fd54898b148cb876e39039025f gcc/cpplib.h ! 698198e057a0da7fe4ea6667257c55e8 gcc/cppmacro.c 9e244cf39c83e24fb6d96162ee28ac58 gcc/cpppch.c 5a3952c6e4073ddd293b452fa2568f23 gcc/cppspec.c 3517fa440f5f36af8182e1c229393259 gcc/cpptrad.c --- 2831,2869 ---- 59d6f4c063f0604ea5a0ef97af43a686 gcc/cp/expr.c 84bbeb4fda515fd14310659de8729179 gcc/cp/friend.c d241a09e2725800322eca38edfa1a3ca gcc/cp/g++spec.c ! 0d8841696c20776cc3b42d369062e6f8 gcc/cp/init.c ecce0410614e704b70014527424753ee gcc/cp/lang-specs.h 817c8d2913f30ee30c3a223d61c20d02 gcc/cp/lex.c baa9b4f46b819a4f62f82398fafa95fb gcc/cp/lex.h b3268b93b1b9b69a943473f328715dfe gcc/cp/mangle.c ! f8ad1b2cfe0540ba655c8c492e57f2f4 gcc/cp/method.c ! 8e6bc9faca40d28cdf78f1a4878b2bc1 gcc/cp/name-lookup.c c1bd1df229309799cf0bfcb778eeae14 gcc/cp/name-lookup.h c9cae6ab8d289fac682aaa9edc61f211 gcc/cp/operators.def 0e09ac1585be3a3dce0743202675e191 gcc/cp/optimize.c ! 29297b2af83a73724f00902380596a78 gcc/cp/parser.c ! 3e61125b59b95cc1251dde91197765f0 gcc/cp/pt.c 92d2ef4f1daa8febc40f6a20a69c4e08 gcc/cp/ptree.c 9ac70d2224f6e0a2cf639ffe45637323 gcc/cp/repo.c 1c494d0eac82e0831e097ec95119896c gcc/cp/rtti.c 9773431fb558784cf89051841a7ac7ea gcc/cp/search.c ! f1128a9e5b95467ddb99832cf069d97b gcc/cp/semantics.c ! cbfa4dd50aff7e649a700725fe817a53 gcc/cp/tree.c ! bac5596d183604ee0f24529314f921b9 gcc/cp/typeck.c ! 2f2094a1ecbcf129767ebc6a04c86e8f gcc/cp/typeck2.c 6fb4cde37c077f753da161c45523b144 gcc/cppcharset.c 55151294bbbb8c3d0978e59c37781789 gcc/cppdefault.c 331807fdb5674eb14564aa8585eb6148 gcc/cppdefault.h a3d4708c4b4fdf9e0402a13209465fac gcc/cpperror.c 1505dde700ed30f254d798faed94df5b gcc/cppexp.c ! bba59523f5a030c492f6f205878f9f56 gcc/cppfiles.c 6f0e3c0bb53c52c8f7d82375f3c79c0c gcc/cpphash.c 1f571f64ee10009fb093a2e4a95582bc gcc/cpphash.h a5fd2195ce24289fb2826f4586e43522 gcc/cppinit.c f82be3c5e8a6a6195219fb250d0e435f gcc/cpplex.c ! ea510dbd5c67fc314c53e85e6252bb16 gcc/cpplib.c 625272fd54898b148cb876e39039025f gcc/cpplib.h ! 9281572762423c119e71d7ab85d21018 gcc/cppmacro.c 9e244cf39c83e24fb6d96162ee28ac58 gcc/cpppch.c 5a3952c6e4073ddd293b452fa2568f23 gcc/cppspec.c 3517fa440f5f36af8182e1c229393259 gcc/cpptrad.c *************** fa4ae38ee0d62c079fd6f214252c1a0c gcc/cp *** 2869,2879 **** f7e1d92f3de1981d4111c323c35fad0f gcc/cselib.c 4c163dea530058b46e705789a406e2ad gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! f98ccb3eff776ad93263ff027329b435 gcc/dbxout.c 9e9c0b229148391e26bf1f8c31a89686 gcc/dbxout.h c05812eace9af8e653595d7dae1568fc gcc/debug.c eeb3aa1d64466fdec1660ae30625763c gcc/debug.h ! 5363065c04e1d85fac154b723156ad23 gcc/defaults.h 7d295534865060929bb196384834b91c gcc/df.c 8d6de3ec1c3c0209b1ade893299b2c3c gcc/df.h 8048000b20abb0f6a4a6d140ae21686c gcc/diagnostic.c --- 2875,2885 ---- f7e1d92f3de1981d4111c323c35fad0f gcc/cselib.c 4c163dea530058b46e705789a406e2ad gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! ff5e2958c294401e7ed21f17f0edffd7 gcc/dbxout.c 9e9c0b229148391e26bf1f8c31a89686 gcc/dbxout.h c05812eace9af8e653595d7dae1568fc gcc/debug.c eeb3aa1d64466fdec1660ae30625763c gcc/debug.h ! 4aad3470321f85e02b91e217564aba4c gcc/defaults.h 7d295534865060929bb196384834b91c gcc/df.c 8d6de3ec1c3c0209b1ade893299b2c3c gcc/df.h 8048000b20abb0f6a4a6d140ae21686c gcc/diagnostic.c *************** ede23db52c73d2fda739a3d4cedfd465 gcc/do *** 2887,2953 **** 73b7f9aa052dde14853d1817153dfd24 gcc/doc/configterms.texi 374116ba974a63c7d654404d4a42fe36 gcc/doc/contrib.texi ad084b0cb2efc588cf805ebadcd5a612 gcc/doc/contribute.texi ! 81aaffbf5f062df16d26954912efe3b5 gcc/doc/cpp.1 ! 5df91190ca926531cdc978998f40a90a gcc/doc/cpp.info b9aa842a0973c8afb1291bb9d38a522d gcc/doc/cpp.texi 8462a717da44ca316c8c9ac975457a32 gcc/doc/cppenv.texi ! f2e6cb7a623d5d36704a9ef70089dd2a gcc/doc/cppinternals.info 17a10233e69410bea41b943255699306 gcc/doc/cppinternals.texi 9c415a9bd1aa5d5fd772d36d88c41159 gcc/doc/cppopts.texi ! 00a860d659ecce38a82424b86f3c2375 gcc/doc/extend.texi 0a182921987a1f5dfb6889e06ca0b930 gcc/doc/fragments.texi 794bf237888e5f2a0bef4634a6671557 gcc/doc/frontends.texi ! 2c5054f3a34ffb1a7b158bf9da85ef7f gcc/doc/fsf-funding.7 ! 0e9bad52b0126a6599be62ae784821a7 gcc/doc/g++.1 ! ce7d78847bd7b2dc6064cf29f68a4ccf gcc/doc/g77.1 ! 7a96f1eb56c956cca2dc0a3e007f0db6 gcc/doc/g77.info ! 0e9bad52b0126a6599be62ae784821a7 gcc/doc/gcc.1 ! 194e2cba3ee6d4c0d07d5b2b883656e1 gcc/doc/gcc.info 3d74d81ba106be97401bfe812d6bd019 gcc/doc/gcc.texi ! 25987cafd9d4b8c0296eddc1e17c0d3f gcc/doc/gccinstall.info ! 1cb5cdb69a28f9af7fbd01670f984541 gcc/doc/gccint.info 39a95becc7b0ff2318600bab6bfaaeb8 gcc/doc/gccint.texi ! dbc9256aa792d2af4bfa2b4a7b743808 gcc/doc/gcj.1 ! 15002142d567543447ce9b9821e63e44 gcc/doc/gcj.info ! d877d4687fbe5a1924ef24368c13a6a3 gcc/doc/gcjh.1 ! 2f1117b45855293b5b1ab50c4c12e64f gcc/doc/gcov.1 35327af8210650ee899a23fc61fd0c11 gcc/doc/gcov.texi ! abb56a67e1c82461fc91c20aaffa4a22 gcc/doc/gfdl.7 ! 15ee01ab9e293d46eef923522db1ab6f gcc/doc/gij.1 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! d66f2e09e011d7494c222c0381bd6323 gcc/doc/gpl.7 8b3f292c260d2613f062b747ed6a77c3 gcc/doc/gty.texi 12712ad63a56e9d549562b21b42b1454 gcc/doc/headerdirs.texi ff8a92e1b73b255dfe65ace7f5322285 gcc/doc/hostconfig.texi 34dd22797a1a1ec22615f0386badf115 gcc/doc/include/fdl.texi 8787976f426cd52da24a856cd41d87be gcc/doc/include/funding.texi ! 919a0fb412c73c281a3d51879c2d61bf gcc/doc/include/gcc-common.texi 5dac6b15d38729f68fbadfcdefa2e05d gcc/doc/include/gpl.texi ded88a6f9b9f1b8c68f5beacaffe3023 gcc/doc/include/texinfo.tex 86355f77ae147b0b5ac0b6127c8259f8 gcc/doc/install-old.texi ! 5af3ad30cb9391d80e8dc7c78595184f gcc/doc/install.texi 4230bc26f282d5b487b41e5546fa1de3 gcc/doc/install.texi2html 732f10e680f98ce85fc5db413ff48bbf gcc/doc/interface.texi ! 58335f97c9d4557f42439e2051cd4b8f gcc/doc/invoke.texi ! 3818cb0617aa02c8bfb5f03c64c2530e gcc/doc/jcf-dump.1 ! fadfe6bda6d2b3f35fe41d6aced5df38 gcc/doc/jv-convert.1 ! 28f46d95cd15e638e0ccb9f9e82158b8 gcc/doc/jv-scan.1 a01aca1d7da7f482653b521ba6447f85 gcc/doc/languages.texi cc3ccd8f5888c75efd76e447ab90161a gcc/doc/libgcc.texi 77649f91ce53bd17e41eebe557de78d8 gcc/doc/makefile.texi ! f8b9933c0e89d91b434cbb6bd497fd78 gcc/doc/md.texi ce76d9b16bf9ce9f0374043dccee7ea4 gcc/doc/objc.texi d46a1385eea00ff1f9882f43c805ed75 gcc/doc/passes.texi 4e14242c1266dfef1cade7a2e7cc32df gcc/doc/portability.texi ! f1e0ddfcaae6e4dcf95762437ac039fb gcc/doc/rmic.1 ! 2d9384c0820e0afbd7c6f4cdbbbbf8ff gcc/doc/rmiregistry.1 c2e2a260c6b5cc74b7b871627ebc7504 gcc/doc/rtl.texi d57122b80f1dd7815e0cf707c38d0170 gcc/doc/service.texi 1bd94fce86fa54188259bc740b958a18 gcc/doc/sourcebuild.texi 457093d54d5854aea3c7c7c16d63a4b9 gcc/doc/standards.texi ! 742c9e63b2f579923c18daf05fca8bdb gcc/doc/tm.texi 2384bc6b7ae0bd2315e10e6ef0e910be gcc/doc/trouble.texi ! 8a7930a108c3dcc18f23fe5445882efc gcc/dojump.c b80437a43c2204efd32911745d2f4a57 gcc/doloop.c 06aee37350a5002deac182abdb2c6cca gcc/dominance.c 9a8ea6daf83078a3fa06dd9853a1eb49 gcc/dummy-conditions.c --- 2893,2959 ---- 73b7f9aa052dde14853d1817153dfd24 gcc/doc/configterms.texi 374116ba974a63c7d654404d4a42fe36 gcc/doc/contrib.texi ad084b0cb2efc588cf805ebadcd5a612 gcc/doc/contribute.texi ! 21bb7940b5959be6e2fb36bfd5881fee gcc/doc/cpp.1 ! 0f43f04ea04a50da7ce4438bb935ad88 gcc/doc/cpp.info b9aa842a0973c8afb1291bb9d38a522d gcc/doc/cpp.texi 8462a717da44ca316c8c9ac975457a32 gcc/doc/cppenv.texi ! bd65b206eaec8ea6586b131d0dab08fd gcc/doc/cppinternals.info 17a10233e69410bea41b943255699306 gcc/doc/cppinternals.texi 9c415a9bd1aa5d5fd772d36d88c41159 gcc/doc/cppopts.texi ! 2c17d3cb8f737e98abf4df3c03c2c6ec gcc/doc/extend.texi 0a182921987a1f5dfb6889e06ca0b930 gcc/doc/fragments.texi 794bf237888e5f2a0bef4634a6671557 gcc/doc/frontends.texi ! 953591690561edc1d1ea1395354554b8 gcc/doc/fsf-funding.7 ! c6cc30f3c0d29b7e0a9770a6b5ff441c gcc/doc/g++.1 ! 11d1b683d2a92ef7d21c6103c3a7c5fb gcc/doc/g77.1 ! 5a82773f3366e1b3f973a4d3d32530f8 gcc/doc/g77.info ! c6cc30f3c0d29b7e0a9770a6b5ff441c gcc/doc/gcc.1 ! 6c915c3bb779d89ebe69ad650a60e4f1 gcc/doc/gcc.info 3d74d81ba106be97401bfe812d6bd019 gcc/doc/gcc.texi ! fc6e1a18b8b6e57bb16cd241885d07bb gcc/doc/gccinstall.info ! 01f1ffaa732915423ae9c84af9150fea gcc/doc/gccint.info 39a95becc7b0ff2318600bab6bfaaeb8 gcc/doc/gccint.texi ! 62bad5a533e0a9661fe9776e749036d8 gcc/doc/gcj.1 ! 16a1644ea1a22f50d283e17da04cac2d gcc/doc/gcj.info ! 01e3f07c7486d27cced465434035efbe gcc/doc/gcjh.1 ! 832f9fbc7de24e47bc02f938f3aeafc2 gcc/doc/gcov.1 35327af8210650ee899a23fc61fd0c11 gcc/doc/gcov.texi ! 2f4bfbfcd7b501769c7989fbca9bf2c4 gcc/doc/gfdl.7 ! 1f8fc2d3bc133978f882d4e672df1658 gcc/doc/gij.1 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! dd2a822ce0931a2ddb364dce5351eeb6 gcc/doc/gpl.7 8b3f292c260d2613f062b747ed6a77c3 gcc/doc/gty.texi 12712ad63a56e9d549562b21b42b1454 gcc/doc/headerdirs.texi ff8a92e1b73b255dfe65ace7f5322285 gcc/doc/hostconfig.texi 34dd22797a1a1ec22615f0386badf115 gcc/doc/include/fdl.texi 8787976f426cd52da24a856cd41d87be gcc/doc/include/funding.texi ! c91e909b53662f7053c091c72da14013 gcc/doc/include/gcc-common.texi 5dac6b15d38729f68fbadfcdefa2e05d gcc/doc/include/gpl.texi ded88a6f9b9f1b8c68f5beacaffe3023 gcc/doc/include/texinfo.tex 86355f77ae147b0b5ac0b6127c8259f8 gcc/doc/install-old.texi ! 67fc8fe543a0b8ef95d74ffad080fd24 gcc/doc/install.texi 4230bc26f282d5b487b41e5546fa1de3 gcc/doc/install.texi2html 732f10e680f98ce85fc5db413ff48bbf gcc/doc/interface.texi ! 9e2a271d236e98cb3f6ed68a7fc70be8 gcc/doc/invoke.texi ! 87ff8e4ba4506794573321bc45f19e02 gcc/doc/jcf-dump.1 ! cb4dad9a028ff7844b994a6a10e67d0e gcc/doc/jv-convert.1 ! d1dedcafb99293d7122a2d4baef74e99 gcc/doc/jv-scan.1 a01aca1d7da7f482653b521ba6447f85 gcc/doc/languages.texi cc3ccd8f5888c75efd76e447ab90161a gcc/doc/libgcc.texi 77649f91ce53bd17e41eebe557de78d8 gcc/doc/makefile.texi ! 70094411e262ab1b4c0facc2699bd635 gcc/doc/md.texi ce76d9b16bf9ce9f0374043dccee7ea4 gcc/doc/objc.texi d46a1385eea00ff1f9882f43c805ed75 gcc/doc/passes.texi 4e14242c1266dfef1cade7a2e7cc32df gcc/doc/portability.texi ! c398dcc85e65f1b2ca9107252af60dfc gcc/doc/rmic.1 ! ef8e73f6d62a2725ff170520f6082184 gcc/doc/rmiregistry.1 c2e2a260c6b5cc74b7b871627ebc7504 gcc/doc/rtl.texi d57122b80f1dd7815e0cf707c38d0170 gcc/doc/service.texi 1bd94fce86fa54188259bc740b958a18 gcc/doc/sourcebuild.texi 457093d54d5854aea3c7c7c16d63a4b9 gcc/doc/standards.texi ! a1cb54a649c09e7f4291e95ee9d542b1 gcc/doc/tm.texi 2384bc6b7ae0bd2315e10e6ef0e910be gcc/doc/trouble.texi ! 32ddf9ea74e3652b25df50b9b30bc510 gcc/dojump.c b80437a43c2204efd32911745d2f4a57 gcc/doloop.c 06aee37350a5002deac182abdb2c6cca gcc/dominance.c 9a8ea6daf83078a3fa06dd9853a1eb49 gcc/dummy-conditions.c *************** e445983cc5d8e47e145faaadb3c94e16 gcc/dw *** 2955,2978 **** bb5e984d70c6c2898456bd5e57020127 gcc/dwarf2.h abdd0b4bc9c542591351a53745d1a376 gcc/dwarf2asm.c 5efb8a6aeedf982e29b4f1b2c4c81a85 gcc/dwarf2asm.h ! 2fd7f13ba2a9cbccaa7d36207760ebcd gcc/dwarf2out.c a3d3f8c851d7a733d36146750a1b9039 gcc/dwarf2out.h ! 2ece8a345efe71d1ad7d07684f9a74bd gcc/emit-rtl.c 571a33f4ef2f28cae37102e1e8fbc9dc gcc/errors.c 46a60823056e57fd0de76822566fad99 gcc/errors.h ea65b358350ea688a008d76dbfcfdc76 gcc/et-forest.c 286331cc1f0914ac1fe768f5a5c76de8 gcc/et-forest.h 7cb1bcdb5f716783baa51c16f09ad425 gcc/except.c 0db82c43d88c4cdf8a089b0dbaf86b1d gcc/except.h ! 3543d75933172901937870dc4f6e0a92 gcc/explow.c f980fed31a33f0dc985a42827aee82f1 gcc/expmed.c ! 1c4a5b148de5e4178053c598e31c2230 gcc/expr.c ! 31f3871d6b71bb6cb52e3acf90057ab0 gcc/expr.h ! c2e39e007618e4efd464bf7a2a81fcb2 gcc/f/BUGS ! 3738074fa5866d0a2de7e43132680894 gcc/f/ChangeLog 5c90d441df9e69a2e844c7702e2bfd28 gcc/f/ChangeLog.0 afb733692115a21b7f7221d4aa639cc3 gcc/f/Make-lang.in ! c5a9080cdeb869a40dd66e4e4193e12e gcc/f/NEWS 759808909c784b1135c264326f81c025 gcc/f/RELEASE-PREP ad57913954edb2ce0052dbb083802e2c gcc/f/ansify.c a2a26866b633e5b6dd47aa94b93c0ebb gcc/f/bad.c --- 2961,2984 ---- bb5e984d70c6c2898456bd5e57020127 gcc/dwarf2.h abdd0b4bc9c542591351a53745d1a376 gcc/dwarf2asm.c 5efb8a6aeedf982e29b4f1b2c4c81a85 gcc/dwarf2asm.h ! 326bf4c53bd8769998e2753afd34d9dd gcc/dwarf2out.c a3d3f8c851d7a733d36146750a1b9039 gcc/dwarf2out.h ! 3c5b337738caa60117bb8e0e15102700 gcc/emit-rtl.c 571a33f4ef2f28cae37102e1e8fbc9dc gcc/errors.c 46a60823056e57fd0de76822566fad99 gcc/errors.h ea65b358350ea688a008d76dbfcfdc76 gcc/et-forest.c 286331cc1f0914ac1fe768f5a5c76de8 gcc/et-forest.h 7cb1bcdb5f716783baa51c16f09ad425 gcc/except.c 0db82c43d88c4cdf8a089b0dbaf86b1d gcc/except.h ! 8e9757e33bd6cd1770da688b37221008 gcc/explow.c f980fed31a33f0dc985a42827aee82f1 gcc/expmed.c ! 2b353c3140da34c25ce252bacf66684f gcc/expr.c ! 17f3360aeee34666891cba5b31f7f22a gcc/expr.h ! 4a47c2c027cfbee3ef0dc99ae8f920ba gcc/f/BUGS ! 85e7f48faf5adb4c54037343fc0600d9 gcc/f/ChangeLog 5c90d441df9e69a2e844c7702e2bfd28 gcc/f/ChangeLog.0 afb733692115a21b7f7221d4aa639cc3 gcc/f/Make-lang.in ! b519933254d689a7f5fa0e1f51535546 gcc/f/NEWS 759808909c784b1135c264326f81c025 gcc/f/RELEASE-PREP ad57913954edb2ce0052dbb083802e2c gcc/f/ansify.c a2a26866b633e5b6dd47aa94b93c0ebb gcc/f/bad.c *************** ce9c29d103f76334b3205b5051bd18b7 gcc/f/ *** 3025,3031 **** 3562d2c7786c42761e2267758c274dc3 gcc/f/malloc.h 0bbf34f3f86ea1ffa25b5550c00ce6c8 gcc/f/name.c 55dc1c542145749f4c155de4a32d7e5d gcc/f/name.h ! 0e0043352c323f3eb2efcd1b8755f485 gcc/f/news.texi f07488179decc7942089f1cc4740305f gcc/f/news0.texi e0f41dde03adce96e1d2c3ed5b000bb4 gcc/f/parse.c 3cb424e53e208746d0f5052532ae01f0 gcc/f/proj.h --- 3031,3037 ---- 3562d2c7786c42761e2267758c274dc3 gcc/f/malloc.h 0bbf34f3f86ea1ffa25b5550c00ce6c8 gcc/f/name.c 55dc1c542145749f4c155de4a32d7e5d gcc/f/name.h ! 81faf07d72e145f874f058f3e108800b gcc/f/news.texi f07488179decc7942089f1cc4740305f gcc/f/news0.texi e0f41dde03adce96e1d2c3ed5b000bb4 gcc/f/parse.c 3cb424e53e208746d0f5052532ae01f0 gcc/f/proj.h *************** e92bed26186314043444cd314759e996 gcc/fi *** 3087,3098 **** 816b238df6d90b9988e3f0da9e0f564d gcc/fixinc/fixincl.c 053831fb64c48229d8356349d8ca06f4 gcc/fixinc/fixincl.sh 2a4b32e8670412700d3fb185983fa2b7 gcc/fixinc/fixincl.tpl ! eb04d45cf382c555acc741ba8b58d12a gcc/fixinc/fixincl.x 024564e6838a43d2ca7e2ab8285a7035 gcc/fixinc/fixlib.c 4914b372bba8514a9d8ea9c082ad5492 gcc/fixinc/fixlib.h 71b706624ff689346a3b80f974205c81 gcc/fixinc/fixtests.c a92e41137ab2ca4b154694d02d5d9966 gcc/fixinc/genfixes ! 343630c2cd1b7bfe1d132ec0781fd7ee gcc/fixinc/inclhack.def f58317f98d5df606f048b130e1fcc056 gcc/fixinc/mkfixinc.sh deedac06e3e01316aa1fb6d1aa44eb07 gcc/fixinc/procopen.c 3b8c554a3f8238b02a5ad08c855af559 gcc/fixinc/server.c --- 3093,3104 ---- 816b238df6d90b9988e3f0da9e0f564d gcc/fixinc/fixincl.c 053831fb64c48229d8356349d8ca06f4 gcc/fixinc/fixincl.sh 2a4b32e8670412700d3fb185983fa2b7 gcc/fixinc/fixincl.tpl ! beff3edc7f606aaab20293065d440cc2 gcc/fixinc/fixincl.x 024564e6838a43d2ca7e2ab8285a7035 gcc/fixinc/fixlib.c 4914b372bba8514a9d8ea9c082ad5492 gcc/fixinc/fixlib.h 71b706624ff689346a3b80f974205c81 gcc/fixinc/fixtests.c a92e41137ab2ca4b154694d02d5d9966 gcc/fixinc/genfixes ! ca7133956ee48beca5ca4efde89f7220 gcc/fixinc/inclhack.def f58317f98d5df606f048b130e1fcc056 gcc/fixinc/mkfixinc.sh deedac06e3e01316aa1fb6d1aa44eb07 gcc/fixinc/procopen.c 3b8c554a3f8238b02a5ad08c855af559 gcc/fixinc/server.c *************** a911f5fbb127353024e77149fcf90596 gcc/fi *** 3130,3136 **** 2649ccca3396541aeb5e612d4b4a3141 gcc/fixinc/tests/base/netinet/ip.h f4a72388e98f34c098a3467dce9aa4e1 gcc/fixinc/tests/base/obstack.h c24d1be3b5afd871e9f78e1a67b9cb82 gcc/fixinc/tests/base/pixrect/memvar.h ! 5f72fc3ea7f9825984547094ad6edeec gcc/fixinc/tests/base/pthread.h 0af417a4255222a48d182d9f602c145e gcc/fixinc/tests/base/reg_types.h 099702dfa122c22886a95f7c24ab7c13 gcc/fixinc/tests/base/regex.h 723e68af94480e1ed60ef8abb667cfe6 gcc/fixinc/tests/base/regexp.h --- 3136,3142 ---- 2649ccca3396541aeb5e612d4b4a3141 gcc/fixinc/tests/base/netinet/ip.h f4a72388e98f34c098a3467dce9aa4e1 gcc/fixinc/tests/base/obstack.h c24d1be3b5afd871e9f78e1a67b9cb82 gcc/fixinc/tests/base/pixrect/memvar.h ! edc7e1fc9ff390470631dcf6cfcffcd2 gcc/fixinc/tests/base/pthread.h 0af417a4255222a48d182d9f602c145e gcc/fixinc/tests/base/reg_types.h 099702dfa122c22886a95f7c24ab7c13 gcc/fixinc/tests/base/regex.h 723e68af94480e1ed60ef8abb667cfe6 gcc/fixinc/tests/base/regexp.h *************** b6494e752821a4f87a2114c27143856c gcc/fi *** 3177,3195 **** f86a4ea6000eba71d34c1b9a7bcd2c14 gcc/fixinc/tests/base/widec.h 2a88dc3bb6779aec109127104e58611f gcc/fixproto 5571a101d9aaa9774c5999094cde7ed3 gcc/flags.h ! 57e3c9704526d00902bcc4063c2a2161 gcc/flow.c ! 11e64f6495be9324e605a911ded4ed71 gcc/fold-const.c 89cc2e2833c8dbd6c9952122fb17e762 gcc/fp-test.c ! 274f3d03805e275d7bb45a48be74ceb7 gcc/function.c 4afeff23d4e5f110c16027d1f84a3cd6 gcc/function.h 8b236ba2888ff458e53cf4886134e68d gcc/gbl-ctors.h ! a93f2be3d4cf0891d6d39df7438bfb31 gcc/gcc.c de62a6ecffd2f4fbe6e5cdab15c81088 gcc/gcc.h e1aff8af74ac7e252f83ffef79593dd9 gcc/gccbug.in 6c8aa14d6e96a396e36ddef8e52b03a3 gcc/gccspec.c 250c6b3ddd85597182e5c82aa98222a7 gcc/gcov-dump.c fcf457697571171813c07eaff302deef gcc/gcov-io.c ! 93c94f3ceb345fc4b1701f49e671d95f gcc/gcov-io.h 313ac1ad71ff80f61831c60c648e1e87 gcc/gcov-iov.c b5bb538e16213125af1b98aa281b299b gcc/gcov.c c5ec82b5361ad6a9a338282c5f922634 gcc/gcse.c --- 3183,3201 ---- f86a4ea6000eba71d34c1b9a7bcd2c14 gcc/fixinc/tests/base/widec.h 2a88dc3bb6779aec109127104e58611f gcc/fixproto 5571a101d9aaa9774c5999094cde7ed3 gcc/flags.h ! ed8baac58402248d9fcce8ebb1fcb13a gcc/flow.c ! 203bf17cd1201a89c1b7efaa6b8b8214 gcc/fold-const.c 89cc2e2833c8dbd6c9952122fb17e762 gcc/fp-test.c ! 14861928e0ac05f4af45a1640e5bb1f8 gcc/function.c 4afeff23d4e5f110c16027d1f84a3cd6 gcc/function.h 8b236ba2888ff458e53cf4886134e68d gcc/gbl-ctors.h ! 8fc0a33abe3135921b1c1934f7b52c75 gcc/gcc.c de62a6ecffd2f4fbe6e5cdab15c81088 gcc/gcc.h e1aff8af74ac7e252f83ffef79593dd9 gcc/gccbug.in 6c8aa14d6e96a396e36ddef8e52b03a3 gcc/gccspec.c 250c6b3ddd85597182e5c82aa98222a7 gcc/gcov-dump.c fcf457697571171813c07eaff302deef gcc/gcov-io.c ! d1f03505da10b0f3d8d40b04022fc858 gcc/gcov-io.h 313ac1ad71ff80f61831c60c648e1e87 gcc/gcov-iov.c b5bb538e16213125af1b98aa281b299b gcc/gcov.c c5ec82b5361ad6a9a338282c5f922634 gcc/gcse.c *************** a846626af4e8f504d0bcdc04fc7d2524 gcc/ge *** 3208,3216 **** 1b17e9750816be217a4c2acf7873d2d7 gcc/genextract.c 6bf499d332c99b0a3852d6f7ac776026 gcc/genflags.c 6d25e5e6e71179d311d4ad2b652c0707 gcc/gengenrtl.c ! 5405e914f8fdd5eac576ea9e76b583ee gcc/gengtype-lex.c 2a91a5a328687dbb743f2757d0574e9c gcc/gengtype-lex.l ! 19a795a2ccda5db2643085bdc846967c gcc/gengtype-yacc.c 62c5dbab166d3314cb12e2477971a8c7 gcc/gengtype-yacc.h 222c86b62da1f9271952f60d37ffcbb3 gcc/gengtype-yacc.y 378d875adf5af3648e23594e02953486 gcc/gengtype.c --- 3214,3222 ---- 1b17e9750816be217a4c2acf7873d2d7 gcc/genextract.c 6bf499d332c99b0a3852d6f7ac776026 gcc/genflags.c 6d25e5e6e71179d311d4ad2b652c0707 gcc/gengenrtl.c ! 4d7b066675c48f34df564ce6374a16db gcc/gengtype-lex.c 2a91a5a328687dbb743f2757d0574e9c gcc/gengtype-lex.l ! b5db9d3a51eb8b6323e0fd496eb1d1ef gcc/gengtype-yacc.c 62c5dbab166d3314cb12e2477971a8c7 gcc/gengtype-yacc.h 222c86b62da1f9271952f60d37ffcbb3 gcc/gengtype-yacc.y 378d875adf5af3648e23594e02953486 gcc/gengtype.c *************** ae93ffebf5417aa87b8a866074524de1 gcc/ha *** 3266,3286 **** e73624dc723fb1c72da2e7549cb57083 gcc/hosthooks-def.h 6085e86256ab9c99cfac9c66ad780b54 gcc/hosthooks.h 4c2e9d27c9035e8313d50f7dc8ab0bd8 gcc/hwint.h ! 710853be24a8c502ff6e09ad2cd457d2 gcc/ifcvt.c da41c7cbb9a3a1be416c2936c4b59ac6 gcc/input.h 38986bb8bb03d989f72b67cd283a9bc1 gcc/insn-addr.h 1cd32d84da1131dc5e82eb3a390048e3 gcc/integrate.c 1aec4ad6eee1ebabcf9d25ec27a13f07 gcc/integrate.h f7e145dbb0e27f80eba7cc4f496a299d gcc/intl.c f88029fd13fef0e2712cdc43aa4ba008 gcc/intl.h ! 7a56bca3d62a5c352307e6e020388ac2 gcc/java/ChangeLog 776cd001f0bc9170fe6c6160b2b383a6 gcc/java/Make-lang.in 1cb3550055fb303065aa028744f36575 gcc/java/boehm.c 08db6bf4ea64d94892095b2f44f12e86 gcc/java/buffer.c fd12809851cafbf50d9a6d4148c8f25c gcc/java/buffer.h d717db4aace564756dd55fab071a825c gcc/java/builtins.c 9194d7bf58de2a6826c3615620ad8a3e gcc/java/chartables.h ! 450f63683fe595e665fb1c58887584f8 gcc/java/check-init.c 22399b3af3f6df285749245fea4dcbcb gcc/java/class.c 701c3fae2744bb1cba3a6be507521bbc gcc/java/config-lang.in c95678571f75873457b8266ab2959760 gcc/java/constants.c --- 3272,3292 ---- e73624dc723fb1c72da2e7549cb57083 gcc/hosthooks-def.h 6085e86256ab9c99cfac9c66ad780b54 gcc/hosthooks.h 4c2e9d27c9035e8313d50f7dc8ab0bd8 gcc/hwint.h ! ecd5614fb7ce8a49b8f37d68ba1e4afa gcc/ifcvt.c da41c7cbb9a3a1be416c2936c4b59ac6 gcc/input.h 38986bb8bb03d989f72b67cd283a9bc1 gcc/insn-addr.h 1cd32d84da1131dc5e82eb3a390048e3 gcc/integrate.c 1aec4ad6eee1ebabcf9d25ec27a13f07 gcc/integrate.h f7e145dbb0e27f80eba7cc4f496a299d gcc/intl.c f88029fd13fef0e2712cdc43aa4ba008 gcc/intl.h ! 793673277956aebd40660c9aee7c057d gcc/java/ChangeLog 776cd001f0bc9170fe6c6160b2b383a6 gcc/java/Make-lang.in 1cb3550055fb303065aa028744f36575 gcc/java/boehm.c 08db6bf4ea64d94892095b2f44f12e86 gcc/java/buffer.c fd12809851cafbf50d9a6d4148c8f25c gcc/java/buffer.h d717db4aace564756dd55fab071a825c gcc/java/builtins.c 9194d7bf58de2a6826c3615620ad8a3e gcc/java/chartables.h ! 4a2f15b5b1eb4ef870208c2fe6763b6c gcc/java/check-init.c 22399b3af3f6df285749245fea4dcbcb gcc/java/class.c 701c3fae2744bb1cba3a6be507521bbc gcc/java/config-lang.in c95678571f75873457b8266ab2959760 gcc/java/constants.c *************** e22d04d56400c3783d3d799871ce70d4 gcc/ja *** 3294,3305 **** d33ffeff1f7d79d3c4f4c5c1dff1c545 gcc/java/java-except.h 1934fbe8ee4032c17cf8a3533c894877 gcc/java/java-opcodes.h 8bc8979172abd3bc6b93294abfe5ce22 gcc/java/java-tree.def ! e84ccea8898ffb2d85da829e31d10729 gcc/java/java-tree.h 12dcb3b79f561c62beaa98f176fa55f1 gcc/java/javaop.def 1b476d87b6145a64cd9c390dc18f0e40 gcc/java/javaop.h 082e35bec4b881f7f7f059f694b2400f gcc/java/jcf-depend.c bdbe689ed488e15adc52fa60ad668ae3 gcc/java/jcf-dump.c ! 4bb474be77eb6793326560d7c3ee337b gcc/java/jcf-io.c d7038773b7d92b8303d093f37e58b5b6 gcc/java/jcf-parse.c 0ff928a38ba7f49ec26dbf2fb5a898e2 gcc/java/jcf-path.c bd43379870aba4a83983b67e069e8a6a gcc/java/jcf-reader.c --- 3300,3311 ---- d33ffeff1f7d79d3c4f4c5c1dff1c545 gcc/java/java-except.h 1934fbe8ee4032c17cf8a3533c894877 gcc/java/java-opcodes.h 8bc8979172abd3bc6b93294abfe5ce22 gcc/java/java-tree.def ! 8563465122109a0fb59d49947bd6c915 gcc/java/java-tree.h 12dcb3b79f561c62beaa98f176fa55f1 gcc/java/javaop.def 1b476d87b6145a64cd9c390dc18f0e40 gcc/java/javaop.h 082e35bec4b881f7f7f059f694b2400f gcc/java/jcf-depend.c bdbe689ed488e15adc52fa60ad668ae3 gcc/java/jcf-dump.c ! 3012420f4e1bf41190df133c3695d4b0 gcc/java/jcf-io.c d7038773b7d92b8303d093f37e58b5b6 gcc/java/jcf-parse.c 0ff928a38ba7f49ec26dbf2fb5a898e2 gcc/java/jcf-path.c bd43379870aba4a83983b67e069e8a6a gcc/java/jcf-reader.c *************** effe1a7822b33bc9827fde743227ee3b gcc/ja *** 3317,3327 **** 56447dd486ffa23874db3d6ecd64156d gcc/java/lex.h 667e31da3f84bbec005e9c4393a17ec3 gcc/java/mangle.c 5368f5e92c82d0f4a187ae6d359b5ce6 gcc/java/mangle_name.c ! 8ba107f2b37ddad3975627a7cc351b34 gcc/java/parse-scan.c 0effee30166d5c60230b5327f4c740f7 gcc/java/parse-scan.y ! db9f4d144a50c26cf5e7018c3239403d gcc/java/parse.c 13263242f7d024d4cb1e314b2977f5d8 gcc/java/parse.h ! 21adc805edee22142b6e73709ae0889c gcc/java/parse.y e451332301d4ed7169fa905c88984b9d gcc/java/resource.c b3deff4e5bcf90ccd1494f8a9903fd5d gcc/java/typeck.c c5dfb0eb3bd8dd176ee9c7687024cb52 gcc/java/verify.c --- 3323,3333 ---- 56447dd486ffa23874db3d6ecd64156d gcc/java/lex.h 667e31da3f84bbec005e9c4393a17ec3 gcc/java/mangle.c 5368f5e92c82d0f4a187ae6d359b5ce6 gcc/java/mangle_name.c ! 0f45da9ee3800f846a62cb3d2c74edaa gcc/java/parse-scan.c 0effee30166d5c60230b5327f4c740f7 gcc/java/parse-scan.y ! 4cb574a99375ccbfde9060be0029293d gcc/java/parse.c 13263242f7d024d4cb1e314b2977f5d8 gcc/java/parse.h ! 31c0b2afb5f49e0dca2bd4a8d41cce96 gcc/java/parse.y e451332301d4ed7169fa905c88984b9d gcc/java/resource.c b3deff4e5bcf90ccd1494f8a9903fd5d gcc/java/typeck.c c5dfb0eb3bd8dd176ee9c7687024cb52 gcc/java/verify.c *************** ecf05d6e000a4dab2d6c834152ea2894 gcc/la *** 3336,3345 **** 12f5849f02028443fd7550b280f81b24 gcc/langhooks.h 52c6ed0e21aaf8ab1e2ed57f9e27c155 gcc/lcm.c 036c1e660d015cd94fb7767a6221206d gcc/libfuncs.h ! 432d14d9de06312e4af4c41b6047bb33 gcc/libgcc-darwin.ver ! d3a01c48e9633a6ac18127851f9c111c gcc/libgcc-std.ver ! ba5ddad42ca3c9823aacbafc68b0c3d1 gcc/libgcc2.c ! 98ca887ee727ba4ee1adf4a40a55cdbf gcc/libgcc2.h 3234dc332eeb6ff111d6c705b5c604aa gcc/libgcov.c d4f7140fcd55bba037803fb314146a6c gcc/limitx.h 83de5c6450456e215a5484083afcd32a gcc/limity.h --- 3342,3351 ---- 12f5849f02028443fd7550b280f81b24 gcc/langhooks.h 52c6ed0e21aaf8ab1e2ed57f9e27c155 gcc/lcm.c 036c1e660d015cd94fb7767a6221206d gcc/libfuncs.h ! fd21d90a888138b3758279fb845f195f gcc/libgcc-darwin.ver ! 98a3c9b5ca25d2f97b6e223b32e2c5a6 gcc/libgcc-std.ver ! aad1fdc9c6215f57d39f914a96e73aed gcc/libgcc2.c ! 117949f5e797c15f29f685af29760f3a gcc/libgcc2.h 3234dc332eeb6ff111d6c705b5c604aa gcc/libgcov.c d4f7140fcd55bba037803fb314146a6c gcc/limitx.h 83de5c6450456e215a5484083afcd32a gcc/limity.h *************** e3f35e9013569a7fed522cf8c1c430e9 gcc/li *** 3349,3357 **** 92657b8eed381ba711d713d95c0e3924 gcc/local-alloc.c d24bdc3754695f1cd0da08352a01832b gcc/longlong.h ea893626dd4c47e5aa5c2ad20b254b27 gcc/loop-init.c ! 58d7b87601accce8a01ee5c02aab3ab1 gcc/loop-unroll.c 9161f3442d6f73367be15096dcad61ea gcc/loop-unswitch.c ! 836ab2d96c3a8be17f3f6e33baa05128 gcc/loop.c b79f95b8996e4a026ffd4242f6c97ccf gcc/loop.h 831aa4b581ebf7711d1b342892e04687 gcc/machmode.def 1fa8c1f9661c9c9bbdbe65997066ef49 gcc/machmode.h --- 3355,3363 ---- 92657b8eed381ba711d713d95c0e3924 gcc/local-alloc.c d24bdc3754695f1cd0da08352a01832b gcc/longlong.h ea893626dd4c47e5aa5c2ad20b254b27 gcc/loop-init.c ! d7996ebaf60c04d67a22c9b8ae9e2e31 gcc/loop-unroll.c 9161f3442d6f73367be15096dcad61ea gcc/loop-unswitch.c ! 5ef393a30ca2ec95dde7e2ee75a2cf05 gcc/loop.c b79f95b8996e4a026ffd4242f6c97ccf gcc/loop.h 831aa4b581ebf7711d1b342892e04687 gcc/machmode.def 1fa8c1f9661c9c9bbdbe65997066ef49 gcc/machmode.h *************** ebbcc540de127be8a3f11b9df28900ca gcc/mk *** 3363,3369 **** e07a4ce298d00e87d6e4c46bc4e2c26b gcc/mkdeps.h 92b0e4afe6208ef2030c71cec1a944b7 gcc/mkheaders.in 792922784eade1d03ecb1b33ba8bb7c3 gcc/mkinstalldirs ! a64a35d369e0d7be2e685d42c076c819 gcc/mklibgcc.in 85dbe75ce18922bdb045eec869db4a62 gcc/mkmap-flat.awk 49f7e44c95fc86df08f70fac7a5cb7a9 gcc/mkmap-symver.awk a1fa8244a5e0c628001f9393b8d02c54 gcc/mode-classes.def --- 3369,3375 ---- e07a4ce298d00e87d6e4c46bc4e2c26b gcc/mkdeps.h 92b0e4afe6208ef2030c71cec1a944b7 gcc/mkheaders.in 792922784eade1d03ecb1b33ba8bb7c3 gcc/mkinstalldirs ! 4c78c2e85f79e20c2a38acbea9a25342 gcc/mklibgcc.in 85dbe75ce18922bdb045eec869db4a62 gcc/mkmap-flat.awk 49f7e44c95fc86df08f70fac7a5cb7a9 gcc/mkmap-symver.awk a1fa8244a5e0c628001f9393b8d02c54 gcc/mode-classes.def *************** ad48719c30000aa9cbcfc93bd234d8f5 gcc/mo *** 3372,3378 **** aa5319dd541cdb0eb8622f9adf66b761 gcc/objc/README a00446fd001efffff303923c481bbd76 gcc/objc/config-lang.in 74e1475cc43d26c3293eaa077979d607 gcc/objc/lang-specs.h ! cb8c9e70e2003b3f8e486c3108a0b195 gcc/objc/objc-act.c 8a51b290d32c4422242bffcb7befe72f gcc/objc/objc-act.h 7e5cffd66e310a7abeb76e71f45c19a2 gcc/objc/objc-lang.c 3ec32c7688fbee84b35a6fd27e74207e gcc/objc/objc-parse.c --- 3378,3384 ---- aa5319dd541cdb0eb8622f9adf66b761 gcc/objc/README a00446fd001efffff303923c481bbd76 gcc/objc/config-lang.in 74e1475cc43d26c3293eaa077979d607 gcc/objc/lang-specs.h ! 04eacf39c4114dd24d3e6e84a2d1c03a gcc/objc/objc-act.c 8a51b290d32c4422242bffcb7befe72f gcc/objc/objc-act.h 7e5cffd66e310a7abeb76e71f45c19a2 gcc/objc/objc-lang.c 3ec32c7688fbee84b35a6fd27e74207e gcc/objc/objc-parse.c *************** bc090b22995723d4d55f0f566254b641 gcc/op *** 3385,3420 **** 9084f4c2fd15ddb2392ec960828cca8d gcc/opts.sh 503acfa88e037c1d47d42eb3130ce97d gcc/output.h c42c1b10924c32bba03c874cf3402b79 gcc/params.c ! 480f3054671a48e38808dc02ccdadfa1 gcc/params.def ! a19638b8d354d5305bcd57f5c8397e59 gcc/params.h ! bcd9db696e0e07cb41b79fceda1a735e gcc/po/ChangeLog 954b21fb36cc0d8e9f6e2d6507152f23 gcc/po/EXCLUDES ! 62f2f05d318d24c2145aa36d7a91ac05 gcc/po/be.gmo ! d3472c9b2b984a99d928d6cad8258854 gcc/po/be.po ! d992f55d0dfb4cce8832d3813fb3d012 gcc/po/ca.gmo ! 4ae5b581a9e177a34037a6bed8b9f355 gcc/po/ca.po ! 63887af0d144f7d5576bf53911a83015 gcc/po/da.gmo ! 7cc45eafda30db2b355c53d25e5b9ae4 gcc/po/da.po ! 3193bb5ab6d5c9978fe7707ad0b789df gcc/po/de.gmo ! f1e5c22fd9f08f363d0b5b77f66a1586 gcc/po/de.po ! dd4c8810d444df577de95a95094972ba gcc/po/el.gmo ! fe98240366be486ba549c3ecd31985cc gcc/po/el.po ! a2ef987c960b9a3fa468575c74a50338 gcc/po/es.gmo ! db174ff0326b02584f6960fb09e6fc0f gcc/po/es.po fd8238265f233a70935d9761e6d07674 gcc/po/exgettext ! afee0f697163a96c872f081942fd33c8 gcc/po/fr.gmo ! 4fd556089b55cdf10343ac409b39c281 gcc/po/fr.po ! 43b0dba8ce738c504a7f4918c61c5775 gcc/po/gcc.pot ! 24f6b420f45b73562d2389c3992590ea gcc/po/ja.gmo ! f5f2e32e4702af9093f37b5e02c7951e gcc/po/ja.po ! f9af4dddf50f5d669aed71a22fcf8516 gcc/po/nl.gmo ! 2eab0c4c18238940e7727e9c18f3f498 gcc/po/nl.po ! 9c9e8c38ac3eff0c157df348991da469 gcc/po/sv.gmo ! 9375efab5aefd93917cfd2ea937039f2 gcc/po/sv.po ! c6ed86d67775e27320fc9ada8d7b08a6 gcc/po/tr.gmo ! 35b6a7aaddc771015411c46944abd1e7 gcc/po/tr.po 51a3ba4957813621667e0433cf2c774b gcc/postreload.c ! f2403a6545a20a383e40333c354daa77 gcc/predict.c 54f86796beba9bdcc34d522dba276d3a gcc/predict.def c1cb919211df56d98aed3a477a3521dd gcc/predict.h 06c0712e267a6d4c61fbb08ff6fd5a4c gcc/prefix.c --- 3391,3428 ---- 9084f4c2fd15ddb2392ec960828cca8d gcc/opts.sh 503acfa88e037c1d47d42eb3130ce97d gcc/output.h c42c1b10924c32bba03c874cf3402b79 gcc/params.c ! 877d2f47bfc06c8787bb467e68eabba0 gcc/params.def ! e41e4cf45ba371d050088ecfb9f0b84e gcc/params.h ! 6745ee584e7b666e873de8a794c7bbaa gcc/po/ChangeLog 954b21fb36cc0d8e9f6e2d6507152f23 gcc/po/EXCLUDES ! e0d815eddc95b39fc874a6af8929ef45 gcc/po/be.gmo ! ac375506ff3c8a08f4f521efdb1afeda gcc/po/be.po ! b5a6f9841d2e7ca95a9ead725212c4b4 gcc/po/ca.gmo ! 89b4b2bc0281c4ad4e45dc93065437c8 gcc/po/ca.po ! c1a9ea81ba441999d0a9618fecbcbe08 gcc/po/da.gmo ! fd2491f066023de9b2727256ad3b324c gcc/po/da.po ! 4a05443a7cd2899acf36302e7c77cd22 gcc/po/de.gmo ! 885a59a5e65bd60dbd27e0f1ffbd4ea2 gcc/po/de.po ! a8569d6d7271270fa8018473e73acf14 gcc/po/el.gmo ! 5c6812f119d73f3e99babecdb678f417 gcc/po/el.po ! c7522a720d3dd9b455b6f35b6c10b3ec gcc/po/es.gmo ! 5345982a4addcf496b7b3eee6306e68d gcc/po/es.po fd8238265f233a70935d9761e6d07674 gcc/po/exgettext ! 49e2b23c388adaf69a290adc347f9500 gcc/po/fr.gmo ! 9bae7a57251d872fc146fb870e5f2e58 gcc/po/fr.po ! 4b96c3d7a4248ea4d6668c0d6a5fcccb gcc/po/gcc-3.4.3.rw.gmo ! 1281696c6bb60833464ca9ab1dfe00a2 gcc/po/gcc-3.4.3.rw.po ! 1f918fec6abef8720da3ea019d6c1063 gcc/po/gcc.pot ! 9fe170cb518d42f21c853d8d03215997 gcc/po/ja.gmo ! b4a0be4ff035d81fb31d196e1eb22b3d gcc/po/ja.po ! 03ae95ff64823fe5fb4e72e5362a9f7f gcc/po/nl.gmo ! 1fe578deae4342759dc9b6eb9f6231f2 gcc/po/nl.po ! 32a9efbc355556f63e910770bbc15b06 gcc/po/sv.gmo ! 80cd647f5d1709fc184a0ad17b0e5805 gcc/po/sv.po ! 56e3787c14a5b174f15b0b0c79424a19 gcc/po/tr.gmo ! ba44df2ea360ff140e2e0afb810bf71e gcc/po/tr.po 51a3ba4957813621667e0433cf2c774b gcc/postreload.c ! 7fcbe52c9ffc51e30be49480954ee2be gcc/predict.c 54f86796beba9bdcc34d522dba276d3a gcc/predict.def c1cb919211df56d98aed3a477a3521dd gcc/predict.h 06c0712e267a6d4c61fbb08ff6fd5a4c gcc/prefix.c *************** a1d7a3ead9f439c9ad80b1ae671044e6 gcc/pr *** 3432,3449 **** 12d6f8864e183084b196ba7775b8e23c gcc/ra.c 31c22bc8a26bd095b6e462c3320b4264 gcc/ra.h 0458517682318db3a45ae463072e2fa9 gcc/read-rtl.c ! 20e783d430cd770669c4dd8b2b35831b gcc/real.c d290e4d8d6776a36f3b1c69ec1ba04af gcc/real.h b03b893ff7b1db5aa085dd2fa2b3f0b0 gcc/recog.c a141a2e9d14adcd7a65b79c915501ad6 gcc/recog.h ! d0a006ef8e8e09b4a6fa022b238d9e8b gcc/reg-stack.c 7db926625dabbdf77d11dc0874a32291 gcc/regclass.c 7c2cd1e82437b6f216dbd7b86cec0d8e gcc/regmove.c ! 1df18460a030d4d89c1de57d75b8372c gcc/regrename.c 3bb136e9484e9c0581f3f19239e1de65 gcc/regs.h ! 8b8f6e5d0cb8eba955aa6b2ace4068bd gcc/reload.c 175c1af1dad98a50275ca027dc5da114 gcc/reload.h ! 6a12a4e39e8cbf33b38fab3782dd8c1f gcc/reload1.c 1d07266cfedc2cc350961ea00bda010e gcc/reorg.c 74992b7b7d258750dae9ad57af406c53 gcc/resource.c 55dba9f64045568e4b859a0fa9c0f7e6 gcc/resource.h --- 3440,3457 ---- 12d6f8864e183084b196ba7775b8e23c gcc/ra.c 31c22bc8a26bd095b6e462c3320b4264 gcc/ra.h 0458517682318db3a45ae463072e2fa9 gcc/read-rtl.c ! 4cc4d1e70a920169b4c2cdbbcb437faf gcc/real.c d290e4d8d6776a36f3b1c69ec1ba04af gcc/real.h b03b893ff7b1db5aa085dd2fa2b3f0b0 gcc/recog.c a141a2e9d14adcd7a65b79c915501ad6 gcc/recog.h ! 27be29b9cfded8186e8fc622a07598e4 gcc/reg-stack.c 7db926625dabbdf77d11dc0874a32291 gcc/regclass.c 7c2cd1e82437b6f216dbd7b86cec0d8e gcc/regmove.c ! b3652300962fba5fb2db476c29029bac gcc/regrename.c 3bb136e9484e9c0581f3f19239e1de65 gcc/regs.h ! 051f1140443e34cfa58f88efe75f4c5d gcc/reload.c 175c1af1dad98a50275ca027dc5da114 gcc/reload.h ! b0eb4ca8f7d2d3603245e3aa9f731cf0 gcc/reload1.c 1d07266cfedc2cc350961ea00bda010e gcc/reorg.c 74992b7b7d258750dae9ad57af406c53 gcc/resource.c 55dba9f64045568e4b859a0fa9c0f7e6 gcc/resource.h *************** abbb31b5513b67548912cfdb29ef730f gcc/sc *** 3466,3472 **** 6ca19c2c7257639550759426490a819f gcc/sdbout.c 3e8309c186840a3b20db0f0245f8a172 gcc/sdbout.h 65bca147f56d8eb98ee80a2c9045cd86 gcc/sibcall.c ! b162aaa7a9ee5d431b459e6441889628 gcc/simplify-rtx.c 8e865a71c4e2c43eae4afbcf143af4a6 gcc/sort-protos 47b3c183ec753b4378a943bca556277b gcc/sreal.c ae128709f9021ffb7cc827cf20d60022 gcc/sreal.h --- 3474,3480 ---- 6ca19c2c7257639550759426490a819f gcc/sdbout.c 3e8309c186840a3b20db0f0245f8a172 gcc/sdbout.h 65bca147f56d8eb98ee80a2c9045cd86 gcc/sibcall.c ! b3d79b8bfb851a1d5f5cdaab0841245a gcc/simplify-rtx.c 8e865a71c4e2c43eae4afbcf143af4a6 gcc/sort-protos 47b3c183ec753b4378a943bca556277b gcc/sreal.c ae128709f9021ffb7cc827cf20d60022 gcc/sreal.h *************** af69905e10a2bdef1afc3b7d196d6bbe gcc/ta *** 3483,3489 **** 262900dd91f9bab87894be0ac4fcea23 gcc/target.h 85919bb08e4e5b107f8fd9cd5df1f270 gcc/targhooks.c d9e3034ee194c839993c456cf319a77d gcc/targhooks.h ! e64c73b67a25618979781f90dd4f7207 gcc/testsuite/ChangeLog ed685b45b94fbbca4d750830610dfec1 gcc/testsuite/README ed6044530cbd807a721e03d82623cb63 gcc/testsuite/README.QMTEST 9d7c37cd869e4bc7098e34c5a36e7a76 gcc/testsuite/README.compat --- 3491,3497 ---- 262900dd91f9bab87894be0ac4fcea23 gcc/target.h 85919bb08e4e5b107f8fd9cd5df1f270 gcc/targhooks.c d9e3034ee194c839993c456cf319a77d gcc/targhooks.h ! 260d3930ebd5e07782a383a5cfac34f5 gcc/testsuite/ChangeLog ed685b45b94fbbca4d750830610dfec1 gcc/testsuite/README ed6044530cbd807a721e03d82623cb63 gcc/testsuite/README.QMTEST 9d7c37cd869e4bc7098e34c5a36e7a76 gcc/testsuite/README.compat *************** ed6044530cbd807a721e03d82623cb63 gcc/te *** 3491,3498 **** 4004844198395fe50ecb798ed5d30f4b gcc/testsuite/ada/acats/elabd.lst af648bbf3e3cda21e98806ab0139e55e gcc/testsuite/ada/acats/norun.lst d5748b449a081324237ae22a21f32a3f gcc/testsuite/ada/acats/overflow.lst ! 294b37c06aa0f2acc7cb0382eaa1c6ad gcc/testsuite/ada/acats/run_acats ! 074e791b9094b741dae6aa90a671134e gcc/testsuite/ada/acats/run_all.sh d45e1c07702f81b7fa521c99282fd51b gcc/testsuite/ada/acats/support/acats25.lst 2f262cdb98b38922d7b7f84414f43b84 gcc/testsuite/ada/acats/support/checkfil.ada 4edf20410814582eae331707f2ae2c77 gcc/testsuite/ada/acats/support/enumchek.ada --- 3499,3506 ---- 4004844198395fe50ecb798ed5d30f4b gcc/testsuite/ada/acats/elabd.lst af648bbf3e3cda21e98806ab0139e55e gcc/testsuite/ada/acats/norun.lst d5748b449a081324237ae22a21f32a3f gcc/testsuite/ada/acats/overflow.lst ! b89e17be4a44075d5547c401db5bee3c gcc/testsuite/ada/acats/run_acats ! eea8b1d0bfaed9184a5f561b46773e3b gcc/testsuite/ada/acats/run_all.sh d45e1c07702f81b7fa521c99282fd51b gcc/testsuite/ada/acats/support/acats25.lst 2f262cdb98b38922d7b7f84414f43b84 gcc/testsuite/ada/acats/support/checkfil.ada 4edf20410814582eae331707f2ae2c77 gcc/testsuite/ada/acats/support/enumchek.ada *************** f88af2b3eb53ad7c8700efbd0f878915 gcc/te *** 3542,3554 **** 56ba35dd56ea544c0eb9146769871492 gcc/testsuite/ada/acats/support/fxe2a00.a 67770e9161b0f48f3fc9392bd3460272 gcc/testsuite/ada/acats/support/fxf2a00.a 6628969f51dd10c56235f9d7420e2d44 gcc/testsuite/ada/acats/support/fxf3a00.a 7d5e524b6ec7cfb08b38af7bccf39d8e gcc/testsuite/ada/acats/support/impdef.a 4f2f9bfdfcfd8c5ecaf503416d1cfc5f gcc/testsuite/ada/acats/support/impdefd.a edf70d423a69adebd38e9b29f35a2ba1 gcc/testsuite/ada/acats/support/impdefe.a f4c51093f419176fbe553f5299e3791a gcc/testsuite/ada/acats/support/impdefg.a 5d9a0f98d9f15211e0773263febb974b gcc/testsuite/ada/acats/support/impdefh.a f2604ccc5244696793b33e7b83c57c45 gcc/testsuite/ada/acats/support/lencheck.ada ! d90ee1da2485f2e63d2efaf2a3720c04 gcc/testsuite/ada/acats/support/macro.dfs 72980ae1a3bbd5b71aa915cefeaebf6e gcc/testsuite/ada/acats/support/macrodef.adb 4d7b79a3ff077d1ab05a78ebcf5a1de3 gcc/testsuite/ada/acats/support/macrosub.ada 72f1263dc9ff4e693aa8ec258a9b59df gcc/testsuite/ada/acats/support/repbody.ada --- 3550,3563 ---- 56ba35dd56ea544c0eb9146769871492 gcc/testsuite/ada/acats/support/fxe2a00.a 67770e9161b0f48f3fc9392bd3460272 gcc/testsuite/ada/acats/support/fxf2a00.a 6628969f51dd10c56235f9d7420e2d44 gcc/testsuite/ada/acats/support/fxf3a00.a + 6a9b6ce90538e9126e7e5badc62ddca2 gcc/testsuite/ada/acats/support/impbit.adb 7d5e524b6ec7cfb08b38af7bccf39d8e gcc/testsuite/ada/acats/support/impdef.a 4f2f9bfdfcfd8c5ecaf503416d1cfc5f gcc/testsuite/ada/acats/support/impdefd.a edf70d423a69adebd38e9b29f35a2ba1 gcc/testsuite/ada/acats/support/impdefe.a f4c51093f419176fbe553f5299e3791a gcc/testsuite/ada/acats/support/impdefg.a 5d9a0f98d9f15211e0773263febb974b gcc/testsuite/ada/acats/support/impdefh.a f2604ccc5244696793b33e7b83c57c45 gcc/testsuite/ada/acats/support/lencheck.ada ! 6b2f1cd3290cd6ebb6f3e9ad1ae797de gcc/testsuite/ada/acats/support/macro.dfs 72980ae1a3bbd5b71aa915cefeaebf6e gcc/testsuite/ada/acats/support/macrodef.adb 4d7b79a3ff077d1ab05a78ebcf5a1de3 gcc/testsuite/ada/acats/support/macrosub.ada 72f1263dc9ff4e693aa8ec258a9b59df gcc/testsuite/ada/acats/support/repbody.ada *************** d9e96ae25c2319373bcfd08d3028762f gcc/te *** 7868,7874 **** c066ba2e23a50eda1497704cad37719c gcc/testsuite/g++.dg/compat/break/vbase11_main.C cc9fd160c8ac0d554f08ed78757c1ad7 gcc/testsuite/g++.dg/compat/break/vbase11_x.C 3af15235a86640de95ef01c264b9a669 gcc/testsuite/g++.dg/compat/break/vbase11_y.C ! 311f0692768f1e2b708f2d6c094bb325 gcc/testsuite/g++.dg/compat/compat.exp a6ee60e2015da31ed1aa06aae1c48e97 gcc/testsuite/g++.dg/compat/eh/ctor1.h 74d8ae87a4aa4945c36db0894fcdbc87 gcc/testsuite/g++.dg/compat/eh/ctor1_main.C 5919ecfa4fa000ff8d0708eff1caafd0 gcc/testsuite/g++.dg/compat/eh/ctor1_x.C --- 7877,7883 ---- c066ba2e23a50eda1497704cad37719c gcc/testsuite/g++.dg/compat/break/vbase11_main.C cc9fd160c8ac0d554f08ed78757c1ad7 gcc/testsuite/g++.dg/compat/break/vbase11_x.C 3af15235a86640de95ef01c264b9a669 gcc/testsuite/g++.dg/compat/break/vbase11_y.C ! 9b287a69a51308b483ab17c2f6245661 gcc/testsuite/g++.dg/compat/compat.exp a6ee60e2015da31ed1aa06aae1c48e97 gcc/testsuite/g++.dg/compat/eh/ctor1.h 74d8ae87a4aa4945c36db0894fcdbc87 gcc/testsuite/g++.dg/compat/eh/ctor1_main.C 5919ecfa4fa000ff8d0708eff1caafd0 gcc/testsuite/g++.dg/compat/eh/ctor1_x.C *************** afd58e33c0f82e6f79a20b57f3d3d543 gcc/te *** 7924,7929 **** --- 7933,7939 ---- 7099b2ccdbe9faffb91a1279b3d9c958 gcc/testsuite/g++.dg/compat/init/init-ref2_main.C 6599bf4c55d10d3d74d35fd52dc68f6c gcc/testsuite/g++.dg/compat/init/init-ref2_x.C 75bddd0f3c0ceb101b0c3111cedc4fb4 gcc/testsuite/g++.dg/compat/init/init-ref2_y.C + 3cd5d1f28d7b9a35f56b0468e798225e gcc/testsuite/g++.dg/conversion/ambig1.C 3a1a08be0e7ef48d24c3effabe0bc96f gcc/testsuite/g++.dg/conversion/cond1.C e588675f14c4bd6919f2de257b165dee gcc/testsuite/g++.dg/conversion/cond2.C da146cc2c8fcbbcd080e02f0e3f733df gcc/testsuite/g++.dg/conversion/cond3.C *************** f3e5e740f9e7210ccece705c6d548267 gcc/te *** 7955,7960 **** --- 7965,7971 ---- 7e13d86d33b17cfb7cdf61b7b8cca961 gcc/testsuite/g++.dg/debug/template1.C f50cc26d9a41a3cc4afb62032326372f gcc/testsuite/g++.dg/debug/trivial.C 863c8434199f0ac4d3a2d8d915bd5d1a gcc/testsuite/g++.dg/debug/typedef1.C + de7626032b99ed0b36b4dc7fb3f18f9d gcc/testsuite/g++.dg/debug/typedef3.C a35ccb07266692591a20b6d73ff358cb gcc/testsuite/g++.dg/dg.exp 9c84af759e7a0280e3b2d6a8cc5f8716 gcc/testsuite/g++.dg/eh/cleanup1.C 39018f18e1fc86801376affc388c0539 gcc/testsuite/g++.dg/eh/cleanup2.C *************** a4b58c1bbb3dbe30a54ff4144c5e9479 gcc/te *** 8069,8074 **** --- 8080,8086 ---- c460ffd02f4c4ad800649b58a60f30e1 gcc/testsuite/g++.dg/ext/attrib12.C 3c5631b027ef64c7af2375ff8239a83f gcc/testsuite/g++.dg/ext/attrib13.C 39e052366a96099f26b671796340eb37 gcc/testsuite/g++.dg/ext/attrib15.C + 156cb04363d25c08db71f92c962b39d7 gcc/testsuite/g++.dg/ext/attrib19.C 7b769337b45c87f3c5f62ad1dc100502 gcc/testsuite/g++.dg/ext/attrib2.C 7d022bc15e4179e83cb22834a71091af gcc/testsuite/g++.dg/ext/attrib3.C 0689e86022776421672cfd3ac67e3153 gcc/testsuite/g++.dg/ext/attrib4.C *************** ae2794e104309a224e228d70e4cede48 gcc/te *** 8126,8131 **** --- 8138,8144 ---- faa8333681bedde3ba84daa60ec26ff8 gcc/testsuite/g++.dg/ext/pretty2.C 171b60b2dd599842569025ee22f7703a gcc/testsuite/g++.dg/ext/restrict1.C 3aa28eb06dcd446bbf0f03cd07e191fc gcc/testsuite/g++.dg/ext/stmtexpr1.C + d8464f7bef5d2b7f7608ba7f9af41a83 gcc/testsuite/g++.dg/ext/stmtexpr4.C e9d03f1964df6b0b82bc92f7cb17d1a2 gcc/testsuite/g++.dg/ext/typedef-init.C a55635b999e217d4900dcb3975178408 gcc/testsuite/g++.dg/ext/typename1.C 797d2045e8822a50b44635725cab1028 gcc/testsuite/g++.dg/ext/typeof1.C *************** f3b3605ed6515de4b142977d92356815 gcc/te *** 8165,8170 **** --- 8178,8185 ---- d5b9e7987bad7019aaec9e69eab66e85 gcc/testsuite/g++.dg/inherit/covariant1.C c45cf3d192b85a046a341359fd79b95f gcc/testsuite/g++.dg/inherit/covariant10.C 8799bf88ee0d1e0be597004c422cbda8 gcc/testsuite/g++.dg/inherit/covariant11.C + 024b0d1452f48d9188fd4c6f01697f03 gcc/testsuite/g++.dg/inherit/covariant12.C + a30e748e839e3234af2982a8507640f3 gcc/testsuite/g++.dg/inherit/covariant13.C 1a712ed4a3f761571bfe894372a9032b gcc/testsuite/g++.dg/inherit/covariant2.C 24ff947b4da8f1fcee6c7b66d8388009 gcc/testsuite/g++.dg/inherit/covariant3.C 8c6bb6aaa56fa2bea8b375c52fab5688 gcc/testsuite/g++.dg/inherit/covariant4.C *************** a79ad2e50ca8d0ab6dd5b27254f204b5 gcc/te *** 8199,8204 **** --- 8214,8223 ---- 277d5eaa0119e28a1c7aaa014f13a7c9 gcc/testsuite/g++.dg/init/array11.C cdd8bcf2d0f951ea0f042ff962ed9854 gcc/testsuite/g++.dg/init/array12.C d0bb03e714f655f56840d4e660ac77be gcc/testsuite/g++.dg/init/array13.C + 4b343cab41b920a5cd17c596fa24cc6f gcc/testsuite/g++.dg/init/array15.C + 6edbe02baa73e2e039331eed39a96e9c gcc/testsuite/g++.dg/init/array16.C + db737c897b3b257dcc015a0f7ff35dcc gcc/testsuite/g++.dg/init/array18.C + 2010ab8cabd116e1c5704c568327ae76 gcc/testsuite/g++.dg/init/array18a.C fa5767203bb04480dc89d15d55d04ad1 gcc/testsuite/g++.dg/init/array2.C 0212d2961b78684e39260cc7bf7ae66a gcc/testsuite/g++.dg/init/array3.C dafd4fb071c88ff21250002b43675816 gcc/testsuite/g++.dg/init/array4.C *************** ef95eb29955e54a2310be36a0828b0cb gcc/te *** 8260,8265 **** --- 8279,8285 ---- 49c02c7ea8ff817fb850567f5e9bb9d8 gcc/testsuite/g++.dg/init/pm2.C b8f980c062ec4b3f73dffbda8276ec70 gcc/testsuite/g++.dg/init/pm3.C d92713305e498425e3152fff2c8acf2d gcc/testsuite/g++.dg/init/ptrmem1.C + 74ea9e49b5fe45a570f00a8474ac7198 gcc/testsuite/g++.dg/init/ptrmem2.C 1b51fdd73c1758c6564cee1de0ae7aff gcc/testsuite/g++.dg/init/ref1.C bad5721c186c4b7e163fcd05cffe528d gcc/testsuite/g++.dg/init/ref10.C d0d8fbd7155549c25221fd9539a9ffc5 gcc/testsuite/g++.dg/init/ref11.C *************** ded575d1c35757dbf89f635e5a86910d gcc/te *** 8277,8282 **** --- 8297,8303 ---- 8b181745d241d484dd529391acd12c57 gcc/testsuite/g++.dg/init/string1.C 45abc8e0bdd04e2c0dd28c4de54e85c7 gcc/testsuite/g++.dg/init/struct1.C a94d2ff7c7a43d0764a116004fa30738 gcc/testsuite/g++.dg/init/union1.C + 75fa012514803aa0a98113ff8b7474c6 gcc/testsuite/g++.dg/init/vector1.C f1339a059a53b8c932f6dd4870283209 gcc/testsuite/g++.dg/lookup/ambig1.C fa1ea4ed4c9f1ae996929481bd6de67c gcc/testsuite/g++.dg/lookup/ambig2.C 2f777984f797382f3dba7eab93665be9 gcc/testsuite/g++.dg/lookup/anon1.C *************** fb015b2936976958a6c9772e86df9bd9 gcc/te *** 8296,8301 **** --- 8317,8323 ---- 2284b69f8b484472d6345337a8a6a099 gcc/testsuite/g++.dg/lookup/exception1.C c961035d55063ab35ff011e8098d8ea9 gcc/testsuite/g++.dg/lookup/forscope1.C f095afdbf961d01e5ac006fff4dbda02 gcc/testsuite/g++.dg/lookup/friend1.C + f00af47e1b16d7d6e6577ae76572b806 gcc/testsuite/g++.dg/lookup/friend6.C 174d2e4b1ee80cd6271263ff718ef864 gcc/testsuite/g++.dg/lookup/java1.C 40e4e171e0873c0f5dcc69b483c69b75 gcc/testsuite/g++.dg/lookup/java2.C 8d10025bf12a4e96a526c6e8ca385941 gcc/testsuite/g++.dg/lookup/koenig1.C *************** c44c726de3c9ebad9efc6f0268a223d3 gcc/te *** 8304,8309 **** --- 8326,8332 ---- 634eca78a66aff86cb1d96384411430c gcc/testsuite/g++.dg/lookup/koenig4.C 6438f8158c9b2b3fffe8884a62ce29af gcc/testsuite/g++.dg/lookup/main1.C 87fc629e5c4d461f8b0b8d07b9e85a50 gcc/testsuite/g++.dg/lookup/member1.C + 8987951c940f83baf2c7608b76695a1a gcc/testsuite/g++.dg/lookup/name-clash4.C 2aad717d2580b37ccf512edb71fd54a2 gcc/testsuite/g++.dg/lookup/nested1.C 72c3a9b17a32af0585fa3bf9d370c39d gcc/testsuite/g++.dg/lookup/ns1.C 8fad00e146fe0525b4a78080a95a7ca8 gcc/testsuite/g++.dg/lookup/ns2.C *************** a793e64bb6b34881797f23d0f6a812f7 gcc/te *** 8333,8338 **** --- 8356,8362 ---- 37ba62633a35db58ce53d2e965c7405c gcc/testsuite/g++.dg/lookup/using-10.C e787b658f008402e539125d8744f57b8 gcc/testsuite/g++.dg/lookup/using.C 3b1be5c1d7f024899683d6b51a3db2aa gcc/testsuite/g++.dg/lookup/using11.C + 48b254e1c2661f3029eb99d0e76ad5a5 gcc/testsuite/g++.dg/lookup/using13.C 0b6e8b0a5d151134cc9e429382ecd4b8 gcc/testsuite/g++.dg/lookup/using2.C d56f4b6d96d8a5c73deddb44f985b2b0 gcc/testsuite/g++.dg/lookup/using3.C a9f8bb8a4c2ceef1805b242e53567377 gcc/testsuite/g++.dg/lookup/using4.C *************** f8d8b6e43c65e932c2f62a1b6414e898 gcc/te *** 8375,8385 **** --- 8399,8411 ---- 255209f312d67a90af5347445715b3c5 gcc/testsuite/g++.dg/opt/inline4.C d6211992cdc6ec155a7621cf706f93dd gcc/testsuite/g++.dg/opt/inline5.C 5c520267c44f9ad56a86ee13778463ba gcc/testsuite/g++.dg/opt/inline6.C + d843cdf6dd2d552130039968240a53fc gcc/testsuite/g++.dg/opt/inline9.C bc09b3d36d6565d9d819a6e644798dc9 gcc/testsuite/g++.dg/opt/life1.C 83a82f683c2ef38a1d683e0c8055bded gcc/testsuite/g++.dg/opt/local1.C 74049e3e36b5fbdab2f271b70320a6d8 gcc/testsuite/g++.dg/opt/longbranch1.C db4ba30ed024b772733b7edeb05ab8bb gcc/testsuite/g++.dg/opt/longbranch2.C 7138258a897096adae7238a76c0f3756 gcc/testsuite/g++.dg/opt/loop1.C + 35c70fc869653b5c1c6f9f9567b9c68c gcc/testsuite/g++.dg/opt/max1.C 7c7311ce5c4ba7400ec6dfbaa4dbd838 gcc/testsuite/g++.dg/opt/mmx1.C aae564cdd9b50225ee28c64cfe203a3b gcc/testsuite/g++.dg/opt/noreturn-1.C 835771d4b580573ed930662d2b25babf gcc/testsuite/g++.dg/opt/nrv1.C *************** e9ca94155e8ec94de58d712efe1ac359 gcc/te *** 8396,8401 **** --- 8422,8428 ---- 5464d960c9f938a5db5e2ec3cd1657fd gcc/testsuite/g++.dg/opt/pr16693-1.C b33d962f4d889b6838bfcd5d254ef7bb gcc/testsuite/g++.dg/opt/pr16693-2.C 8ebdd0e826546bdb2f9be82a0c9a3631 gcc/testsuite/g++.dg/opt/pr18084-1.C + 4acbed4cf8581a600838d225b2b0fc01 gcc/testsuite/g++.dg/opt/pr20995-1.C ac2356162f00cd5e8804482480f1795a gcc/testsuite/g++.dg/opt/pr6713.C 1451eba24eea82cbd0c1ab87885c0f77 gcc/testsuite/g++.dg/opt/preinc1.C 0841088f825be785d32663d712ecf675 gcc/testsuite/g++.dg/opt/ptrintsum1.C *************** ceb0c0d2e878f1b7898a912bfe02d365 gcc/te *** 8430,8435 **** --- 8457,8463 ---- 2390d795aed3055b519caf1166461619 gcc/testsuite/g++.dg/other/big-struct.C f4cf136163ee3fd615e4a9643520781f gcc/testsuite/g++.dg/other/bitfield1.C 1f9deab6de33410096a2cefb58d5c635 gcc/testsuite/g++.dg/other/classkey1.C + b0eb29945f04721ade114ff6651768e8 gcc/testsuite/g++.dg/other/complex1.C 9a9f2d37d50b140a185bd91a2353aaa8 gcc/testsuite/g++.dg/other/component1.C aefc8b529864476d506924ee05711a7a gcc/testsuite/g++.dg/other/const1.C 65c0a747dff974d4f19eda6304e002f9 gcc/testsuite/g++.dg/other/const2.C *************** aeacbd129aa91e6acca9b9022f8e03ba gcc/te *** 8482,8487 **** --- 8510,8516 ---- c79782b762cef64300df319862fcdc0f gcc/testsuite/g++.dg/other/ptrmem2.C aa501740c79db5668ed5a41a648546f6 gcc/testsuite/g++.dg/other/ptrmem3.C 76b8bc4328319b30e522cbc6e57ff4ed gcc/testsuite/g++.dg/other/ptrmem4.C + 6b08cb238dd6367be52907131a810d21 gcc/testsuite/g++.dg/other/ptrmem6.C 22822b2c7eaa7d4e22eb88d6ce526a4c gcc/testsuite/g++.dg/other/redecl1.C 97e48186eadf96baa75dab50f7628d6a gcc/testsuite/g++.dg/other/scope1.C 23d79ad177c61b847e8d1f84b3f7397b gcc/testsuite/g++.dg/other/static1.C *************** aa501740c79db5668ed5a41a648546f6 gcc/te *** 8490,8500 **** --- 8519,8535 ---- 6678e40619d5043af4bec1849f7634ae gcc/testsuite/g++.dg/other/stdarg2.C 5e0beb379071427ec23de04edb342301 gcc/testsuite/g++.dg/other/struct-va_list.C 6312bd4cf43fd17e803778af8b1f2031 gcc/testsuite/g++.dg/other/switch1.C + 9bae0d01ef429f94e58c536f39c9ca7b gcc/testsuite/g++.dg/other/synth1.C + 5c2adc76f21ce8f7182fe1930db8db73 gcc/testsuite/g++.dg/other/unreachable1.C add359f24ea985cbb8f0a2e32cf653ce gcc/testsuite/g++.dg/other/warning1.C 438ff59ba4babee80d41457c2bc8db1e gcc/testsuite/g++.dg/overload/VLA.C 31a1eb67025f875651678e52a1e2b3d1 gcc/testsuite/g++.dg/overload/addr1.C d023620009e9c8628189ca086290643b gcc/testsuite/g++.dg/overload/ambig1.C ea3127f4b42d821f844905a93809eb92 gcc/testsuite/g++.dg/overload/ambig2.C + 573f0cb9d28274fe4776cc39b8a875ed gcc/testsuite/g++.dg/overload/arg1.C + 4491935dbfe94276c1739fb569f323e7 gcc/testsuite/g++.dg/overload/arg2.C + c0080960cdfb00ad691b47805756a33b gcc/testsuite/g++.dg/overload/arg3.C + bef3fe03bfa5bee8841e795fcab96f07 gcc/testsuite/g++.dg/overload/arg4.C c7adb71813a104a656c6a2e2baf25739 gcc/testsuite/g++.dg/overload/builtin1.C 3a79826fd499e94593a88f2c06436f3d gcc/testsuite/g++.dg/overload/builtin2.C 63766fb1bce3bab4ad17a59d07a272d2 gcc/testsuite/g++.dg/overload/builtin3.C *************** a436e857943377addaac3203f4d85eb4 gcc/te *** 8512,8517 **** --- 8547,8553 ---- 1bd540977a3ebf0e74db36e595b11998 gcc/testsuite/g++.dg/overload/scope1.C 1e6f1679bedcc11510f7cadcb011cec3 gcc/testsuite/g++.dg/overload/template1.C 85ece6c01345af5b8d407b8e19d781f9 gcc/testsuite/g++.dg/overload/using1.C + dc068d99ce0d483f9daf7da097089a1b gcc/testsuite/g++.dg/overload/using2.C f0e44977493ab0fe59f740f65a694211 gcc/testsuite/g++.dg/overload/virtual1.C 41352a2a4cc8c007e49113d208fc4fac gcc/testsuite/g++.dg/parse/access1.C 54c26f1516f9e36b3819b0dc7464c933 gcc/testsuite/g++.dg/parse/access2.C *************** f3d728b9f5406acac0e060b613e85e35 gcc/te *** 8538,8548 **** --- 8574,8586 ---- b768f688a17e6fb93e41198625381298 gcc/testsuite/g++.dg/parse/class1.C 9f22e2644b1705f550f58acfee973744 gcc/testsuite/g++.dg/parse/comma1.C c20d14b721443c68f73728331d14fbe0 gcc/testsuite/g++.dg/parse/concat1.C + 73b5fec6848a7932aba299c38c57d8ed gcc/testsuite/g++.dg/parse/cond1.C 88ea1494d81948e2d2af7b240440d149 gcc/testsuite/g++.dg/parse/condexpr1.C bfeb624c1fc667410d95e4596057c951 gcc/testsuite/g++.dg/parse/constant1.C b9d605265e28097c16a8dd9715ebcd23 gcc/testsuite/g++.dg/parse/constant2.C 18865792b57aa709f57045520da4abd5 gcc/testsuite/g++.dg/parse/constant3.C ae683494d5f26653a04905a9f3115068 gcc/testsuite/g++.dg/parse/constant4.C + e773e9fc506890dda1d6fbb37fd77ae4 gcc/testsuite/g++.dg/parse/constant7.C 4bbd76fea706d6a9331c87b6b7b8a538 gcc/testsuite/g++.dg/parse/constructor1.C 372cd66c0636977b2eaf4be6b4310a42 gcc/testsuite/g++.dg/parse/constructor2.C 5a399fbfb7b6718be8ad9eb3ea24af68 gcc/testsuite/g++.dg/parse/conv_op1.C *************** fa4b6b5bc646f199087a3c238d1be6c9 gcc/te *** 8553,8558 **** --- 8591,8597 ---- 0f1f99e6dcaa38da51ca733e97c1c0cb gcc/testsuite/g++.dg/parse/crash13.C 8fc5d6dab19b9f89401818b0138ffa98 gcc/testsuite/g++.dg/parse/crash14.C 763dc11e85b1839d0dbe23a9460bf2df gcc/testsuite/g++.dg/parse/crash2.C + 8b8f5d08ed05973b2184f7b2d97418e4 gcc/testsuite/g++.dg/parse/crash23.C 1893d49612e9a07e189ba50eff994ac3 gcc/testsuite/g++.dg/parse/crash3.C ea254dd6e59a027998efd9cbcb6f405d gcc/testsuite/g++.dg/parse/crash4.C ca305e88317a3cd781d4bd8bf8fc3fc4 gcc/testsuite/g++.dg/parse/crash5.C *************** c2a5649592cbbe88e85ed2dcd1b7cc0f gcc/te *** 8579,8584 **** --- 8618,8624 ---- 0b205933b711e595594b0373985e2bab gcc/testsuite/g++.dg/parse/elab1.C 483789f7fe65ac9a110022a53ba0da8e gcc/testsuite/g++.dg/parse/elab2.C bffa59fb0720de69133074cfe6a10f52 gcc/testsuite/g++.dg/parse/enum1.C + 06d19cbedd1d62affd5a8ee99eaa7c6c gcc/testsuite/g++.dg/parse/enum2.C 5899bb448a99b1043a6627a8f00344af gcc/testsuite/g++.dg/parse/error1.C d656216ea9a3c459dc105586a70fc044 gcc/testsuite/g++.dg/parse/error10.C 19ec87503923204963d1e8247990b5ad gcc/testsuite/g++.dg/parse/error11.C *************** d4b9b09e269301b7b313930e30ee615a gcc/te *** 8672,8677 **** --- 8712,8720 ---- 306b5f567acd6eaa85224e96d73ce3b9 gcc/testsuite/g++.dg/parse/stmtexpr1.C 1b488068dbc8a397f00a9357343a316b gcc/testsuite/g++.dg/parse/stmtexpr2.C ccb9c7711485ad860e4cdd6e7509872a gcc/testsuite/g++.dg/parse/stmtexpr3.C + bf3916285ed2309a4ee27696a63242d1 gcc/testsuite/g++.dg/parse/struct-1.C + 7add62309fb207e986f0912f0444b18b gcc/testsuite/g++.dg/parse/struct-2.C + 9ea0f9eb74ca962b92bb9cd0d459bc60 gcc/testsuite/g++.dg/parse/struct-3.C dd7e62299b7edc7cc9a7ce18ebe05558 gcc/testsuite/g++.dg/parse/struct-as-enum1.C 3dad07cbf6929262693afc2ecdc53b66 gcc/testsuite/g++.dg/parse/template1.C e09de720f2c9e56b0965a0866614ebb9 gcc/testsuite/g++.dg/parse/template10.C *************** ad306b472383a2d022b240112ede2bf3 gcc/te *** 8702,8709 **** cbccebd52f80be1acc21283b8d2ec373 gcc/testsuite/g++.dg/parse/typename2.C 395c7fdd493455c7e9ebc3b33b0a1c1c gcc/testsuite/g++.dg/parse/typename3.C 95be08d8904a9272cf1346d3a396852b gcc/testsuite/g++.dg/parse/typename4.C ! 20204d9551f185474e9f17442cea7e02 gcc/testsuite/g++.dg/parse/typename5.C b0f5ec75318aa529434dbc4805531cdb gcc/testsuite/g++.dg/parse/typename6.C ad9b24c5c7ea39c6bc5b3c4d8a5e8dee gcc/testsuite/g++.dg/parse/undefined1.C 0d9c002feba0c28525ef93144889e786 gcc/testsuite/g++.dg/parse/undefined2.C 6e1b295c76607b6498e4d28f8752eeb8 gcc/testsuite/g++.dg/parse/undefined3.C --- 8745,8753 ---- cbccebd52f80be1acc21283b8d2ec373 gcc/testsuite/g++.dg/parse/typename2.C 395c7fdd493455c7e9ebc3b33b0a1c1c gcc/testsuite/g++.dg/parse/typename3.C 95be08d8904a9272cf1346d3a396852b gcc/testsuite/g++.dg/parse/typename4.C ! 979c20e0b12da5f2d9ab3fc8b1d0e674 gcc/testsuite/g++.dg/parse/typename5.C b0f5ec75318aa529434dbc4805531cdb gcc/testsuite/g++.dg/parse/typename6.C + a784ae29947cdab5c0e0645aeae4d438 gcc/testsuite/g++.dg/parse/typename7.C ad9b24c5c7ea39c6bc5b3c4d8a5e8dee gcc/testsuite/g++.dg/parse/undefined1.C 0d9c002feba0c28525ef93144889e786 gcc/testsuite/g++.dg/parse/undefined2.C 6e1b295c76607b6498e4d28f8752eeb8 gcc/testsuite/g++.dg/parse/undefined3.C *************** c557bdb58ff52b9fc368185880923627 gcc/te *** 8775,8780 **** --- 8819,8825 ---- 579905889abdf110f78879708a88d557 gcc/testsuite/g++.dg/template/array7.C 11d89720e8ea4a5f11553338c13ffab9 gcc/testsuite/g++.dg/template/call1.C e459df3ddd572b111e8694073c95e5b9 gcc/testsuite/g++.dg/template/call2.C + 3ec4b7824a9a83b377fe22af12deb661 gcc/testsuite/g++.dg/template/call3.C a8067ac68b36a7f6b81ed3e72bd5d218 gcc/testsuite/g++.dg/template/char1.C 706f2857327f695c7b984df9d14be0b0 gcc/testsuite/g++.dg/template/class1.C 4a9fdbf9e37ab379d97118860f6e5744 gcc/testsuite/g++.dg/template/class2.C *************** a8067ac68b36a7f6b81ed3e72bd5d218 gcc/te *** 8783,8788 **** --- 8828,8834 ---- 4336c9181e48a94368c9c6bbf4270562 gcc/testsuite/g++.dg/template/cond2.C 3dfcddf50f883d0eabd3e0a6a6f3be44 gcc/testsuite/g++.dg/template/cond3.C 8e0316960b82711ee5f56b8b469d01b1 gcc/testsuite/g++.dg/template/cond4.C + b57e771003b4e6bae893080e79c82fbc gcc/testsuite/g++.dg/template/cond5.C 32f254d8ff7fc2dadfbb4100169c8710 gcc/testsuite/g++.dg/template/conv1.C 383f6618c1ccaddea23b36ff23d6d35e gcc/testsuite/g++.dg/template/conv2.C be5017725e9889a47d07ba0d3a3464ff gcc/testsuite/g++.dg/template/conv3.C *************** e11ee09376a4af9fd0b4e8a0131f1ad5 gcc/te *** 8808,8813 **** --- 8854,8862 ---- 1a93146cc62f110f6b65fd8e3eb06d85 gcc/testsuite/g++.dg/template/crash22.C 1cb212177b7a7b17863561096ca1b123 gcc/testsuite/g++.dg/template/crash24.C 18fc9fd079fbcb8ff4e2ad941df67718 gcc/testsuite/g++.dg/template/crash3.C + 4a6fae58852a7d58b5b482d48d97d11f gcc/testsuite/g++.dg/template/crash30.C + c1ad0abca1fcb788f91f39712cb4d025 gcc/testsuite/g++.dg/template/crash34.C + f8bee91d29458817363bd2ca4c94d704 gcc/testsuite/g++.dg/template/crash36.C 4565662b8ea1b02f11db4b1627917693 gcc/testsuite/g++.dg/template/crash4.C 503d2ceca1151ace69073bc94b2e3181 gcc/testsuite/g++.dg/template/crash6.C 60528c5a46bc3e76f4a191231f3cc608 gcc/testsuite/g++.dg/template/crash7.C *************** f23d748a70179cdd1a4176b5cf3a3e9b gcc/te *** 8834,8852 **** 18d61b100652dfe4816b8b9c6cefa923 gcc/testsuite/g++.dg/template/dependent-name2.C c10faccbba72797e793c4697fe233f9c gcc/testsuite/g++.dg/template/dtor1.C 71d10b5b4cd6cb6cb8f6be930603b8e8 gcc/testsuite/g++.dg/template/dtor2.C 9c78ecb5ca87b2a81cbd9c1796b2c13e gcc/testsuite/g++.dg/template/eh1.C 318b45c84de8e1474d71ee390dc7b68c gcc/testsuite/g++.dg/template/elab1.C 7c10af58e57cd68a834ce883259ef847 gcc/testsuite/g++.dg/template/enum1.C 5fb321d2debea87feaa0815b488d0835 gcc/testsuite/g++.dg/template/enum2.C dfe8fe9abce8be55414485a111a8c15f gcc/testsuite/g++.dg/template/enum3.C 118d8ffd607a579db3ddbc9662179566 gcc/testsuite/g++.dg/template/enum4.C 20225edc3aed6edaf1b6d1219318d2df gcc/testsuite/g++.dg/template/error1.C 81a80cd0bc50e1e128a4df0c367d8392 gcc/testsuite/g++.dg/template/error10.C 92cc57f022fdde0a0e1d5b1eb3c129b3 gcc/testsuite/g++.dg/template/error11.C 6fe651ff5a3f3b8ff9d8a9597b35e055 gcc/testsuite/g++.dg/template/error12.C 23d1d88880eac44a4f6c4209f4d1c9c0 gcc/testsuite/g++.dg/template/error13.C 059b8fc25423ba0f718bb1feff4898e7 gcc/testsuite/g++.dg/template/error14.C ! acd723667286ce52622c9e14dba981f5 gcc/testsuite/g++.dg/template/error15.C 40d71cae88dab51bbeef2ad00f2bbca8 gcc/testsuite/g++.dg/template/error2.C 0e96862a75ffea6e3b8357e5251534dd gcc/testsuite/g++.dg/template/error3.C 85340063cfaafdde79cb0b7bff303541 gcc/testsuite/g++.dg/template/error4.C --- 8883,8903 ---- 18d61b100652dfe4816b8b9c6cefa923 gcc/testsuite/g++.dg/template/dependent-name2.C c10faccbba72797e793c4697fe233f9c gcc/testsuite/g++.dg/template/dtor1.C 71d10b5b4cd6cb6cb8f6be930603b8e8 gcc/testsuite/g++.dg/template/dtor2.C + 6a5f3c8b85f78b5e2f9ffd773a7cca5b gcc/testsuite/g++.dg/template/dtor3.C 9c78ecb5ca87b2a81cbd9c1796b2c13e gcc/testsuite/g++.dg/template/eh1.C 318b45c84de8e1474d71ee390dc7b68c gcc/testsuite/g++.dg/template/elab1.C 7c10af58e57cd68a834ce883259ef847 gcc/testsuite/g++.dg/template/enum1.C 5fb321d2debea87feaa0815b488d0835 gcc/testsuite/g++.dg/template/enum2.C dfe8fe9abce8be55414485a111a8c15f gcc/testsuite/g++.dg/template/enum3.C 118d8ffd607a579db3ddbc9662179566 gcc/testsuite/g++.dg/template/enum4.C + 109e68e063340fe9a814b152f4df9eb3 gcc/testsuite/g++.dg/template/enum5.C 20225edc3aed6edaf1b6d1219318d2df gcc/testsuite/g++.dg/template/error1.C 81a80cd0bc50e1e128a4df0c367d8392 gcc/testsuite/g++.dg/template/error10.C 92cc57f022fdde0a0e1d5b1eb3c129b3 gcc/testsuite/g++.dg/template/error11.C 6fe651ff5a3f3b8ff9d8a9597b35e055 gcc/testsuite/g++.dg/template/error12.C 23d1d88880eac44a4f6c4209f4d1c9c0 gcc/testsuite/g++.dg/template/error13.C 059b8fc25423ba0f718bb1feff4898e7 gcc/testsuite/g++.dg/template/error14.C ! a59fe7dfb1e1084d1f2ddcf45eb89e0b gcc/testsuite/g++.dg/template/error15.C 40d71cae88dab51bbeef2ad00f2bbca8 gcc/testsuite/g++.dg/template/error2.C 0e96862a75ffea6e3b8357e5251534dd gcc/testsuite/g++.dg/template/error3.C 85340063cfaafdde79cb0b7bff303541 gcc/testsuite/g++.dg/template/error4.C *************** f30fe425de51d4cb2ab5ff05b71d616a gcc/te *** 8904,8910 **** 2d167e5f0ea8c84539b7c56039fb2785 gcc/testsuite/g++.dg/template/inline1.C 9829904512df361c8a9cdf7b59b02d8e gcc/testsuite/g++.dg/template/instantiate1.C 88e1ec74b340410f99e5bf69122404bd gcc/testsuite/g++.dg/template/instantiate2.C ! 3e655c681987dbb85b7b254a1e676ba8 gcc/testsuite/g++.dg/template/instantiate3.C 7d69f16e359b40571c6da6dde60dde8d gcc/testsuite/g++.dg/template/instantiate4.C 9c3723fb899f725987c18cd77571a105 gcc/testsuite/g++.dg/template/instantiate5.C 1b065aa49cdac44198ed227ed0da9cb5 gcc/testsuite/g++.dg/template/instantiate6.C --- 8955,8961 ---- 2d167e5f0ea8c84539b7c56039fb2785 gcc/testsuite/g++.dg/template/inline1.C 9829904512df361c8a9cdf7b59b02d8e gcc/testsuite/g++.dg/template/instantiate1.C 88e1ec74b340410f99e5bf69122404bd gcc/testsuite/g++.dg/template/instantiate2.C ! 3a83c5f6cd6ca2488c8e80403a7fa930 gcc/testsuite/g++.dg/template/instantiate3.C 7d69f16e359b40571c6da6dde60dde8d gcc/testsuite/g++.dg/template/instantiate4.C 9c3723fb899f725987c18cd77571a105 gcc/testsuite/g++.dg/template/instantiate5.C 1b065aa49cdac44198ed227ed0da9cb5 gcc/testsuite/g++.dg/template/instantiate6.C *************** c4e8c253794db761d08cd2c9a31e2af4 gcc/te *** 8948,8953 **** --- 8999,9005 ---- b12c9a151e46871b430564ee47c57714 gcc/testsuite/g++.dg/template/nested4.C da1df58fc40e198de8f0c5d88494d89e gcc/testsuite/g++.dg/template/non-dependent1.C ac32a3394ac7dad60204cd2cccb6ba46 gcc/testsuite/g++.dg/template/non-dependent10.C + 6f26c028ea69c4705c77b4a0544f848d gcc/testsuite/g++.dg/template/non-dependent11.C 3ce6c8331c1ddbc56b2c89ca07992343 gcc/testsuite/g++.dg/template/non-dependent2.C 9c0fc4f566e5de8ff0339df3c3ef274d gcc/testsuite/g++.dg/template/non-dependent3.C 98272395e5eb6376be03fdae5b69bac7 gcc/testsuite/g++.dg/template/non-dependent4.C *************** b690784559e05afd43e95b8cf36b03eb gcc/te *** 8974,8979 **** --- 9026,9032 ---- 6cba2353f6c7917dd350506e390d9379 gcc/testsuite/g++.dg/template/overload1.C 55cb3ca88be88700e7e00981ae5c08c6 gcc/testsuite/g++.dg/template/overload2.C 98ebf130b836485f9a7ceae171151be5 gcc/testsuite/g++.dg/template/overload3.C + 7d2609e7f82311b3100345f65467e041 gcc/testsuite/g++.dg/template/overload4.C e187a317d102d915368fe357726202ba gcc/testsuite/g++.dg/template/partial-specialization.C bb04475dfd1abb6699b6daee337bc7ef gcc/testsuite/g++.dg/template/partial1.C e2ea27f4d30c89986de472da016881a2 gcc/testsuite/g++.dg/template/partial2.C *************** e2ea27f4d30c89986de472da016881a2 gcc/te *** 8981,8986 **** --- 9034,9041 ---- 04907f98f8eab7c64ced6646f5140346 gcc/testsuite/g++.dg/template/pretty1.C 30d2a35742944aa3c421d0b6d2b41781 gcc/testsuite/g++.dg/template/ptrmem1.C aa534276e0095c6eef1fe985651eee58 gcc/testsuite/g++.dg/template/ptrmem10.C + 3efda66f5cb0c71bc4fe744bf0d3d14a gcc/testsuite/g++.dg/template/ptrmem11.C + 372af7481dbb814fd59792b6160a671e gcc/testsuite/g++.dg/template/ptrmem14.C 84010e00560365f022f7d4c351fe97bf gcc/testsuite/g++.dg/template/ptrmem2.C 171d82f45a76129388539c01e3212ec9 gcc/testsuite/g++.dg/template/ptrmem3.C 8e305818c46514392ab9d92800a99d43 gcc/testsuite/g++.dg/template/ptrmem4.C *************** f459df99e9efaf925b83daefe81c3127 gcc/te *** 9030,9041 **** --- 9085,9098 ---- 3732e9c01b98ba779d2beb4a94b1f1a4 gcc/testsuite/g++.dg/template/sizeof5.C 8d7b68da161169ea74382da5f4a8c8fb gcc/testsuite/g++.dg/template/sizeof6.C 752074d624c5ac6e8baab3199b06d656 gcc/testsuite/g++.dg/template/sizeof7.C + 12df473d69cf94653ec8c2821cfe853f gcc/testsuite/g++.dg/template/sizeof9.C 2c4280f67b1e22c2fbb0f60584f52297 gcc/testsuite/g++.dg/template/spec1.C ad21a3b2ad2780aa2209396893143af3 gcc/testsuite/g++.dg/template/spec10.C 641e90d3e3434fc264671bb60336331b gcc/testsuite/g++.dg/template/spec11.C 5887f7286f7e8d72346052184c20f45e gcc/testsuite/g++.dg/template/spec12.C e9df140ef024c36c2a7761c13a353434 gcc/testsuite/g++.dg/template/spec13.C 3aa4f9ac6e238807a3c568af3718bf62 gcc/testsuite/g++.dg/template/spec17.C + 5875d17f53135a37cf17b7694a214131 gcc/testsuite/g++.dg/template/spec19.C 1133f61b139dcbae6d0d62799d821c00 gcc/testsuite/g++.dg/template/spec2.C f5581de159c7b5592926840478d5c5fb gcc/testsuite/g++.dg/template/spec3.C 2a1077a58e27e49e8f92e9122c330685 gcc/testsuite/g++.dg/template/spec4.C *************** decd08e1eee840e8ad1abce9adf7f1ca gcc/te *** 9101,9106 **** --- 9158,9165 ---- adee194bbb7c00dd5f4aa91a5de8cced gcc/testsuite/g++.dg/tls/init-2.C cadaf35c6f73680cbe360243df988817 gcc/testsuite/g++.dg/tls/tls.exp d0ff7b21e6cafbaa5dd1684c5d898a19 gcc/testsuite/g++.dg/tls/trivial.C + d489a76c7b7ab5b0e165f2342a4e6974 gcc/testsuite/g++.dg/warn/Wbraces1.C + b6f440088bcb927d61a2c0ed73f71874 gcc/testsuite/g++.dg/warn/Wbraces2.C 75217e420f9c41b3d3cbda837273d96a gcc/testsuite/g++.dg/warn/Winline-1.C 0e30443ee25811cad88723354c525b24 gcc/testsuite/g++.dg/warn/Winline-2.C e5e6d08567eb0a03fffadca1da754cde gcc/testsuite/g++.dg/warn/Winline-3.C *************** a527d9d80c0f8b1b8cc068fbe97dd294 gcc/te *** 10203,10209 **** 72dab6b8f0b29b602295c6af7a5f15be gcc/testsuite/g++.old-deja/g++.jason/warning6.C 68587f14a57035c7dcfe5788d601729c gcc/testsuite/g++.old-deja/g++.jason/warning7.C a4a98da49e2e4b8c46f1e9653be42b53 gcc/testsuite/g++.old-deja/g++.jason/warning8.C ! a7d94378c3310a2d61742de04428a695 gcc/testsuite/g++.old-deja/g++.jason/warning9.C 1c73e8224f5abf06d0756ccb118b07ce gcc/testsuite/g++.old-deja/g++.law/access1.C f2d968b6cc92b14a86959b52a90a8990 gcc/testsuite/g++.old-deja/g++.law/access2.C 9969f99108bad773ac33911d5a467ba4 gcc/testsuite/g++.old-deja/g++.law/access3.C --- 10262,10268 ---- 72dab6b8f0b29b602295c6af7a5f15be gcc/testsuite/g++.old-deja/g++.jason/warning6.C 68587f14a57035c7dcfe5788d601729c gcc/testsuite/g++.old-deja/g++.jason/warning7.C a4a98da49e2e4b8c46f1e9653be42b53 gcc/testsuite/g++.old-deja/g++.jason/warning8.C ! 314bec1817ea9c903efde451dc59d8d7 gcc/testsuite/g++.old-deja/g++.jason/warning9.C 1c73e8224f5abf06d0756ccb118b07ce gcc/testsuite/g++.old-deja/g++.law/access1.C f2d968b6cc92b14a86959b52a90a8990 gcc/testsuite/g++.old-deja/g++.law/access2.C 9969f99108bad773ac33911d5a467ba4 gcc/testsuite/g++.old-deja/g++.law/access3.C *************** c0116d02edfe6d83a6e0319b7ae43310 gcc/te *** 10953,10959 **** ea73badcef0f5166a559e07a0c263a92 gcc/testsuite/g++.old-deja/g++.ns/using7.C e592ac6b9789af1e806b4791c984da05 gcc/testsuite/g++.old-deja/g++.ns/using8.C 10a3890377e72341f4119f4affe2c8cb gcc/testsuite/g++.old-deja/g++.ns/using9.C ! 51f3939e282daedb662eb3d18f30424a gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog c17ab5a5d39a20786219d5cb72e8a956 gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C 2a6be2a8952603f1259d7023b81ce14b gcc/testsuite/g++.old-deja/g++.oliva/delete1.C 8c0b3f49c2e5d5c224c1e0aae235e1d8 gcc/testsuite/g++.old-deja/g++.oliva/delete2.C --- 11012,11018 ---- ea73badcef0f5166a559e07a0c263a92 gcc/testsuite/g++.old-deja/g++.ns/using7.C e592ac6b9789af1e806b4791c984da05 gcc/testsuite/g++.old-deja/g++.ns/using8.C 10a3890377e72341f4119f4affe2c8cb gcc/testsuite/g++.old-deja/g++.ns/using9.C ! 9354da08f80b84014fa8ed84ae9d59c1 gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog c17ab5a5d39a20786219d5cb72e8a956 gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C 2a6be2a8952603f1259d7023b81ce14b gcc/testsuite/g++.old-deja/g++.oliva/delete1.C 8c0b3f49c2e5d5c224c1e0aae235e1d8 gcc/testsuite/g++.old-deja/g++.oliva/delete2.C *************** faf81e645a44ed239db62a33068a7e18 gcc/te *** 12874,12879 **** --- 12933,12941 ---- 7c58de04392c2d766b6ded98beae2039 gcc/testsuite/gcc.c-torture/compile/20040726-1.c a7bce681b208ff9ded92c34487e36e06 gcc/testsuite/gcc.c-torture/compile/20041007-1.c b5bd15b275391684a4cfa933f414e54a gcc/testsuite/gcc.c-torture/compile/20041018-1.c + c6449a8923abf15931148da535a307e5 gcc/testsuite/gcc.c-torture/compile/20041119-1.c + 3ba7d89e5d94393d65afef34e6a8d19b gcc/testsuite/gcc.c-torture/compile/20050105-1.c + 611a1933735be1c0c1af883de990e4d1 gcc/testsuite/gcc.c-torture/compile/20050113-1.c ab32e65ea5976f9083dc8234dae65343 gcc/testsuite/gcc.c-torture/compile/900116-1.c 19f66edc69de3cb6b5ca746e4dc7d9b5 gcc/testsuite/gcc.c-torture/compile/900216-1.c 9c85c5a027876d1435b0499666da5dd8 gcc/testsuite/gcc.c-torture/compile/900313-1.c *************** c9e6e83c42fda89ad40f269108f25f4e gcc/te *** 13425,13430 **** --- 13487,13494 ---- 7af51ab6432260b08be01e25d41fde45 gcc/testsuite/gcc.c-torture/execute/20030821-1.c 1c39eb1b275208926435be01b339f5aa gcc/testsuite/gcc.c-torture/execute/20030914-1.c 87a026d2a4d39797e020c422e3a89e92 gcc/testsuite/gcc.c-torture/execute/20030914-2.c + d3b854d7140a0f549cccd517e0455b09 gcc/testsuite/gcc.c-torture/execute/20030916-1.c + eda00f48aa1f777157e6714670809419 gcc/testsuite/gcc.c-torture/execute/20030916-1.x 957ac496a085ef963a4d641eae099951 gcc/testsuite/gcc.c-torture/execute/20030920-1.c 91996536f463c1c81c689f60bc4c68ee gcc/testsuite/gcc.c-torture/execute/20030928-1.c 90922bc1369cccc337da8d38e2c42221 gcc/testsuite/gcc.c-torture/execute/20031003-1.c *************** ce05ca87c3350a7ebc954c28bf98202a gcc/te *** 13450,13455 **** --- 13514,13525 ---- 727c0d5b054eb9a22b184561112078f2 gcc/testsuite/gcc.c-torture/execute/20040706-1.c 14de9340f54e424f581fba266dcc93a8 gcc/testsuite/gcc.c-torture/execute/20040707-1.c 695236bbd612182e45f7e5b53bd4ed87 gcc/testsuite/gcc.c-torture/execute/20040831-1.c + a9e9fda2b801a2197d791f63eb487a27 gcc/testsuite/gcc.c-torture/execute/20041112-1.c + 57ca42c345705f29b1c25e55a6c398e8 gcc/testsuite/gcc.c-torture/execute/20041126-1.c + c844f43572c5d01c372285cea683b3ff gcc/testsuite/gcc.c-torture/execute/20041218-1.c + 5241de98d91dfc840cecc6262c82531a gcc/testsuite/gcc.c-torture/execute/20050107-1.c + e118fc1ac0fc62cefe05a4367150acdb gcc/testsuite/gcc.c-torture/execute/20050121-1.c + a11a5f657f81607f39a0e709d4dc3624 gcc/testsuite/gcc.c-torture/execute/20050124-1.c 65f01ac7346bd4d47ed9c1ca94ab74ff gcc/testsuite/gcc.c-torture/execute/900409-1.c 5aefab4daab0bd29ecf2a389f3c44f40 gcc/testsuite/gcc.c-torture/execute/920202-1.c 655936aaf9a63e991a555cbc16738485 gcc/testsuite/gcc.c-torture/execute/920302-1.c *************** e71614fc99f4d92507caf550d9cc771d gcc/te *** 13857,13862 **** --- 13927,13933 ---- 9a403e9efb635de1dd6feff0713c8fc0 gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c 7a9152a2be076cf32265952db745498f gcc/testsuite/gcc.c-torture/execute/ieee/20011123-1.c 2489bc06d5e54c3697445d8bae567608 gcc/testsuite/gcc.c-torture/execute/ieee/20030331-1.c + 0284337f51dd40cf4eb3cc6be3de1719 gcc/testsuite/gcc.c-torture/execute/ieee/20041213-1.c fd23ea723b80ea094e702cd44295c2b9 gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.c f257f1810a40fe886447ca38d661c1d9 gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.c dee465f305a29b6c469ddf0896a99e40 gcc/testsuite/gcc.c-torture/execute/ieee/930529-1.c *************** a9c8dcbd471f438d0945eb02ab3198fb gcc/te *** 14470,14475 **** --- 14541,14549 ---- 9cebdb0d41f76c02604643e5ec04b6ca gcc/testsuite/gcc.dg/20040609-1.c 6f8deb863980437fb00800a8ac8d1c4e gcc/testsuite/gcc.dg/20040625-1.c a57583557654a5a69050f592bb607aa1 gcc/testsuite/gcc.dg/20041024-1.c + eaafd64526f33a9a1457b567a57954ea gcc/testsuite/gcc.dg/20041216-1.c + 3f23e1ca4e89021942ea442e650fdf5a gcc/testsuite/gcc.dg/20050111-2.c + b2bb539654ba2d8bde16ecceaf5266f2 gcc/testsuite/gcc.dg/20050113-1.c 60c0beacbda48e01011c8cd9226edcd9 gcc/testsuite/gcc.dg/920413-1.c 9d0e8b94a93fcb17f121596bbf9d3afa gcc/testsuite/gcc.dg/940409-1.c 08759c1448bdc8e72051c03e81cf26f5 gcc/testsuite/gcc.dg/940510-1.c *************** e370903640e76bf4ef407aafe0286689 gcc/te *** 14584,14589 **** --- 14658,14664 ---- 7e9123fac67ff099c2e33d2894e9b53f gcc/testsuite/gcc.dg/asmreg-1.c bff5bf12c7a752b89f17af335428c788 gcc/testsuite/gcc.dg/attr-alwaysinline.c 460ba01d2c2d472f8d0bb00399dd3bba gcc/testsuite/gcc.dg/attr-invalid.c + e427c17eb1d839cc3cf176d262cdffc0 gcc/testsuite/gcc.dg/attr-mode-2.c 2e8d579abde3b50be916cdcd11691f06 gcc/testsuite/gcc.dg/attr-nest.c 9883b24101c5927c9d3eb8fc76b47a29 gcc/testsuite/gcc.dg/attr-noinline.c 292821efd19a5d49bffff909953846d5 gcc/testsuite/gcc.dg/attr-used-2.c *************** e123297fccae243c537f91e155c74a71 gcc/te *** 14595,14600 **** --- 14670,14676 ---- e090089f990b5c4d8a65df8844db30a1 gcc/testsuite/gcc.dg/bf-no-ms-layout.c c790eec2ea453a228ee2a2ade924a85b gcc/testsuite/gcc.dg/bf-spl1.c d6eb381e794c5ffaa3dca7867f663df8 gcc/testsuite/gcc.dg/bitfld-1.c + c8472e81d23d0fbf6d7da5409063d195 gcc/testsuite/gcc.dg/bitfld-13.c c3c68c734e8568392798dcc1fd65c7d9 gcc/testsuite/gcc.dg/bitfld-2.c 38796e108aa68ea2dfb1b33c342cf867 gcc/testsuite/gcc.dg/bitfld-3.c b79035e9295f4ef4ced4f6b418e45b35 gcc/testsuite/gcc.dg/bitfld-4.c *************** d07a3a7320e565e3928de7d9cfa008e1 gcc/te *** 14610,14616 **** ab35651363b997b5111ef8040e7ad569 gcc/testsuite/gcc.dg/builtin-prefetch-1.c 7417f03bbec90cbdedf38d88c232bef4 gcc/testsuite/gcc.dg/builtin-return-1.c afa6f7cf8475f02f8a61330b8eeb9826 gcc/testsuite/gcc.dg/builtins-1.c ! d49c7bf56a4b24cc8eb61d843a169ca5 gcc/testsuite/gcc.dg/builtins-10.c 8601c0a71e7d1cdfd403a34911c56bcf gcc/testsuite/gcc.dg/builtins-11.c 31fba3ea2bbba3a61df667dd99beb26d gcc/testsuite/gcc.dg/builtins-12.c dc837cbce372b65aca3276526dc5068a gcc/testsuite/gcc.dg/builtins-13.c --- 14686,14692 ---- ab35651363b997b5111ef8040e7ad569 gcc/testsuite/gcc.dg/builtin-prefetch-1.c 7417f03bbec90cbdedf38d88c232bef4 gcc/testsuite/gcc.dg/builtin-return-1.c afa6f7cf8475f02f8a61330b8eeb9826 gcc/testsuite/gcc.dg/builtins-1.c ! 24f97ecd0f3b0624d8cba82b5249494d gcc/testsuite/gcc.dg/builtins-10.c 8601c0a71e7d1cdfd403a34911c56bcf gcc/testsuite/gcc.dg/builtins-11.c 31fba3ea2bbba3a61df667dd99beb26d gcc/testsuite/gcc.dg/builtins-12.c dc837cbce372b65aca3276526dc5068a gcc/testsuite/gcc.dg/builtins-13.c *************** d05514a9f3c1d7b070ed85d1cd775e1b gcc/te *** 14632,14637 **** --- 14708,14714 ---- 62b577dbe3bd44452c9adbe58857ab03 gcc/testsuite/gcc.dg/builtins-28.c c61305fdf59a2836c7074c03e1bcff5c gcc/testsuite/gcc.dg/builtins-30.c d69eeaac13d2b5c1e59491bbfe70b4b1 gcc/testsuite/gcc.dg/builtins-35.c + fbd28da3d712d4a193e9663876448aeb gcc/testsuite/gcc.dg/builtins-47.c 74b0490044a21687006890738ede5e8c gcc/testsuite/gcc.dg/builtins-6.c 5b7fb426f3afdfd9bf2c33a260d7fdae gcc/testsuite/gcc.dg/builtins-7.c 454af33ee6a5c794e853593ccc54b2cf gcc/testsuite/gcc.dg/builtins-8.c *************** f8275dd1b8cee4a3a0642955558cbed0 gcc/te *** 14945,14950 **** --- 15022,15028 ---- 1f04f1372289c7c3716b5900d84fdb03 gcc/testsuite/gcc.dg/cpp/20000628-1a.h 5d995444f59f9ea763ed828bc80d64f6 gcc/testsuite/gcc.dg/cpp/20000725-1.c 62d62f9fed6a71df95f49f9574768e27 gcc/testsuite/gcc.dg/cpp/20020927-1.c + ec29cfc495e7855f9a0af068957e07f8 gcc/testsuite/gcc.dg/cpp/20050215-1.c 83988ed16b982a766fdaadae26388404 gcc/testsuite/gcc.dg/cpp/Wsignprom.c 86c463fba0cb8806b6e38fe0f5844002 gcc/testsuite/gcc.dg/cpp/Wtrigraphs-2.c 7be7467a05ff7ff1e309b1776ef6557d gcc/testsuite/gcc.dg/cpp/Wtrigraphs.c *************** d2ceecccef1772ada3beff72d6faed3e gcc/te *** 14963,14969 **** 5206719ac5a8351926ba0739392cdaf2 gcc/testsuite/gcc.dg/cpp/assert1.c 26123c450b8ac44d3950df789e1d2118 gcc/testsuite/gcc.dg/cpp/assert2.c d5a4260d3994d6b7cf96b8ecd1966dc7 gcc/testsuite/gcc.dg/cpp/assert3.c ! 37f8118d82524543575fc3d4290dd457 gcc/testsuite/gcc.dg/cpp/assert4.c 050b8215f4ddf9eb761a732729df2da2 gcc/testsuite/gcc.dg/cpp/avoidpaste1.c a0c74ddc6960d45447982ca784ab3b1b gcc/testsuite/gcc.dg/cpp/avoidpaste2.c 1d8a3a95741c925f4b6277037a477574 gcc/testsuite/gcc.dg/cpp/backslash.c --- 15041,15047 ---- 5206719ac5a8351926ba0739392cdaf2 gcc/testsuite/gcc.dg/cpp/assert1.c 26123c450b8ac44d3950df789e1d2118 gcc/testsuite/gcc.dg/cpp/assert2.c d5a4260d3994d6b7cf96b8ecd1966dc7 gcc/testsuite/gcc.dg/cpp/assert3.c ! 683455ce8e8eb1e8f129c4ecf44f7567 gcc/testsuite/gcc.dg/cpp/assert4.c 050b8215f4ddf9eb761a732729df2da2 gcc/testsuite/gcc.dg/cpp/avoidpaste1.c a0c74ddc6960d45447982ca784ab3b1b gcc/testsuite/gcc.dg/cpp/avoidpaste2.c 1d8a3a95741c925f4b6277037a477574 gcc/testsuite/gcc.dg/cpp/backslash.c *************** e8e1b44c9a259d5b1aa0058fcae995b0 gcc/te *** 15005,15010 **** --- 15083,15089 ---- 6bf4936ee124a6197a058b1b9850a5f7 gcc/testsuite/gcc.dg/cpp/direct2.c cc95bb1c1bde998dfa6febd85414fc2f gcc/testsuite/gcc.dg/cpp/direct2s.c f7d33748385116eadf13c192e8243ef5 gcc/testsuite/gcc.dg/cpp/directiv.c + a2dd5b051236aad6b99d52b4affd80b0 gcc/testsuite/gcc.dg/cpp/empty-include.c af960c05f0a6ab2d5eb3aa99551fa658 gcc/testsuite/gcc.dg/cpp/endif-pedantic1.c fd47eb114e4fbc3ee2c3eacfcc532584 gcc/testsuite/gcc.dg/cpp/endif-pedantic2.c 24433a4e764e479df8f2b0fafe6a0130 gcc/testsuite/gcc.dg/cpp/endif.c *************** d80b2aa963fd215a7777a1a8baf55cfb gcc/te *** 15040,15045 **** --- 15119,15125 ---- 1b6bebf3a36a526d91d4bbfda830b854 gcc/testsuite/gcc.dg/cpp/import2.c f3446debe2a67d2b151f29f3006987bb gcc/testsuite/gcc.dg/cpp/import2.h 6a868772af8e7eec08feaf2285f62132 gcc/testsuite/gcc.dg/cpp/inc/foo.h + d71e5f2555710da19619d9adc4b88f6f gcc/testsuite/gcc.dg/cpp/inc/pragma-once-1a.h ea76d1c8f9591251f749eaf0d4548910 gcc/testsuite/gcc.dg/cpp/include1.c 118c2c16f6e0677ce6aec7a2130731de gcc/testsuite/gcc.dg/cpp/include2.c b1294c835a9b544482538708e224cd87 gcc/testsuite/gcc.dg/cpp/include3.c *************** bb9ce99871246eec7e4f0065ef789603 gcc/te *** 15113,15118 **** --- 15193,15202 ---- 0d7b9ff67b5daa8b51c381f59d09b86f gcc/testsuite/gcc.dg/cpp/poison.c bb6f89f258b90f6c631c8472c48f37c3 gcc/testsuite/gcc.dg/cpp/pragma-1.c 1ba7daa609572d467db33a1eb827b621 gcc/testsuite/gcc.dg/cpp/pragma-2.c + 63a5cc78041db6f5fe01fed974740942 gcc/testsuite/gcc.dg/cpp/pragma-once-1.c + 99bde0eaa7fe7e6d2667a6ac6c349a52 gcc/testsuite/gcc.dg/cpp/pragma-once-1b.h + 530736b5c9a3fd45e6b06a0a18208037 gcc/testsuite/gcc.dg/cpp/pragma-once-1c.h + d59887c3a6d84e13943708de2d30ef72 gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h 07384775502bd88399fa7426580eacf7 gcc/testsuite/gcc.dg/cpp/redef1.c c1d73c4510fcf1e4c0d10749167ba7ea gcc/testsuite/gcc.dg/cpp/redef2.c dff1ad67780a4f4eb7a40b0d122249b1 gcc/testsuite/gcc.dg/cpp/redef3.c *************** f34780cdbccc51545586c79e2e465eb7 gcc/te *** 15292,15303 **** --- 15376,15392 ---- ce354ccb3e1bed31286dc21c6b83f645 gcc/testsuite/gcc.dg/duff-3.c 4b5ac2269290a5f79b79ea4846100bd6 gcc/testsuite/gcc.dg/duff-4.c c3d0e5f87b23f96c728ab8dd3707bb9b gcc/testsuite/gcc.dg/empty1.c + 959121eabe31d6444e7adffe039b0bdd gcc/testsuite/gcc.dg/empty2.c f46331dedfa15ae75ea7543b07fd7d45 gcc/testsuite/gcc.dg/enum-compat-1.c ba60814aadf21741cc3e6781a96f6801 gcc/testsuite/gcc.dg/enum1.c 80289ebc09983bddd83ecf1dab0c542c gcc/testsuite/gcc.dg/fastmath-1.c 929a1f92da326a50b56b5ff9d2cfad9e gcc/testsuite/gcc.dg/fnegate-1.c a588621b633b1aa35e6343c5f64a6ca3 gcc/testsuite/gcc.dg/format/array-1.c cb6e90df2af2c9a49f9744beaa8ff594 gcc/testsuite/gcc.dg/format/asm_fprintf-1.c + d08746fc011f2bf3505da2581c4ece74 gcc/testsuite/gcc.dg/format/asm_fprintf-2.c + 0aa3d7d310e6d544de45bc9908e16ea0 gcc/testsuite/gcc.dg/format/asm_fprintf-3.c + fab098a14d3ff2e61e94c978d957aeed gcc/testsuite/gcc.dg/format/asm_fprintf-4.c + 06eee161a70c8ad2f8d02b264cbe41e0 gcc/testsuite/gcc.dg/format/asm_fprintf-5.c 213b0dbdf3a8eab65c34565b32ad5253 gcc/testsuite/gcc.dg/format/attr-1.c 60181a8362d0682ce28d2fcf70b6904a gcc/testsuite/gcc.dg/format/attr-2.c b3b8becb69b2d5cbc97af9e3c80f89b4 gcc/testsuite/gcc.dg/format/attr-3.c *************** b64f4136e6df482405341915758a0f06 gcc/te *** 15337,15342 **** --- 15426,15439 ---- 069885d8c5b6ccf3bd47f29cb7b15883 gcc/testsuite/gcc.dg/format/format.exp 65f4b97508d5a85c0959f32cb979aceb gcc/testsuite/gcc.dg/format/format.h b4ec3bdfc8a17fe7b0e497191a8fcc0d gcc/testsuite/gcc.dg/format/gcc_diag-1.c + d63a56715d277d731b74b926a681d346 gcc/testsuite/gcc.dg/format/gcc_diag-2.c + 50f7e31845ccd23018d92bee32253755 gcc/testsuite/gcc.dg/format/gcc_diag-3.c + e706cb6063b0523b6e6514e94d8a06fd gcc/testsuite/gcc.dg/format/gcc_diag-4.c + 570f41605d0915e7b555ab5a79944fb7 gcc/testsuite/gcc.dg/format/gcc_diag-5.c + c8cb72995f1956700320a17f00b09fe0 gcc/testsuite/gcc.dg/format/gcc_diag-6.c + 25eb4415aebd3904854b23f46f2e60f9 gcc/testsuite/gcc.dg/format/gcc_diag-7.c + 438a4a0f80a4a5555af65265fc2b0f82 gcc/testsuite/gcc.dg/format/gcc_diag-8.c + 7b2ccf5102c8fb0651520983dff4a34c gcc/testsuite/gcc.dg/format/gcc_diag-9.c 2bfe6b8006b13a707b967e17057e7637 gcc/testsuite/gcc.dg/format/miss-1.c adc1c3d1b88b20e8dd013a64b91db577 gcc/testsuite/gcc.dg/format/miss-2.c 00cd55a0640c7ef680f596703d8311b9 gcc/testsuite/gcc.dg/format/multattr-1.c *************** cefa0d7272663a03eb6147ce1323c355 gcc/te *** 15360,15365 **** --- 15457,15465 ---- cfde414df06a7d559244461a11116f3a gcc/testsuite/gcc.dg/format/zero-length-1.c dbf901d87193b0bc83dc76073a45e5d8 gcc/testsuite/gcc.dg/fshort-wchar.c fc8aab2b77096404ffea331358223da8 gcc/testsuite/gcc.dg/ftrapv-1.c + 8d4780179e7a5313f6440c424dfaa607 gcc/testsuite/gcc.dg/ftrapv-2.c + e75333372361c3ec676c31ff57f67b39 gcc/testsuite/gcc.dg/func-outside-1.c + e4ba881665ef030f84ea9dcf900d3b19 gcc/testsuite/gcc.dg/func-outside-2.c 054d9787db189df8f3b91708149755d2 gcc/testsuite/gcc.dg/func-ptr-conv-1.c 9644c7f08eac0e0fb416e316dbc87180 gcc/testsuite/gcc.dg/funcdef-attr-1.c 76d015871f349d73fa20bf4628162ac0 gcc/testsuite/gcc.dg/funcorder.c *************** ee10ef82b4c5c383688a09ce82003aaf gcc/te *** 15416,15421 **** --- 15516,15522 ---- 0534a5c29d6d5856bcaca2956c6d1b96 gcc/testsuite/gcc.dg/i386-signbit-2.c eba1f742b5a833ec8f7232b6d78da3a8 gcc/testsuite/gcc.dg/i386-signbit-3.c 93931d968ce7a742e6a92420704ca0a9 gcc/testsuite/gcc.dg/i386-sse-1.c + d3479d9362aa2c7e626ad583d628ab37 gcc/testsuite/gcc.dg/i386-sse-10.c a14a3c5452af0f0c3fd3aa461c361ce4 gcc/testsuite/gcc.dg/i386-sse-2.c b9e2808a3a55b726edac71f79691878b gcc/testsuite/gcc.dg/i386-sse-3.c 2677c7c96984a06084150a6deaf71358 gcc/testsuite/gcc.dg/i386-sse-4.c *************** bf870f767c6be672a0cfc990dd97f936 gcc/te *** 15459,15464 **** --- 15560,15566 ---- cc20b8aee881b62499b789fe8f324459 gcc/testsuite/gcc.dg/loop-3.c bdd0de0807674c3312a2a9e4ff914e19 gcc/testsuite/gcc.dg/loop-4.c a73ede53a12274bacc5436575ebb14b9 gcc/testsuite/gcc.dg/loop-5.c + 46248b6e3d3fc518ebd99c80a4e3053d gcc/testsuite/gcc.dg/loop-6.c 60b94247e9f758f50b7d538b0c44a1e7 gcc/testsuite/gcc.dg/lvalue1.c 7b992eada8877ee8824bb9e72763ee9e gcc/testsuite/gcc.dg/m-un-1.c adf6c2f2cc7e229ecba862199dfd56c2 gcc/testsuite/gcc.dg/m-un-2.c *************** e14f432a1fcbe132dba427a035e8309a gcc/te *** 15582,15587 **** --- 15684,15690 ---- 5152539eb73e079ab785c5cf220fdfdb gcc/testsuite/gcc.dg/pch/warn-1.c 581c36ee7a8e61fb33c629ef34ae8cf1 gcc/testsuite/gcc.dg/pch/warn-1.hs ea00bd6880e6c116a3a594cbfecedab7 gcc/testsuite/gcc.dg/postincr-1.c + 49bc60e448bb8453e5b6b9edea49f3b1 gcc/testsuite/gcc.dg/ppc-eabi.c 384725f498b861af6f8bed0530eeac73 gcc/testsuite/gcc.dg/ppc-fmadd-1.c b49bfc8892e32ccd4715b924f41106d6 gcc/testsuite/gcc.dg/ppc-fmadd-2.c 90d042fffee10d77e01ab7cf9fcbb7c1 gcc/testsuite/gcc.dg/ppc-fmadd-3.c *************** b5ba424150d6f9f7d45a408112480ef3 gcc/te *** 15596,15611 **** --- 15699,15719 ---- d950dd8269a8f44cab51850a11956cc1 gcc/testsuite/gcc.dg/ppc64-abi-2.c 62da47413546d4a4ae779cb210e268bd gcc/testsuite/gcc.dg/ppc64-abi-3.c 73651f5ae491e3a9bd87cdd5abef2903 gcc/testsuite/gcc.dg/pr10392-1.c + 860f163dcd0b252ea3f85323bc959a7d gcc/testsuite/gcc.dg/pr11459-1.c 3b83403729a3686d25552352bf0c4577 gcc/testsuite/gcc.dg/pr11864-1.c + 461839ce969e2785ac3debd3e4a7e305 gcc/testsuite/gcc.dg/pr12092-1.c 78a51be88d08b4fd64d227b7e1a33b20 gcc/testsuite/gcc.dg/pr14092-1.c 0213142afa4c27101de78860d03cec24 gcc/testsuite/gcc.dg/pr14289-1.c 2c53c57e2ae45a921ca9de3db9919d71 gcc/testsuite/gcc.dg/pr14289-2.c 501da5499916c89fec113effff8d7c58 gcc/testsuite/gcc.dg/pr14289-3.c aa8059e67aba749e5f156ad145b1e76b gcc/testsuite/gcc.dg/pr14649-1.c eab51d905e25111086745a91fe335ef5 gcc/testsuite/gcc.dg/pr14765-1.c + 2c38205f3ca750215f99d64f571a2b5c gcc/testsuite/gcc.dg/pr14981-1.c 8fc000abbf82aa05e3ebae13cf7ccd62 gcc/testsuite/gcc.dg/pr15749-1.c 6ee62b7f7912606502963f94424e4ea9 gcc/testsuite/gcc.dg/pr15749-1.h 5bc3a1b72524bdb9ae3ec764a9f97531 gcc/testsuite/gcc.dg/pr17581-1.c + 6836ee857ecfe73c10050bfdff28f59b gcc/testsuite/gcc.dg/pr18502-1.c + 168a9e99323ac254cdf40afbe168c365 gcc/testsuite/gcc.dg/pr18614-1.c 3825638bdc3a2a004aba9b3d95352327 gcc/testsuite/gcc.dg/pr9365-1.c 8adaeeade8d8f93b244aa48e91818dbc gcc/testsuite/gcc.dg/pr9771-1.c f77723461d5c54b68b0faf381b354240 gcc/testsuite/gcc.dg/pragma-align.c *************** a2f1cc81b90ddd6cc2fef1cce692520e gcc/te *** 15627,15633 **** --- 15735,15744 ---- d5126a2bd42a9c1593aedafecf29da00 gcc/testsuite/gcc.dg/section1.c 1853608d6f9fb2e0534d031dc894e9a7 gcc/testsuite/gcc.dg/sequence-pt-1.c a4725dc5e7656cd6b2fd8ddf362a6b7b gcc/testsuite/gcc.dg/setjmp-1.c + 742b6cf6893c14ee07d452d4f550ea77 gcc/testsuite/gcc.dg/setjmp-2.c 9112fd4598808655a0c0a55dc7ef0065 gcc/testsuite/gcc.dg/sh-relax.c + 3ba95503a11f65a0515076338b73a0d7 gcc/testsuite/gcc.dg/short-compare-1.c + b8308ec5e305f3402772b8ff82dd4c2f gcc/testsuite/gcc.dg/short-compare-2.c 6874d4f5e6b0421ebc178ad35de81456 gcc/testsuite/gcc.dg/sibcall-1.c f14a407f23c6c0cd10939d7ee8e2dd99 gcc/testsuite/gcc.dg/sibcall-2.c 75dc6d4b5608358b6af9e6aa8043291a gcc/testsuite/gcc.dg/sibcall-3.c *************** f4c6b16396b965bc082407a1eaececdb gcc/te *** 15669,15675 **** 19eb0c78936b80aedc21756f38e9b278 gcc/testsuite/gcc.dg/switch-1.c 6d1eb51dc2ec3194c8857452be2abc2c gcc/testsuite/gcc.dg/switch-2.c 4e889c486afef91f06cc3d5ac95077a4 gcc/testsuite/gcc.dg/switch-3.c ! 1559cab29e3dada808290b68cf1177ce gcc/testsuite/gcc.dg/titype-1.c 8d5a06a792158ede1ec6aed1ea48e15a gcc/testsuite/gcc.dg/tls/alias-1.c da04720c7966d958d0b2774c0f537c53 gcc/testsuite/gcc.dg/tls/alpha-1.c 719ec33e4a1fc93b1d06fe8114489cde gcc/testsuite/gcc.dg/tls/asm-1.c --- 15780,15787 ---- 19eb0c78936b80aedc21756f38e9b278 gcc/testsuite/gcc.dg/switch-1.c 6d1eb51dc2ec3194c8857452be2abc2c gcc/testsuite/gcc.dg/switch-2.c 4e889c486afef91f06cc3d5ac95077a4 gcc/testsuite/gcc.dg/switch-3.c ! 9b4c978dea777328b4aa22c7e68baef4 gcc/testsuite/gcc.dg/switch-4.c ! 9150c1674315521b3929f8d06aebc694 gcc/testsuite/gcc.dg/titype-1.c 8d5a06a792158ede1ec6aed1ea48e15a gcc/testsuite/gcc.dg/tls/alias-1.c da04720c7966d958d0b2774c0f537c53 gcc/testsuite/gcc.dg/tls/alpha-1.c 719ec33e4a1fc93b1d06fe8114489cde gcc/testsuite/gcc.dg/tls/asm-1.c *************** e18294d3404279a1f70b16e5f321d933 gcc/te *** 15701,15707 **** --- 15813,15821 ---- 33f2d5a949f3be0de5e28e8cf8bec90f gcc/testsuite/gcc.dg/torture/mips-div-1.c d07ecd707fac97fa40042e04a59d4b1e gcc/testsuite/gcc.dg/torture/mips-sdata-1.c fd36e8c42459bd36680b21f47b33b671 gcc/testsuite/gcc.dg/torture/nested-fn-1.c + 6015bd6668a6f1ae24e0760230d99522 gcc/testsuite/gcc.dg/torture/pr19683-1.c 25101e8fa42aa49924ac66228814bdeb gcc/testsuite/gcc.dg/trampoline-1.c + 4d56b8e63668daab3951eed210064027 gcc/testsuite/gcc.dg/transparent-union-3.c 99aa4b3086bd54b2fa365b5e4b9c58fa gcc/testsuite/gcc.dg/trunc-1.c 5a58fa954426a9307499c22fa4d90b23 gcc/testsuite/gcc.dg/typedef-init.c 033f9eaca6e2312d2cefbe1ee49f3460 gcc/testsuite/gcc.dg/typedef-redecl.c *************** e3ccfcfa37506703f7ac37e96ab6194f gcc/te *** 15731,15742 **** ef92619a17772d7674bdb6cdfbfab67e gcc/testsuite/gcc.dg/uninit-9.c 16629fbf66db8d64116183c2cffefbb4 gcc/testsuite/gcc.dg/uninit-A.c fce48cae3da7d32c821f9ffe0f3a2987 gcc/testsuite/gcc.dg/uninit-B.c ! 3d075741e5746b2f73fea3e06c6e2838 gcc/testsuite/gcc.dg/uninit-C.c ab24bda566bd8141b638ddfb37e53301 gcc/testsuite/gcc.dg/uninit-D.c a9431f9dc63f136cd7b87acbc9209f71 gcc/testsuite/gcc.dg/uninit-E.c 21c4940c3e3640a911a8ccc6f76bdc36 gcc/testsuite/gcc.dg/uninit-F.c 75df74e4abeafaed617ddff778092762 gcc/testsuite/gcc.dg/uninit-G.c 78c7acd37bc5c230e62db954ee385285 gcc/testsuite/gcc.dg/union-1.c a7ac2b6782378edf99026215c26ce37f gcc/testsuite/gcc.dg/unordered-1.c b7a7d9ce7666dc117ed4c2c6c1b7b60e gcc/testsuite/gcc.dg/unroll-1.c aa7c265797a6b0a2b548e25a531baf92 gcc/testsuite/gcc.dg/unused-1.c --- 15845,15857 ---- ef92619a17772d7674bdb6cdfbfab67e gcc/testsuite/gcc.dg/uninit-9.c 16629fbf66db8d64116183c2cffefbb4 gcc/testsuite/gcc.dg/uninit-A.c fce48cae3da7d32c821f9ffe0f3a2987 gcc/testsuite/gcc.dg/uninit-B.c ! e5310e113130fe3cbb7b3d0f4f9fc1f0 gcc/testsuite/gcc.dg/uninit-C.c ab24bda566bd8141b638ddfb37e53301 gcc/testsuite/gcc.dg/uninit-D.c a9431f9dc63f136cd7b87acbc9209f71 gcc/testsuite/gcc.dg/uninit-E.c 21c4940c3e3640a911a8ccc6f76bdc36 gcc/testsuite/gcc.dg/uninit-F.c 75df74e4abeafaed617ddff778092762 gcc/testsuite/gcc.dg/uninit-G.c 78c7acd37bc5c230e62db954ee385285 gcc/testsuite/gcc.dg/union-1.c + 19582a249859766163d52754d6531172 gcc/testsuite/gcc.dg/union-2.c a7ac2b6782378edf99026215c26ce37f gcc/testsuite/gcc.dg/unordered-1.c b7a7d9ce7666dc117ed4c2c6c1b7b60e gcc/testsuite/gcc.dg/unroll-1.c aa7c265797a6b0a2b548e25a531baf92 gcc/testsuite/gcc.dg/unused-1.c *************** fb7a4e029ce05eea8ba0f03f9033caa2 gcc/te *** 15847,15862 **** f0e0d52dbb689249f8d057f00e4c65e9 gcc/testsuite/gcc.misc-tests/sort2.c 9da21bba807bde6e3f721c3b9368431b gcc/testsuite/gcc.misc-tests/sort2.exp 076457547a143b90dec9b76a20a21a12 gcc/testsuite/lib/c-torture.exp ! 1774e6c9137139884c4ad26fc252579b gcc/testsuite/lib/compat.exp d8270456fac4be6a3812490017727d4c gcc/testsuite/lib/copy-file.exp 54afae923e7da5a4d95b970aebc134ae gcc/testsuite/lib/dg-pch.exp d23e1f76f8a4e60c92de5330ee62cf52 gcc/testsuite/lib/f-torture.exp bf25ffa80e888dc1a48b3ac507270afe gcc/testsuite/lib/file-format.exp 24a7ac64ddfadbdc83e2ce7f02173040 gcc/testsuite/lib/g++-dg.exp ! b4a2ec550e2f1e20eb3263b3e5acf769 gcc/testsuite/lib/g++.exp 31720af892e76668d26a1926512b6c0c gcc/testsuite/lib/g77-dg.exp ! 7db0a56380c76cb4b6e6fa7154009ce7 gcc/testsuite/lib/g77.exp ! 9e4d6dce97f2e5a9582936c28e7d506f gcc/testsuite/lib/gcc-defs.exp ae9276a9bf5d4c5b913409bab3254c60 gcc/testsuite/lib/gcc-dg.exp a1e1090a9166448c3aff1cafee4ccc27 gcc/testsuite/lib/gcc.exp 400b24a52cc57f3f76abc7ff2aae506e gcc/testsuite/lib/gcov.exp --- 15962,15977 ---- f0e0d52dbb689249f8d057f00e4c65e9 gcc/testsuite/gcc.misc-tests/sort2.c 9da21bba807bde6e3f721c3b9368431b gcc/testsuite/gcc.misc-tests/sort2.exp 076457547a143b90dec9b76a20a21a12 gcc/testsuite/lib/c-torture.exp ! c606a5e7d52b4ded8c76267fcd193cf7 gcc/testsuite/lib/compat.exp d8270456fac4be6a3812490017727d4c gcc/testsuite/lib/copy-file.exp 54afae923e7da5a4d95b970aebc134ae gcc/testsuite/lib/dg-pch.exp d23e1f76f8a4e60c92de5330ee62cf52 gcc/testsuite/lib/f-torture.exp bf25ffa80e888dc1a48b3ac507270afe gcc/testsuite/lib/file-format.exp 24a7ac64ddfadbdc83e2ce7f02173040 gcc/testsuite/lib/g++-dg.exp ! ea1374f093f4a38e105d2aa0a3952f8f gcc/testsuite/lib/g++.exp 31720af892e76668d26a1926512b6c0c gcc/testsuite/lib/g77-dg.exp ! af7fbc1a4fbf8cfa00f42213920faea4 gcc/testsuite/lib/g77.exp ! 56e857c0ee06e2e31c59d8b0535e083c gcc/testsuite/lib/gcc-defs.exp ae9276a9bf5d4c5b913409bab3254c60 gcc/testsuite/lib/gcc-dg.exp a1e1090a9166448c3aff1cafee4ccc27 gcc/testsuite/lib/gcc.exp 400b24a52cc57f3f76abc7ff2aae506e gcc/testsuite/lib/gcov.exp *************** c0088686e90dd155a799d6b7f957cac3 gcc/te *** 15865,15874 **** 3daa2cd18809330c70d78e1a9fe5ca51 gcc/testsuite/lib/mike-gcc.exp 9523d56141311736863ec362b5fc5659 gcc/testsuite/lib/objc-dg.exp c26bf60335c3e16bfe0ef32361ea91c9 gcc/testsuite/lib/objc-torture.exp ! a9e1c1fdb7c3ecac6b751c0c03dd7ae1 gcc/testsuite/lib/objc.exp d4b916ee3a4f2557728e0b094c686b36 gcc/testsuite/lib/profopt.exp e862e52b520aedebcd4f9c1f0be15d15 gcc/testsuite/lib/prune.exp bf7caf56fdd310c012fb421cfd53a38b gcc/testsuite/lib/scanasm.exp c9a6741479c4bcd2e59cd141e90a824b gcc/testsuite/lib/target-supports.exp 2e3562906552197f9267f261bfadda6e gcc/testsuite/lib/treelang.exp 3b8fd8c2ee22e0099d80e4fa89e2befc gcc/testsuite/objc.dg/alias.m --- 15980,15990 ---- 3daa2cd18809330c70d78e1a9fe5ca51 gcc/testsuite/lib/mike-gcc.exp 9523d56141311736863ec362b5fc5659 gcc/testsuite/lib/objc-dg.exp c26bf60335c3e16bfe0ef32361ea91c9 gcc/testsuite/lib/objc-torture.exp ! 3955a397ce49e128d87a8e75ff40ce1f gcc/testsuite/lib/objc.exp d4b916ee3a4f2557728e0b094c686b36 gcc/testsuite/lib/profopt.exp e862e52b520aedebcd4f9c1f0be15d15 gcc/testsuite/lib/prune.exp bf7caf56fdd310c012fb421cfd53a38b gcc/testsuite/lib/scanasm.exp + 940f48d861d40a7ffe3ed9c727774e93 gcc/testsuite/lib/target-libpath.exp c9a6741479c4bcd2e59cd141e90a824b gcc/testsuite/lib/target-supports.exp 2e3562906552197f9267f261bfadda6e gcc/testsuite/lib/treelang.exp 3b8fd8c2ee22e0099d80e4fa89e2befc gcc/testsuite/objc.dg/alias.m *************** ada0ee509bf4a341c937760d1f19e80c gcc/te *** 16051,16057 **** 3984916220ca56bf457ff3d903b10566 gcc/testsuite/objc/execute/string3.m b7be6f241d0bbb6d4acdcfeb6623a52b gcc/testsuite/objc/execute/string4.m a15f4a807f9ba61e7f1f938b35d010a1 gcc/testsuite/objc/execute/va_method.m ! df93474f57db67b1734bc71b1c8b9085 gcc/testsuite/treelang/ChangeLog baa8ede89374c5e980b092d80fb5b2ef gcc/testsuite/treelang/Makefile.in 305763027fb663d3c1aef5b1c83c2ed3 gcc/testsuite/treelang/a01gcci01.c 13845574d7f47c593c3dce045885ec1c gcc/testsuite/treelang/a01gcci01.tree --- 16167,16173 ---- 3984916220ca56bf457ff3d903b10566 gcc/testsuite/objc/execute/string3.m b7be6f241d0bbb6d4acdcfeb6623a52b gcc/testsuite/objc/execute/string4.m a15f4a807f9ba61e7f1f938b35d010a1 gcc/testsuite/objc/execute/va_method.m ! c6673fea28f01a539e7af9478378cdd0 gcc/testsuite/treelang/ChangeLog baa8ede89374c5e980b092d80fb5b2ef gcc/testsuite/treelang/Makefile.in 305763027fb663d3c1aef5b1c83c2ed3 gcc/testsuite/treelang/a01gcci01.c 13845574d7f47c593c3dce045885ec1c gcc/testsuite/treelang/a01gcci01.tree *************** ae6a4c3ff73a049b79e292a4cd523946 gcc/ti *** 16061,16078 **** 535dde6b7acb9a76b2ec6763b3bcc49d gcc/timevar.def 43f881fe7ace4c7a9ae92c65b92d924b gcc/timevar.h d68b41509579571b60902f7d7d5e63f0 gcc/tlink.c ! 227287ce3b1728cce4ef974b4e7a1c1c gcc/toplev.c 050a6aff1863d0d121e36a7d94fe3c5c gcc/toplev.h aa58046712c573f034248bf5555cf931 gcc/tracer.c c69b0927b4f0a980c3a1eca81b44346d gcc/tree-dump.c 7c04e729a3cb2ff946ea43ddfccfc00d gcc/tree-dump.h ! 8671d25a4c2ba05b558cb10a73f8e68f gcc/tree-inline.c 5b9c71452f750298e23d7cd32ad7c670 gcc/tree-inline.h 71ecfd87e2537608c16a602197a45bf9 gcc/tree-optimize.c dd0fabf9004ac5dfb01dc559e58e1cd3 gcc/tree.c ca04f7a49c7219638f6da25b74f20743 gcc/tree.def ! 5128d945b6c72edd149cf88715969e89 gcc/tree.h ! a00b34de1423fdd841f0c7537e8b3abf gcc/treelang/ChangeLog 544560a5516cc4e9fa9d568107c1a8e1 gcc/treelang/Make-lang.in 760e83cfd90fc02bffdf85e5e4d77bb3 gcc/treelang/README 4d01c3ea71da029c4242927c8a3115e8 gcc/treelang/config-lang.in --- 16177,16194 ---- 535dde6b7acb9a76b2ec6763b3bcc49d gcc/timevar.def 43f881fe7ace4c7a9ae92c65b92d924b gcc/timevar.h d68b41509579571b60902f7d7d5e63f0 gcc/tlink.c ! 9941f4f36cf827d91d56acc8de6f4e1e gcc/toplev.c 050a6aff1863d0d121e36a7d94fe3c5c gcc/toplev.h aa58046712c573f034248bf5555cf931 gcc/tracer.c c69b0927b4f0a980c3a1eca81b44346d gcc/tree-dump.c 7c04e729a3cb2ff946ea43ddfccfc00d gcc/tree-dump.h ! a14f6b229997dbac9dc4317b1d011ce2 gcc/tree-inline.c 5b9c71452f750298e23d7cd32ad7c670 gcc/tree-inline.h 71ecfd87e2537608c16a602197a45bf9 gcc/tree-optimize.c dd0fabf9004ac5dfb01dc559e58e1cd3 gcc/tree.c ca04f7a49c7219638f6da25b74f20743 gcc/tree.def ! ee05e097bdff8152e98c6bce0a3c5c1c gcc/tree.h ! e4b9fe9d9187c4c6dcb33d6f5ddebf2b gcc/treelang/ChangeLog 544560a5516cc4e9fa9d568107c1a8e1 gcc/treelang/Make-lang.in 760e83cfd90fc02bffdf85e5e4d77bb3 gcc/treelang/README 4d01c3ea71da029c4242927c8a3115e8 gcc/treelang/config-lang.in *************** b14583fbd7fb92be300a8f47a4cfed74 gcc/un *** 16097,16113 **** 013c3006bd98f8cff9bcc97eea1f5169 gcc/unwind-dw2-fde-glibc.c b661e9da64ed2e33bd42a59564ee3275 gcc/unwind-dw2-fde.c 7a2d7fe692e3052250604d3515d80c8b gcc/unwind-dw2-fde.h ! 9d9e0d88d0c728c3150b83d887699a95 gcc/unwind-dw2.c 254c2dda22c5857aa5325b5e84d573e9 gcc/unwind-pe.h 7da957cd7f4bc85fce6f396e287e175c gcc/unwind-sjlj.c cae2ee1f5160be95378ef151ac13a346 gcc/unwind.h 1808a207a87fbe9034b9561f4fd645f8 gcc/unwind.inc d6c097733fdf42c53f4f45f9ac796dbc gcc/value-prof.c 399cd4d262aa0ca817216797f7cbcd6d gcc/value-prof.h ! 43a1ff5d96e109f3341e1b67fc75cd8b gcc/varasm.c f9668f57dfa17eaed3e72c6ee94b6b87 gcc/varray.c b7a4aabde29afb848b1e3e279cdbe7a3 gcc/varray.h ! c13fb7ccb6523dc43b1b18c3410c9713 gcc/version.c 3efbf60f6340944c31fed5e38dc8f7dd gcc/version.h df156fe52e268230159902d1b2cd5027 gcc/vmsdbg.h 35a58dfcdaa0d0cbc28bd90934ecba7a gcc/vmsdbgout.c --- 16213,16229 ---- 013c3006bd98f8cff9bcc97eea1f5169 gcc/unwind-dw2-fde-glibc.c b661e9da64ed2e33bd42a59564ee3275 gcc/unwind-dw2-fde.c 7a2d7fe692e3052250604d3515d80c8b gcc/unwind-dw2-fde.h ! ce4cea3ca11aee88010c3bffd9ab6a41 gcc/unwind-dw2.c 254c2dda22c5857aa5325b5e84d573e9 gcc/unwind-pe.h 7da957cd7f4bc85fce6f396e287e175c gcc/unwind-sjlj.c cae2ee1f5160be95378ef151ac13a346 gcc/unwind.h 1808a207a87fbe9034b9561f4fd645f8 gcc/unwind.inc d6c097733fdf42c53f4f45f9ac796dbc gcc/value-prof.c 399cd4d262aa0ca817216797f7cbcd6d gcc/value-prof.h ! 45fa56a1d57d2aba8e59656c6917d187 gcc/varasm.c f9668f57dfa17eaed3e72c6ee94b6b87 gcc/varray.c b7a4aabde29afb848b1e3e279cdbe7a3 gcc/varray.h ! cf4084ea3148c69b02cf50ef1c72fc3d gcc/version.c 3efbf60f6340944c31fed5e38dc8f7dd gcc/version.h df156fe52e268230159902d1b2cd5027 gcc/vmsdbg.h 35a58dfcdaa0d0cbc28bd90934ecba7a gcc/vmsdbgout.c *************** a3d2f8a609d86125b694c562b00c877c gcc/we *** 16116,16122 **** 1e6261550c3b97950a13009e59765082 gcc/xcoffout.c 1aeb5a743323a6b90da1b7941e1a0b1b gcc/xcoffout.h 94d55d512a9ba36caa9b7df079bae19f include/COPYING ! 9c3c0c45ed5fa9ff24ab580c04765dda include/ChangeLog da3682afe5be61c3172bb494398e3b0b include/ansidecl.h 4f78f9a43bf4555a52c77ed7e95cdefb include/demangle.h 78283efa0e4c0db9b38ca29f88d636a7 include/dyn-string.h --- 16232,16238 ---- 1e6261550c3b97950a13009e59765082 gcc/xcoffout.c 1aeb5a743323a6b90da1b7941e1a0b1b gcc/xcoffout.h 94d55d512a9ba36caa9b7df079bae19f include/COPYING ! ac3716575632a3abc53c27387a11ff54 include/ChangeLog da3682afe5be61c3172bb494398e3b0b include/ansidecl.h 4f78f9a43bf4555a52c77ed7e95cdefb include/demangle.h 78283efa0e4c0db9b38ca29f88d636a7 include/dyn-string.h *************** c38b82bb82381011919906bfc101a973 includ *** 16140,16146 **** 17eeca2dc8ed2db2505c4aa25bb83cd2 include/xregex2.h 8b2a2337ea32f559beb243b328db15bc include/xtensa-config.h d2945866557b7c9640cdf083857c65b6 install-sh ! 2947c5f79b9afabf8bff5d670ff88627 intl/ChangeLog fdf76d8e28945fd712463f567baa2a7b intl/Makefile.in b7e2cfc6ecf5922ac31ad9844de4868c intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION --- 16256,16262 ---- 17eeca2dc8ed2db2505c4aa25bb83cd2 include/xregex2.h 8b2a2337ea32f559beb243b328db15bc include/xtensa-config.h d2945866557b7c9640cdf083857c65b6 install-sh ! 204d94eb53717a4dab8f4ba50c41e48d intl/ChangeLog fdf76d8e28945fd712463f567baa2a7b intl/Makefile.in b7e2cfc6ecf5922ac31ad9844de4868c intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION *************** e2e6234185a9b448499522c7a2c45c17 intl/p *** 16182,16188 **** 8ba33a586960c0e4072c7d1f7b50b93e intl/relocatable.c b06d53a83585fd7db8c2db9a182549e0 intl/relocatable.h ab99112442f51f89c122ffba737fdcdc intl/textdomain.c ! 9d2c18a22e88c2695859f714abffba0e libf2c/ChangeLog 5fb7684fa4aaec09b98b4a0d06a353a8 libf2c/Makefile.in 7d673016f4f03c6980e1e15c6ad69282 libf2c/README aa345c4444f749dadcec7facc4f26594 libf2c/TODO --- 16298,16304 ---- 8ba33a586960c0e4072c7d1f7b50b93e intl/relocatable.c b06d53a83585fd7db8c2db9a182549e0 intl/relocatable.h ab99112442f51f89c122ffba737fdcdc intl/textdomain.c ! af59b47a320916d780fbdbb003429780 libf2c/ChangeLog 5fb7684fa4aaec09b98b4a0d06a353a8 libf2c/Makefile.in 7d673016f4f03c6980e1e15c6ad69282 libf2c/README aa345c4444f749dadcec7facc4f26594 libf2c/TODO *************** f9ecfa1bebd1c2d4e3b3df122e9d012a libf2c *** 16340,16346 **** a91041573683f4b2f2ddfd24c06bdbca libf2c/libI77/dolio.c 3bbaa34a720d9f419c995f44fd0a608c libf2c/libI77/due.c be5ff702256982f1c341925317489f68 libf2c/libI77/endfile.c ! 7c4893bcd45c7a795ea8a4e784ec63f0 libf2c/libI77/err.c 9ffed0952bf2648838e06376a2e39fe8 libf2c/libI77/f2ch.add 5d2a91d76bc9eeaadb8742a7ccbd3d02 libf2c/libI77/fio.h 7d072a737cf96a00f040db5f9599f326 libf2c/libI77/fmt.c --- 16456,16462 ---- a91041573683f4b2f2ddfd24c06bdbca libf2c/libI77/dolio.c 3bbaa34a720d9f419c995f44fd0a608c libf2c/libI77/due.c be5ff702256982f1c341925317489f68 libf2c/libI77/endfile.c ! f94cd3c9dcaeeb2200a28f32a9a94c88 libf2c/libI77/err.c 9ffed0952bf2648838e06376a2e39fe8 libf2c/libI77/f2ch.add 5d2a91d76bc9eeaadb8742a7ccbd3d02 libf2c/libI77/fio.h 7d072a737cf96a00f040db5f9599f326 libf2c/libI77/fmt.c *************** ed6b19bfa9000460de728123f1641597 libf2c *** 16437,16443 **** 581f2c8983df7246c05b7f0ca261f315 libf2c/libU77/vxttime_.c 24e010b48ece0133c43c77203b6f6838 libf2c/permission.netlib 8ae91bfd9121a12f3a87493dab8046b1 libf2c/readme.netlib ! ce2dc8158feddd9e5ada63a8395d8537 libffi/ChangeLog fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 085f9917800070e791f49bf4733e23fa libffi/LICENSE --- 16553,16559 ---- 581f2c8983df7246c05b7f0ca261f315 libf2c/libU77/vxttime_.c 24e010b48ece0133c43c77203b6f6838 libf2c/permission.netlib 8ae91bfd9121a12f3a87493dab8046b1 libf2c/readme.netlib ! 90ac097340f01e63a19e22b6332f67b9 libffi/ChangeLog fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 085f9917800070e791f49bf4733e23fa libffi/LICENSE *************** cf6788f92178328e82f501484c9cb237 libffi *** 16455,16461 **** ec7a4fe901edcaab7a7f3e66c5ba1b57 libffi/include/ffi_common.h 8f1d3e3ef0c003f6a69c225a21f572a1 libffi/src/alpha/ffi.c 80b584d92653e1f8c33b6f02739e03fa libffi/src/alpha/ffitarget.h ! 6cd31f1399d4268c33bce1cb17acf2fa libffi/src/alpha/osf.S df34af01b790bb990c4cfb1f86632d66 libffi/src/arm/ffi.c 129d5ce3064dbf3e3a99dba0c6ee50b6 libffi/src/arm/ffitarget.h 97e6c0f4d2019b5c8fa71b2be2736046 libffi/src/arm/sysv.S --- 16571,16577 ---- ec7a4fe901edcaab7a7f3e66c5ba1b57 libffi/include/ffi_common.h 8f1d3e3ef0c003f6a69c225a21f572a1 libffi/src/alpha/ffi.c 80b584d92653e1f8c33b6f02739e03fa libffi/src/alpha/ffitarget.h ! b11579afef24bc718c1033e6ac222903 libffi/src/alpha/osf.S df34af01b790bb990c4cfb1f86632d66 libffi/src/arm/ffi.c 129d5ce3064dbf3e3a99dba0c6ee50b6 libffi/src/arm/ffitarget.h 97e6c0f4d2019b5c8fa71b2be2736046 libffi/src/arm/sysv.S *************** c596ddb985689ec61b12aaa3d22affa3 libffi *** 16596,16602 **** 8bf1ce1c4956ec886ada3e6c66e88395 libffi/testsuite/libffi.special/special.exp aa180296123f55a620a71b73a6fd5005 libffi/testsuite/libffi.special/unwindtest.cc 7fbc338309ac38fefcd64b04bb903e34 libiberty/COPYING.LIB ! 5f7093c2cef6bb53ddbc3e52d3996ba0 libiberty/ChangeLog bde64f57492c97ff70c538039c717d44 libiberty/Makefile.in 294191545dc71f5ad13229b0a5bfd7b1 libiberty/README 5b535b62413b3770aeca6d516e0d6325 libiberty/_doprnt.c --- 16712,16718 ---- 8bf1ce1c4956ec886ada3e6c66e88395 libffi/testsuite/libffi.special/special.exp aa180296123f55a620a71b73a6fd5005 libffi/testsuite/libffi.special/unwindtest.cc 7fbc338309ac38fefcd64b04bb903e34 libiberty/COPYING.LIB ! 1b34bfacd440662c1c9be0f1f3b4d2c1 libiberty/ChangeLog bde64f57492c97ff70c538039c717d44 libiberty/Makefile.in 294191545dc71f5ad13229b0a5bfd7b1 libiberty/README 5b535b62413b3770aeca6d516e0d6325 libiberty/_doprnt.c *************** f03c6febc565b8c67d88e49a6f2c0ba0 libibe *** 16627,16633 **** 35f4eb486ceb43c8100c1b56143ed0ea libiberty/configure.ac 373c5062b80c1f8c030fcefd5bdc9e6c libiberty/copying-lib.texi e3dc621adfe4ff6730b6510641537ea4 libiberty/copysign.c ! 9f2aa8adef0de529dee3c73d55672ff9 libiberty/cp-demangle.c 44cbb9761eb3195ec34ee8e521a9325e libiberty/cp-demangle.h 710711092973e0580e43a93f57d9474e libiberty/cp-demint.c 6d82f8ac3f2b14d73b18aed0b9397a44 libiberty/cplus-dem.c --- 16743,16749 ---- 35f4eb486ceb43c8100c1b56143ed0ea libiberty/configure.ac 373c5062b80c1f8c030fcefd5bdc9e6c libiberty/copying-lib.texi e3dc621adfe4ff6730b6510641537ea4 libiberty/copysign.c ! c34a870faacedc4dd22c41c045fc7c58 libiberty/cp-demangle.c 44cbb9761eb3195ec34ee8e521a9325e libiberty/cp-demangle.h 710711092973e0580e43a93f57d9474e libiberty/cp-demint.c 6d82f8ac3f2b14d73b18aed0b9397a44 libiberty/cplus-dem.c *************** f3030e6275b76dd6ea06d80a92ccdc27 libibe *** 16728,16734 **** f20e7cc03de67e377c14074ad8117a2d libiberty/xstrdup.c 3dcfd54ed5da2593e413b5505ecd8bf8 libiberty/xstrerror.c 94d55d512a9ba36caa9b7df079bae19f libjava/COPYING ! ebf8d8f2d37229b8b3bae32db36199b4 libjava/ChangeLog cd8a361fdecdae865f473a6f2cf9fd8b libjava/ChangeLog-1999 4588de29d13f7eaa964141902c347636 libjava/ChangeLog-2001 459f47c6dec487e3d2e300d3a58d25c9 libjava/HACKING --- 16844,16850 ---- f20e7cc03de67e377c14074ad8117a2d libiberty/xstrdup.c 3dcfd54ed5da2593e413b5505ecd8bf8 libiberty/xstrerror.c 94d55d512a9ba36caa9b7df079bae19f libjava/COPYING ! 2c66c59b31a8697441d19494253dbd98 libjava/ChangeLog cd8a361fdecdae865f473a6f2cf9fd8b libjava/ChangeLog-1999 4588de29d13f7eaa964141902c347636 libjava/ChangeLog-2001 459f47c6dec487e3d2e300d3a58d25c9 libjava/HACKING *************** d25b544e6b9f7c275c9de0393829ec3d libjav *** 17865,17871 **** a55ed0f26a5e0cde17706783791fb771 libjava/java/lang/reflect/natArray.cc c287b6ed7c8151f7a2f72e9a87f66df8 libjava/java/lang/reflect/natConstructor.cc be8337ab9bac0158d39c568b0952bf48 libjava/java/lang/reflect/natField.cc ! 78a1d68de63340d60debf5f72345f70e libjava/java/lang/reflect/natMethod.cc 5792a78b7ec940d3f2dde416cdd8d59b libjava/java/lang/reflect/natProxy.cc 107a200b158caac87047da803bf88242 libjava/java/lang/s_atan.c 15cafe9763d41dda071f249cb349ad60 libjava/java/lang/s_ceil.c --- 17981,17987 ---- a55ed0f26a5e0cde17706783791fb771 libjava/java/lang/reflect/natArray.cc c287b6ed7c8151f7a2f72e9a87f66df8 libjava/java/lang/reflect/natConstructor.cc be8337ab9bac0158d39c568b0952bf48 libjava/java/lang/reflect/natField.cc ! a519f9de328457062bf9a7e38f4887d3 libjava/java/lang/reflect/natMethod.cc 5792a78b7ec940d3f2dde416cdd8d59b libjava/java/lang/reflect/natProxy.cc 107a200b158caac87047da803bf88242 libjava/java/lang/s_atan.c 15cafe9763d41dda071f249cb349ad60 libjava/java/lang/s_ceil.c *************** d04590c4dc6a61734d09958671cba4da libjav *** 19009,19015 **** 951ec925ca91ea2a5236d0f25d8db838 libjava/libgcj.spec.in 3d4a33013a6e48b3df24d0f6cfecd519 libjava/libltdl/.cvsignore d8045f3b8f929c1cb29a1e3fd737b499 libjava/libltdl/COPYING.LIB ! 65be2bf7a2f8e20d08900d27f6becf4f libjava/libltdl/ChangeLog 6824f0f26586155951e5e6d7499e6269 libjava/libltdl/Makefile.am 29bc3970a164095fe53dbbb277f61fa0 libjava/libltdl/Makefile.in 36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README --- 19125,19131 ---- 951ec925ca91ea2a5236d0f25d8db838 libjava/libgcj.spec.in 3d4a33013a6e48b3df24d0f6cfecd519 libjava/libltdl/.cvsignore d8045f3b8f929c1cb29a1e3fd737b499 libjava/libltdl/COPYING.LIB ! 79b135b28a8f030d1c13d0d6c1f4d22d libjava/libltdl/ChangeLog 6824f0f26586155951e5e6d7499e6269 libjava/libltdl/Makefile.am 29bc3970a164095fe53dbbb277f61fa0 libjava/libltdl/Makefile.in 36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README *************** a589e0b072d6eabca190815fdf0c5025 libjav *** 19115,19121 **** ac9ce4b055928d3a370bea6c7f4d7707 libjava/sysdep/sh/locks.h dfe570919fd25f16312d84294242a469 libjava/sysdep/sparc/locks.h 6201dffba23fd1cbc5c29d3697c1a4b3 libjava/sysdep/x86-64/locks.h ! 6d85a1841127ff90e98c19a5187804e5 libjava/testsuite/ChangeLog 6888ab93edb5574f611584d47ba4e7b8 libjava/testsuite/Makefile.am 0084ab66ea3cb93dc348616d6b294ad8 libjava/testsuite/Makefile.in dce80ba7e038ca18591aabc6d3d2582c libjava/testsuite/config/default.exp --- 19231,19237 ---- ac9ce4b055928d3a370bea6c7f4d7707 libjava/sysdep/sh/locks.h dfe570919fd25f16312d84294242a469 libjava/sysdep/sparc/locks.h 6201dffba23fd1cbc5c29d3697c1a4b3 libjava/sysdep/x86-64/locks.h ! 12fade15882bb28d59d1dcebafc1bc8b libjava/testsuite/ChangeLog 6888ab93edb5574f611584d47ba4e7b8 libjava/testsuite/Makefile.am 0084ab66ea3cb93dc348616d6b294ad8 libjava/testsuite/Makefile.in dce80ba7e038ca18591aabc6d3d2582c libjava/testsuite/config/default.exp *************** a931f49d7e3d41e7c0f35786805a80e3 libjav *** 19160,19165 **** --- 19276,19283 ---- 3fe7a0980a3c3aff4933609cd1e9c95a libjava/testsuite/libjava.compile/PR1343.java 6556d594a180f059697cf66646839220 libjava/testsuite/libjava.compile/PR140.java 7d7ac3fc492c9fabd0b3bcad458d0d80 libjava/testsuite/libjava.compile/PR140.xfail + 12f27a653fbac1fe9a5d82396cfc50e6 libjava/testsuite/libjava.compile/PR14853.java + 7d7ac3fc492c9fabd0b3bcad458d0d80 libjava/testsuite/libjava.compile/PR14853.xfail 386efa3d54f01e74ebdf0f3e379ed21e libjava/testsuite/libjava.compile/PR163.java 7d7ac3fc492c9fabd0b3bcad458d0d80 libjava/testsuite/libjava.compile/PR163.xfail 728d59f473e372f69e4798f9a06f281a libjava/testsuite/libjava.compile/PR164.java *************** cfee37cc09ac4a762cca29c4995ad01a libjav *** 19295,19300 **** --- 19413,19421 ---- 395ab5e2091ac5fc84f212ee40e77932 libjava/testsuite/libjava.jni/findclass.c 629eaacb1744ff558b35cf22d1d4d52e libjava/testsuite/libjava.jni/findclass.java 2c93280ac465fb4ac7995b4de82a569b libjava/testsuite/libjava.jni/findclass.out + 2a446e7df6e41531751fbc8ecac96237 libjava/testsuite/libjava.jni/iface.c + 38e8b81a00dcbd3e63ecf154ef5169fb libjava/testsuite/libjava.jni/iface.java + 0f186e3f517ed8ad3335f1607cb8233c libjava/testsuite/libjava.jni/iface.out da33008a788fb5f5827a66450521e314 libjava/testsuite/libjava.jni/invoke.c f7b0b30783fc45050cda4c538d6ac815 libjava/testsuite/libjava.jni/invoke.java bef8cafe5513c6677e1d68b5123f7244 libjava/testsuite/libjava.jni/invoke.out *************** d4741f24c135cf97329ec4c782d85981 libjav *** 19658,19664 **** f107476b54d6c78838074cd470b12db9 libjava/verify.cc 87d316467ab14712a1eeee751e13b4a5 libjava/win32-threads.cc 5f6469f3ea2db98a9ab653ef87d18aaf libjava/win32.cc ! 09c9d3c6a932f65eb003ab99ec15b646 libobjc/ChangeLog 3b406c1021ea16b0482b8aa040b29575 libobjc/Makefile.in 100a8a616b158f80f9852ceb5f5f0ce0 libobjc/NXConstStr.m 89e7d8ea7feedf1c3710ee80febe4f73 libobjc/Object.m --- 19779,19785 ---- f107476b54d6c78838074cd470b12db9 libjava/verify.cc 87d316467ab14712a1eeee751e13b4a5 libjava/win32-threads.cc 5f6469f3ea2db98a9ab653ef87d18aaf libjava/win32.cc ! c469fb0d2187f9d4ab16120a48c889d7 libobjc/ChangeLog 3b406c1021ea16b0482b8aa040b29575 libobjc/Makefile.in 100a8a616b158f80f9852ceb5f5f0ce0 libobjc/NXConstStr.m 89e7d8ea7feedf1c3710ee80febe4f73 libobjc/Object.m *************** b90a61097464bbe6f5f29828929a2af4 libobj *** 19674,19680 **** 32c0a5763eed2fb9e8e67ff72e0f2e73 libobjc/configure 3f60697c2fbdf383a3e051dde290ecc2 libobjc/configure.in a1a8adedc9fd13f0a1647ded74bf3e6d libobjc/encoding.c ! c334cbea6e0e5820f9456a1713473bae libobjc/gc.c 3a02957f6a0eaa11c2455bc86165c2f2 libobjc/hash.c 2a701003ad05cb4de57e46f7ecce5000 libobjc/init.c a331e1c37f2e26f896a19e003744591a libobjc/libobjc.def --- 19795,19801 ---- 32c0a5763eed2fb9e8e67ff72e0f2e73 libobjc/configure 3f60697c2fbdf383a3e051dde290ecc2 libobjc/configure.in a1a8adedc9fd13f0a1647ded74bf3e6d libobjc/encoding.c ! f4a78ac1bef3c61b63b045ed69055fed libobjc/gc.c 3a02957f6a0eaa11c2455bc86165c2f2 libobjc/hash.c 2a701003ad05cb4de57e46f7ecce5000 libobjc/init.c a331e1c37f2e26f896a19e003744591a libobjc/libobjc.def *************** c8a5d651d7a9816bb64b3eaed9f7c813 libobj *** 19714,19724 **** 01163d478093aa7c6fad4c566c1782e8 libobjc/thr-win32.c 5315a8908369e50017301d87f568d352 libobjc/thr.c ac81461263c340d1f6c7ed86a63b06de libstdc++-v3/.cvsignore ! ce9ba0427222f66ee6cdca0124efbd0b libstdc++-v3/ChangeLog a9f7157d0e65450f88d5f0fb0ab9b6b9 libstdc++-v3/ChangeLog-2000 c8785b12d58c99355a04453d38ca1f7c libstdc++-v3/ChangeLog-2001 a26d9a931f6b718d74468499f816cf2d libstdc++-v3/ChangeLog-2002 a662434a55aced1e46a58ddfaf8410c4 libstdc++-v3/ChangeLog-2003 ee51f34ba6a60579e515b67cf7c15925 libstdc++-v3/Makefile.am b7bb775e1a0bda0f9105c00e44c59bc5 libstdc++-v3/Makefile.in 70aebba2e3a9ac130e2e1c0413fa44ea libstdc++-v3/README --- 19835,19846 ---- 01163d478093aa7c6fad4c566c1782e8 libobjc/thr-win32.c 5315a8908369e50017301d87f568d352 libobjc/thr.c ac81461263c340d1f6c7ed86a63b06de libstdc++-v3/.cvsignore ! 0a22213970f379852cbd18a964c1161d libstdc++-v3/ChangeLog a9f7157d0e65450f88d5f0fb0ab9b6b9 libstdc++-v3/ChangeLog-2000 c8785b12d58c99355a04453d38ca1f7c libstdc++-v3/ChangeLog-2001 a26d9a931f6b718d74468499f816cf2d libstdc++-v3/ChangeLog-2002 a662434a55aced1e46a58ddfaf8410c4 libstdc++-v3/ChangeLog-2003 + 970ab039849fe3d914a52e2babbe40d6 libstdc++-v3/ChangeLog-2004 ee51f34ba6a60579e515b67cf7c15925 libstdc++-v3/Makefile.am b7bb775e1a0bda0f9105c00e44c59bc5 libstdc++-v3/Makefile.in 70aebba2e3a9ac130e2e1c0413fa44ea libstdc++-v3/README *************** d570015ef9950d1f0423b7e82a39d7ac libstd *** 19764,19777 **** f48d8cc8bc33576abee1e999049d3b3d libstdc++-v3/config/cpu/s390/atomicity.h 1aab9f129fd97e3ce70013f19f9a2b4b libstdc++-v3/config/cpu/sparc/atomic_word.h 0f11660ae152e168d48e2b61c8772fc2 libstdc++-v3/config/cpu/sparc/atomicity.h ! c13a0011b319faf7ba05d90f361b2211 libstdc++-v3/config/io/basic_file_stdio.cc 941637922b9dfef9858d9d54a8234571 libstdc++-v3/config/io/basic_file_stdio.h ! a74e55993d60cf708e4c6f3cab566f74 libstdc++-v3/config/io/c_io_stdio.h 5c97d0529432c17d5922b81bdd0459a7 libstdc++-v3/config/linker-map.dummy ! 08851f1850dd994f5af7c4262bd0a927 libstdc++-v3/config/linker-map.gnu fbfcd7296794df400b950cc5efc33752 libstdc++-v3/config/locale/generic/c++locale_internal.h 78c852a2cdd344ded19ada1bcc76690a libstdc++-v3/config/locale/generic/c_locale.cc ! 9d9d17150d9ff7d55b7e62342ac3e51f libstdc++-v3/config/locale/generic/c_locale.h 32e3e10f494f535508ef8e3d757138b6 libstdc++-v3/config/locale/generic/codecvt_members.cc e125bc9bf2426ff0743ddf73b7b431df libstdc++-v3/config/locale/generic/codecvt_specializations.h 727b9fcf68a17ffe5ff2e0ad20e4fa8f libstdc++-v3/config/locale/generic/collate_members.cc --- 19886,19899 ---- f48d8cc8bc33576abee1e999049d3b3d libstdc++-v3/config/cpu/s390/atomicity.h 1aab9f129fd97e3ce70013f19f9a2b4b libstdc++-v3/config/cpu/sparc/atomic_word.h 0f11660ae152e168d48e2b61c8772fc2 libstdc++-v3/config/cpu/sparc/atomicity.h ! 51c06ed6b168393a2ed7e7c9a5b3415f libstdc++-v3/config/io/basic_file_stdio.cc 941637922b9dfef9858d9d54a8234571 libstdc++-v3/config/io/basic_file_stdio.h ! 3739ebcb6a11cbc27e5f61d0fc56163e libstdc++-v3/config/io/c_io_stdio.h 5c97d0529432c17d5922b81bdd0459a7 libstdc++-v3/config/linker-map.dummy ! 358336deb4d75d9082082fa4ac9b09ea libstdc++-v3/config/linker-map.gnu fbfcd7296794df400b950cc5efc33752 libstdc++-v3/config/locale/generic/c++locale_internal.h 78c852a2cdd344ded19ada1bcc76690a libstdc++-v3/config/locale/generic/c_locale.cc ! 84073cc9b0daf29e48d25158827ae5c4 libstdc++-v3/config/locale/generic/c_locale.h 32e3e10f494f535508ef8e3d757138b6 libstdc++-v3/config/locale/generic/codecvt_members.cc e125bc9bf2426ff0743ddf73b7b431df libstdc++-v3/config/locale/generic/codecvt_specializations.h 727b9fcf68a17ffe5ff2e0ad20e4fa8f libstdc++-v3/config/locale/generic/collate_members.cc *************** c390c2c1012be6937afeab480cf26a0e libstd *** 19796,19802 **** 3af3f7276a186692b08ed7b10e11025c libstdc++-v3/config/locale/gnu/time_members.h bbcbb79fa7d06acbb7bb4b7dc5789c21 libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc 312d1d5701b8f61124e172c878d6af17 libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h ! 1d507cfad499291a3464273be36fe2a5 libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h 771fd2214d6b4615e35601d92a2e0fab libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc 925a1a995e90a7c35e3999cbf6e327e7 libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h 3af23659a88f53128444ed7a3080a2a9 libstdc++-v3/config/os/aix/atomicity.h --- 19918,19924 ---- 3af3f7276a186692b08ed7b10e11025c libstdc++-v3/config/locale/gnu/time_members.h bbcbb79fa7d06acbb7bb4b7dc5789c21 libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc 312d1d5701b8f61124e172c878d6af17 libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h ! 17575f2dbb6bd02a2f5dbda83e9cc420 libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h 771fd2214d6b4615e35601d92a2e0fab libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc 925a1a995e90a7c35e3999cbf6e327e7 libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h 3af23659a88f53128444ed7a3080a2a9 libstdc++-v3/config/os/aix/atomicity.h *************** cf5b19ca68324c61c1d764f55aafe57a libstd *** 19876,19885 **** 992909cbcc0be849d9572526cb1e95ba libstdc++-v3/config/os/windiss/ctype_inline.h e9fe2fdbd51265ee1cccae63f5501e8b libstdc++-v3/config/os/windiss/ctype_noninline.h 8878527d3634600f2e4df7b67860ce0f libstdc++-v3/config/os/windiss/os_defines.h ! d9e68f17da542b62ddfaac50e7dd63a9 libstdc++-v3/configure 4262a1be7e9ae912437fd7189e30d6da libstdc++-v3/configure.ac d601557e0c5164f1c18abe5f4594ac57 libstdc++-v3/configure.host ! f1cc2b27f784d1abfd99850b7e12f78b libstdc++-v3/crossconfig.m4 aa2618b72e9e6b60c247861d940e095e libstdc++-v3/docs/doxygen/Intro.3 d8c25a7f2e3cc9c9843f69e291490c01 libstdc++-v3/docs/doxygen/TODO f54b03fecbd102d5350cf0dce57974f1 libstdc++-v3/docs/doxygen/doxygroups.cc --- 19998,20007 ---- 992909cbcc0be849d9572526cb1e95ba libstdc++-v3/config/os/windiss/ctype_inline.h e9fe2fdbd51265ee1cccae63f5501e8b libstdc++-v3/config/os/windiss/ctype_noninline.h 8878527d3634600f2e4df7b67860ce0f libstdc++-v3/config/os/windiss/os_defines.h ! 7e9a766dc03021b6f09a811cdd81bb19 libstdc++-v3/configure 4262a1be7e9ae912437fd7189e30d6da libstdc++-v3/configure.ac d601557e0c5164f1c18abe5f4594ac57 libstdc++-v3/configure.host ! 0b09b7c514180c665721fb1b10199f2a libstdc++-v3/crossconfig.m4 aa2618b72e9e6b60c247861d940e095e libstdc++-v3/docs/doxygen/Intro.3 d8c25a7f2e3cc9c9843f69e291490c01 libstdc++-v3/docs/doxygen/TODO f54b03fecbd102d5350cf0dce57974f1 libstdc++-v3/docs/doxygen/doxygroups.cc *************** cbe85e70113273235269c1e60a607138 libstd *** 19916,19922 **** 43c90887489c33672461157008f1f81d libstdc++-v3/docs/html/17_intro/porting.html b0377f0dce769efb86a5ceaff0e73f2a libstdc++-v3/docs/html/17_intro/porting.texi c0c7eeeaeaa7f499716abde8d7306825 libstdc++-v3/docs/html/18_support/howto.html ! 3787c6231cca81065ae27132acdd852e libstdc++-v3/docs/html/19_diagnostics/howto.html 6ae35b82983c2a09a1560b2dad557924 libstdc++-v3/docs/html/20_util/allocator.html 67419e6b036104bf58a88498577baa6d libstdc++-v3/docs/html/20_util/howto.html cac5b1769d51ce529acf0a707508a874 libstdc++-v3/docs/html/21_strings/gotw29a.txt --- 20038,20044 ---- 43c90887489c33672461157008f1f81d libstdc++-v3/docs/html/17_intro/porting.html b0377f0dce769efb86a5ceaff0e73f2a libstdc++-v3/docs/html/17_intro/porting.texi c0c7eeeaeaa7f499716abde8d7306825 libstdc++-v3/docs/html/18_support/howto.html ! 2cf6a902ee1680593ff262ccb67bad4b libstdc++-v3/docs/html/19_diagnostics/howto.html 6ae35b82983c2a09a1560b2dad557924 libstdc++-v3/docs/html/20_util/allocator.html 67419e6b036104bf58a88498577baa6d libstdc++-v3/docs/html/20_util/howto.html cac5b1769d51ce529acf0a707508a874 libstdc++-v3/docs/html/21_strings/gotw29a.txt *************** a0dc7951090956b17b29f6435c18ceaa libstd *** 19939,19950 **** 487fd00ae9958022896748bad45fc7d2 libstdc++-v3/docs/html/Makefile a338819c24778bfd28ff786e2070b8a1 libstdc++-v3/docs/html/abi.html 446b0ddf4079107b68af287234b8e26d libstdc++-v3/docs/html/configopts.html ! e1efc1938dfefa4bcc7d6b6ff6ec46bb libstdc++-v3/docs/html/debug.html e8600ee4c25ca784c6bc896f3c778579 libstdc++-v3/docs/html/debug_mode.html ! 0d93cd2e329e89baac82b338012c2bf9 libstdc++-v3/docs/html/documentation.html a8be05e7b31562c65e7b5657b3212ab4 libstdc++-v3/docs/html/explanations.html a7a8f9a8f116547a0cfc531c052e4474 libstdc++-v3/docs/html/ext/ballocator_doc.txt ! ec94d779f9c2c9573c5b232f0c3b662c libstdc++-v3/docs/html/ext/howto.html 540b76e8af9bd1720e649b47835d017c libstdc++-v3/docs/html/ext/lwg-active.html f2ce0736195e4a1c13866ee5ef42eb48 libstdc++-v3/docs/html/ext/lwg-defects.html 1fc340e006b67eaf026bde6e37a60e93 libstdc++-v3/docs/html/ext/mt_allocator.html --- 20061,20072 ---- 487fd00ae9958022896748bad45fc7d2 libstdc++-v3/docs/html/Makefile a338819c24778bfd28ff786e2070b8a1 libstdc++-v3/docs/html/abi.html 446b0ddf4079107b68af287234b8e26d libstdc++-v3/docs/html/configopts.html ! 1a0f318ccd9022ee2b9e2d486940bec9 libstdc++-v3/docs/html/debug.html e8600ee4c25ca784c6bc896f3c778579 libstdc++-v3/docs/html/debug_mode.html ! 9ddf03987b0bb28b6052e58231359083 libstdc++-v3/docs/html/documentation.html a8be05e7b31562c65e7b5657b3212ab4 libstdc++-v3/docs/html/explanations.html a7a8f9a8f116547a0cfc531c052e4474 libstdc++-v3/docs/html/ext/ballocator_doc.txt ! f27bd34158475c3846059591f68dd465 libstdc++-v3/docs/html/ext/howto.html 540b76e8af9bd1720e649b47835d017c libstdc++-v3/docs/html/ext/lwg-active.html f2ce0736195e4a1c13866ee5ef42eb48 libstdc++-v3/docs/html/ext/lwg-defects.html 1fc340e006b67eaf026bde6e37a60e93 libstdc++-v3/docs/html/ext/mt_allocator.html *************** baa53d2e1cc76d9693957cdc9ca5620d libstd *** 19999,20025 **** aa417023263fd9d299a86ad8e785ce11 libstdc++-v3/include/bits/atomicity.h 9c084f137e4379070995b9445702e1af libstdc++-v3/include/bits/basic_ios.h 8f169120bb06a4e3543d95fac8f63e6c libstdc++-v3/include/bits/basic_ios.tcc ! a2e5fb4095151751ec8a72a51dd903c4 libstdc++-v3/include/bits/basic_string.h f8bad3c0003087d36b875c9b8fee41cb libstdc++-v3/include/bits/basic_string.tcc 65a2c441dbc9c3a34b668a274fb8a687 libstdc++-v3/include/bits/boost_concept_check.h ! ddf2261e05d131ec328385fae2ac4051 libstdc++-v3/include/bits/c++config ef81dac16e85dbe38841d934333e2eee libstdc++-v3/include/bits/char_traits.h 4a8802a19dcca7228472ae1c4f519e58 libstdc++-v3/include/bits/codecvt.h e8f8be39afe561dbeaf0363c1e8c9e6a libstdc++-v3/include/bits/concept_check.h c76977bce049146dbc837f94b4ea8275 libstdc++-v3/include/bits/concurrence.h 00d5dfbeeb939e067ab90ffef496f5a7 libstdc++-v3/include/bits/cpp_type_traits.h ffbc3ba004fe6cbf58b0e0f33a7cd8c0 libstdc++-v3/include/bits/deque.tcc ! 09c0d8fcacaaee2167c1d9ec392281e7 libstdc++-v3/include/bits/fstream.tcc 605ff4b8a1463f3f33122f5f0ea7af63 libstdc++-v3/include/bits/functexcept.h d98a0ef4b95a26cc4a75620b2464fc52 libstdc++-v3/include/bits/gslice.h 1e668644f8d5f1d97c0000bfffc384eb libstdc++-v3/include/bits/gslice_array.h f6f95a7e365579e68aa28916833ff630 libstdc++-v3/include/bits/indirect_array.h ! 670e2f3a33b73e5caac1e004a048160f libstdc++-v3/include/bits/ios_base.h cab7ec8ff0af1e8484639457de21044d libstdc++-v3/include/bits/istream.tcc 0d036028d3806587cf532c36e77bc6ed libstdc++-v3/include/bits/list.tcc 5459b11ca014e10a6ff447457cacb4cb libstdc++-v3/include/bits/locale_classes.h ! 115ea22d70525f88af216cfc2e95eba2 libstdc++-v3/include/bits/locale_facets.h ! 22b4739f5e7cae4836cbe98b63a43051 libstdc++-v3/include/bits/locale_facets.tcc 66bbc87279cebefd53c0c43cdcf0ae8f libstdc++-v3/include/bits/localefwd.h 41473de0686e1d392ff4c14787908e99 libstdc++-v3/include/bits/mask_array.h 27d4075d9b89af0f170731ed0e17dc69 libstdc++-v3/include/bits/ostream.tcc --- 20121,20147 ---- aa417023263fd9d299a86ad8e785ce11 libstdc++-v3/include/bits/atomicity.h 9c084f137e4379070995b9445702e1af libstdc++-v3/include/bits/basic_ios.h 8f169120bb06a4e3543d95fac8f63e6c libstdc++-v3/include/bits/basic_ios.tcc ! cf4461dc140a55d1cd21ee0b41290de4 libstdc++-v3/include/bits/basic_string.h f8bad3c0003087d36b875c9b8fee41cb libstdc++-v3/include/bits/basic_string.tcc 65a2c441dbc9c3a34b668a274fb8a687 libstdc++-v3/include/bits/boost_concept_check.h ! 01938f736c51915986ad9ce2e0a413f1 libstdc++-v3/include/bits/c++config ef81dac16e85dbe38841d934333e2eee libstdc++-v3/include/bits/char_traits.h 4a8802a19dcca7228472ae1c4f519e58 libstdc++-v3/include/bits/codecvt.h e8f8be39afe561dbeaf0363c1e8c9e6a libstdc++-v3/include/bits/concept_check.h c76977bce049146dbc837f94b4ea8275 libstdc++-v3/include/bits/concurrence.h 00d5dfbeeb939e067ab90ffef496f5a7 libstdc++-v3/include/bits/cpp_type_traits.h ffbc3ba004fe6cbf58b0e0f33a7cd8c0 libstdc++-v3/include/bits/deque.tcc ! 49fcc24005a43f3c05e76fa5c21a4861 libstdc++-v3/include/bits/fstream.tcc 605ff4b8a1463f3f33122f5f0ea7af63 libstdc++-v3/include/bits/functexcept.h d98a0ef4b95a26cc4a75620b2464fc52 libstdc++-v3/include/bits/gslice.h 1e668644f8d5f1d97c0000bfffc384eb libstdc++-v3/include/bits/gslice_array.h f6f95a7e365579e68aa28916833ff630 libstdc++-v3/include/bits/indirect_array.h ! d02aa774734ffdeee1b95502d7056062 libstdc++-v3/include/bits/ios_base.h cab7ec8ff0af1e8484639457de21044d libstdc++-v3/include/bits/istream.tcc 0d036028d3806587cf532c36e77bc6ed libstdc++-v3/include/bits/list.tcc 5459b11ca014e10a6ff447457cacb4cb libstdc++-v3/include/bits/locale_classes.h ! 1a4831dc45d2ad3cfee1e3475bf81f7f libstdc++-v3/include/bits/locale_facets.h ! 950700de31c59971a364de02eeac66d5 libstdc++-v3/include/bits/locale_facets.tcc 66bbc87279cebefd53c0c43cdcf0ae8f libstdc++-v3/include/bits/localefwd.h 41473de0686e1d392ff4c14787908e99 libstdc++-v3/include/bits/mask_array.h 27d4075d9b89af0f170731ed0e17dc69 libstdc++-v3/include/bits/ostream.tcc *************** cab7ec8ff0af1e8484639457de21044d libstd *** 20027,20033 **** da555af027115d7187ed6c60f675ba30 libstdc++-v3/include/bits/slice_array.h d0342aab3b87b5ab8e3d32ef11443f83 libstdc++-v3/include/bits/sstream.tcc a6ee5c2d212da4f06c8544060357839a libstdc++-v3/include/bits/stl_algo.h ! 187866a4e65364bf19c6954f26ecb2ef libstdc++-v3/include/bits/stl_algobase.h a307b184ddd69bbeb1b8dd499391e61a libstdc++-v3/include/bits/stl_bvector.h 793b42675634b78ff121b95a5c5e3af2 libstdc++-v3/include/bits/stl_construct.h 8af0010fb1de0734904fa7be5850423c libstdc++-v3/include/bits/stl_deque.h --- 20149,20155 ---- da555af027115d7187ed6c60f675ba30 libstdc++-v3/include/bits/slice_array.h d0342aab3b87b5ab8e3d32ef11443f83 libstdc++-v3/include/bits/sstream.tcc a6ee5c2d212da4f06c8544060357839a libstdc++-v3/include/bits/stl_algo.h ! d0a7fde0fc15bf3321b4d17b26cf1eca libstdc++-v3/include/bits/stl_algobase.h a307b184ddd69bbeb1b8dd499391e61a libstdc++-v3/include/bits/stl_bvector.h 793b42675634b78ff121b95a5c5e3af2 libstdc++-v3/include/bits/stl_construct.h 8af0010fb1de0734904fa7be5850423c libstdc++-v3/include/bits/stl_deque.h *************** a307b184ddd69bbeb1b8dd499391e61a libstd *** 20036,20042 **** 0d05d8ff69ed49b9263724ec4ae5118a libstdc++-v3/include/bits/stl_iterator.h a472a9c09e3f4a3547956631fee38e72 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 4505f2b08a35a49860c807524ac937cd libstdc++-v3/include/bits/stl_iterator_base_types.h ! cea32325133795d4023c0b6d3a15145b libstdc++-v3/include/bits/stl_list.h db7be9cd7fb210ab0d6845ec0d1b3528 libstdc++-v3/include/bits/stl_map.h 56450f9d9821913131224ffb97119844 libstdc++-v3/include/bits/stl_multimap.h 32388872086e144068a2aed0818199a7 libstdc++-v3/include/bits/stl_multiset.h --- 20158,20164 ---- 0d05d8ff69ed49b9263724ec4ae5118a libstdc++-v3/include/bits/stl_iterator.h a472a9c09e3f4a3547956631fee38e72 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 4505f2b08a35a49860c807524ac937cd libstdc++-v3/include/bits/stl_iterator_base_types.h ! 2fca1941b93910607dc68d3e7e75fe4f libstdc++-v3/include/bits/stl_list.h db7be9cd7fb210ab0d6845ec0d1b3528 libstdc++-v3/include/bits/stl_map.h 56450f9d9821913131224ffb97119844 libstdc++-v3/include/bits/stl_multimap.h 32388872086e144068a2aed0818199a7 libstdc++-v3/include/bits/stl_multiset.h *************** bafb6344e16062a0f74461c59556a8f8 libstd *** 20049,20055 **** 69c376b5ebfa6b05cb7c4a7ed8aa0e07 libstdc++-v3/include/bits/stl_stack.h d6736ebfa6891b55f4efc96ebf1375f8 libstdc++-v3/include/bits/stl_tempbuf.h 07a39394a882548694507b8549016d7f libstdc++-v3/include/bits/stl_threads.h ! 6a14c415223510429399696aac537ca8 libstdc++-v3/include/bits/stl_tree.h 2c19a5cef6970740b0e34a3e3a55b121 libstdc++-v3/include/bits/stl_uninitialized.h bb6af27882fc6642545aabf903bec32b libstdc++-v3/include/bits/stl_vector.h 1f430113e703b375c2e492172107a5c2 libstdc++-v3/include/bits/stream_iterator.h --- 20171,20177 ---- 69c376b5ebfa6b05cb7c4a7ed8aa0e07 libstdc++-v3/include/bits/stl_stack.h d6736ebfa6891b55f4efc96ebf1375f8 libstdc++-v3/include/bits/stl_tempbuf.h 07a39394a882548694507b8549016d7f libstdc++-v3/include/bits/stl_threads.h ! a0111e9d0eeac983b2b9e8a6c9051f14 libstdc++-v3/include/bits/stl_tree.h 2c19a5cef6970740b0e34a3e3a55b121 libstdc++-v3/include/bits/stl_uninitialized.h bb6af27882fc6642545aabf903bec32b libstdc++-v3/include/bits/stl_vector.h 1f430113e703b375c2e492172107a5c2 libstdc++-v3/include/bits/stream_iterator.h *************** f39b3a4ac96f3d116a530760fcb9fb92 libstd *** 20061,20067 **** 8f9035d11d2c60bba80f870ae3e38711 libstdc++-v3/include/bits/valarray_array.h 0cacacd24ba4a1adc6a0fb915a70b02f libstdc++-v3/include/bits/valarray_array.tcc 6816f58b94d8502f10b41ab04a373f86 libstdc++-v3/include/bits/valarray_before.h ! d43c5935846753890b2979aff9218818 libstdc++-v3/include/bits/vector.tcc 2da65118213e7e27e5d4d09be974c3fc libstdc++-v3/include/c/std_cassert.h 7fc0130555d9215380296870a843f991 libstdc++-v3/include/c/std_cctype.h 66636afb5592971448e135051b7bc906 libstdc++-v3/include/c/std_cerrno.h --- 20183,20189 ---- 8f9035d11d2c60bba80f870ae3e38711 libstdc++-v3/include/bits/valarray_array.h 0cacacd24ba4a1adc6a0fb915a70b02f libstdc++-v3/include/bits/valarray_array.tcc 6816f58b94d8502f10b41ab04a373f86 libstdc++-v3/include/bits/valarray_before.h ! 6484e13ac1112145f81b3032f62dcecf libstdc++-v3/include/bits/vector.tcc 2da65118213e7e27e5d4d09be974c3fc libstdc++-v3/include/c/std_cassert.h 7fc0130555d9215380296870a843f991 libstdc++-v3/include/c/std_cctype.h 66636afb5592971448e135051b7bc906 libstdc++-v3/include/c/std_cerrno.h *************** a886f347db04daf7e93ba5c21e6c2849 libstd *** 20158,20171 **** 304f71865a24e3dbe893269a544605b8 libstdc++-v3/include/ext/pod_char_traits.h 8d62dc2c674521c8d85e5479fbb0ecc8 libstdc++-v3/include/ext/pool_allocator.h 8126332f37fbf0384af48b79f278a1ab libstdc++-v3/include/ext/rb_tree ! 6656654c138d2c7e63caaca73c0ce61f libstdc++-v3/include/ext/rope f38b47afa6464f9d6d2c01574f99cbbc libstdc++-v3/include/ext/ropeimpl.h 0cc5a24999c3801fade48cb50a0e1b43 libstdc++-v3/include/ext/slist 481de15386773e1eae7544d9410b138b libstdc++-v3/include/ext/stdio_filebuf.h a4a62a166815d83348d5fa66bfd68483 libstdc++-v3/include/ext/stdio_sync_filebuf.h eb78e05a0ea73deb7ad9e2cc39b72eb3 libstdc++-v3/include/std/std_algorithm.h 6f4cc7b2c4ab365d9b424f7698cd9ab5 libstdc++-v3/include/std/std_bitset.h ! fb5159687ae068adce56e0caa989bd11 libstdc++-v3/include/std/std_complex.h 69c4d18dcf39931b223df089e24ed715 libstdc++-v3/include/std/std_deque.h 34d5880d18660d9dd35463f8c55f8c92 libstdc++-v3/include/std/std_fstream.h 470e0e4c16194890841c1d95337e2886 libstdc++-v3/include/std/std_functional.h --- 20280,20293 ---- 304f71865a24e3dbe893269a544605b8 libstdc++-v3/include/ext/pod_char_traits.h 8d62dc2c674521c8d85e5479fbb0ecc8 libstdc++-v3/include/ext/pool_allocator.h 8126332f37fbf0384af48b79f278a1ab libstdc++-v3/include/ext/rb_tree ! 254de2d1e036463d4818e584fc1bd323 libstdc++-v3/include/ext/rope f38b47afa6464f9d6d2c01574f99cbbc libstdc++-v3/include/ext/ropeimpl.h 0cc5a24999c3801fade48cb50a0e1b43 libstdc++-v3/include/ext/slist 481de15386773e1eae7544d9410b138b libstdc++-v3/include/ext/stdio_filebuf.h a4a62a166815d83348d5fa66bfd68483 libstdc++-v3/include/ext/stdio_sync_filebuf.h eb78e05a0ea73deb7ad9e2cc39b72eb3 libstdc++-v3/include/std/std_algorithm.h 6f4cc7b2c4ab365d9b424f7698cd9ab5 libstdc++-v3/include/std/std_bitset.h ! 19f6e59988e3961cd8310917247435b5 libstdc++-v3/include/std/std_complex.h 69c4d18dcf39931b223df089e24ed715 libstdc++-v3/include/std/std_deque.h 34d5880d18660d9dd35463f8c55f8c92 libstdc++-v3/include/std/std_fstream.h 470e0e4c16194890841c1d95337e2886 libstdc++-v3/include/std/std_functional.h *************** c2a563e7666e4f0ff7f58b0c65f4569b libstd *** 20212,20218 **** 47cf268d4361b0a7fca4c6dcd37794dc libstdc++-v3/libsupc++/eh_aux_runtime.cc abb8064231633168f4b0e5531eb52733 libstdc++-v3/libsupc++/eh_catch.cc 95a9fae5dbc74a3ebf6f1ce01a5b05d0 libstdc++-v3/libsupc++/eh_exception.cc ! 4da3618aa9d8906ae5d5f0ea82e9a559 libstdc++-v3/libsupc++/eh_globals.cc 31223dc18772cca5c7234100c484eeab libstdc++-v3/libsupc++/eh_personality.cc 52ffeaa60d930af865e5ccd703b9e0e1 libstdc++-v3/libsupc++/eh_term_handler.cc 4778ed292b8b4d5c6194a197ec7da832 libstdc++-v3/libsupc++/eh_terminate.cc --- 20334,20340 ---- 47cf268d4361b0a7fca4c6dcd37794dc libstdc++-v3/libsupc++/eh_aux_runtime.cc abb8064231633168f4b0e5531eb52733 libstdc++-v3/libsupc++/eh_catch.cc 95a9fae5dbc74a3ebf6f1ce01a5b05d0 libstdc++-v3/libsupc++/eh_exception.cc ! 6fc32b9c9f996bfb6ee93668fb5e23b5 libstdc++-v3/libsupc++/eh_globals.cc 31223dc18772cca5c7234100c484eeab libstdc++-v3/libsupc++/eh_personality.cc 52ffeaa60d930af865e5ccd703b9e0e1 libstdc++-v3/libsupc++/eh_term_handler.cc 4778ed292b8b4d5c6194a197ec7da832 libstdc++-v3/libsupc++/eh_terminate.cc *************** d5e6d8dfa5a39e2d3a6a13db2a440bc0 libstd *** 20236,20242 **** b50c2c3c5bb81d493f2a55410f1c69ef libstdc++-v3/libsupc++/unwind-cxx.h 0d60b47985336d9c0b052a0ef27c5843 libstdc++-v3/libsupc++/vec.cc 20422d9fc0faa50ecf5dc3ffbfb86c34 libstdc++-v3/libsupc++/vterminate.cc ! 05f11e4e6a4baed3f89d1a0c6ebf93d7 libstdc++-v3/linkage.m4 9fc98e5b6a3fdbae0303306e81fa6577 libstdc++-v3/po/Makefile.am a33b2bb5b19f094e472e871c160edd64 libstdc++-v3/po/Makefile.in 40dca05090c534f278354b45713ba7fb libstdc++-v3/po/POTFILES.in --- 20358,20364 ---- b50c2c3c5bb81d493f2a55410f1c69ef libstdc++-v3/libsupc++/unwind-cxx.h 0d60b47985336d9c0b052a0ef27c5843 libstdc++-v3/libsupc++/vec.cc 20422d9fc0faa50ecf5dc3ffbfb86c34 libstdc++-v3/libsupc++/vterminate.cc ! d241a253bb11877e6f55986ac7af2e36 libstdc++-v3/linkage.m4 9fc98e5b6a3fdbae0303306e81fa6577 libstdc++-v3/po/Makefile.am a33b2bb5b19f094e472e871c160edd64 libstdc++-v3/po/Makefile.in 40dca05090c534f278354b45713ba7fb libstdc++-v3/po/POTFILES.in *************** e32c6148dda46bf5cb3fe63409e9dada libstd *** 20257,20263 **** 1fe615827e1969cb74664e21922bf02f libstdc++-v3/src/complex_io.cc f6b57645d59acaa9bbe15b3a20c31537 libstdc++-v3/src/concept-inst.cc 1308d5e87aff4099828e966b51b9056d libstdc++-v3/src/ctype.cc ! 455438b0ac8906bc36cc608b8b1f8b4f libstdc++-v3/src/debug.cc d94822f7f6534d871b2ee105d2fadd98 libstdc++-v3/src/debug_list.cc 641b0956b2f384dc73fce6300304330c libstdc++-v3/src/ext-inst.cc 8cf946fd23794a64da02eeae60962706 libstdc++-v3/src/fstream-inst.cc --- 20379,20385 ---- 1fe615827e1969cb74664e21922bf02f libstdc++-v3/src/complex_io.cc f6b57645d59acaa9bbe15b3a20c31537 libstdc++-v3/src/concept-inst.cc 1308d5e87aff4099828e966b51b9056d libstdc++-v3/src/ctype.cc ! fe9304cc0086bb9c1797778a5151ac48 libstdc++-v3/src/debug.cc d94822f7f6534d871b2ee105d2fadd98 libstdc++-v3/src/debug_list.cc 641b0956b2f384dc73fce6300304330c libstdc++-v3/src/ext-inst.cc 8cf946fd23794a64da02eeae60962706 libstdc++-v3/src/fstream-inst.cc *************** d94822f7f6534d871b2ee105d2fadd98 libstd *** 20265,20271 **** 74ea6e1cde1885ffa3789c59afe0c2f4 libstdc++-v3/src/globals_io.cc 9ff74f0d2bdff080605402eed078ee50 libstdc++-v3/src/globals_locale.cc 07caa02e96085d45bac9bd022f93e7e6 libstdc++-v3/src/io-inst.cc ! 20947615e2dac9ddf3bf23c02183c30d libstdc++-v3/src/ios.cc 0500f4b6fdb8521fda50933f79d44cee libstdc++-v3/src/ios_failure.cc 92b3ade3862a7b5f1e48f0536d24a835 libstdc++-v3/src/ios_init.cc 6ffbe5771f17a91bc4ae6c1ea940498e libstdc++-v3/src/ios_locale.cc --- 20387,20393 ---- 74ea6e1cde1885ffa3789c59afe0c2f4 libstdc++-v3/src/globals_io.cc 9ff74f0d2bdff080605402eed078ee50 libstdc++-v3/src/globals_locale.cc 07caa02e96085d45bac9bd022f93e7e6 libstdc++-v3/src/io-inst.cc ! 33b7d466de53aef3f5aad534fe6a7648 libstdc++-v3/src/ios.cc 0500f4b6fdb8521fda50933f79d44cee libstdc++-v3/src/ios_failure.cc 92b3ade3862a7b5f1e48f0536d24a835 libstdc++-v3/src/ios_init.cc 6ffbe5771f17a91bc4ae6c1ea940498e libstdc++-v3/src/ios_locale.cc *************** a19e29c58326d1b801603096994cc52a libstd *** 20376,20385 **** 23595a0550b38951794aed732c3ff817 libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/4.cc 97cf26bb64a1d710df415ba1ba63dcb3 libstdc++-v3/testsuite/21_strings/basic_string/find/char/1.cc 05bbb66b797f7043a2c070dcfbb660b5 libstdc++-v3/testsuite/21_strings/basic_string/find/char/2.cc ! 98106350950c4341023409696ee563fe libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc 33e0afa4263083371b38aac51ba90e27 libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/1.cc 1b5ca175fe37bf1c5d0c583bf386b002 libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/2.cc ! e56a6f8e386ecb43a478d11d88aa3942 libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc c2a5cf5735f218343259624695383b59 libstdc++-v3/testsuite/21_strings/basic_string/insert/char/1.cc a16a33a97356d49bdfb67c22901ec8be libstdc++-v3/testsuite/21_strings/basic_string/insert/char/2.cc 8ed9e7eb9a0ad9f9e1f28da1bd474bc0 libstdc++-v3/testsuite/21_strings/basic_string/insert/wchar_t/1.cc --- 20498,20507 ---- 23595a0550b38951794aed732c3ff817 libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/4.cc 97cf26bb64a1d710df415ba1ba63dcb3 libstdc++-v3/testsuite/21_strings/basic_string/find/char/1.cc 05bbb66b797f7043a2c070dcfbb660b5 libstdc++-v3/testsuite/21_strings/basic_string/find/char/2.cc ! 064ea2d5a6e2554c30cf0053aed9b18d libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc 33e0afa4263083371b38aac51ba90e27 libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/1.cc 1b5ca175fe37bf1c5d0c583bf386b002 libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/2.cc ! a35ad285f106ee4629a4d8f438a273b5 libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc c2a5cf5735f218343259624695383b59 libstdc++-v3/testsuite/21_strings/basic_string/insert/char/1.cc a16a33a97356d49bdfb67c22901ec8be libstdc++-v3/testsuite/21_strings/basic_string/insert/char/2.cc 8ed9e7eb9a0ad9f9e1f28da1bd474bc0 libstdc++-v3/testsuite/21_strings/basic_string/insert/wchar_t/1.cc *************** edc6038953fa92576820bb9985bd54ab libstd *** 20564,20569 **** --- 20686,20692 ---- b41efffe3388b76925dd06b651f30d39 libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc 438c7e9c8dfee855ec0a30ce0114d743 libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc f11a96600dec19d1c6d9baaa3e2f147f libstdc++-v3/testsuite/22_locale/ctype/narrow/char/1.cc + 2d7b683e02efd9c28fbfe443649ab437 libstdc++-v3/testsuite/22_locale/ctype/narrow/char/19955.cc c44de49acfc179f9cd15c48871113f0f libstdc++-v3/testsuite/22_locale/ctype/narrow/char/2.cc b41efffe3388b76925dd06b651f30d39 libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_env.cc 438c7e9c8dfee855ec0a30ce0114d743 libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc *************** ff17dfd85521734e2354f4c94365b834 libstd *** 20945,20951 **** 2a8a211b0267ac37aa36de069c92f83b libstdc++-v3/testsuite/23_containers/map/invalidation/2.cc db5b73515723aea0c8134ca3ea57ab19 libstdc++-v3/testsuite/23_containers/map/modifiers/swap.cc fb07d2e6c3b130e906a8986ea17b82b0 libstdc++-v3/testsuite/23_containers/map/operators/1.cc ! 7acc7b611a63d29be746d91db78ece18 libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc 0cf5ed8206454cd0c064f64947447a7b libstdc++-v3/testsuite/23_containers/multimap/1.cc 15a0c566bf8f9cf50da0b5645db7ccde libstdc++-v3/testsuite/23_containers/multimap/14340.cc c18d1228b12d82530a57028924bab01a libstdc++-v3/testsuite/23_containers/multimap/invalidation/1.cc --- 21068,21074 ---- 2a8a211b0267ac37aa36de069c92f83b libstdc++-v3/testsuite/23_containers/map/invalidation/2.cc db5b73515723aea0c8134ca3ea57ab19 libstdc++-v3/testsuite/23_containers/map/modifiers/swap.cc fb07d2e6c3b130e906a8986ea17b82b0 libstdc++-v3/testsuite/23_containers/map/operators/1.cc ! 69a78a375ad0a21a2ab7b61389aad176 libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc 0cf5ed8206454cd0c064f64947447a7b libstdc++-v3/testsuite/23_containers/multimap/1.cc 15a0c566bf8f9cf50da0b5645db7ccde libstdc++-v3/testsuite/23_containers/multimap/14340.cc c18d1228b12d82530a57028924bab01a libstdc++-v3/testsuite/23_containers/multimap/invalidation/1.cc *************** fc179a7048e2c023ba31f7e0800d3ddf libstd *** 20964,20970 **** 3d540f2bccb635bd43e7e8db11a1d2c3 libstdc++-v3/testsuite/23_containers/set/invalidation/1.cc a60362b3af507c75952e5bfca30acbfd libstdc++-v3/testsuite/23_containers/set/invalidation/2.cc 5dfa31723a5b8c7cb9f988e3bdac4d97 libstdc++-v3/testsuite/23_containers/set/modifiers/swap.cc ! 883cd02d234bab9c9908051899f82e75 libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc 52d51b5ff50960a7f0382da76cbf3448 libstdc++-v3/testsuite/23_containers/stack/members/7158.cc e4660d43a966624ec54743756efe7456 libstdc++-v3/testsuite/23_containers/vector/1.cc b9dcfbf9ad2540b9367cab4a2018f2f2 libstdc++-v3/testsuite/23_containers/vector/14340.cc --- 21087,21093 ---- 3d540f2bccb635bd43e7e8db11a1d2c3 libstdc++-v3/testsuite/23_containers/set/invalidation/1.cc a60362b3af507c75952e5bfca30acbfd libstdc++-v3/testsuite/23_containers/set/invalidation/2.cc 5dfa31723a5b8c7cb9f988e3bdac4d97 libstdc++-v3/testsuite/23_containers/set/modifiers/swap.cc ! b907dca603ad7eb5fb94a4c8ec1a32ce libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc 52d51b5ff50960a7f0382da76cbf3448 libstdc++-v3/testsuite/23_containers/stack/members/7158.cc e4660d43a966624ec54743756efe7456 libstdc++-v3/testsuite/23_containers/vector/1.cc b9dcfbf9ad2540b9367cab4a2018f2f2 libstdc++-v3/testsuite/23_containers/vector/14340.cc *************** b8ee3386ad6521e72b5fd25eb7089959 libstd *** 21518,21525 **** ff868872a38f6a20b77af55a38d52120 libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc e7ee058a895a3a54e5d813031650f421 libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc 1b5e5fd2147c3a1531cdfac1d9a3dd27 libstdc++-v3/testsuite/27_io/ios_base/callbacks/1.cc ! 60c301f120661d4dd9519cb2e00c7c4c libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc ! 934666175e7723fd4dc732c734a504b5 libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc f98edba4011372049fecca338fb80623 libstdc++-v3/testsuite/27_io/ios_base/state/1.cc a8a6a56b2f1cab85bc73bb22594bb741 libstdc++-v3/testsuite/27_io/ios_base/storage/1.cc d5f5aae7bec185a2b090c2d3c8dd75da libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc --- 21641,21648 ---- ff868872a38f6a20b77af55a38d52120 libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc e7ee058a895a3a54e5d813031650f421 libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc 1b5e5fd2147c3a1531cdfac1d9a3dd27 libstdc++-v3/testsuite/27_io/ios_base/callbacks/1.cc ! 8e5e0e56393f9d9fb64b0d02f2e082f1 libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc ! d73862a2b0dbf3b659593573a5a88605 libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc f98edba4011372049fecca338fb80623 libstdc++-v3/testsuite/27_io/ios_base/state/1.cc a8a6a56b2f1cab85bc73bb22594bb741 libstdc++-v3/testsuite/27_io/ios_base/storage/1.cc d5f5aae7bec185a2b090c2d3c8dd75da libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc *************** d5f5aae7bec185a2b090c2d3c8dd75da libstd *** 21529,21534 **** --- 21652,21664 ---- cacea0585ee06f81539a77df3df398c7 libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc 949fb2e85ccd6318ae459f20026e6277 libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/2.cc bdf77ecc99c202ee295857273177b9c3 libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/9523.cc + afdc5cd14848fcba31e4a23a7e6c78f2 libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc + 4f4e442b05a6700dbf6e0b8b8a75ae78 libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc + 79b740e51a10ea5f6519114174e3085e libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc + b24d28acd3a435046ecac169200d8078 libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc + 015ffd9aaefcb9b2c6a03579ec03d0c0 libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc + 4025b1a5455236a23d6281faab0e639d libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc + df95dd9e037aaab9af333d3ad4cddf12 libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc fc6872a64a2783ad5150311426a45104 libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/1.cc 2efb842f3a459efa5ab774909f390f4b libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/2.cc 4cfdde96383269a5882a896af18e089c libstdc++-v3/testsuite/27_io/manipulators/basefield/char/1.cc *************** b715c45a6677f269807dab0bbcf0ee1d libstd *** 21619,21627 **** 7c372cec04610d44dc2fd1f3dcdf89e6 libstdc++-v3/testsuite/27_io/types/1.cc d8b9f7919024d17415f724a3ac95ce05 libstdc++-v3/testsuite/27_io/types/2.cc 3fd82f08ab16a228039562396b3e281f libstdc++-v3/testsuite/27_io/types/3.cc ! f50c3ccebfd22c97ee023758f4b22758 libstdc++-v3/testsuite/Makefile.am ! 720c794b35111ad396be8129b8b5d8e1 libstdc++-v3/testsuite/Makefile.in ! c4b036ffe9510af53d3e5b95934d9037 libstdc++-v3/testsuite/abi_check.cc 02143153c968c0f22ee7bc20083dfa85 libstdc++-v3/testsuite/backward/11460.cc 3489918bda0c32e7f47c2cdaed6c6ae3 libstdc++-v3/testsuite/backward/header_deque_h.cc 5fe56078eceb550d7c427511cee65437 libstdc++-v3/testsuite/backward/header_hash_map_h.cc --- 21749,21757 ---- 7c372cec04610d44dc2fd1f3dcdf89e6 libstdc++-v3/testsuite/27_io/types/1.cc d8b9f7919024d17415f724a3ac95ce05 libstdc++-v3/testsuite/27_io/types/2.cc 3fd82f08ab16a228039562396b3e281f libstdc++-v3/testsuite/27_io/types/3.cc ! ddbf831652a780ff15ae487e7d499394 libstdc++-v3/testsuite/Makefile.am ! 00f27f7d5cb5b1a8cb55df943b26c3f8 libstdc++-v3/testsuite/Makefile.in ! 68fde9d3f496a23d9b80f4996959331e libstdc++-v3/testsuite/abi_check.cc 02143153c968c0f22ee7bc20083dfa85 libstdc++-v3/testsuite/backward/11460.cc 3489918bda0c32e7f47c2cdaed6c6ae3 libstdc++-v3/testsuite/backward/header_deque_h.cc 5fe56078eceb550d7c427511cee65437 libstdc++-v3/testsuite/backward/header_hash_map_h.cc *************** b764f52b36be7850b3d1f9862b1dfd53 libstd *** 21670,21677 **** b764f52b36be7850b3d1f9862b1dfd53 libstdc++-v3/testsuite/data/seekpos.txt b764f52b36be7850b3d1f9862b1dfd53 libstdc++-v3/testsuite/data/sgetc.txt 4545819a480b93d5f28a6cb5978a59b2 libstdc++-v3/testsuite/data/sgetn.txt ! 2b60c14f71c79bc9a311d189bc2dd5f6 libstdc++-v3/testsuite/demangle/abi_examples/01.cc ! 1228be16da06f8f79347976dc74feaf4 libstdc++-v3/testsuite/demangle/abi_examples/02.cc 77dcc4a8a65a1d885512d9bba720a4f2 libstdc++-v3/testsuite/demangle/abi_examples/03.cc 42aa7f77627b384f964751e5dffddff2 libstdc++-v3/testsuite/demangle/abi_examples/04.cc 47d363581189d8bdb2a65a1c94ad44a5 libstdc++-v3/testsuite/demangle/abi_examples/05.cc --- 21800,21807 ---- b764f52b36be7850b3d1f9862b1dfd53 libstdc++-v3/testsuite/data/seekpos.txt b764f52b36be7850b3d1f9862b1dfd53 libstdc++-v3/testsuite/data/sgetc.txt 4545819a480b93d5f28a6cb5978a59b2 libstdc++-v3/testsuite/data/sgetn.txt ! 0014510aaabafca8ba676d32d8d755ce libstdc++-v3/testsuite/demangle/abi_examples/01.cc ! 7a693ad551e6a241dd63f5dc0fbecff1 libstdc++-v3/testsuite/demangle/abi_examples/02.cc 77dcc4a8a65a1d885512d9bba720a4f2 libstdc++-v3/testsuite/demangle/abi_examples/03.cc 42aa7f77627b384f964751e5dffddff2 libstdc++-v3/testsuite/demangle/abi_examples/04.cc 47d363581189d8bdb2a65a1c94ad44a5 libstdc++-v3/testsuite/demangle/abi_examples/05.cc *************** c7b65a30fbe8fe9e09039974d301cc33 libstd *** 21746,21754 **** 9f57e30a4a5f8c64b41e5f7091b5c140 libstdc++-v3/testsuite/ext/14648.cc 58e1e725e4d916adc38bab6b6aad5347 libstdc++-v3/testsuite/ext/allocators.cc a476a1a18146426ade6bc4a2f406b243 libstdc++-v3/testsuite/ext/concept_checks.cc ! bae2ce0ed21a80866dcbbe655983f645 libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc ac8dd2f3f938cb12438df739f1525c2a libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc ! 09a950bf802b0beeadfdaef857bace14 libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc 36690cb1e03e2a9cb57a1c91f704bbc4 libstdc++-v3/testsuite/ext/hash_map.cc 529e521fa08b946e74a2dd26f08c6270 libstdc++-v3/testsuite/ext/hash_set.cc abaa06f6b1527cd14d09d55d76bec18b libstdc++-v3/testsuite/ext/headers.cc --- 21876,21884 ---- 9f57e30a4a5f8c64b41e5f7091b5c140 libstdc++-v3/testsuite/ext/14648.cc 58e1e725e4d916adc38bab6b6aad5347 libstdc++-v3/testsuite/ext/allocators.cc a476a1a18146426ade6bc4a2f406b243 libstdc++-v3/testsuite/ext/concept_checks.cc ! 2495b75ae122eac6da5bb4b6d024a906 libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc ac8dd2f3f938cb12438df739f1525c2a libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc ! e15fb4b4e0304bf06453b8629b264c2c libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc 36690cb1e03e2a9cb57a1c91f704bbc4 libstdc++-v3/testsuite/ext/hash_map.cc 529e521fa08b946e74a2dd26f08c6270 libstdc++-v3/testsuite/ext/hash_set.cc abaa06f6b1527cd14d09d55d76bec18b libstdc++-v3/testsuite/ext/headers.cc *************** c4ee9a90d83aa20657d0e18464164bfa libstd *** 21757,21762 **** --- 21887,21893 ---- 370124555adbcc4235cbe4e97db675e7 libstdc++-v3/testsuite/ext/rope/1.cc 41871752363c9576f4ab9c9e6734f052 libstdc++-v3/testsuite/ext/rope/2.cc acd7d95c0f1448e509670cdc2ef828cf libstdc++-v3/testsuite/ext/rope/3.cc + b99b8f485227e3df386d156e90936622 libstdc++-v3/testsuite/ext/rope/4.cc b88f93403eaaa3a63361ef011a422413 libstdc++-v3/testsuite/ext/stdio_filebuf/char/1.cc 1a81f51ba7e6f142a211948ef1e2151d libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-1.cc ef2bcf29360e5abc5d4a874ed9735344 libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-2.cc *************** b7e9f0c5e61fe5e7febb33bc6a26726e libstd *** 21774,21782 **** 4655cf62774952e20c243dcc6b3102d3 libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc c695be2d4ce5918fbf775d027d4417ae libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc 6501ac7b56f5bbc2aa97f698143fcc79 libstdc++-v3/testsuite/lib/dg-options.exp ! b01daadca60c0476a001f484a1f0e52c libstdc++-v3/testsuite/lib/libstdc++.exp 34a4bf3337bbd4d8a88db6062a1e47b0 libstdc++-v3/testsuite/lib/prune.exp ! 6f6c590709f2fa1c2321009b27598f1f libstdc++-v3/testsuite/libstdc++-dg/normal.exp 2ea568b8d1195b722dd5cbe38846cf50 libstdc++-v3/testsuite/performance/20_util/allocator/insert.cc 8b5913eac7ec6c6aef81c389fdd30254 libstdc++-v3/testsuite/performance/20_util/allocator/insert_insert.cc 3de5e1e23aa83747e8e529a1ae0ec6ad libstdc++-v3/testsuite/performance/20_util/allocator/list_sort_search.cc --- 21905,21914 ---- 4655cf62774952e20c243dcc6b3102d3 libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc c695be2d4ce5918fbf775d027d4417ae libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc 6501ac7b56f5bbc2aa97f698143fcc79 libstdc++-v3/testsuite/lib/dg-options.exp ! bc112c65fc183365188e61d60535d22f libstdc++-v3/testsuite/lib/libstdc++.exp 34a4bf3337bbd4d8a88db6062a1e47b0 libstdc++-v3/testsuite/lib/prune.exp ! 9c7873cec408e887470542aaaea2283d libstdc++-v3/testsuite/libstdc++-abi/abi.exp ! cc46e24436a0bfacfcf129f2c505b863 libstdc++-v3/testsuite/libstdc++-dg/normal.exp 2ea568b8d1195b722dd5cbe38846cf50 libstdc++-v3/testsuite/performance/20_util/allocator/insert.cc 8b5913eac7ec6c6aef81c389fdd30254 libstdc++-v3/testsuite/performance/20_util/allocator/insert_insert.cc 3de5e1e23aa83747e8e529a1ae0ec6ad libstdc++-v3/testsuite/performance/20_util/allocator/list_sort_search.cc *************** a4af9ba571e9d7dfa3dded1a83f52e84 libstd *** 21809,21841 **** 196e27f9c810c99ec3bd696873c1b893 libstdc++-v3/testsuite/performance/27_io/ofstream_insert_int.cc e44f08a4e0a1f56adf277a0546afde57 libstdc++-v3/testsuite/performance/27_io/stringbuf_overflow.cc 10e2843fe41b2059ea3e13dd678f803b libstdc++-v3/testsuite/printnow.c ! a0259f5888491cbe9f313febc25bd37c libstdc++-v3/testsuite/testsuite_abi.cc ! fbcf2d298f422521029665241b0fdad7 libstdc++-v3/testsuite/testsuite_abi.h 6ac9befafb8ded96cdfc74427bf039d7 libstdc++-v3/testsuite/testsuite_allocator.cc 17a3a121ca30dace101e83cd838e8de3 libstdc++-v3/testsuite/testsuite_allocator.h 954f62907f9ff6f328f9ec9d8aa915b3 libstdc++-v3/testsuite/testsuite_character.h ! 835152e83816f93ea8eed4db2581c60d libstdc++-v3/testsuite/testsuite_hooks.cc ! 4245a2c4db89156f8950febe9b9b6546 libstdc++-v3/testsuite/testsuite_hooks.h fe5d818f916509fbd28f3e0227b33cee libstdc++-v3/testsuite/testsuite_io.h ! 860203dc6c9d5393027bb348fe4313e4 libstdc++-v3/testsuite/testsuite_performance.h ! 8bbbcc230250b9e0c0d3b78d5297f471 libstdc++-v3/testsuite/thread/pthread1.cc ! 81d3914c3ce67ce87fca9d93227c9231 libstdc++-v3/testsuite/thread/pthread2.cc ! 30a0eeee35a3cc9691912707459227e0 libstdc++-v3/testsuite/thread/pthread3.cc ! b4b7a8ae821ece3f8b02f5732821d966 libstdc++-v3/testsuite/thread/pthread4.cc ! 6ac5c13b91e24e4f26662bfeedc9d59e libstdc++-v3/testsuite/thread/pthread5.cc ! 5dc2f7f90dc116507f76f724d684c56b libstdc++-v3/testsuite/thread/pthread6.cc ! ce1f2fefdc810942a939f6af0211afb1 libstdc++-v3/testsuite/thread/pthread7-rope.cc cad8927f9f17a1ba1b87d3f224cc9868 libtool.m4 2a21626a6520d08ba7959d0e7a08836d ltcf-c.sh 2744bf8b7234beb5876238fdae263e52 ltcf-cxx.sh 3a32c8ce5a44baa195475e5ab54d1862 ltcf-gcj.sh 0ca2424a14242f7486263f176146c0e2 ltconfig 125aa9a4eda03171384f8d4301b17f89 ltmain.sh ! a280dbdc5dd885dc64ec6131efb66cdf maintainer-scripts/ChangeLog 31816563a48006f019a0dcc6f4175d16 maintainer-scripts/README 4d6297fdb211c207d899e8f2b7917e52 maintainer-scripts/crontab ef4b5d39023785696cb4b2cf6822bdc6 maintainer-scripts/doc_exclude ! 66d0b67f8efa2ebf1b9655eb11bf66bc maintainer-scripts/gcc_release 5a590c51b17d10747f3ce2694caf0ff2 maintainer-scripts/maintainer-addresses f008f5ed6466c5f78ff0ad81fb3bff6e maintainer-scripts/snapshot-README d955665d1385a68557479da60bfc555c maintainer-scripts/snapshot-index.html --- 21941,21974 ---- 196e27f9c810c99ec3bd696873c1b893 libstdc++-v3/testsuite/performance/27_io/ofstream_insert_int.cc e44f08a4e0a1f56adf277a0546afde57 libstdc++-v3/testsuite/performance/27_io/stringbuf_overflow.cc 10e2843fe41b2059ea3e13dd678f803b libstdc++-v3/testsuite/printnow.c ! f2d0d110780117fd4c08f49f564699b2 libstdc++-v3/testsuite/testsuite_abi.cc ! 35af6c7c7eb9aeb08f222aafa5d763ba libstdc++-v3/testsuite/testsuite_abi.h 6ac9befafb8ded96cdfc74427bf039d7 libstdc++-v3/testsuite/testsuite_allocator.cc 17a3a121ca30dace101e83cd838e8de3 libstdc++-v3/testsuite/testsuite_allocator.h 954f62907f9ff6f328f9ec9d8aa915b3 libstdc++-v3/testsuite/testsuite_character.h ! dd5d3e2d899b4a883256f0a3bce7cbeb libstdc++-v3/testsuite/testsuite_hooks.cc ! 28cf643394c89fc734077baca2bf8f13 libstdc++-v3/testsuite/testsuite_hooks.h fe5d818f916509fbd28f3e0227b33cee libstdc++-v3/testsuite/testsuite_io.h ! dd5641e7f6e562432e1e679f99b322b5 libstdc++-v3/testsuite/testsuite_performance.h ! bf89500003e55d950096a235e293f7e4 libstdc++-v3/testsuite/thread/18185.cc ! a8b0d3d516ba7db18eac5dec5a706dab libstdc++-v3/testsuite/thread/pthread1.cc ! 485e17baa27c4b6bf4da062c433048d8 libstdc++-v3/testsuite/thread/pthread2.cc ! bb37d537f8cbbb24c7c8cf4e37b88486 libstdc++-v3/testsuite/thread/pthread3.cc ! 6a79253fb2e830e7f002b7ebd849399c libstdc++-v3/testsuite/thread/pthread4.cc ! b53cf9dc59c757807bf09507883f24ff libstdc++-v3/testsuite/thread/pthread5.cc ! 5fdc9192f7869c95ee6677d125253bb2 libstdc++-v3/testsuite/thread/pthread6.cc ! c8e46a0be2d044bcf1e208be1237f6be libstdc++-v3/testsuite/thread/pthread7-rope.cc cad8927f9f17a1ba1b87d3f224cc9868 libtool.m4 2a21626a6520d08ba7959d0e7a08836d ltcf-c.sh 2744bf8b7234beb5876238fdae263e52 ltcf-cxx.sh 3a32c8ce5a44baa195475e5ab54d1862 ltcf-gcj.sh 0ca2424a14242f7486263f176146c0e2 ltconfig 125aa9a4eda03171384f8d4301b17f89 ltmain.sh ! bc6a9e7cd889c2f493be3fbd818695cb maintainer-scripts/ChangeLog 31816563a48006f019a0dcc6f4175d16 maintainer-scripts/README 4d6297fdb211c207d899e8f2b7917e52 maintainer-scripts/crontab ef4b5d39023785696cb4b2cf6822bdc6 maintainer-scripts/doc_exclude ! 6a5dfc3bf8eefe9d54b82f8d7689f049 maintainer-scripts/gcc_release 5a590c51b17d10747f3ce2694caf0ff2 maintainer-scripts/maintainer-addresses f008f5ed6466c5f78ff0ad81fb3bff6e maintainer-scripts/snapshot-README d955665d1385a68557479da60bfc555c maintainer-scripts/snapshot-index.html *************** cfbd1f0cc32bb4f6feb804354401e61a mkinst *** 21849,21855 **** c71ddf72c059891ca0bd1727f5aa0de1 move-if-change e8b74bd777dcff9aa7eaff1cff0208f7 symlink-tree 7588c5103af27cc93537977f059f52dc ylwrap ! 52b727c537cf46e774aeec7b46263254 zlib/ChangeLog 01b5aa0f86d79f5cda85866f15aaedec zlib/ChangeLog.gcj 5366a082b8b22317d2c9e33d600ca2d7 zlib/FAQ b0f99029693b93907cb781d236522b4b zlib/INDEX --- 21982,21988 ---- c71ddf72c059891ca0bd1727f5aa0de1 move-if-change e8b74bd777dcff9aa7eaff1cff0208f7 symlink-tree 7588c5103af27cc93537977f059f52dc ylwrap ! 5605038a0dc5431a7e46493dcf7acad8 zlib/ChangeLog 01b5aa0f86d79f5cda85866f15aaedec zlib/ChangeLog.gcj 5366a082b8b22317d2c9e33d600ca2d7 zlib/FAQ b0f99029693b93907cb781d236522b4b zlib/INDEX diff -Nrc3pad gcc-3.4.3/NEWS gcc-3.4.4/NEWS *** gcc-3.4.3/NEWS Fri Nov 5 04:14:19 2004 --- gcc-3.4.4/NEWS Thu May 19 09:58:15 2005 *************** http://gcc.gnu.org/gcc-3.4/index.html *** 9,17 **** GCC 3.4 Release Series ! November 4, 2004 The [1]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.3. This release is a bug-fix release, containing fixes for regressions in --- 9,25 ---- GCC 3.4 Release Series ! May 18, 2005 The [1]GNU project and the GCC developers are pleased to announce the + release of GCC 3.4.4. + + This release is a bug-fix release, containing fixes for regressions in + GCC 3.4.3 relative to previous releases of GCC. + + November 4, 2004 + + The [2]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.3. This release is a bug-fix release, containing fixes for regressions in *************** http://gcc.gnu.org/gcc-3.4/index.html *** 19,25 **** September 6, 2004 ! The [2]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.2. This release is a bug-fix release, containing fixes for regressions in --- 27,33 ---- September 6, 2004 ! The [3]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.2. This release is a bug-fix release, containing fixes for regressions in *************** http://gcc.gnu.org/gcc-3.4/index.html *** 27,33 **** July 1, 2004 ! The [3]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.1. This release is a bug-fix release, containing fixes for regressions in --- 35,41 ---- July 1, 2004 ! The [4]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.1. This release is a bug-fix release, containing fixes for regressions in *************** http://gcc.gnu.org/gcc-3.4/index.html *** 35,60 **** April 18, 2004 ! The [4]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.0. ! The GCC 3.4 release series includes numerous [5]new features, ! improvements, bug fixes, and other changes, thanks to an [6]amazing group of volunteers. Release History GCC 3.4.3 ! November 4, 2004 ([7]changes) GCC 3.4.2 ! September 6, 2004 ([8]changes) GCC 3.4.1 ! July 1, 2004 ([9]changes) GCC 3.4.0 ! April 18, 2004 ([10]changes) References and Acknowledgements --- 43,71 ---- April 18, 2004 ! The [5]GNU project and the GCC developers are pleased to announce the release of GCC 3.4.0. ! The GCC 3.4 release series includes numerous [6]new features, ! improvements, bug fixes, and other changes, thanks to an [7]amazing group of volunteers. Release History + GCC 3.4.4 + May 18, 2005 ([8]changes) + GCC 3.4.3 ! November 4, 2004 ([9]changes) GCC 3.4.2 ! September 6, 2004 ([10]changes) GCC 3.4.1 ! July 1, 2004 ([11]changes) GCC 3.4.0 ! April 18, 2004 ([12]changes) References and Acknowledgements *************** References and Acknowledgements *** 62,94 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [11]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes ! as well as test results to GCC. This [12]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [13]GCC ! project web site or contact the [14]GCC development mailing list. ! To obtain GCC please use [15]our mirror sites, one of the [16]GNU ! mirror sites, or [17]our CVS server. _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [18]gnu@gnu.org. There ! are also [19]other ways to contact the FSF. ! These pages are maintained by [20]the GCC team. For questions related to the use of GCC, please consult these web ! pages and the [21]GCC manuals. If that fails, the ! [22]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC ! to our developer mailing list at [23]gcc@gnu.org or ! [24]gcc@gcc.gnu.org. All of our lists have [25]public archives. Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. --- 73,105 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [13]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes ! as well as test results to GCC. This [14]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [15]GCC ! project web site or contact the [16]GCC development mailing list. ! To obtain GCC please use [17]our mirror sites, one of the [18]GNU ! mirror sites, or [19]our CVS server. _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [20]gnu@gnu.org. There ! are also [21]other ways to contact the FSF. ! These pages are maintained by [22]the GCC team. For questions related to the use of GCC, please consult these web ! pages and the [23]GCC manuals. If that fails, the ! [24]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC ! to our developer mailing list at [25]gcc@gnu.org or ! [26]gcc@gcc.gnu.org. All of our lists have [27]public archives. Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *************** References and Acknowledgements *** 96,102 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-05 [26]Valid XHTML 1.0 References --- 107,113 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2005-05-19 [28]Valid XHTML 1.0 References *************** References *** 104,138 **** 2. http://www.gnu.org/ 3. http://www.gnu.org/ 4. http://www.gnu.org/ ! 5. http://gcc.gnu.org/gcc-3.4/changes.html ! 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3 ! 8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2 ! 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 ! 10. http://gcc.gnu.org/gcc-3.4/changes.html ! 11. http://gcc.gnu.org/gcc-3.4/buildstat.html ! 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 13. http://gcc.gnu.org/index.html ! 14. mailto:gcc@gcc.gnu.org ! 15. http://gcc.gnu.org/mirrors.html ! 16. http://www.gnu.org/order/ftp.html ! 17. http://gcc.gnu.org/cvs.html ! 18. mailto:gnu@gnu.org ! 19. http://www.gnu.org/home.html#ContactInfo ! 20. http://gcc.gnu.org/about.html ! 21. http://gcc.gnu.org/onlinedocs/ ! 22. mailto:gcc-help@gcc.gnu.org ! 23. mailto:gcc@gnu.org ! 24. mailto:gcc@gcc.gnu.org ! 25. http://gcc.gnu.org/lists.html ! 26. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/changes.html GCC 3.4 Release Series Changes, New Features, and Fixes ! GCC 3.4 has [1]many improvements in the C++ frontend. Before reporting a bug, please make sure it's really GCC, and not your code, that is broken. --- 115,153 ---- 2. http://www.gnu.org/ 3. http://www.gnu.org/ 4. http://www.gnu.org/ ! 5. http://www.gnu.org/ ! 6. http://gcc.gnu.org/gcc-3.4/changes.html ! 7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 ! 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3 ! 10. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2 ! 11. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 ! 12. http://gcc.gnu.org/gcc-3.4/changes.html ! 13. http://gcc.gnu.org/gcc-3.4/buildstat.html ! 14. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 15. http://gcc.gnu.org/index.html ! 16. mailto:gcc@gcc.gnu.org ! 17. http://gcc.gnu.org/mirrors.html ! 18. http://www.gnu.org/order/ftp.html ! 19. http://gcc.gnu.org/cvs.html ! 20. mailto:gnu@gnu.org ! 21. http://www.gnu.org/home.html#ContactInfo ! 22. http://gcc.gnu.org/about.html ! 23. http://gcc.gnu.org/onlinedocs/ ! 24. mailto:gcc-help@gcc.gnu.org ! 25. mailto:gcc@gnu.org ! 26. mailto:gcc@gcc.gnu.org ! 27. http://gcc.gnu.org/lists.html ! 28. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/changes.html GCC 3.4 Release Series Changes, New Features, and Fixes ! The latest release in the 3.4 release series is [1]GCC 3.4.4. ! ! GCC 3.4 has [2]many improvements in the C++ frontend. Before reporting a bug, please make sure it's really GCC, and not your code, that is broken. *************** Caveats *** 147,163 **** and -fvolatile-static. It is unlikely that they worked correctly in any 3.x release. * GCC no longer ships . Use instead. ! * Support for all the systems [2]obsoleted in GCC 3.3 has been ! removed from GCC 3.4. See below for a [3]list of systems which are obsoleted in this release. * GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C compilers will not work. ! * The implementation of the [4]MIPS ABIs has changed. As a result, the code generated for certain MIPS targets will not be binary compatible with earlier releases. * In previous releases, the MIPS port had a fake "hilo" register with the user-visible name accum. This register has been removed. ! * The implementation of the [5]SPARC ABIs has changed. As a result, the code generated will not be binary compatible with earlier releases in certain cases. * The configure option --enable-threads=pthreads has been removed; --- 162,178 ---- and -fvolatile-static. It is unlikely that they worked correctly in any 3.x release. * GCC no longer ships . Use instead. ! * Support for all the systems [3]obsoleted in GCC 3.3 has been ! removed from GCC 3.4. See below for a [4]list of systems which are obsoleted in this release. * GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C compilers will not work. ! * The implementation of the [5]MIPS ABIs has changed. As a result, the code generated for certain MIPS targets will not be binary compatible with earlier releases. * In previous releases, the MIPS port had a fake "hilo" register with the user-visible name accum. This register has been removed. ! * The implementation of the [6]SPARC ABIs has changed. As a result, the code generated will not be binary compatible with earlier releases in certain cases. * The configure option --enable-threads=pthreads has been removed; *************** Caveats *** 208,215 **** relies on that macro to detect whether multi-threaded code is being compiled might change in meaning, possibly resulting in linker errors for single-threaded programs. Affected users of ! [6]Boost should compile single-threaded code with ! -DBOOST_DISABLE_THREADS. See Bugzilla for [7]more information. General Optimizer Improvements --- 223,230 ---- relies on that macro to detect whether multi-threaded code is being compiled might change in meaning, possibly resulting in linker errors for single-threaded programs. Affected users of ! [7]Boost should compile single-threaded code with ! -DBOOST_DISABLE_THREADS. See Bugzilla for [8]more information. General Optimizer Improvements *************** General Optimizer Improvements *** 225,231 **** + gcov coverage tool has been improved. + make profiledbootstrap available to build a faster compiler. Experiments made on i386 hardware showed an 11% speedup on ! -O0 and a 7.5% speedup on -O2 compilation of a [8]large C++ testcase. + New value profiling pass enabled via -fprofile-values + New value profile transformations pass enabled via -fvpt aims --- 240,246 ---- + gcov coverage tool has been improved. + make profiledbootstrap available to build a faster compiler. Experiments made on i386 hardware showed an 11% speedup on ! -O0 and a 7.5% speedup on -O2 compilation of a [9]large C++ testcase. + New value profiling pass enabled via -fprofile-values + New value profile transformations pass enabled via -fvpt aims *************** New Languages and Language specific impr *** 345,351 **** possible non-intrusive workaround is the following: (*(a, &b)) = 2; ! * Several [9]built-in functions such as __builtin_popcount for counting bits, finding the highest and lowest bit in a word, and parity have been added. * The -fwritable-strings option has been deprecated and will be --- 360,366 ---- possible non-intrusive workaround is the following: (*(a, &b)) = 2; ! * Several [10]built-in functions such as __builtin_popcount for counting bits, finding the highest and lowest bit in a word, and parity have been added. * The -fwritable-strings option has been deprecated and will be *************** New Languages and Language specific impr *** 420,426 **** b.callme(); } * In a template definition, unqualified names will no longer find ! members of a dependent base. For example, template struct B { int m; int n; --- 435,442 ---- b.callme(); } * In a template definition, unqualified names will no longer find ! members of a dependent base (as specified by [temp.dep]/3 in the ! C++ standard). For example, template struct B { int m; int n; *************** New Languages and Language specific impr *** 432,441 **** template struct C : B { void h () { ! m = 0; // error ! f (); // error ! n = 0; // ::n is modified ! g (); // ::g is called } }; You must make the names dependent, e.g. by prefixing them with --- 448,457 ---- template struct C : B { void h () { ! m = 0; // error ! f (); // error ! n = 0; // ::n is modified ! g (); // ::g is called } }; You must make the names dependent, e.g. by prefixing them with *************** New Languages and Language specific impr *** 447,454 **** this->n = 0 this->g (); } ! As an alternative solution, you may use using declarations instead ! of this->: template struct C : B { using B::m; using B::f; --- 463,470 ---- this->n = 0 this->g (); } ! As an alternative solution (unfortunately not backwards compatible ! with GCC 3.3), you may use using declarations instead of this->: template struct C : B { using B::m; using B::f; *************** New Languages and Language specific impr *** 456,465 **** using B::g; void h () { ! m = 0; ! f (); ! n = 0; ! g (); } }; * In templates, all non-dependent names are now looked up and bound --- 472,481 ---- using B::g; void h () { ! m = 0; ! f (); ! n = 0; ! g (); } }; * In templates, all non-dependent names are now looked up and bound *************** New Languages and Language specific impr *** 535,541 **** declaration must be accessible at the point of that declaration. Previous versions of G++ used to be less strict about this and allowed friend declarations for private class members, for ! example. See the ISO C++ Standard Committee's [10]defect report #209 for details. * Declaration of member functions of class templates as friends are supported. For example, --- 551,557 ---- declaration must be accessible at the point of that declaration. Previous versions of G++ used to be less strict about this and allowed friend declarations for private class members, for ! example. See the ISO C++ Standard Committee's [11]defect report #209 for details. * Declaration of member functions of class templates as friends are supported. For example, *************** New Languages and Language specific impr *** 612,618 **** } This might be surprising at first sight, especially since most popular compilers do not correctly implement this rule ! ([11]further details). * When forming a pointer to member or a pointer to member function, access checks for class visibility (public, protected, private) are now performed using the qualifying scope of the name itself. --- 628,634 ---- } This might be surprising at first sight, especially since most popular compilers do not correctly implement this rule ! ([12]further details). * When forming a pointer to member or a pointer to member function, access checks for class visibility (public, protected, private) are now performed using the qualifying scope of the name itself. *************** New Languages and Language specific impr *** 682,688 **** synchronization (@synchronized) support. These are accessible via the -fobjc-exceptions switch; as of this writing, they may only be used in conjunction with -fnext-runtime on Mac OS ! X 10.3 and later. See [12]Options Controlling Objective-C Dialect for more information. + An overhaul of @encode logic. The C99 _Bool and C++ bool type may now be encoded as 'B'. In addition, the back-end/codegen --- 698,704 ---- synchronization (@synchronized) support. These are accessible via the -fobjc-exceptions switch; as of this writing, they may only be used in conjunction with -fnext-runtime on Mac OS ! X 10.3 and later. See [13]Options Controlling Objective-C Dialect for more information. + An overhaul of @encode logic. The C99 _Bool and C++ bool type may now be encoded as 'B'. In addition, the back-end/codegen *************** New Languages and Language specific impr *** 692,703 **** properly, and that correct diagnostics are issued. + Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue" (-freplace-objc-classes) debugging modes, currently available ! on Mac OS X 10.3 and later. See [13]Options Controlling Objective-C Dialect for more information. + Access to optimized runtime entry points (-fno-nil-receivers ) on the assumption that message receivers are never nil. This is currently available on Mac OS X 10.3 and later. See ! [14]Options Controlling Objective-C Dialect for more information. Java --- 708,719 ---- properly, and that correct diagnostics are issued. + Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue" (-freplace-objc-classes) debugging modes, currently available ! on Mac OS X 10.3 and later. See [14]Options Controlling Objective-C Dialect for more information. + Access to optimized runtime entry points (-fno-nil-receivers ) on the assumption that message receivers are never nil. This is currently available on Mac OS X 10.3 and later. See ! [15]Options Controlling Objective-C Dialect for more information. Java *************** New Languages and Language specific impr *** 709,719 **** to gcj. * libgcj has a new gcjlib URL type; this lets URLClassLoader load code from shared libraries. ! * libgcj has been much more completely merged with [15]GNU Classpath. * Class loading is now much more correct; in particular the caller's class loader is now used when that is required. ! * [16]Eclipse 2.x will run out of the box using gij. * Parts of java.nio have been implemented. Direct and indirect buffers work, as do fundamental file and socket operations. * java.awt has been improved, though it is still not ready for --- 725,735 ---- to gcj. * libgcj has a new gcjlib URL type; this lets URLClassLoader load code from shared libraries. ! * libgcj has been much more completely merged with [16]GNU Classpath. * Class loading is now much more correct; in particular the caller's class loader is now used when that is required. ! * [17]Eclipse 2.x will run out of the box using gij. * Parts of java.nio have been implemented. Direct and indirect buffers work, as do fundamental file and socket operations. * java.awt has been improved, though it is still not ready for *************** New Languages and Language specific impr *** 726,742 **** Fortran ! * Fortran improvements are listed in the [17]Fortran documentation. New Targets and Target Specific Improvements Alpha ! * Several [18]built-in functions have been added such as __builtin_alpha_zap to allow utilizing the more obscure instructions of the CPU. * Parameter passing of complex arguments has changed to match the ! [19]ABI. This change is incompatible with previous GCC versions, but does fix compatibility with the Tru64 compiler and several corner cases where GCC was incompatible with itself. --- 742,758 ---- Fortran ! * Fortran improvements are listed in the [18]Fortran documentation. New Targets and Target Specific Improvements Alpha ! * Several [19]built-in functions have been added such as __builtin_alpha_zap to allow utilizing the more obscure instructions of the CPU. * Parameter passing of complex arguments has changed to match the ! [20]ABI. This change is incompatible with previous GCC versions, but does fix compatibility with the Tru64 compiler and several corner cases where GCC was incompatible with itself. *************** New Targets and Target Specific Improvem *** 753,760 **** * A new ARM target has been added: arm-wince-pe. This is similar to the arm-pe target, but it defaults to using the APCS32 ABI. * The existing ARM pipeline description has been converted to the ! use the [20]DFA processor pipeline model. There is not much change ! in code performance, but the description is now [21]easier to understand. * Support for the Cirrus EP9312 Maverick floating point co-processor added. Enabled at run time with the -mcpu=ep9312 command line --- 769,776 ---- * A new ARM target has been added: arm-wince-pe. This is similar to the arm-pe target, but it defaults to using the APCS32 ABI. * The existing ARM pipeline description has been converted to the ! use the [21]DFA processor pipeline model. There is not much change ! in code performance, but the description is now [22]easier to understand. * Support for the Cirrus EP9312 Maverick floating point co-processor added. Enabled at run time with the -mcpu=ep9312 command line *************** New Targets and Target Specific Improvem *** 802,808 **** generation of code tuned for Itanium 2 (option -mtune=itanium2) is enabled by default now. To generate code tuned for Itanium 1 the option -mtune=itanium1 should be used. ! * [22]DFA processor pipeline descriptions for the IA-64 processors have been added. This resulted in about 3% improvement on the SPECInt2000 benchmark for Itanium 2. * Instruction bundling for the IA-64 processors has been rewritten --- 818,824 ---- generation of code tuned for Itanium 2 (option -mtune=itanium2) is enabled by default now. To generate code tuned for Itanium 1 the option -mtune=itanium1 should be used. ! * [23]DFA processor pipeline descriptions for the IA-64 processors have been added. This resulted in about 3% improvement on the SPECInt2000 benchmark for Itanium 2. * Instruction bundling for the IA-64 processors has been rewritten *************** New Targets and Target Specific Improvem *** 867,873 **** General ! * Several [23]ABI bugs have been fixed. Unfortunately, these changes will break binary compatibility with earlier releases. * GCC can now use explicit relocation operators when generating -mabicalls code. This behavior is controlled by -mexplicit-relocs --- 883,889 ---- General ! * Several [24]ABI bugs have been fixed. Unfortunately, these changes will break binary compatibility with earlier releases. * GCC can now use explicit relocation operators when generating -mabicalls code. This behavior is controlled by -mexplicit-relocs *************** New Targets and Target Specific Improvem *** 889,900 **** * Many internal changes have been made to the MIPS port, mostly aimed at reducing the reliance on assembler macros. ! PowerPC Darwin * Support for shared/dylib gcc libraries has been added. It is enabled by default on powerpc-apple-darwin7.0.0 and up. * Libgcj is enabled by default. On systems older than ! powerpc-apple-darwin7.0.0 you need to install [24]dlcompat. S/390 and zSeries --- 905,936 ---- * Many internal changes have been made to the MIPS port, mostly aimed at reducing the reliance on assembler macros. ! PowerPC ! ! * GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64 ! [25]ABI incompatibilities regarding the way parameters are passed ! during functions calls. These changes may result in ! incompatibility between code compiled with GCC 3.3 and GCC 3.4. ! ! PowerPC Darwin * Support for shared/dylib gcc libraries has been added. It is enabled by default on powerpc-apple-darwin7.0.0 and up. * Libgcj is enabled by default. On systems older than ! powerpc-apple-darwin7.0.0 you need to install [26]dlcompat. ! * 128-bit IBM extended precision format support added for long ! double. ! ! PowerPC64 GNU/Linux ! ! * By default, PowerPC64 GNU/Linux now uses natural alignment of ! structure elements. The old four byte alignment for double, with ! special rules for a struct starting with a double, can be chosen ! with -malign-power. This change may result in incompatibility ! between code compiled with GCC 3.3 and GCC 3.4. ! * -mabi=altivec is now the default rather than -mabi=no-altivec. ! * 128-bit IBM extended precision format support added for long ! double. S/390 and zSeries *************** New Targets and Target Specific Improvem *** 955,961 **** * The option -mflat is deprecated. * Support for large (> 2GB) frames has been added to the 64-bit port. ! * Several [25]ABI bugs have been fixed. Unfortunately, these changes will break binary compatibility with earlier releases. * The default debugging format has been switched from STABS to DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already --- 991,997 ---- * The option -mflat is deprecated. * Support for large (> 2GB) frames has been added to the 64-bit port. ! * Several [27]ABI bugs have been fixed. Unfortunately, these changes will break binary compatibility with earlier releases. * The default debugging format has been switched from STABS to DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already *************** GCC 3.4.0 *** 1069,1075 **** Bug Fixes A vast number of bugs have been fixed in 3.4.0, too many to publish a ! complete list here. [26]Follow this link to query the Bugzilla database for the list of over 900 bugs fixed in 3.4.0. This is the list of all bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4 regressions. --- 1105,1111 ---- Bug Fixes A vast number of bugs have been fixed in 3.4.0, too many to publish a ! complete list here. [28]Follow this link to query the Bugzilla database for the list of over 900 bugs fixed in 3.4.0. This is the list of all bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4 regressions. *************** GCC 3.4.1 *** 1086,1353 **** Bootstrap failures ! * [27]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler emitted - PIC related ! * [28]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf ! * [29]14760 A bug in configure.in prevents using both --program-suffix and --program-prefix ! * [30]14671 [hppa64] bootstrap fails: ICE in save_call_clobbered_regs, in caller_save.c ! * [31]15093 [alpha][Java] make bootstrap fails to configure libffi on Alpha ! * [32]15178 Solaris 9/x86 fails linking after stage 3 Multi-platform internal compiler errors (ICEs) ! * [33]12753 (preprocessor) Memory corruption in preprocessor on bad input ! * [34]13985 ICE in gcc.c-torture/compile/930621-1.c ! * [35]14810 (c++) tree check failures with invalid code involving templates ! * [36]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in cp/parser.c ! * [37]15044 (c++) ICE on syntax error, template header ! * [38]15057 (c++) Compiling of conditional value throw constructs cause a segmentation violation ! * [39]15064 (c++) typeid of template parameter gives ICE ! * [40]15142 (c++) ICE when passing a string where a char* is expected in a throw statement ! * [41]15159 ICE in rtl_verify_flow_info_1 ! * [42]15165 (c++) ICE in instantiate_template ! * [43]15193 Unary minus using pointer to V4SF vector causes -fforce-mem to exhaust all memory ! * [44]15209 (c++) Runs out of memory with packed structs ! * [45]15227 (c++) Trouble with invalid function definition ! * [46]15285 (c++) instantiate_type ICE when forming pointer to template function ! * [47]15299 (c++) ICE in resolve_overloaded_unification ! * [48]15329 (c++) ICE on constructor of member template ! * [49]15550 ICE in extract_insn, in recog.c ! * [50]15554 (c++) ICE in tsubst_copy, in cp/pt.c ! * [51]15640 (c++) ICE on invalid code in arg_assoc, in cp/name-lookup.c ! * [52]15666 [unit-at-a-time] Gcc abort on valid code ! * [53]15696 (c++) ICE with bad pointer-to-member code ! * [54]15701 (c++) ICE with friends and template template parameter ! * [55]15761 ICE in do_SUBST, in combine.c ! * [56]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops Ada ! * [57]14538 All RTEMS targets broken for gnat C front end ! * [58]12391 missing warning about assigning to an incomplete type ! * [59]14649 atan(1.0) should not be a constant expression ! * [60]15004 [unit-at-a-time] no warning for unused paramater in static function ! * [61]15749 --pedantic-errors behaves differently from --pedantic with C-compiler on GNU/Linux C++ compiler and library ! * [62]10646 non-const reference is incorrectly matched in a "const T" partial specialization ! * [63]12077 wcin.rdbuf()->in_avail() return value too high ! * [64]13598 enc_filebuf doesn't work ! * [65]14211 const_cast returns lvalue but should be rvalue ! * [66]14220 num_put::do_put() undesired float/double behavior ! * [67]14245 problem with user-defined allocators in std::basic_string ! * [68]14340 libstdc++ Debug mode: failure to convert iterator to const_iterator ! * [69]14600 __gnu_cxx::stdio_sync_filebuf should expose internal FILE* ! * [70]14668 no warning anymore for reevaluation of declaration ! * [71]14775 LFS (large file support) tests missing ! * [72]14821 Duplicate namespace alias declaration should not conflict ! * [73]14930 Friend declaration ignored ! * [74]14932 cannot use offsetof to get offsets of array elements in g++ 3.4.0 ! * [75]14950 [non unit-at-a-time] always_inline does not mix with templates and -O0 ! * [76]14962 g++ ignores #pragma redefine_extname ! * [77]14975 Segfault on low-level write error during imbue ! * [78]15002 Linewise stream input is unusably slow (std::string slow) ! * [79]15025 compiler accepts redeclaration of template as non-template ! * [80]15046 [arm] Math functions misdetected by cross configuration ! * [81]15069 a bit test on a variable of enum type is miscompiled ! * [82]15074 g++ -lsupc++ still links against libstdc++ ! * [83]15083 spurious "statement has no effect" warning ! * [84]15096 parse error with templates and pointer to const member ! * [85]15287 combination of operator[] and operator .* fails in templates ! * [86]15317 __attribute__ unused in first parameter of constructor gives error ! * [87]15337 sizeof on incomplete type diagnostic ! * [88]15361 bitset<>::_Find_next fails ! * [89]15412 _GLIBCXX_ symbols symbols defined and used in different namespaces ! * [90]15427 valid code results in incomplete type error ! * [91]15471 Incorrect member pointer offsets in anonymous structs/unions ! * [92]15503 nested template problem ! * [93]15507 compiler hangs while laying out union ! * [94]15542 operator & and template definitions ! * [95]15565 SLES9: leading + sign for unsigned int with showpos ! * [96]15625 friend defined inside a template fails to find static function ! * [97]15629 Function templates, overloads, and friend name injection ! * [98]15742 'noreturn' attribute ignored in method of template functions. ! * [99]15775 Allocator::pointer consistently ignored ! * [100]15821 Duplicate namespace alias within namespace rejected ! * [101]15862 'enum yn' fails (confict with undeclared builtin) ! * [102]15875 rejects pointer to member in template ! * [103]15877 valid code using templates and anonymous enums is rejected ! * [104]15947 Puzzling error message for wrong destructor declaration in template class ! * [105]16020 cannot copy __gnu_debug::bitset ! * [106]16154 input iterator concept too restrictive ! * [107]16174 deducing top-level consts Java ! * [108]14315 Java compiler is not parallel make safe Fortran ! * [109]15151 [g77] incorrect logical i/o in 64-bit mode Objective-C ! * [110]7993 private variables cannot be shadowed in subclasses Optimization bugs ! * [111]15228 useless copies of floating point operands ! * [112]15345 [non-unit-at-a-time] unreferenced nested inline functions not optimized away ! * [113]15945 Incorrect floating point optimization ! * [114]15526 ftrapv aborts on 0 * (-1) ! * [115]14690 Miscompiled POOMA tests ! * [116]15112 GCC generates code to write to unchanging memory Preprocessor ! * [117]15067 Minor glitch in the source of cpp Main driver program bugs ! * [118]1963 collect2 interprets -oldstyle_liblookup as -o ldstyle_liblookup x86-specific (Intel/AMD) ! * [119]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND* section} HPPA-specific ! * [120]14782 GCC produces an unaligned data access at -O2 ! * [121]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2 ! * [122]15202 ICE in reload_cse_simplify_operands, in postreload.c IA64-specific ! * [123]14610 __float80 constants incorrectly emitted ! * [124]14813 init_array sections are initialized in the wrong order ! * [125]14857 GCC segfault on duplicated asm statement ! * [126]15598 Gcc 3.4 ICE on valid code ! * [127]15653 Gcc 3.4 ICE on valid code MIPS-specific ! * [128]15189 wrong filling of delay slot with -march=mips1 -G0 -mno-split-addresses -mno-explicit-relocs ! * [129]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as 2.14.91 ! * [130]16144 Bogus reference to __divdf3 when -O1 ! * [131]16176 Miscompilation of unaligned data in MIPS backend PowerPC-specific ! * [132]11591 ICE in gcc.dg/altivec-5.c ! * [133]12028 powerpc-eabispe produces bad sCOND operation ! * [134]14478 rs6000 geu/ltu patterns generate incorrect code ! * [135]14567 long double and va_arg complex args ! * [136]14715 Altivec stack layout may overlap gpr save with stack temps ! * [137]14902 (libstdc++) Stream checking functions fail when -pthread option is used. ! * [138]14924 Compiler ICE on valid code ! * [139]14960 -maltivec affects vector return with -mabi=no-altivec ! * [140]15106 vector varargs failure passing from altivec to non-altivec code for -m32 ! * [141]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 & half-word operation ! * [142]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx and stvx ! * [143]15662 Segmentation fault when an exception is thrown - even if try and catch are specified s390-specific ! * [144]15054 Bad code due to overlapping stack temporaries SPARC-specific ! * [145]15783 ICE with union assignment in 64-bit mode ! * [146]15626 GCC 3.4 emits "ld: warning: relocation error: R_SPARC_UA32" x86-64-specific ! * [147]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64 ! * [148]14723 Backported -march=nocona from mainline ! * [149]15290 __float128 failed to pass to function properly Cygwin/Mingw32-specific ! * [150]15250 Option -mms-bitfields support on GCC 3.4 is not conformant to MS layout ! * [151]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on windows32 targets Bugs specific to embedded processors ! * [152]8309 [m68k] -m5200 produces erroneous SImode set of short varaible on stack ! * [153]13250 [SH] Gcc code for rotation clobbers the register, but gcc continues to use the register as if it was not clobbered ! * [154]13803 [coldfire] movqi operand constraints too restrictivefor TARGET_COLDFIRE ! * [155]14093 [SH] ICE for code when using -mhitachi option in SH ! * [156]14457 [m6811hc] ICE with simple c++ source ! * [157]14542 [m6811hc] ICE on simple source ! * [158]15100 [SH] cc1plus got hang-up on libstdc++-v3/testsuite/abi_check.cc ! * [159]15296 [CRIS] Delayed branch scheduling causing invalid code on cris-* ! * [160]15396 [SH] ICE with -O2 -fPIC ! * [161]15782 [coldfire] m68k_output_mi_thunk emits wrong code for ColdFire Testsuite problems (compiler not affected) ! * [162]11610 libstdc++ testcases 27_io/* don't work properly remotely ! * [163]15488 (libstdc++) possibly insufficient file permissions for executing test suite ! * [164]15489 (libstdc++) testsuite_files determined incorrectly Documentation bugs ! * [165]13928 (libstdc++) no whatis info in some man pages generated by doxygen ! * [166]14150 Ada documentation out of date ! * [167]14949 (c++) Need to document method visibility changes ! * [168]15123 libstdc++-doc: Allocators.3 manpage is empty _________________________________________________________________ GCC 3.4.2 --- 1122,1389 ---- Bootstrap failures ! * [29]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler emitted - PIC related ! * [30]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf ! * [31]14760 A bug in configure.in prevents using both --program-suffix and --program-prefix ! * [32]14671 [hppa64] bootstrap fails: ICE in save_call_clobbered_regs, in caller_save.c ! * [33]15093 [alpha][Java] make bootstrap fails to configure libffi on Alpha ! * [34]15178 Solaris 9/x86 fails linking after stage 3 Multi-platform internal compiler errors (ICEs) ! * [35]12753 (preprocessor) Memory corruption in preprocessor on bad input ! * [36]13985 ICE in gcc.c-torture/compile/930621-1.c ! * [37]14810 (c++) tree check failures with invalid code involving templates ! * [38]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in cp/parser.c ! * [39]15044 (c++) ICE on syntax error, template header ! * [40]15057 (c++) Compiling of conditional value throw constructs cause a segmentation violation ! * [41]15064 (c++) typeid of template parameter gives ICE ! * [42]15142 (c++) ICE when passing a string where a char* is expected in a throw statement ! * [43]15159 ICE in rtl_verify_flow_info_1 ! * [44]15165 (c++) ICE in instantiate_template ! * [45]15193 Unary minus using pointer to V4SF vector causes -fforce-mem to exhaust all memory ! * [46]15209 (c++) Runs out of memory with packed structs ! * [47]15227 (c++) Trouble with invalid function definition ! * [48]15285 (c++) instantiate_type ICE when forming pointer to template function ! * [49]15299 (c++) ICE in resolve_overloaded_unification ! * [50]15329 (c++) ICE on constructor of member template ! * [51]15550 ICE in extract_insn, in recog.c ! * [52]15554 (c++) ICE in tsubst_copy, in cp/pt.c ! * [53]15640 (c++) ICE on invalid code in arg_assoc, in cp/name-lookup.c ! * [54]15666 [unit-at-a-time] Gcc abort on valid code ! * [55]15696 (c++) ICE with bad pointer-to-member code ! * [56]15701 (c++) ICE with friends and template template parameter ! * [57]15761 ICE in do_SUBST, in combine.c ! * [58]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops Ada ! * [59]14538 All RTEMS targets broken for gnat C front end ! * [60]12391 missing warning about assigning to an incomplete type ! * [61]14649 atan(1.0) should not be a constant expression ! * [62]15004 [unit-at-a-time] no warning for unused paramater in static function ! * [63]15749 --pedantic-errors behaves differently from --pedantic with C-compiler on GNU/Linux C++ compiler and library ! * [64]10646 non-const reference is incorrectly matched in a "const T" partial specialization ! * [65]12077 wcin.rdbuf()->in_avail() return value too high ! * [66]13598 enc_filebuf doesn't work ! * [67]14211 const_cast returns lvalue but should be rvalue ! * [68]14220 num_put::do_put() undesired float/double behavior ! * [69]14245 problem with user-defined allocators in std::basic_string ! * [70]14340 libstdc++ Debug mode: failure to convert iterator to const_iterator ! * [71]14600 __gnu_cxx::stdio_sync_filebuf should expose internal FILE* ! * [72]14668 no warning anymore for reevaluation of declaration ! * [73]14775 LFS (large file support) tests missing ! * [74]14821 Duplicate namespace alias declaration should not conflict ! * [75]14930 Friend declaration ignored ! * [76]14932 cannot use offsetof to get offsets of array elements in g++ 3.4.0 ! * [77]14950 [non unit-at-a-time] always_inline does not mix with templates and -O0 ! * [78]14962 g++ ignores #pragma redefine_extname ! * [79]14975 Segfault on low-level write error during imbue ! * [80]15002 Linewise stream input is unusably slow (std::string slow) ! * [81]15025 compiler accepts redeclaration of template as non-template ! * [82]15046 [arm] Math functions misdetected by cross configuration ! * [83]15069 a bit test on a variable of enum type is miscompiled ! * [84]15074 g++ -lsupc++ still links against libstdc++ ! * [85]15083 spurious "statement has no effect" warning ! * [86]15096 parse error with templates and pointer to const member ! * [87]15287 combination of operator[] and operator .* fails in templates ! * [88]15317 __attribute__ unused in first parameter of constructor gives error ! * [89]15337 sizeof on incomplete type diagnostic ! * [90]15361 bitset<>::_Find_next fails ! * [91]15412 _GLIBCXX_ symbols symbols defined and used in different namespaces ! * [92]15427 valid code results in incomplete type error ! * [93]15471 Incorrect member pointer offsets in anonymous structs/unions ! * [94]15503 nested template problem ! * [95]15507 compiler hangs while laying out union ! * [96]15542 operator & and template definitions ! * [97]15565 SLES9: leading + sign for unsigned int with showpos ! * [98]15625 friend defined inside a template fails to find static function ! * [99]15629 Function templates, overloads, and friend name injection ! * [100]15742 'noreturn' attribute ignored in method of template functions. ! * [101]15775 Allocator::pointer consistently ignored ! * [102]15821 Duplicate namespace alias within namespace rejected ! * [103]15862 'enum yn' fails (confict with undeclared builtin) ! * [104]15875 rejects pointer to member in template ! * [105]15877 valid code using templates and anonymous enums is rejected ! * [106]15947 Puzzling error message for wrong destructor declaration in template class ! * [107]16020 cannot copy __gnu_debug::bitset ! * [108]16154 input iterator concept too restrictive ! * [109]16174 deducing top-level consts Java ! * [110]14315 Java compiler is not parallel make safe Fortran ! * [111]15151 [g77] incorrect logical i/o in 64-bit mode Objective-C ! * [112]7993 private variables cannot be shadowed in subclasses Optimization bugs ! * [113]15228 useless copies of floating point operands ! * [114]15345 [non-unit-at-a-time] unreferenced nested inline functions not optimized away ! * [115]15945 Incorrect floating point optimization ! * [116]15526 ftrapv aborts on 0 * (-1) ! * [117]14690 Miscompiled POOMA tests ! * [118]15112 GCC generates code to write to unchanging memory Preprocessor ! * [119]15067 Minor glitch in the source of cpp Main driver program bugs ! * [120]1963 collect2 interprets -oldstyle_liblookup as -o ldstyle_liblookup x86-specific (Intel/AMD) ! * [121]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND* section} HPPA-specific ! * [122]14782 GCC produces an unaligned data access at -O2 ! * [123]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2 ! * [124]15202 ICE in reload_cse_simplify_operands, in postreload.c IA64-specific ! * [125]14610 __float80 constants incorrectly emitted ! * [126]14813 init_array sections are initialized in the wrong order ! * [127]14857 GCC segfault on duplicated asm statement ! * [128]15598 Gcc 3.4 ICE on valid code ! * [129]15653 Gcc 3.4 ICE on valid code MIPS-specific ! * [130]15189 wrong filling of delay slot with -march=mips1 -G0 -mno-split-addresses -mno-explicit-relocs ! * [131]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as 2.14.91 ! * [132]16144 Bogus reference to __divdf3 when -O1 ! * [133]16176 Miscompilation of unaligned data in MIPS backend PowerPC-specific ! * [134]11591 ICE in gcc.dg/altivec-5.c ! * [135]12028 powerpc-eabispe produces bad sCOND operation ! * [136]14478 rs6000 geu/ltu patterns generate incorrect code ! * [137]14567 long double and va_arg complex args ! * [138]14715 Altivec stack layout may overlap gpr save with stack temps ! * [139]14902 (libstdc++) Stream checking functions fail when -pthread option is used. ! * [140]14924 Compiler ICE on valid code ! * [141]14960 -maltivec affects vector return with -mabi=no-altivec ! * [142]15106 vector varargs failure passing from altivec to non-altivec code for -m32 ! * [143]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 & half-word operation ! * [144]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx and stvx ! * [145]15662 Segmentation fault when an exception is thrown - even if try and catch are specified s390-specific ! * [146]15054 Bad code due to overlapping stack temporaries SPARC-specific ! * [147]15783 ICE with union assignment in 64-bit mode ! * [148]15626 GCC 3.4 emits "ld: warning: relocation error: R_SPARC_UA32" x86-64-specific ! * [149]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64 ! * [150]14723 Backported -march=nocona from mainline ! * [151]15290 __float128 failed to pass to function properly Cygwin/Mingw32-specific ! * [152]15250 Option -mms-bitfields support on GCC 3.4 is not conformant to MS layout ! * [153]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on windows32 targets Bugs specific to embedded processors ! * [154]8309 [m68k] -m5200 produces erroneous SImode set of short varaible on stack ! * [155]13250 [SH] Gcc code for rotation clobbers the register, but gcc continues to use the register as if it was not clobbered ! * [156]13803 [coldfire] movqi operand constraints too restrictivefor TARGET_COLDFIRE ! * [157]14093 [SH] ICE for code when using -mhitachi option in SH ! * [158]14457 [m6811hc] ICE with simple c++ source ! * [159]14542 [m6811hc] ICE on simple source ! * [160]15100 [SH] cc1plus got hang-up on libstdc++-v3/testsuite/abi_check.cc ! * [161]15296 [CRIS] Delayed branch scheduling causing invalid code on cris-* ! * [162]15396 [SH] ICE with -O2 -fPIC ! * [163]15782 [coldfire] m68k_output_mi_thunk emits wrong code for ColdFire Testsuite problems (compiler not affected) ! * [164]11610 libstdc++ testcases 27_io/* don't work properly remotely ! * [165]15488 (libstdc++) possibly insufficient file permissions for executing test suite ! * [166]15489 (libstdc++) testsuite_files determined incorrectly Documentation bugs ! * [167]13928 (libstdc++) no whatis info in some man pages generated by doxygen ! * [168]14150 Ada documentation out of date ! * [169]14949 (c++) Need to document method visibility changes ! * [170]15123 libstdc++-doc: Allocators.3 manpage is empty _________________________________________________________________ GCC 3.4.2 *************** GCC 3.4.2 *** 1361,1554 **** Bootstrap failures and issues ! * [169]16469 [mips-sgi-irix5.3] bootstrap fails in libstdc++-v3/testsuite ! * [170]16344 [hppa-linux-gnu] libstdc++'s PCH built by profiledbootstrap does not work with the built compiler ! * [171]16842 [Solaris/x86] mkheaders can not find mkheaders.conf Multi-platform internal compiler errors (ICEs) ! * [172]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in cp_parser_class_specifier, in cp/parser.c ! * [173]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c ! * [174]15461 (c++) ICE due to NRV and inlining ! * [175]15890 (c++) ICE in c_expand_expr, in c-common.c ! * [176]16180 ICE: segmentation fault in RTL optimization ! * [177]16224 (c++) ICE in write_unscoped_name (template/namespace) ! * [178]16408 ICE: in delete_insn, in cfgrtl.c ! * [179]16529 (c++) ICE for: namespace-alias shall not be declared as the name of any other entity ! * [180]16698 (c++) ICE with exceptions and declaration of __cxa_throw ! * [181]16706 (c++) ICE in finish_member_declaration, in cp/semantics.c ! * [182]16810 (c++) Legal C++ program with cast gives ICE in build_ptrmemfunc ! * [183]16851 (c++) ICE when throwing a comma expression ! * [184]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c ! * [185]16904 (c++) ICE in finish_class_member_access_expr, in cp/typeck.c ! * [186]16905 (c++) ICE (segfault) with exceptions ! * [187]16964 (c++) ICE in cp_parser_class_specifier due to redefinition ! * [188]17068 (c++) ICE: tree check: expected class 'd', have 'x' (identifier_node) in dependent_template_p, in cp/pt.c Preprocessor bugs ! * [189]16366 Preprocessor option -remap causes memory corruption Optimization ! * [190]15345 unreferenced nested inline functions not optimized away ! * [191]16590 Incorrect execution when compiling with -O2 ! * [192]16693 Bitwise AND is lost when used within a cast to an enum of the same precision ! * [193]17078 Jump into if(0) substatement fails Problems in generated debug information ! * [194]13956 incorrect stabs for nested local variables C front end bugs ! * [195]16684 GCC should not warn about redundant redeclarations of built-ins C++ compiler and library ! * [196]12658 Thread safety problems in locale::global() and locale::locale() ! * [197]13092 g++ accepts invalid pointer-to-member conversion ! * [198]15320 Excessive memory consumption ! * [199]16246 Incorrect template argument deduction ! * [200]16273 Memory exhausted when using nested classes and virtual functions ! * [201]16401 ostringstream in gcc 3.4.x very slow for big data ! * [202]16411 undefined reference to __gnu_cxx::stdio_sync_filebuf >::file() ! * [203]16489 G++ incorrectly rejects use of a null constant integral expression as a null constant pointer ! * [204]16618 offsetof fails with constant member ! * [205]16637 syntax error reported for valid input code ! * [206]16717 __attribute__((constructor)) broken in C++ ! * [207]16813 compiler error in DEBUG version of range insertion std::map::insert ! * [208]16853 pointer-to-member initialization from incompatible one accepted ! * [209]16889 ambiguity is not detected ! * [210]16959 Segmentation fault in ios_base::sync_with_stdio Java compiler and library ! * [211]7587 direct threaded interpreter not thread-safe ! * [212]16473 ServerSocket accept() leaks file descriptors ! * [213]16478 Hash synchronization deadlock with finalizers Alpha-specific ! * [214]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c ! * [215]16974 could not split insn (ice in final_scan_insn, in final.c) x86-specific ! * [216]16298 ICE in output_operand ! * [217]17113 ICE with SSE2 intrinsics ! * [218]17171 [i386-aout] Unrecognized comments in generated asm x86-64 specific ! * [219]14697 libstdc++ couldn't find 32bit libgcc_s MIPS-specific ! * [220]15869 [mips64] No NOP after LW (with -mips1 -O0) ! * [221]16325 [mips64] value profiling clobbers gp on mips ! * [222]16357 [mipsisa64-elf] ICE copying 7 bytes between extern char[]s ! * [223]16380 [mips64] Use of uninitialised register after dbra conversion ! * [224]16407 [mips64] Unaligned access to local variables ! * [225]16643 [mips64] verify_local_live_at_start ICE after crossjumping & cfgcleanup ARM-specific ! * [226]15927 THUMB -O2: strength-reduced iteration variable ends up off by 1 ! * [227]15948 THUMB: ICE with non-commutative cbranch ! * [228]17019 THUMB: bad switch statement in md code for addsi3_cbranch_scratch IA64-specific ! * [229]16130 ICE on valid code: in bundling, in config/ia64/ia64.c (-mtune=merced) ! * [230]16142 ICE on valid code: in bundling, in config/ia64/ia64.c (-mtune=itanium) ! * [231]16278 Gcc failed to build Linux kernel with -mtune=merced ! * [232]16414 ICE on valid code: typo in comparison of asm_noperands result ! * [233]16445 ICE on valid code: don't count ignored insns ! * [234]16490 ICE (segfault) while compiling with -fprofile-use ! * [235]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS PowerPC-specific ! * [236]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x ! * [237]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions issue) SPARC-specific ! * [238]16199 ICE while compiling apache 2.0.49 ! * [239]16416 -m64 doesn't imply -mcpu=v9 anymore ! * [240]16430 ICE when returning non-C aggregates larger than 16 bytes Bugs specific to embedded processors ! * [241]16379 [m32r] can't output large model function call of memcpy ! * [242]17093 [m32r] ICE with -msdata=use -O0 ! * [243]17119 [m32r] ICE at switch case 0x8000 DJGPP-specific ! * [244]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp Alpha Tru64-specific ! * [245]16210 libstdc++ gratuitously omits "long long" I/O Testsuite, documentation issues (compiler is not affected): ! * [246]15488 (libstdc++) possibly insufficient file permissions for executing test suite ! * [247]16250 ada/doctools runs makeinfo even in release tarball GCC 3.4.3 ! This is the [248]list of problem reports (PRs) from GCC's bug tracking ! system that are known to be fixed in the 3.4.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [249]gnu@gnu.org. There ! are also [250]other ways to contact the FSF. ! These pages are maintained by [251]the GCC team. For questions related to the use of GCC, please consult these web ! pages and the [252]GCC manuals. If that fails, the ! [253]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC ! to our developer mailing list at [254]gcc@gnu.org or ! [255]gcc@gcc.gnu.org. All of our lists have [256]public archives. Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. --- 1397,1730 ---- Bootstrap failures and issues ! * [171]16469 [mips-sgi-irix5.3] bootstrap fails in libstdc++-v3/testsuite ! * [172]16344 [hppa-linux-gnu] libstdc++'s PCH built by profiledbootstrap does not work with the built compiler ! * [173]16842 [Solaris/x86] mkheaders can not find mkheaders.conf Multi-platform internal compiler errors (ICEs) ! * [174]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in cp_parser_class_specifier, in cp/parser.c ! * [175]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c ! * [176]15461 (c++) ICE due to NRV and inlining ! * [177]15890 (c++) ICE in c_expand_expr, in c-common.c ! * [178]16180 ICE: segmentation fault in RTL optimization ! * [179]16224 (c++) ICE in write_unscoped_name (template/namespace) ! * [180]16408 ICE: in delete_insn, in cfgrtl.c ! * [181]16529 (c++) ICE for: namespace-alias shall not be declared as the name of any other entity ! * [182]16698 (c++) ICE with exceptions and declaration of __cxa_throw ! * [183]16706 (c++) ICE in finish_member_declaration, in cp/semantics.c ! * [184]16810 (c++) Legal C++ program with cast gives ICE in build_ptrmemfunc ! * [185]16851 (c++) ICE when throwing a comma expression ! * [186]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c ! * [187]16904 (c++) ICE in finish_class_member_access_expr, in cp/typeck.c ! * [188]16905 (c++) ICE (segfault) with exceptions ! * [189]16964 (c++) ICE in cp_parser_class_specifier due to redefinition ! * [190]17068 (c++) ICE: tree check: expected class 'd', have 'x' (identifier_node) in dependent_template_p, in cp/pt.c Preprocessor bugs ! * [191]16366 Preprocessor option -remap causes memory corruption Optimization ! * [192]15345 unreferenced nested inline functions not optimized away ! * [193]16590 Incorrect execution when compiling with -O2 ! * [194]16693 Bitwise AND is lost when used within a cast to an enum of the same precision ! * [195]17078 Jump into if(0) substatement fails Problems in generated debug information ! * [196]13956 incorrect stabs for nested local variables C front end bugs ! * [197]16684 GCC should not warn about redundant redeclarations of built-ins C++ compiler and library ! * [198]12658 Thread safety problems in locale::global() and locale::locale() ! * [199]13092 g++ accepts invalid pointer-to-member conversion ! * [200]15320 Excessive memory consumption ! * [201]16246 Incorrect template argument deduction ! * [202]16273 Memory exhausted when using nested classes and virtual functions ! * [203]16401 ostringstream in gcc 3.4.x very slow for big data ! * [204]16411 undefined reference to __gnu_cxx::stdio_sync_filebuf >::file() ! * [205]16489 G++ incorrectly rejects use of a null constant integral expression as a null constant pointer ! * [206]16618 offsetof fails with constant member ! * [207]16637 syntax error reported for valid input code ! * [208]16717 __attribute__((constructor)) broken in C++ ! * [209]16813 compiler error in DEBUG version of range insertion std::map::insert ! * [210]16853 pointer-to-member initialization from incompatible one accepted ! * [211]16889 ambiguity is not detected ! * [212]16959 Segmentation fault in ios_base::sync_with_stdio Java compiler and library ! * [213]7587 direct threaded interpreter not thread-safe ! * [214]16473 ServerSocket accept() leaks file descriptors ! * [215]16478 Hash synchronization deadlock with finalizers Alpha-specific ! * [216]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c ! * [217]16974 could not split insn (ice in final_scan_insn, in final.c) x86-specific ! * [218]16298 ICE in output_operand ! * [219]17113 ICE with SSE2 intrinsics x86-64 specific ! * [220]14697 libstdc++ couldn't find 32bit libgcc_s MIPS-specific ! * [221]15869 [mips64] No NOP after LW (with -mips1 -O0) ! * [222]16325 [mips64] value profiling clobbers gp on mips ! * [223]16357 [mipsisa64-elf] ICE copying 7 bytes between extern char[]s ! * [224]16380 [mips64] Use of uninitialised register after dbra conversion ! * [225]16407 [mips64] Unaligned access to local variables ! * [226]16643 [mips64] verify_local_live_at_start ICE after crossjumping & cfgcleanup ARM-specific ! * [227]15927 THUMB -O2: strength-reduced iteration variable ends up off by 1 ! * [228]15948 THUMB: ICE with non-commutative cbranch ! * [229]17019 THUMB: bad switch statement in md code for addsi3_cbranch_scratch IA64-specific ! * [230]16130 ICE on valid code: in bundling, in config/ia64/ia64.c (-mtune=merced) ! * [231]16142 ICE on valid code: in bundling, in config/ia64/ia64.c (-mtune=itanium) ! * [232]16278 Gcc failed to build Linux kernel with -mtune=merced ! * [233]16414 ICE on valid code: typo in comparison of asm_noperands result ! * [234]16445 ICE on valid code: don't count ignored insns ! * [235]16490 ICE (segfault) while compiling with -fprofile-use ! * [236]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS PowerPC-specific ! * [237]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x ! * [238]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions issue) SPARC-specific ! * [239]16199 ICE while compiling apache 2.0.49 ! * [240]16416 -m64 doesn't imply -mcpu=v9 anymore ! * [241]16430 ICE when returning non-C aggregates larger than 16 bytes Bugs specific to embedded processors ! * [242]16379 [m32r] can't output large model function call of memcpy ! * [243]17093 [m32r] ICE with -msdata=use -O0 ! * [244]17119 [m32r] ICE at switch case 0x8000 DJGPP-specific ! * [245]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp Alpha Tru64-specific ! * [246]16210 libstdc++ gratuitously omits "long long" I/O Testsuite, documentation issues (compiler is not affected): ! * [247]15488 (libstdc++) possibly insufficient file permissions for executing test suite ! * [248]16250 ada/doctools runs makeinfo even in release tarball ! _________________________________________________________________ ! ! GCC 3.4.4 ! ! This is the [249]list of problem reports (PRs) from GCC's bug tracking ! system that are known to be fixed in the 3.4.4 release. This list ! might not be complete (that is, it is possible that some PRs that have ! been fixed are not listed here). GCC 3.4.3 ! This is the [250]list of problem reports (PRs) from GCC's bug tracking ! system that are known to be fixed in the 3.4.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). + + Bootstrap failures + + * [251]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1 + * [252]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold + when undeclared + + Internal compiler errors (ICEs) affecting multiple platforms + + * [253]13948 (java) GCJ segmentation fault while compiling GL4Java + .class files + * [254]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c + * [255]16301 (c++) ICE when "strong" attribute is attached to a + using directive + * [256]16566 ICE with flexible arrays + * [257]17023 ICE with nested functions in parameter declaration + * [258]17027 ICE with noreturn function in loop at -O2 + * [259]17524 ICE in grokdeclarator, in cp/decl.c + * [260]17826 (c++) ICE in cp_tree_equal + + C and optimization bugs + + * [261]15526 -ftrapv aborts on 0 * (-1) + * [262]16999 #ident stopped working + * [263]17503 quadratic behaviour in invalid_mode_change_p + * [264]17581 Long long arithmetic fails inside a switch/case + statement when compiled with -O2 + * [265]18129 -fwritable-strings doesn't work + + C++ compiler and library bugs + + * [266]10975 incorrect initial ostringstream::tellp() + * [267]11722 Unbuffered filebuf::sgetn is slow + * [268]14534 Unrecognizing static function as a template parameter + when its return value is also templated + * [269]15172 Copy constructor optimization in aggregate + initialization + * [270]15786 Bad error message for frequently occuring error. + * [271]16162 Rejects valid member-template-definition + * [272]16612 empty basic_strings can't live in shared memory + * [273]16715 std::basic_iostream is instantiated when used, even + though instantiations are already contained in libstdc++ + * [274]16848 code in /ext/demangle.h appears broken + * [275]17132 GCC fails to eliminate function template specialization + when argument deduction fails + * [276]17259 One more _S_leaf incorrectly qualified with _RopeRep:: + in ropeimpl.h + * [277]17327 use of `enumeral_type' in template type unification + * [278]17393 "unused variable '._0'" warning with -Wall + * [279]17501 Confusion with member templates + * [280]17537 g++ not passing -lstdc++ to linker when all command + line arguments are libraries + * [281]17585 usage of unqualified name of static member from within + class not allowed + * [282]17821 Poor diagnostic for using "." instead of "->" + * [283]17829 wrong error: call of overloaded function is ambiguous + * [284]17851 Misleading diagnostic for invalid function declarations + with undeclared types + * [285]17976 Destructor is called twice + * [286]18020 rejects valid definition of enum value in template + * [287]18093 bogus conflict in namespace aliasing + * [288]18140 C++ parser bug when using >> in templates + + Fortran + + * [289]17541 data statements with double precision constants fail + + x86-specific + + * [290]17853 -O2 ICE for MMX testcase + + SPARC-specific + + * [291]17245 ICE compiling gsl-1.5 statistics/lag1.c + + Darwin-specific + + * [292]17167 FATAL:Symbol L_foo$stub already defined. + + AIX-specific + + * [293]17277 could not catch an exception when specified -maix64 + + Solaris-specific + + * [294]17505 calls acosf(), ceilf(), and other functions + missing from system libraries + + HP/UX specific: + + * [295]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl + + ARM-specific + + * [296]17384 ICE with mode attribute on structures + + MIPS-specific + + * [297]17770 No NOP after LWL with -mips1 + + Other embedded target specific + + * [298]11476 [arc-elf] gcc ICE on newlib's vfprintf.c + * [299]14064 [avr-elf] -fdata-sections triggers ICE + * [300]14678 [m68hc11-elf] gcc ICE + * [301]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__ + * [302]15790 [i686-coff] Alignment error building gcc with i686-coff + target + * [303]15886 [SH] Miscompilation with -O2 -fPIC + * [304]16884 [avr-elf] [fweb related] bug while initializing + variables + + Bugs relating to debugger support + + * [305]13841 missing debug info for _Complex function arguments + * [306]15860 [big-endian targets] No DW_AT_location debug info is + emitted for formal arguments to a function that uses "register" + qualifiers + + Testsuite issues (compiler not affected) + + * [307]17465 Testsuite in libffi overrides LD_LIBRARY_PATH + * [308]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH + * [309]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit + testsuite + + Documentation + + * [310]15498 typo in gcc manual: non-existing locale example en_UK, + should be en_GB + * [311]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap: + document broken shell + * [312]16406 USE_LD_AS_NEEDED undocumented _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [313]gnu@gnu.org. There ! are also [314]other ways to contact the FSF. ! These pages are maintained by [315]the GCC team. For questions related to the use of GCC, please consult these web ! pages and the [316]GCC manuals. If that fails, the ! [317]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC ! to our developer mailing list at [318]gcc@gnu.org or ! [319]gcc@gcc.gnu.org. All of our lists have [320]public archives. Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *************** GCC 3.4.3 *** 1556,1822 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-05 [257]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus ! 2. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems ! 3. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems ! 4. http://gcc.gnu.org/gcc-3.4/mips-abi.html ! 5. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 6. http://www.boost.org/ ! 7. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953 ! 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361 ! 9. http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#Other%20Builtins ! 10. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 ! 11. http://gcc.gnu.org/bugs.html#cxx_rvalbind ! 12. http://gcc.gnu.org/onlinedocs/gcc/Objective-C-Dialect-Options.html ! 13. http://gcc.gnu.org/onlinedocs/gcc/Objective-C-Dialect-Options.html ! 14. http://gcc.gnu.org/onlinedocs/gcc/Objective-C-Dialect-Options.html ! 15. http://www.gnu.org/software/classpath/ ! 16. http://www.eclipse.org/ ! 17. http://gcc.gnu.org/onlinedocs/g77/News.html ! 18. http://gcc.gnu.org/onlinedocs/gcc/Alpha-Built-in-Functions.html#Alpha%20Built-in%20Functions ! 19. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure ! 20. http://gcc.gnu.org/onlinedocs/gccint/Processor-pipeline-description.html ! 21. http://gcc.gnu.org/onlinedocs/gccint/Comparison-of-the-two-descriptions.html ! 22. http://gcc.gnu.org/onlinedocs/gccint/Processor-pipeline-description.html ! 23. http://gcc.gnu.org/gcc-3.4/mips-abi.html ! 24. http://www.opendarwin.org/projects/dlcompat/ ! 25. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 26. http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED ! 27. http://gcc.gnu.org/PR10129 ! 28. http://gcc.gnu.org/PR14576 ! 29. http://gcc.gnu.org/PR14760 ! 30. http://gcc.gnu.org/PR14671 ! 31. http://gcc.gnu.org/PR15093 ! 32. http://gcc.gnu.org/PR15178 ! 33. http://gcc.gnu.org/PR12753 ! 34. http://gcc.gnu.org/PR13985 ! 35. http://gcc.gnu.org/PR14810 ! 36. http://gcc.gnu.org/PR14883 ! 37. http://gcc.gnu.org/PR15044 ! 38. http://gcc.gnu.org/PR15057 ! 39. http://gcc.gnu.org/PR15064 ! 40. http://gcc.gnu.org/PR15142 ! 41. http://gcc.gnu.org/PR15159 ! 42. http://gcc.gnu.org/PR15165 ! 43. http://gcc.gnu.org/PR15193 ! 44. http://gcc.gnu.org/PR15209 ! 45. http://gcc.gnu.org/PR15227 ! 46. http://gcc.gnu.org/PR15285 ! 47. http://gcc.gnu.org/PR15299 ! 48. http://gcc.gnu.org/PR15329 ! 49. http://gcc.gnu.org/PR15550 ! 50. http://gcc.gnu.org/PR15554 ! 51. http://gcc.gnu.org/PR15640 ! 52. http://gcc.gnu.org/PR15666 ! 53. http://gcc.gnu.org/PR15696 ! 54. http://gcc.gnu.org/PR15701 ! 55. http://gcc.gnu.org/PR15761 ! 56. http://gcc.gnu.org/PR15829 ! 57. http://gcc.gnu.org/PR14538 ! 58. http://gcc.gnu.org/PR12391 ! 59. http://gcc.gnu.org/PR14649 ! 60. http://gcc.gnu.org/PR15004 ! 61. http://gcc.gnu.org/PR15749 ! 62. http://gcc.gnu.org/PR10646 ! 63. http://gcc.gnu.org/PR12077 ! 64. http://gcc.gnu.org/PR13598 ! 65. http://gcc.gnu.org/PR14211 ! 66. http://gcc.gnu.org/PR14220 ! 67. http://gcc.gnu.org/PR14245 ! 68. http://gcc.gnu.org/PR14340 ! 69. http://gcc.gnu.org/PR14600 ! 70. http://gcc.gnu.org/PR14668 ! 71. http://gcc.gnu.org/PR14775 ! 72. http://gcc.gnu.org/PR14821 ! 73. http://gcc.gnu.org/PR14930 ! 74. http://gcc.gnu.org/PR14932 ! 75. http://gcc.gnu.org/PR14950 ! 76. http://gcc.gnu.org/PR14962 ! 77. http://gcc.gnu.org/PR14975 ! 78. http://gcc.gnu.org/PR15002 ! 79. http://gcc.gnu.org/PR15025 ! 80. http://gcc.gnu.org/PR15046 ! 81. http://gcc.gnu.org/PR15069 ! 82. http://gcc.gnu.org/PR15074 ! 83. http://gcc.gnu.org/PR15083 ! 84. http://gcc.gnu.org/PR15096 ! 85. http://gcc.gnu.org/PR15287 ! 86. http://gcc.gnu.org/PR15317 ! 87. http://gcc.gnu.org/PR15337 ! 88. http://gcc.gnu.org/PR15361 ! 89. http://gcc.gnu.org/PR15412 ! 90. http://gcc.gnu.org/PR15427 ! 91. http://gcc.gnu.org/PR15471 ! 92. http://gcc.gnu.org/PR15503 ! 93. http://gcc.gnu.org/PR15507 ! 94. http://gcc.gnu.org/PR15542 ! 95. http://gcc.gnu.org/PR15565 ! 96. http://gcc.gnu.org/PR15625 ! 97. http://gcc.gnu.org/PR15629 ! 98. http://gcc.gnu.org/PR15742 ! 99. http://gcc.gnu.org/PR15775 ! 100. http://gcc.gnu.org/PR15821 ! 101. http://gcc.gnu.org/PR15862 ! 102. http://gcc.gnu.org/PR15875 ! 103. http://gcc.gnu.org/PR15877 ! 104. http://gcc.gnu.org/PR15947 ! 105. http://gcc.gnu.org/PR16020 ! 106. http://gcc.gnu.org/PR16154 ! 107. http://gcc.gnu.org/PR16174 ! 108. http://gcc.gnu.org/PR14315 ! 109. http://gcc.gnu.org/PR15151 ! 110. http://gcc.gnu.org/PR7993 ! 111. http://gcc.gnu.org/PR15228 ! 112. http://gcc.gnu.org/PR15345 ! 113. http://gcc.gnu.org/PR15945 ! 114. http://gcc.gnu.org/PR15526 ! 115. http://gcc.gnu.org/PR14690 ! 116. http://gcc.gnu.org/PR15112 ! 117. http://gcc.gnu.org/PR15067 ! 118. http://gcc.gnu.org/PR1963 ! 119. http://gcc.gnu.org/PR15717 ! 120. http://gcc.gnu.org/PR14782 ! 121. http://gcc.gnu.org/PR14828 ! 122. http://gcc.gnu.org/PR15202 ! 123. http://gcc.gnu.org/PR14610 ! 124. http://gcc.gnu.org/PR14813 ! 125. http://gcc.gnu.org/PR14857 ! 126. http://gcc.gnu.org/PR15598 ! 127. http://gcc.gnu.org/PR15653 ! 128. http://gcc.gnu.org/PR15189 ! 129. http://gcc.gnu.org/PR15331 ! 130. http://gcc.gnu.org/PR16144 ! 131. http://gcc.gnu.org/PR16176 ! 132. http://gcc.gnu.org/PR11591 ! 133. http://gcc.gnu.org/PR12028 ! 134. http://gcc.gnu.org/PR14478 ! 135. http://gcc.gnu.org/PR14567 ! 136. http://gcc.gnu.org/PR14715 ! 137. http://gcc.gnu.org/PR14902 ! 138. http://gcc.gnu.org/PR14924 ! 139. http://gcc.gnu.org/PR14960 ! 140. http://gcc.gnu.org/PR15106 ! 141. http://gcc.gnu.org/PR16026 ! 142. http://gcc.gnu.org/PR15191 ! 143. http://gcc.gnu.org/PR15662 ! 144. http://gcc.gnu.org/PR15054 ! 145. http://gcc.gnu.org/PR15783 ! 146. http://gcc.gnu.org/PR15626 ! 147. http://gcc.gnu.org/PR14326 ! 148. http://gcc.gnu.org/PR14723 ! 149. http://gcc.gnu.org/PR15290 ! 150. http://gcc.gnu.org/PR15250 ! 151. http://gcc.gnu.org/PR15551 ! 152. http://gcc.gnu.org/PR8309 ! 153. http://gcc.gnu.org/PR13250 ! 154. http://gcc.gnu.org/PR13803 ! 155. http://gcc.gnu.org/PR14093 ! 156. http://gcc.gnu.org/PR14457 ! 157. http://gcc.gnu.org/PR14542 ! 158. http://gcc.gnu.org/PR15100 ! 159. http://gcc.gnu.org/PR15296 ! 160. http://gcc.gnu.org/PR15396 ! 161. http://gcc.gnu.org/PR15782 ! 162. http://gcc.gnu.org/PR11610 ! 163. http://gcc.gnu.org/PR15488 ! 164. http://gcc.gnu.org/PR15489 ! 165. http://gcc.gnu.org/PR13928 ! 166. http://gcc.gnu.org/PR14150 ! 167. http://gcc.gnu.org/PR14949 ! 168. http://gcc.gnu.org/PR15123 ! 169. http://gcc.gnu.org/PR16469 ! 170. http://gcc.gnu.org/PR16344 ! 171. http://gcc.gnu.org/PR16842 ! 172. http://gcc.gnu.org/PR12608 ! 173. http://gcc.gnu.org/PR14492 ! 174. http://gcc.gnu.org/PR15461 ! 175. http://gcc.gnu.org/PR15890 ! 176. http://gcc.gnu.org/PR16180 ! 177. http://gcc.gnu.org/PR16224 ! 178. http://gcc.gnu.org/PR16408 ! 179. http://gcc.gnu.org/PR16529 ! 180. http://gcc.gnu.org/PR16698 ! 181. http://gcc.gnu.org/PR16706 ! 182. http://gcc.gnu.org/PR16810 ! 183. http://gcc.gnu.org/PR16851 ! 184. http://gcc.gnu.org/PR16870 ! 185. http://gcc.gnu.org/PR16904 ! 186. http://gcc.gnu.org/PR16905 ! 187. http://gcc.gnu.org/PR16964 ! 188. http://gcc.gnu.org/PR17068 ! 189. http://gcc.gnu.org/PR16366 ! 190. http://gcc.gnu.org/PR15345 ! 191. http://gcc.gnu.org/PR16590 ! 192. http://gcc.gnu.org/PR16693 ! 193. http://gcc.gnu.org/PR17078 ! 194. http://gcc.gnu.org/PR13956 ! 195. http://gcc.gnu.org/PR16684 ! 196. http://gcc.gnu.org/PR12658 ! 197. http://gcc.gnu.org/PR13092 ! 198. http://gcc.gnu.org/PR15320 ! 199. http://gcc.gnu.org/PR16246 ! 200. http://gcc.gnu.org/PR16273 ! 201. http://gcc.gnu.org/PR16401 ! 202. http://gcc.gnu.org/PR16411 ! 203. http://gcc.gnu.org/PR16489 ! 204. http://gcc.gnu.org/PR16618 ! 205. http://gcc.gnu.org/PR16637 ! 206. http://gcc.gnu.org/PR16717 ! 207. http://gcc.gnu.org/PR16813 ! 208. http://gcc.gnu.org/PR16853 ! 209. http://gcc.gnu.org/PR16889 ! 210. http://gcc.gnu.org/PR16959 ! 211. http://gcc.gnu.org/PR7587 ! 212. http://gcc.gnu.org/PR16473 ! 213. http://gcc.gnu.org/PR16478 ! 214. http://gcc.gnu.org/PR10695 ! 215. http://gcc.gnu.org/PR16974 ! 216. http://gcc.gnu.org/PR16298 ! 217. http://gcc.gnu.org/PR17113 ! 218. http://gcc.gnu.org/PR17171 ! 219. http://gcc.gnu.org/PR14697 ! 220. http://gcc.gnu.org/PR15869 ! 221. http://gcc.gnu.org/PR16325 ! 222. http://gcc.gnu.org/PR16357 ! 223. http://gcc.gnu.org/PR16380 ! 224. http://gcc.gnu.org/PR16407 ! 225. http://gcc.gnu.org/PR16643 ! 226. http://gcc.gnu.org/PR15927 ! 227. http://gcc.gnu.org/PR15948 ! 228. http://gcc.gnu.org/PR17019 ! 229. http://gcc.gnu.org/PR16130 ! 230. http://gcc.gnu.org/PR16142 ! 231. http://gcc.gnu.org/PR16278 ! 232. http://gcc.gnu.org/PR16414 ! 233. http://gcc.gnu.org/PR16445 ! 234. http://gcc.gnu.org/PR16490 ! 235. http://gcc.gnu.org/PR16683 ! 236. http://gcc.gnu.org/PR16195 ! 237. http://gcc.gnu.org/PR16239 ! 238. http://gcc.gnu.org/PR16199 ! 239. http://gcc.gnu.org/PR16416 ! 240. http://gcc.gnu.org/PR16430 ! 241. http://gcc.gnu.org/PR16379 ! 242. http://gcc.gnu.org/PR17093 ! 243. http://gcc.gnu.org/PR17119 ! 244. http://gcc.gnu.org/PR15928 ! 245. http://gcc.gnu.org/PR16210 ! 246. http://gcc.gnu.org/PR15488 ! 247. http://gcc.gnu.org/PR16250 ! 248. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3 ! 249. mailto:gnu@gnu.org ! 250. http://www.gnu.org/home.html#ContactInfo ! 251. http://gcc.gnu.org/about.html ! 252. http://gcc.gnu.org/onlinedocs/ ! 253. mailto:gcc-help@gcc.gnu.org ! 254. mailto:gcc@gnu.org ! 255. mailto:gcc@gcc.gnu.org ! 256. http://gcc.gnu.org/lists.html ! 257. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/index.html --- 1732,2062 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2005-05-19 [321]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 ! 2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus ! 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems ! 4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems ! 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html ! 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 7. http://www.boost.org/ ! 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953 ! 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361 ! 10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins ! 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 ! 12. http://gcc.gnu.org/bugs.html#cxx_rvalbind ! 13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html ! 14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html ! 15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html ! 16. http://www.gnu.org/software/classpath/ ! 17. http://www.eclipse.org/ ! 18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html ! 19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html ! 20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure ! 21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html ! 22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html ! 23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html ! 24. http://gcc.gnu.org/gcc-3.4/mips-abi.html ! 25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html ! 26. http://www.opendarwin.org/projects/dlcompat/ ! 27. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 28. http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED ! 29. http://gcc.gnu.org/PR10129 ! 30. http://gcc.gnu.org/PR14576 ! 31. http://gcc.gnu.org/PR14760 ! 32. http://gcc.gnu.org/PR14671 ! 33. http://gcc.gnu.org/PR15093 ! 34. http://gcc.gnu.org/PR15178 ! 35. http://gcc.gnu.org/PR12753 ! 36. http://gcc.gnu.org/PR13985 ! 37. http://gcc.gnu.org/PR14810 ! 38. http://gcc.gnu.org/PR14883 ! 39. http://gcc.gnu.org/PR15044 ! 40. http://gcc.gnu.org/PR15057 ! 41. http://gcc.gnu.org/PR15064 ! 42. http://gcc.gnu.org/PR15142 ! 43. http://gcc.gnu.org/PR15159 ! 44. http://gcc.gnu.org/PR15165 ! 45. http://gcc.gnu.org/PR15193 ! 46. http://gcc.gnu.org/PR15209 ! 47. http://gcc.gnu.org/PR15227 ! 48. http://gcc.gnu.org/PR15285 ! 49. http://gcc.gnu.org/PR15299 ! 50. http://gcc.gnu.org/PR15329 ! 51. http://gcc.gnu.org/PR15550 ! 52. http://gcc.gnu.org/PR15554 ! 53. http://gcc.gnu.org/PR15640 ! 54. http://gcc.gnu.org/PR15666 ! 55. http://gcc.gnu.org/PR15696 ! 56. http://gcc.gnu.org/PR15701 ! 57. http://gcc.gnu.org/PR15761 ! 58. http://gcc.gnu.org/PR15829 ! 59. http://gcc.gnu.org/PR14538 ! 60. http://gcc.gnu.org/PR12391 ! 61. http://gcc.gnu.org/PR14649 ! 62. http://gcc.gnu.org/PR15004 ! 63. http://gcc.gnu.org/PR15749 ! 64. http://gcc.gnu.org/PR10646 ! 65. http://gcc.gnu.org/PR12077 ! 66. http://gcc.gnu.org/PR13598 ! 67. http://gcc.gnu.org/PR14211 ! 68. http://gcc.gnu.org/PR14220 ! 69. http://gcc.gnu.org/PR14245 ! 70. http://gcc.gnu.org/PR14340 ! 71. http://gcc.gnu.org/PR14600 ! 72. http://gcc.gnu.org/PR14668 ! 73. http://gcc.gnu.org/PR14775 ! 74. http://gcc.gnu.org/PR14821 ! 75. http://gcc.gnu.org/PR14930 ! 76. http://gcc.gnu.org/PR14932 ! 77. http://gcc.gnu.org/PR14950 ! 78. http://gcc.gnu.org/PR14962 ! 79. http://gcc.gnu.org/PR14975 ! 80. http://gcc.gnu.org/PR15002 ! 81. http://gcc.gnu.org/PR15025 ! 82. http://gcc.gnu.org/PR15046 ! 83. http://gcc.gnu.org/PR15069 ! 84. http://gcc.gnu.org/PR15074 ! 85. http://gcc.gnu.org/PR15083 ! 86. http://gcc.gnu.org/PR15096 ! 87. http://gcc.gnu.org/PR15287 ! 88. http://gcc.gnu.org/PR15317 ! 89. http://gcc.gnu.org/PR15337 ! 90. http://gcc.gnu.org/PR15361 ! 91. http://gcc.gnu.org/PR15412 ! 92. http://gcc.gnu.org/PR15427 ! 93. http://gcc.gnu.org/PR15471 ! 94. http://gcc.gnu.org/PR15503 ! 95. http://gcc.gnu.org/PR15507 ! 96. http://gcc.gnu.org/PR15542 ! 97. http://gcc.gnu.org/PR15565 ! 98. http://gcc.gnu.org/PR15625 ! 99. http://gcc.gnu.org/PR15629 ! 100. http://gcc.gnu.org/PR15742 ! 101. http://gcc.gnu.org/PR15775 ! 102. http://gcc.gnu.org/PR15821 ! 103. http://gcc.gnu.org/PR15862 ! 104. http://gcc.gnu.org/PR15875 ! 105. http://gcc.gnu.org/PR15877 ! 106. http://gcc.gnu.org/PR15947 ! 107. http://gcc.gnu.org/PR16020 ! 108. http://gcc.gnu.org/PR16154 ! 109. http://gcc.gnu.org/PR16174 ! 110. http://gcc.gnu.org/PR14315 ! 111. http://gcc.gnu.org/PR15151 ! 112. http://gcc.gnu.org/PR7993 ! 113. http://gcc.gnu.org/PR15228 ! 114. http://gcc.gnu.org/PR15345 ! 115. http://gcc.gnu.org/PR15945 ! 116. http://gcc.gnu.org/PR15526 ! 117. http://gcc.gnu.org/PR14690 ! 118. http://gcc.gnu.org/PR15112 ! 119. http://gcc.gnu.org/PR15067 ! 120. http://gcc.gnu.org/PR1963 ! 121. http://gcc.gnu.org/PR15717 ! 122. http://gcc.gnu.org/PR14782 ! 123. http://gcc.gnu.org/PR14828 ! 124. http://gcc.gnu.org/PR15202 ! 125. http://gcc.gnu.org/PR14610 ! 126. http://gcc.gnu.org/PR14813 ! 127. http://gcc.gnu.org/PR14857 ! 128. http://gcc.gnu.org/PR15598 ! 129. http://gcc.gnu.org/PR15653 ! 130. http://gcc.gnu.org/PR15189 ! 131. http://gcc.gnu.org/PR15331 ! 132. http://gcc.gnu.org/PR16144 ! 133. http://gcc.gnu.org/PR16176 ! 134. http://gcc.gnu.org/PR11591 ! 135. http://gcc.gnu.org/PR12028 ! 136. http://gcc.gnu.org/PR14478 ! 137. http://gcc.gnu.org/PR14567 ! 138. http://gcc.gnu.org/PR14715 ! 139. http://gcc.gnu.org/PR14902 ! 140. http://gcc.gnu.org/PR14924 ! 141. http://gcc.gnu.org/PR14960 ! 142. http://gcc.gnu.org/PR15106 ! 143. http://gcc.gnu.org/PR16026 ! 144. http://gcc.gnu.org/PR15191 ! 145. http://gcc.gnu.org/PR15662 ! 146. http://gcc.gnu.org/PR15054 ! 147. http://gcc.gnu.org/PR15783 ! 148. http://gcc.gnu.org/PR15626 ! 149. http://gcc.gnu.org/PR14326 ! 150. http://gcc.gnu.org/PR14723 ! 151. http://gcc.gnu.org/PR15290 ! 152. http://gcc.gnu.org/PR15250 ! 153. http://gcc.gnu.org/PR15551 ! 154. http://gcc.gnu.org/PR8309 ! 155. http://gcc.gnu.org/PR13250 ! 156. http://gcc.gnu.org/PR13803 ! 157. http://gcc.gnu.org/PR14093 ! 158. http://gcc.gnu.org/PR14457 ! 159. http://gcc.gnu.org/PR14542 ! 160. http://gcc.gnu.org/PR15100 ! 161. http://gcc.gnu.org/PR15296 ! 162. http://gcc.gnu.org/PR15396 ! 163. http://gcc.gnu.org/PR15782 ! 164. http://gcc.gnu.org/PR11610 ! 165. http://gcc.gnu.org/PR15488 ! 166. http://gcc.gnu.org/PR15489 ! 167. http://gcc.gnu.org/PR13928 ! 168. http://gcc.gnu.org/PR14150 ! 169. http://gcc.gnu.org/PR14949 ! 170. http://gcc.gnu.org/PR15123 ! 171. http://gcc.gnu.org/PR16469 ! 172. http://gcc.gnu.org/PR16344 ! 173. http://gcc.gnu.org/PR16842 ! 174. http://gcc.gnu.org/PR12608 ! 175. http://gcc.gnu.org/PR14492 ! 176. http://gcc.gnu.org/PR15461 ! 177. http://gcc.gnu.org/PR15890 ! 178. http://gcc.gnu.org/PR16180 ! 179. http://gcc.gnu.org/PR16224 ! 180. http://gcc.gnu.org/PR16408 ! 181. http://gcc.gnu.org/PR16529 ! 182. http://gcc.gnu.org/PR16698 ! 183. http://gcc.gnu.org/PR16706 ! 184. http://gcc.gnu.org/PR16810 ! 185. http://gcc.gnu.org/PR16851 ! 186. http://gcc.gnu.org/PR16870 ! 187. http://gcc.gnu.org/PR16904 ! 188. http://gcc.gnu.org/PR16905 ! 189. http://gcc.gnu.org/PR16964 ! 190. http://gcc.gnu.org/PR17068 ! 191. http://gcc.gnu.org/PR16366 ! 192. http://gcc.gnu.org/PR15345 ! 193. http://gcc.gnu.org/PR16590 ! 194. http://gcc.gnu.org/PR16693 ! 195. http://gcc.gnu.org/PR17078 ! 196. http://gcc.gnu.org/PR13956 ! 197. http://gcc.gnu.org/PR16684 ! 198. http://gcc.gnu.org/PR12658 ! 199. http://gcc.gnu.org/PR13092 ! 200. http://gcc.gnu.org/PR15320 ! 201. http://gcc.gnu.org/PR16246 ! 202. http://gcc.gnu.org/PR16273 ! 203. http://gcc.gnu.org/PR16401 ! 204. http://gcc.gnu.org/PR16411 ! 205. http://gcc.gnu.org/PR16489 ! 206. http://gcc.gnu.org/PR16618 ! 207. http://gcc.gnu.org/PR16637 ! 208. http://gcc.gnu.org/PR16717 ! 209. http://gcc.gnu.org/PR16813 ! 210. http://gcc.gnu.org/PR16853 ! 211. http://gcc.gnu.org/PR16889 ! 212. http://gcc.gnu.org/PR16959 ! 213. http://gcc.gnu.org/PR7587 ! 214. http://gcc.gnu.org/PR16473 ! 215. http://gcc.gnu.org/PR16478 ! 216. http://gcc.gnu.org/PR10695 ! 217. http://gcc.gnu.org/PR16974 ! 218. http://gcc.gnu.org/PR16298 ! 219. http://gcc.gnu.org/PR17113 ! 220. http://gcc.gnu.org/PR14697 ! 221. http://gcc.gnu.org/PR15869 ! 222. http://gcc.gnu.org/PR16325 ! 223. http://gcc.gnu.org/PR16357 ! 224. http://gcc.gnu.org/PR16380 ! 225. http://gcc.gnu.org/PR16407 ! 226. http://gcc.gnu.org/PR16643 ! 227. http://gcc.gnu.org/PR15927 ! 228. http://gcc.gnu.org/PR15948 ! 229. http://gcc.gnu.org/PR17019 ! 230. http://gcc.gnu.org/PR16130 ! 231. http://gcc.gnu.org/PR16142 ! 232. http://gcc.gnu.org/PR16278 ! 233. http://gcc.gnu.org/PR16414 ! 234. http://gcc.gnu.org/PR16445 ! 235. http://gcc.gnu.org/PR16490 ! 236. http://gcc.gnu.org/PR16683 ! 237. http://gcc.gnu.org/PR16195 ! 238. http://gcc.gnu.org/PR16239 ! 239. http://gcc.gnu.org/PR16199 ! 240. http://gcc.gnu.org/PR16416 ! 241. http://gcc.gnu.org/PR16430 ! 242. http://gcc.gnu.org/PR16379 ! 243. http://gcc.gnu.org/PR17093 ! 244. http://gcc.gnu.org/PR17119 ! 245. http://gcc.gnu.org/PR15928 ! 246. http://gcc.gnu.org/PR16210 ! 247. http://gcc.gnu.org/PR15488 ! 248. http://gcc.gnu.org/PR16250 ! 249. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4 ! 250. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3 ! 251. http://gcc.gnu.org/PR17369 ! 252. http://gcc.gnu.org/PR17850 ! 253. http://gcc.gnu.org/PR13948 ! 254. http://gcc.gnu.org/PR14492 ! 255. http://gcc.gnu.org/PR16301 ! 256. http://gcc.gnu.org/PR16566 ! 257. http://gcc.gnu.org/PR17023 ! 258. http://gcc.gnu.org/PR17027 ! 259. http://gcc.gnu.org/PR17524 ! 260. http://gcc.gnu.org/PR17826 ! 261. http://gcc.gnu.org/PR15526 ! 262. http://gcc.gnu.org/PR16999 ! 263. http://gcc.gnu.org/PR17503 ! 264. http://gcc.gnu.org/PR17581 ! 265. http://gcc.gnu.org/PR18129 ! 266. http://gcc.gnu.org/PR10975 ! 267. http://gcc.gnu.org/PR11722 ! 268. http://gcc.gnu.org/PR14534 ! 269. http://gcc.gnu.org/PR15172 ! 270. http://gcc.gnu.org/PR15786 ! 271. http://gcc.gnu.org/PR16162 ! 272. http://gcc.gnu.org/PR16612 ! 273. http://gcc.gnu.org/PR16715 ! 274. http://gcc.gnu.org/PR16848 ! 275. http://gcc.gnu.org/PR17132 ! 276. http://gcc.gnu.org/PR17259 ! 277. http://gcc.gnu.org/PR17327 ! 278. http://gcc.gnu.org/PR17393 ! 279. http://gcc.gnu.org/PR17501 ! 280. http://gcc.gnu.org/PR17537 ! 281. http://gcc.gnu.org/PR17585 ! 282. http://gcc.gnu.org/PR17821 ! 283. http://gcc.gnu.org/PR17829 ! 284. http://gcc.gnu.org/PR17851 ! 285. http://gcc.gnu.org/PR17976 ! 286. http://gcc.gnu.org/PR18020 ! 287. http://gcc.gnu.org/PR18093 ! 288. http://gcc.gnu.org/PR18140 ! 289. http://gcc.gnu.org/PR17541 ! 290. http://gcc.gnu.org/PR17853 ! 291. http://gcc.gnu.org/PR17245 ! 292. http://gcc.gnu.org/PR17167 ! 293. http://gcc.gnu.org/PR17277 ! 294. http://gcc.gnu.org/PR17505 ! 295. http://gcc.gnu.org/PR17684 ! 296. http://gcc.gnu.org/PR17384 ! 297. http://gcc.gnu.org/PR17770 ! 298. http://gcc.gnu.org/PR11476 ! 299. http://gcc.gnu.org/PR14064 ! 300. http://gcc.gnu.org/PR14678 ! 301. http://gcc.gnu.org/PR15583 ! 302. http://gcc.gnu.org/PR15790 ! 303. http://gcc.gnu.org/PR15886 ! 304. http://gcc.gnu.org/PR16884 ! 305. http://gcc.gnu.org/PR13841 ! 306. http://gcc.gnu.org/PR15860 ! 307. http://gcc.gnu.org/PR17465 ! 308. http://gcc.gnu.org/PR17469 ! 309. http://gcc.gnu.org/PR18138 ! 310. http://gcc.gnu.org/PR15498 ! 311. http://gcc.gnu.org/PR15747 ! 312. http://gcc.gnu.org/PR16406 ! 313. mailto:gnu@gnu.org ! 314. http://www.gnu.org/home.html#ContactInfo ! 315. http://gcc.gnu.org/about.html ! 316. http://gcc.gnu.org/onlinedocs/ ! 317. mailto:gcc-help@gcc.gnu.org ! 318. mailto:gcc@gnu.org ! 319. mailto:gcc@gcc.gnu.org ! 320. http://gcc.gnu.org/lists.html ! 321. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/index.html *************** http://gcc.gnu.org/gcc-3.3/index.html *** 1834,1839 **** --- 2074,2085 ---- Release History + GCC 3.3.5 + September 30, 2004 + + GCC 3.3.4 + May 31, 2004 + GCC 3.3.3 February 14, 2004 ([4]changes) *************** References and Acknowledgements *** 1886,1892 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [23]Valid XHTML 1.0 References --- 2132,2138 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2005-01-25 [23]Valid XHTML 1.0 References *************** GCC 3.3.3 *** 3258,3264 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [558]Valid XHTML 1.0 References --- 3504,3510 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [558]Valid XHTML 1.0 References *************** References and Acknowledgements *** 3896,3902 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [22]Valid XHTML 1.0 References --- 4142,4148 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [22]Valid XHTML 1.0 References *************** GCC 3.2.3 *** 4079,4085 **** * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib) failed ! Sparc-specific: * [45]7784: [Sparc] ICE in extract_insn, in recog.c * [46]7796: sparc extra failure with -m64 on execute/930921-1.c in --- 4325,4331 ---- * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib) failed ! SPARC-specific: * [45]7784: [Sparc] ICE in extract_insn, in recog.c * [46]7796: sparc extra failure with -m64 on execute/930921-1.c in *************** GCC 3.2 *** 4537,4543 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-30 [254]Valid XHTML 1.0 References --- 4783,4789 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [254]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-3.1/index.html *** 4851,4857 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [19]Valid XHTML 1.0 References --- 5097,5103 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [19]Valid XHTML 1.0 References *************** Documentation improvements *** 5220,5226 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [21]Valid XHTML 1.0 References --- 5466,5472 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [21]Valid XHTML 1.0 References *************** Previous 3.0.x Releases *** 5308,5314 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [19]Valid XHTML 1.0 References --- 5554,5560 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [19]Valid XHTML 1.0 References *************** Other significant improvements *** 5513,5519 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [22]Valid XHTML 1.0 References --- 5759,5765 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [22]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 5597,5603 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [12]Valid XHTML 1.0 References --- 5843,5849 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/index.html *** 5681,5687 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [21]Valid XHTML 1.0 References --- 5927,5933 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [21]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/features.htm *** 5737,5743 **** + More support for various pragmas which appear in vendor include files * New Targets and Target Specific Improvements ! + [14]Sparc backend rewrite. + -mschedule=8000 will optimize code for PA8000 class processors; -mpa-risc-2-0 will generate code for PA2.0 processors --- 5983,5989 ---- + More support for various pragmas which appear in vendor include files * New Targets and Target Specific Improvements ! + [14]SPARC backend rewrite. + -mschedule=8000 will optimize code for PA8000 class processors; -mpa-risc-2-0 will generate code for PA2.0 processors *************** http://gcc.gnu.org/gcc-2.95/features.htm *** 5751,5757 **** -mcpu=403. -mcpu=e603e was added to do -mcpu=603e and -msoft-float. + c3x, c4x ! + HyperSparc + SparcLite86x + sh4 + Support for new systems (OpenBSD, FreeBSD, UWIN, Interix, --- 5997,6003 ---- -mcpu=403. -mcpu=e603e was added to do -mcpu=603e and -msoft-float. + c3x, c4x ! + HyperSPARC + SparcLite86x + sh4 + Support for new systems (OpenBSD, FreeBSD, UWIN, Interix, *************** Additional Changes in GCC 2.95.2 *** 5862,5868 **** of an obscure series of bit manipulations, shifts and arithmetic. + Fixed register allocator bug which caused teTeX to be ! mis-compiled on Sparc targets. + Avoid incorrect optimization of degenerate case statements for certain targets such as the ARM. + Fix out of range memory reference in the jump optimizer. --- 6108,6114 ---- of an obscure series of bit manipulations, shifts and arithmetic. + Fixed register allocator bug which caused teTeX to be ! mis-compiled on SPARC targets. + Avoid incorrect optimization of degenerate case statements for certain targets such as the ARM. + Fix out of range memory reference in the jump optimizer. *************** Additional Changes in GCC 2.95.2 *** 5877,5884 **** targets (for example the ARM). * Platform specific bugfixes and improvements + Work around bug in Sun V5.0 compilers which caused bootstrap ! comparison failures on Sparc targets. ! + Fix Sparc backend bug which caused aborts in final.c. + Fix sparc-hal-solaris2* configuration fragments. + Fix bug in sparc block profiling. + Fix obscure code generation bug for the PARISC targets. --- 6123,6130 ---- targets (for example the ARM). * Platform specific bugfixes and improvements + Work around bug in Sun V5.0 compilers which caused bootstrap ! comparison failures on SPARC targets. ! + Fix SPARC backend bug which caused aborts in final.c. + Fix sparc-hal-solaris2* configuration fragments. + Fix bug in sparc block profiling. + Fix obscure code generation bug for the PARISC targets. *************** Additional Changes in GCC 2.95.3 *** 5961,5967 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [25]Valid XHTML 1.0 References --- 6207,6213 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [25]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 6055,6061 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [10]Valid XHTML 1.0 References --- 6301,6307 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [10]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/index.html *** 6287,6293 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [19]Valid XHTML 1.0 References --- 6533,6539 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [19]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 6402,6408 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [14]Valid XHTML 1.0 References --- 6648,6654 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [14]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 6468,6474 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [9]Valid XHTML 1.0 References --- 6714,6720 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [9]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.h *** 6577,6583 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [14]Valid XHTML 1.0 References --- 6823,6829 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [14]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.h *** 6722,6728 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [14]Valid XHTML 1.0 References --- 6968,6974 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [14]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.h *** 6867,6873 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [14]Valid XHTML 1.0 References --- 7113,7119 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [14]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.htm *** 6969,6975 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [14]Valid XHTML 1.0 References --- 7215,7221 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [14]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 7048,7054 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [11]Valid XHTML 1.0 References --- 7294,7300 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [11]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 7113,7119 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-08-06 [9]Valid XHTML 1.0 References --- 7359,7365 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2004-11-14 [9]Valid XHTML 1.0 References diff -Nrc3pad gcc-3.4.3/README.SCO gcc-3.4.4/README.SCO *** gcc-3.4.3/README.SCO Mon Nov 1 02:18:52 2004 --- gcc-3.4.4/README.SCO Sun May 8 18:05:59 2005 *************** no longer believe that SCO is a serious *** 6,10 **** For more on the FSF's position regarding SCO's attacks on free software, please read: ! http://www.gnu.org/philosophy/sco/sco.html ! --- 6,9 ---- For more on the FSF's position regarding SCO's attacks on free software, please read: ! http://www.fsf.org/licensing/sco/ diff -Nrc3pad gcc-3.4.3/bugs.html gcc-3.4.4/bugs.html *** gcc-3.4.3/bugs.html Fri Nov 5 04:14:09 2004 --- gcc-3.4.4/bugs.html Thu May 19 09:58:04 2005 *************** *** 53,65 ****

Reporting Bugs

The main purpose of a bug report is to enable us to fix the bug. The ! most important prerequisite for this is that the report must be complete and ! self-contained, which we explain in detail below.

Before you report a bug, please check the ! list of well-known bugs and, if possible ! in any way, try a current development snapshot. ! If you want to report a bug with versions of GCC before 3.1 we strongly recommend upgrading to the current release first.

Before reporting that GCC compiles your code incorrectly, please --- 53,65 ----

Reporting Bugs

The main purpose of a bug report is to enable us to fix the bug. The ! most important prerequisite for this is that the report must be complete ! and self-contained.

Before you report a bug, please check the ! list of well-known bugs and, if possible, ! try a current development snapshot. ! If you want to report a bug with versions of GCC before 3.4 we strongly recommend upgrading to the current release first.

Before reporting that GCC compiles your code incorrectly, please *************** three of which can be obtained from the *** 116,125 **** a successful compilation; this is a symptom of a hardware problem, not of a compiler bug (sorry) -

  • E-mail messages that complement previous, incomplete bug - reports. Post a new, self-contained, full bug report instead, if - possible as a follow-up to the original bug report
  • -
  • Assembly files (*.s) produced by the compiler, or any binary files, such as object files, executables, core files, or precompiled header files
  • --- 116,121 ---- *************** preprocessed file it generates.

    *** 163,179 ****

    gcc -v -save-temps all-your-options source-file

    -

    Typically the preprocessed file (extension .i for C or - .ii for C++, and .f if the preprocessor is used on - Fortran files) will be large, so please compress the - resulting file with one of the popular compression programs such as - bzip2, gzip, zip or compress (in - decreasing order of preference). Use maximum compression - (-9) if available. Please include the compressed - preprocessor output in your bug report, even if the source code is - freely available elsewhere; it makes the job of our volunteer testers - much easier.

    -

    The only excuses to not send us the preprocessed sources are (i) if you've found a bug in the preprocessor, (ii) if you've reduced the testcase to a small file that doesn't include any other file or --- 159,164 ---- *************** then try to create a small file that tri *** 186,197 **** it in the bug report, although you may want to post parts of it to point out assembly code you consider to be wrong.

    -

    Whether to use MIME attachments or uuencode is up to - you. In any case, make sure the compiler command line, version and - error output are in plain text, so that we don't have to decode the - bug report in order to tell who should take care of it. A meaningful - subject indicating language and platform also helps.

    -

    Please avoid posting an archive (.tar, .shar or .zip); we generally need just a single file to reproduce the bug (the .i/.ii/.f preprocessed file), and, by storing it in an archive, you're just making our --- 171,176 ---- *************** make sure the compiler version, error me *** 204,219 **** the body of your bug report as plain text, even if needlessly duplicated as part of an archive.

    -

    If you fail to supply enough information for a bug report to be - reproduced, someone will probably ask you to post additional - information (or just ignore your bug report, if they're in a bad day, - so try to get it right on the first posting :-). In this case, please - post the additional information to the bug reporting mailing list, not - just to the person who requested it, unless explicitly told so. If - possible, please include in this follow-up all the information you had - supplied in the incomplete bug report (including the preprocessor - output), so that the new bug report is self-contained.

    -

    Detailed bug reporting instructions for GNAT

    See the previous section for bug reporting --- 183,188 ---- *************** also contain C++ code, so you might want *** 779,786 **** be safe. It should not be necessary to recompile if you have changed to a bug-fix release of the same version of the compiler; bug-fix releases are careful to avoid ABI changes. See also the ! compatibility section ! of the GCC manual.

    Remark: A major release is designated by a change to the first or second component of the two- or three-part version number. A minor (bug-fix) --- 748,755 ---- be safe. It should not be necessary to recompile if you have changed to a bug-fix release of the same version of the compiler; bug-fix releases are careful to avoid ABI changes. See also the ! compatibility ! section of the GCC manual.

    Remark: A major release is designated by a change to the first or second component of the two- or three-part version number. A minor (bug-fix) *************** template <typename T> struct B : A *** 932,939 ****

    In addition to the problems listed above, the manual contains a section on ! Common ! Misunderstandings with GNU C++.

    --- 901,908 ----

    In addition to the problems listed above, the manual contains a section on ! ! Common Misunderstandings with GNU C++.

    diff -Nrc3pad gcc-3.4.3/config/ChangeLog gcc-3.4.4/config/ChangeLog *** gcc-3.4.3/config/ChangeLog Fri Nov 5 03:33:15 2004 --- gcc-3.4.4/config/ChangeLog Thu May 19 07:46:27 2005 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-19 Release Manager + + * GCC 3.4.4 released. + 2004-11-04 Release Manager * GCC 3.4.3 released. diff -Nrc3pad gcc-3.4.3/config-ml.in gcc-3.4.4/config-ml.in *** gcc-3.4.3/config-ml.in Mon Jan 5 00:41:14 2004 --- gcc-3.4.4/config-ml.in Thu Jan 13 00:50:40 2005 *************** ml_realsrcdir=${srcdir} *** 108,113 **** --- 108,118 ---- ml_verbose=--verbose for option in ${ac_configure_args} do + # strip single quotes surrounding individual options + case $option in + \'*\') eval option=$option ;; + esac + case $option in --*) ;; -*) option=-$option ;; diff -Nrc3pad gcc-3.4.3/configure gcc-3.4.4/configure *** gcc-3.4.3/configure Thu Nov 4 17:05:21 2004 --- gcc-3.4.4/configure Tue Mar 8 17:31:40 2005 *************** rm -f conftestsed.out *** 818,827 **** moveifchange=${srcdir}/move-if-change # Set srcdir to "." if that's what it is. # This is important for multilib support. pwd=`${PWDCMD-pwd}` - srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` if test "${pwd}" = "${srcpwd}" ; then srcdir=. fi --- 818,834 ---- moveifchange=${srcdir}/move-if-change + srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` + + # We pass INSTALL explicitly to sub-makes. Make sure that it is not + # a relative path. + if test "$INSTALL" = "${srcdir}/install-sh -c"; then + INSTALL="${srcpwd}/install-sh -c" + fi + # Set srcdir to "." if that's what it is. # This is important for multilib support. pwd=`${PWDCMD-pwd}` if test "${pwd}" = "${srcpwd}" ; then srcdir=. fi *************** test -n "$target_alias" && ncn_target_to *** 2855,2861 **** # Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args. set dummy ${ncn_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2859: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2862,2868 ---- # Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args. set dummy ${ncn_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2866: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_AR" ; then *** 2888,2894 **** # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2892: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2895,2901 ---- # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2899: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2927,2933 **** # Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args. set dummy ${ncn_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2931: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2934,2940 ---- # Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args. set dummy ${ncn_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2938: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_AS" ; then *** 2960,2966 **** # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2964: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2967,2973 ---- # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2971: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2999,3005 **** # Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ncn_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3003: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3006,3012 ---- # Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ncn_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3010: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_DLLTOOL" ; then *** 3032,3038 **** # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3036: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3039,3045 ---- # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3043: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3071,3077 **** # Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args. set dummy ${ncn_tool_prefix}ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3075: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3078,3084 ---- # Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args. set dummy ${ncn_tool_prefix}ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3082: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_LD" ; then *** 3104,3110 **** # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3108: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3111,3117 ---- # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3115: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3143,3149 **** # Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args. set dummy ${ncn_tool_prefix}nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3147: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3150,3156 ---- # Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args. set dummy ${ncn_tool_prefix}nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3154: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_NM" ; then *** 3176,3182 **** # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3180: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3183,3189 ---- # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3187: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3215,3221 **** # Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ncn_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3219: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3222,3228 ---- # Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ncn_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3226: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_RANLIB" ; then *** 3248,3254 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3252: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3255,3261 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3259: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3287,3293 **** # Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args. set dummy ${ncn_tool_prefix}windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3291: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3294,3300 ---- # Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args. set dummy ${ncn_tool_prefix}windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3298: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_WINDRES" ; then *** 3320,3326 **** # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3324: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3327,3333 ---- # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3331: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3359,3365 **** # Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args. set dummy ${ncn_tool_prefix}objcopy; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3363: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3366,3372 ---- # Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args. set dummy ${ncn_tool_prefix}objcopy; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3370: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_OBJCOPY" ; then *** 3392,3398 **** # Extract the first word of "objcopy", so it can be a program name with args. set dummy objcopy; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3396: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3399,3405 ---- # Extract the first word of "objcopy", so it can be a program name with args. set dummy objcopy; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3403: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3431,3437 **** # Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args. set dummy ${ncn_tool_prefix}objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3435: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3438,3444 ---- # Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args. set dummy ${ncn_tool_prefix}objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3442: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_OBJDUMP" ; then *** 3464,3470 **** # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3468: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3471,3477 ---- # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3475: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3513,3519 **** # Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3517: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3520,3526 ---- # Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3524: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_AR_FOR_TARGET" ; *** 3546,3552 **** # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3550: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3553,3559 ---- # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3557: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3585,3591 **** # Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3589: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3592,3598 ---- # Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3596: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_AS_FOR_TARGET" ; *** 3618,3624 **** # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3622: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3625,3631 ---- # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3629: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3657,3663 **** # Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3661: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3664,3670 ---- # Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3668: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_DLLTOOL_FOR_TARG *** 3690,3696 **** # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3694: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3697,3703 ---- # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3701: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3729,3735 **** # Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3733: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3736,3742 ---- # Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3740: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_LD_FOR_TARGET" ; *** 3762,3768 **** # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3766: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3769,3775 ---- # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3773: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3801,3807 **** # Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3805: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3808,3814 ---- # Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3812: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_NM_FOR_TARGET" ; *** 3834,3840 **** # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3838: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3841,3847 ---- # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3845: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3873,3879 **** # Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3877: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3880,3886 ---- # Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3884: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_RANLIB_FOR_TARGE *** 3906,3912 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3910: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3913,3919 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3917: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3945,3951 **** # Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3949: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3952,3958 ---- # Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3956: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$ac_cv_prog_WINDRES_FOR_TARG *** 3978,3984 **** # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3982: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3985,3991 ---- # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3989: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${ *** 4045,4051 **** NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:4049: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" --- 4052,4058 ---- NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:4056: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" *************** trap 'rm -f $CONFIG_STATUS conftest*; ex *** 4152,4185 **** # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. ! # ! # If the first sed substitution is executed (which looks for macros that ! # take arguments), then we branch to the quote section. Otherwise, ! # look for a macro that doesn't take arguments. ! cat >confdef2opt.sed <<\_ACEOF ! t clear ! : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g ! t quote ! s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g ! t quote ! d ! : quote ! s,[ `~#$^&*(){}\\|;'"<>?],\\&,g ! s,\[,\\&,g ! s,\],\\&,g ! s,\$,$$,g ! p ! _ACEOF ! # We use echo to avoid assuming a particular line-breaking character. ! # The extra dot is to prevent the shell from consuming trailing ! # line-breaks from the sub-command output. A line-break within ! # single-quotes doesn't work because, if this script is created in a ! # platform that uses two characters for line-breaks (e.g., DOS), tr ! # would break. ! ac_LF_and_DOT=`echo; echo .` ! DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` ! rm -f confdef2opt.sed # Without the "./", some shells look in PATH for config.status. --- 4159,4173 ---- # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. ! cat > conftest.defs <<\EOF ! s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g ! s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g ! s%\[%\\&%g ! s%\]%\\&%g ! s%\$%$$%g ! EOF ! DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` ! rm -f conftest.defs # Without the "./", some shells look in PATH for config.status. diff -Nrc3pad gcc-3.4.3/configure.in gcc-3.4.4/configure.in *** gcc-3.4.3/configure.in Thu Nov 4 17:05:20 2004 --- gcc-3.4.4/configure.in Tue Mar 8 17:31:40 2005 *************** AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS) *** 78,87 **** moveifchange=${srcdir}/move-if-change # Set srcdir to "." if that's what it is. # This is important for multilib support. pwd=`${PWDCMD-pwd}` - srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` if test "${pwd}" = "${srcpwd}" ; then srcdir=. fi --- 78,94 ---- moveifchange=${srcdir}/move-if-change + srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` + + # We pass INSTALL explicitly to sub-makes. Make sure that it is not + # a relative path. + if test "$INSTALL" = "${srcdir}/install-sh -c"; then + INSTALL="${srcpwd}/install-sh -c" + fi + # Set srcdir to "." if that's what it is. # This is important for multilib support. pwd=`${PWDCMD-pwd}` if test "${pwd}" = "${srcpwd}" ; then srcdir=. fi diff -Nrc3pad gcc-3.4.3/contrib/ChangeLog gcc-3.4.4/contrib/ChangeLog *** gcc-3.4.3/contrib/ChangeLog Fri Nov 5 03:33:18 2004 --- gcc-3.4.4/contrib/ChangeLog Thu May 19 07:46:30 2005 *************** *** 1,3 **** --- 1,27 ---- + 2005-05-19 Release Manager + + * GCC 3.4.4 released. + + 2005-03-21 Zack Weinberg + + Merge from mainline: + + 2005-03-18 Alexandre Oliva + + * gcc_update (silent): Unset instead of initializing to null. + + 2005-03-18 Andreas Schwab + + * gcc_update (apply_patch): Properly quote $1. + + 2005-03-18 Zack Weinberg + + * gcc_update: Add --silent option. + + 2005-01-17 David O'Brien + + * contrib/gcc_update: Explicitly update the branch. + 2004-11-04 Release Manager * GCC 3.4.3 released. diff -Nrc3pad gcc-3.4.3/contrib/gcc_update gcc-3.4.4/contrib/gcc_update *** gcc-3.4.3/contrib/gcc_update Wed Jun 9 09:15:14 2004 --- gcc-3.4.4/contrib/gcc_update Tue Mar 22 06:42:33 2005 *************** *** 19,24 **** --- 19,27 ---- # If the first parameter is --list, a list of the generated files and # their dependencies will be printed; --help prints this message. # + # If the first parameter is --silent, this script prints nothing other + # than error messages; the second parameter is then interpreted as above. + # # Examples: # # contrib/gcc_update -r gcc_latest_snapshot *************** *** 29,35 **** # contrib/gcc_update --list # # ! # (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation # Originally by Gerald Pfeifer , August 1998. # # This script is Free Software, and it can be copied, distributed and --- 32,38 ---- # contrib/gcc_update --list # # ! # (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation # Originally by Gerald Pfeifer , August 1998. # # This script is Free Software, and it can be copied, distributed and *************** UPDATE_OPTIONS=-Pd *** 51,56 **** --- 54,68 ---- # Arrange for the value of $0 to be available for functions self=$0 + # This function prints its arguments to standard output unless + # "silent" is set. + unset silent + chat () { + if [ -z "$silent" ]; then + echo "$@" + fi + } + # This function prints a list of all generated files, along with their # dependencies. Note that only one target is supported per line: the # colon is stripped from the output. *************** touch_files () { *** 114,120 **** echo ':' >> Makefile.$$ echo ' @for f in $? $@; do test -f $$f || exit 0; done; \' >> Makefile.$$ echo ' echo Touching $@...; \' >> Makefile.$$ ! echo ' echo Touching $@... 1>&2; \' >> Makefile.$$ echo ' touch $@' >> Makefile.$$ files_and_dependencies | sed 's,[^ ]* ,,;s,$, :,' >> Makefile.$$ while ${MAKE-make} -s -f Makefile.$$ all | grep . > /dev/null; do --- 126,132 ---- echo ':' >> Makefile.$$ echo ' @for f in $? $@; do test -f $$f || exit 0; done; \' >> Makefile.$$ echo ' echo Touching $@...; \' >> Makefile.$$ ! chat ' echo Touching $@... 1>&2; \' >> Makefile.$$ echo ' touch $@' >> Makefile.$$ files_and_dependencies | sed 's,[^ ]* ,,;s,$, :,' >> Makefile.$$ while ${MAKE-make} -s -f Makefile.$$ all | grep . > /dev/null; do *************** touch_files () { *** 128,148 **** # this script. By re-execing it, we ensure that the appropriate # dependencies and rules will be used. touch_files_reexec () { ! echo "Adjusting file timestamps" ! exec ${CONFIG_SHELL-/bin/sh} $self --touch } # This functions applies a patch to an existing tree. apply_patch () { ! if [ -f $1 ]; then echo "Applying patch file $1" ! case "$1" in *gz) ! gzip -d -c $1 | patch -p1 ;; *bz2) ! bzip2 -d -c $1 | patch -p1 ;; *) ! cat $1 | patch -p1 ;; esac fi touch_files_reexec --- 140,160 ---- # this script. By re-execing it, we ensure that the appropriate # dependencies and rules will be used. touch_files_reexec () { ! chat "Adjusting file timestamps" ! exec ${CONFIG_SHELL-/bin/sh} $self ${silent+"--silent"} --touch } # This functions applies a patch to an existing tree. apply_patch () { ! if [ -f "$1" ]; then echo "Applying patch file $1" ! case $1 in *gz) ! gzip -d -c "$1" | patch -p1 ;; *bz2) ! bzip2 -d -c "$1" | patch -p1 ;; *) ! patch -p1 < "$1";; esac fi touch_files_reexec *************** if [ ! -f gcc/version.c ]; then *** 155,160 **** --- 167,179 ---- fi case "$1" in + --silent) + silent=t + shift + ;; + esac + + case "$1" in # First of all, check whether we are going to process a patch. --patch) if test "$#" != 2; then *************** else *** 208,215 **** set -- $UPDATE_OPTIONS ${1+"$@"} fi ! echo "Updating CVS tree" ! $GCC_CVS -q update ${1+"$@"} if [ $? -ne 0 ]; then (touch_files_reexec) echo "CVS update of full tree failed." >&2 --- 227,234 ---- set -- $UPDATE_OPTIONS ${1+"$@"} fi ! chat "Updating CVS tree" ! $GCC_CVS -q ${silent+-Q} update -r gcc-3_4-branch ${1+"$@"} if [ $? -ne 0 ]; then (touch_files_reexec) echo "CVS update of full tree failed." >&2 diff -Nrc3pad gcc-3.4.3/contrib/reghunt/ChangeLog gcc-3.4.4/contrib/reghunt/ChangeLog *** gcc-3.4.3/contrib/reghunt/ChangeLog Fri Nov 5 03:33:21 2004 --- gcc-3.4.4/contrib/reghunt/ChangeLog Thu May 19 07:46:37 2005 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-19 Release Manager + + * GCC 3.4.4 released. + 2004-11-04 Release Manager * GCC 3.4.3 released. diff -Nrc3pad gcc-3.4.3/contrib/regression/ChangeLog gcc-3.4.4/contrib/regression/ChangeLog *** gcc-3.4.3/contrib/regression/ChangeLog Fri Nov 5 03:33:24 2004 --- gcc-3.4.4/contrib/regression/ChangeLog Thu May 19 07:46:40 2005 *************** *** 1,3 **** --- 1,7 ---- + 2005-05-19 Release Manager + + * GCC 3.4.4 released. + 2004-11-04 Release Manager * GCC 3.4.3 released. diff -Nrc3pad gcc-3.4.3/gcc/ChangeLog gcc-3.4.4/gcc/ChangeLog *** gcc-3.4.3/gcc/ChangeLog Fri Nov 5 03:33:38 2004 --- gcc-3.4.4/gcc/ChangeLog Thu May 19 07:47:08 2005 *************** *** 1,3 **** --- 1,1409 ---- + 2005-05-19 Release Manager + + * GCC 3.4.4 released. + + 2005-05-11 Mark Mitchell + + Revert: + 2005-05-10 H.J. Lu + Backport from mainline + 2004-02-12 Richard Kenner + * function.c (fixup_var_refs): Save volatile_ok and set to 1. + * expr.c (emit_block_move_via_movstr): Save and restore + volatile_ok. + 2005-05-09 Grigory Tolstolytkin + Backport from mainline + 2004-02-12 Richard Kenner + * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill previous + MEM_VOLATILE in REF. + + 2005-05-11 Ben Elliston + + * dwarf2out.c: Revert my 2005-05-10 patch. + + 2005-05-10 H.J. Lu + + Backport from mainline + 2004-02-12 Richard Kenner + * function.c (fixup_var_refs): Save volatile_ok and set to 1. + * expr.c (emit_block_move_via_movstr): Save and restore + volatile_ok. + + 2005-05-10 Jakub Jelinek + + * config/i386/i386.md (sse_mov?fcc* splitters): Add mode to + IF_THEN_ELSE, remove mode from MATCH_OPERATOR. Fix a typo. + + 2005-05-09 Grigory Tolstolytkin + + Backport from mainline + 2004-02-12 Richard Kenner + * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill previous + MEM_VOLATILE in REF. + + 2005-05-10 Ben Elliston + + PR debug/16676 + * dwarf2out.c (dwarf2out_decl): Always set context_die to NULL, + even when debug_info_level is DINFO_LEVEL_TERSE. + + 2005-05-08 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Use emit_insn_after + when adding the save Z instruction so that it is part of the good BB. + (reg_or_some_mem_operand): Do not allow the 68HC12 address indirect + addressing mode as it is not supported by bset and bclr. + (m68hc11_gen_movhi): Fix invalid generation of indexed indirect + addressing with movw. + (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for + 68HC12. + * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only + for 68HC11. + ("*movhi_68hc12"): Handle movhi_const0. + ("*subhi3", "subqi3"): Use general_operand for operand 1. + ("*subhi3_zext"): Likewise. + + 2005-05-08 Stephane Carrez + + PR target/19051 + * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for operand + 1 and fix constraints. + ("mulqihi3"): Use general_operand for operand 2. + + 2005-05-08 Richard Sandiford + + PR target/21416 + * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT + comparisons. + * config/mips/mips.md (sungt_df, sunge_df, sungt_sf, sunge_sf): New + patterns. + + 2005-05-08 Stephane Carrez + + PR target/16925 + * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of + 64-bit constants on 64-bit hosts. + (m68hc11_split_logical): Simplify. + (m68hc11_split_move): Likewise. + + 2005-05-06 Bruce Korb + Joseph S. Myers + + * fixinc/inclhack.def: Correct backslashes + * fixinc/fixincl.x: regen + + 2005-05-02 Janis Johnson + + PR 19985 + * gcov-io.h: Declare gcov external functions hidden. + + 2005-05-01 Gerald Pfeifer + + * config/freebsd-spec.h (FBSD_CPP_SPEC): Revert last change. + + 2005-05-01 Gerald Pfeifer + + Backport from mainline + * doc/install.texi (Specific): Avoid using asterisks in @anchor + names related to target triplets. + Remove i?86-*-esix from platform directory. + Remove powerpc-*-eabiaix from platform directory. + + 2005-05-01 Eric Botcazou + + PR bootstrap/20633 + * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch). + + 2005-05-01 Gerald Pfeifer + + * doc/install.texi (Specific): Omit dots in the @anchors names + for i?86-*-sco3.2v5* and sparc-sun-solaris2.7. + Omit underscores for x86_64-*-* and the "all ELF targets" entry. + + 2005-05-01 Joseph S. Myers + + PR c/21213 + * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of + transparent union. + + 2005-05-01 Joseph S. Myers + + PR c/20740 + * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not + aborts, if __gcc_host_wide_int__ is not properly defined. + (init_dynamic_diag_info): Give errors, not aborts, if location_t, + tree or __gcc_host_wide_int__ are not properly defined. + + 2005-05-01 Joseph S. Myers + + PR c/11459 + PR c/18502 + * gcc.c (cpp_unique_options): Remove %{trigraphs}. + (cpp_options, cc1_options): Change %{std*} %{ansi} to + %{std*&ansi&trigraphs}. + + 2005-04-29 Alan Modra + + PR target/21098 + * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New. + * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above. + + 2005-04-25 Ralf Corsepius + + * config.gcc (avr-*-*): Remove redundant "case". + + 2005-04-25 Ralf Corsepius + + PR target/17822 + * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove. + + 2005-04-25 Ralf Corsepius + + PR target/17824 + * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove. + + 2005-04-22 David Edelsohn + + Backport from mainline. + * config/rs6000/rs6000.c (rs6000_init_libfuncs): Set TFmode + optabs to xlq names if TARGET_XL_COMPAT. + + 2005-04-22 Eric Botcazou + + * doc/invoke.texi (SPARC options): Document that -mapp-regs + is turned off by default on Solaris. + + 2005-04-15 Dave Korn + + * gcc.c (default_compilers): Clarify obscure error message when + reading from standard input. + + 2005-04-15 Eric Botcazou + + * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32. + + 2005-04-11 David Edelsohn + + Backport from mainline: + * config/rs6000/aix52.h (atoll): Declare. + + 2005-04-08 Ulrich Weigand + + Backport from mainline: + * config/s390/tpf.h (ASM_SPEC): Define. + + 2005-04-06 Dale Johannesen + + PR middle-end/19225 + * calls.c (expand_call): Flush pending deferrals before + throwing call. + + 2005-04-06 Eric Botcazou + + PR target/17245 + * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'. + Revert 2004-10-08 patch. Reject TFmode LO_SUM in 32-bit mode. + + 2005-04-05 James E. Wilson + + PR target/20670 + * unwind-ia64.c (uw_intall_context): Add missing load of r27. + + 2005-04-04 Eric Botcazou + + * doc/invoke.texi (SPARC options): Document that + -mlittle-endian is not supported on Linux either. + + 2005-03-25 Gabriel Dos Reis + + PR c++/18644 + * doc/invoke.texi (-Wsynth): Don't document, as it now is void of + semantics. + + 2005-03-31 Alan Modra + + PR target/20611 + * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline + label operand. Remove (use (unspec..)). Don't emit a label on + the offset word. + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't + generate inline label for load_toc_v4_PIC_1b. + (rs6000_emit_load_toc_table): Likewise. + + 2005-03-31 Alan Modra + + * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus. + (powerpc64-*-linux*): Use it. Rearrange tm_file assignment. + (powerpc-*-linux*): Build a biarch compiler when --enable-targets + is given with "powerpc64*" or "all", or when --with-cpu chooses + a 64-bit cpu. + + 2005-03-30 Alan Modra + + * doc/install.texi: Update binutils requirement for powerpc*-linux. + + 2005-03-25 John David Anglin + + PR target/15491 + * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs. + (vax_rtx_costs): Return false when passed unsupported rtx's. Handle + FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC, + PRE_DEC, NEG and NOT. + + 2005-03-23 Uros Bizjak + + * simplify-rtx.c (simplify_unary_operation) : Add missing break + in code that deals with logicals on floats. + + 2005-03-22 Uros Bizjak + + PR target/14981 + Backport from mainline + 2004-02-18 Jan Hubicka + * simplify-rtx.c (simplify_unary_operation): Deal with logicals on + floats. + (simplify_binary_operation): Deal with logicals on floats. + * i386.md (SSE fabs splitters): Emit new patterns. + (SSE cmov splitters): Likewise. + (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3 + (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use + subregs. + (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill. + (sse_anddf3, sse_nanddf3, sse_xordf3): Kill. + + 2005-03-20 Marek Michalkiewicz + + PR target/18551 + * config/avr/avr.c (avr_output_function_prologue): Do not use + current_function_name() in a label, use a local label instead. + + 2005-03-19 Joseph S. Myers + + * c.opt (ansi, std=iso9899:1990, std=iso9899:1999, + std=iso9899:199x): Correct descriptions. + + 2005-03-19 Andy Hutchinson + + PR target/18251 + * config/avr/avr.md (movstrhi): Rewrite as RTL loop. + (*movstrqi_insn): Delete. + (*movstrhi): Delete. + + 2005-03-17 Richard Sandiford + + PR rtl-optimization/19683 + * reload1.c (choose_reload_regs): Pass the number of bits, not the + number of bytes, to smallest_int_for_mode. Fix arguments to + REG_CANNOT_CHANGE_MODE_P. + + 2005-03-17 Alan Modra + + * config/rs6000/linux-unwind.h: New file backported from gcc-4.0. + * config/rs6000/linux.h: #include linux-unwind.h in place of all + unwind support in this file. + * config/rs6000/linux64.h: Likewise. + + 2005-03-16 Roger Sayle + + PR rtl-optimization/17825 + Backport from mainline + 2004-11-27 Jakub Jelinek + * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new) + or not. + + 2005-03-16 Roger Sayle + + PR target/18371 + Backport from mainline + 2004-12-19 Steven Bosscher + * config/i386/i386.c (ix86_split_to_parts): Use an array with + four elements for decoding a CONST_DOUBLE on 64 bits targets. + + 2005-03-14 Alan Modra + + * config.gcc: Remove excess indentation. + (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5. + + 2005-03-13 Marek Michalkiewicz + + PR target/20288 + * config/avr/avr.c (print_operand): Add 'p' and 'r'. + (out_movhi_r_mr): Read low byte of volatile MEM first. + (out_movhi_mr_r): Write high byte of volatile MEM first. + + 2005-03-10 Aldy Hernandez + + * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section. + + 2005-03-08 James E Wilson + + Backport from mainline + 2004-04-13 James E Wilson + PR middle-end/20364 + * c-opt.c (c_common_post_options): If this_input_filename is NULL, + increment errorcount and return false instead of true. + + Backport from mainline + 2005-02-21 James E Wilson + * toplev.c (backend_init): Don't call init_adjust_machine_modes here. + (do_compile): Do call it here. + + 2005-03-07 David Billinghurst + + * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv. + + 2005-03-03 Alan Modra + + PR target/20277 + * config/rs6000/rs6000.c (rs6000_override_options): Don't allow + -mcpu to override any other explicitly given flags. + + 2005-03-02 Mark Mitchell + + PR c++/19916 + * varasm.c (initializer_constant_valid_p): Allow conversions + between OFFSET_TYPEs. Tidy. + + 2005-02-28 John David Anglin + + PR target/19819 + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during + and after reload in REG+REG indexed addresses without REG_POINTER + set in the base and not set in the index. + + 2005-02-27 John David Anglin + + PR rtl-optimization/17728 + * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for + operand 0 from general_operand to move_dest_operand. + + 2005-02-26 Paolo Carlini + + * doc/extend.texi (Declaring Attributes of Functions): + Clarify that the alternative way doesn't work in GNU C++. + + 2005-02-25 David Edelsohn + + Backport from mainline: + 2005-02-24 David Edelsohn + PR target/19019 + * reload.c (operands_match_p): Only increment register number for + SCALAR_INT_MODE_P modes in multiple hard registers. + * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints. + Fix formatting. + + 2005-02-24 Jakub Jelinek + + PR target/19019 + * Makefile.in (LIB2FUNCS_SHARED_EXTRA, LIB2ADD_SH): New. + (libgcc.mk): Depend on $(LIB2ADD_SH), pass LIB2ADD_SH to mklibgcc. + (LIBGCC_DEPS): Add $(LIB2ADD_SH). + * mklibgcc.in: Handle LIB2ADD_SH. + * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove darwin-ldouble.c. + (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_SHARED_EXTRA): Set. + * config/rs6000/darwin-ldouble.c: Protect .symver asm also with + defined IN_LIBGCC2_S. + * config/rs6000/darwin-ldouble-shared.c: New file. + + 2005-02-23 Michael Beach + + PR target/20159 + * config/sparc/t-elf (startup files): Assemble with CPP. + + 2005-02-17 Gerald Pfeifer + + * doc/install.texi (Specific): Update link for Darwin-specific + tool binary site. + + 2005-02-16 David Edelsohn + + PR target/19019 + Backport from mainline: + 2005-02-16 David Edelsohn + * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver. + * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same. + 2005-02-15 David Edelsohn + Alan Modra + * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd. + (_xlqsub): Rename to __gcc_qsub. + (_xlqmul): Rename to __gcc_qmul. + (_xlqdiv): Rename to __gcc_qdiv. + Provide versioned symbol aliases with old names. + * config/rs6000/libgcc-ppc64.ver: Rename symbols. + * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols. + * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New. + * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New. + * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New. + 2005-02-14 David Edelsohn + * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand. + (trunctfdf2_internal1): New. + (trunctfdf2_internal2): Renamed from trunctfdf2. + 2005-02-13 David Edelsohn + * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to + {TARGET,MASK}_XL_COMPAT. + (SUBTARGET_SWITCHES): Rename xl-call to xl-compat. Use + MASK_XL_COMPAT. + * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove. + * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to + TARGET_XL_COMPAT. + (rs6000_arg_partial_bytes): Same. + (rs6000_generate_compare): Generate PARALLEL for compare if TFmode + and XL compatibility enabled. + * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT. + * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT + test to final condition. + (cmptf_internal2): New. + * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to + xl-compat. Add TFmode information to description. + + 2005-02-16 Eric Christopher + + PR preprocessor/19077 + * cppmacro.c (cpp_macro_definition): Move handling of whitespace + to PREV_WHITE conditional. Remove overloading of len + variable. + + 2005-02-16 Eric Botcazou + + PR target/19715 + * config.gcc (sparc-*-elf*): Include sparc/sol2-gld.h. + (sparc-*-rtems*): Likewise. + (sparclite-*-elf*): Likewise. + (sparc86x-*-elf*): Likewise. + (sparc64-*-elf*): Likewise. + + 2005-02-11 John David Anglin + + PR middle-end/19697 + 2005-01-30 Roger Sayle + * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer + constant as the second operand and a register as the third. + + 2005-02-11 Jakub Jelinek + + PR c++/19666 + 2004-06-08 Andrew Pinski + * fold-const.c (fold_convert): Treat OFFSET_TYPE like + POINTER_TYPE and INTEGER_TYPE. + + * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of + crtend.o if -pie. Use %{x:a;:b} spec syntax. + + 2005-02-10 Jakub Jelinek + + PR rtl-optimization/19579 + * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up + both A and B, see if they don't clobber registers the other expr uses. + + 2005-02-08 Alan Modra + + PR target/19803 + * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%. + + 2005-02-07 Ralf Corsepius + + * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200. + + 2005-02-03 Richard Guenther + + PR middle-end/19775 + * builtins.c (fold_builtin_sqrt): Transform + sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not + pow(x,y*0.5). + + 2005-02-01 Richard Earnshaw + + PR target/16201 + * arm.c (arm_eliminable_register): New function. + (adjacent_mem_locations): Don't allow eliminable registers. Use + HOST_WIDE_INT for address offsets. + * arm-protos.h (arm_eliminable_register): Add prototype. + + 2005-01-31 Daniel Jacobowitz + + 2004-09-22 Mark Mitchell + * gcc/dwarf2out.c (scope_die_for): If the containing scope is a + TRANSLATION_UNIT_DECL, consider it to be a global. + + 2005-01-29 Alan Modra + + * unwind-dw2.c (execute_stack_op): Add missing cases for + DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor. + + 2005-01-28 Stephane Carrez + + PR target/15384 + * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a + configuration part of dp-bit.c to be lost. + + 2005-01-27 Ulrich Weigand + + PR target/17771 + Backport from mainline: + * config/s390/s390.md ("reload_outti"): Remove predicate for + output operand. Abort if operand is not a MEM. + ("reload_outdi", "reload_outdf"): Likewise. + + 2005-01-27 Marek Michalkiewicz + + PR target/19293 + PR target/19329 + * config/avr/avr.c (notice_update_cc): Only set condition code for + ashrqi3 if shift count > 0. + (out_shift_with_cnt): Handle shift count <= 0 as a no-op. + (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out, + ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift + count <= 0 as a no-op, and shift count >= width by copying zero + or sign bit to all bits of the result. + * config/avr/avr.md (all shifts): Add alternatives for zero shift + count, with attribute "length" set to 0 and "cc" set to "none". + + 2005-01-27 J"orn Rennecke + + * real.c (do_add): Initialize signalling and canonical members. + + * real.c (real_from_integer): Zero out destination. + + 2005-01-26 Ulrich Weigand + + Backport from mainline: + * dbxout.c (dbxout_symbol_location): Resolve constant pool references + even for variables with NULL DECL_INITIAL. + + 2005-01-25 Richard Earnshaw + + PR target/19393 + Backport: + 2004-03-30 Nick Clifton + * config/arm/arm.md (thumb_jump): Reduce the backward branch + range, and increase the forward branch range, to allow for + the fact that the PC will be off by 4. + + 2005-01-24 Richard Henderson + Aldy Hernandez + + * regrename.c (note_sets): Handle subregs. + + 2005-01-24 Jakub Jelinek + + * flow.c (propagate_one_insn): Formatting. + + PR middle-end/19551 + * flow.c (libcall_dead_p): Be more conservative if unsure. + If there are any instructions between insn and call, see if they are + all dead before saying the libcall is dead. + + 2005-01-22 Ralf Corsepius + + PR target/19548 + * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4. + (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h). + (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC. + + 2005-01-19 Jakub Jelinek + + PR rtl-optimization/15139 + * combine.c: Include params.h. + (count_rtxs): New function. + (record_value_for_reg): If replace_rtx would replace at least + 2 occurrences of REG in VALUE and TEM is really large, replace REG with + (clobber (const_int 0)) instead of TEM. + * params.def (PARAM_MAX_LAST_VALUE_RTL): New. + * params.h (MAX_LAST_VALUE_RTL): New. + * Makefile.in (combine.o): Depend on $(PARAMS_H). + * doc/invoke.texi (--param max-last-value-rtl=N): Document. + + PR c/17297 + * c-typeck.c (digest_init): Only call build_vector if all constructor + elements are *_CST nodes. + + PR middle-end/19164 + * c-typeck.c (digest_init): Only call build_vector if inside_init + is a CONSTRUCTOR. + + 2005-01-18 Eric Botcazou + + PR debug/16261 + Backport from mainline: + 2004-01-27 Devang Patel + + * dwarf2out.c: (remove_child_TAG): New function. + (gen_subprogram_die): Do not remove all children dies while reusing + declaration die for definition. Instead, selectively remove only + formal parameters. + + 2005-01-18 Eric Botcazou + + PR rtl-optimization/19296 + * combine.c (simplify_comparison): Rewrite the condition under + which a non-paradoxical SUBREG of a PLUS can be lifted when + compared against a constant. + + 2005-01-17 John David Anglin + + * varasm.c (process_pending_assemble_output_defs): Fix previous change. + + 2005-01-16 John David Anglin + + PR target/16304 + * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default. + * toplev.c (compile_file): Call process_pending_assemble_output_defs + just before targetm.asm_out.file_end. + * tree.h (process_pending_assemble_output_defs): Declare. + * varasm.c (assemble_output_def, process_pending_assemble_output_defs): + New functions. + (assemble_alias): Defer generation of assembly code for defines when + TARGET_DEFERRED_OUTPUT_DEFS is true. + * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define. + * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define. + * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document. + + 2005-01-15 Ralf Corsepius + + * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0. + * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS): + Remove little endian multilib variants. + Add mips32 multilib variant. + + 2005-01-14 David Edelsohn + + * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert last change. + + 2005-01-13 David O'Brien + + Backport from mainline: + * config/freebsd-spec.h: Make KSE pthread lib logic the default. + + 2005-01-13 David Edelsohn + + * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE + definition to 600. + + 2005-01-13 Ralf Corsepius + + * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu. + + 2004-01-12 David Mosberger + James E Wilson + + PR target/18987 + * config/ia64/ia64.c (process_set): For alloc insn, only call + process_epilogue is !frame_pointer_needed. + + PR target/13158 + * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on + sibcall alloc instruction. + (process_set): Handle sibcall alloc instruction. + + 2005-01-10 David Edelsohn + + PR target/18720 + Backport from mainline + * collect2.c (main): Set aixrtl_flag for -brtl option. + (resolve_lib_name): Search for .so file extension before .a + if aixrtl_flag set. + + 2005-01-08 Jakub Jelinek + + PR rtl-optimization/19012 + * config/i386/i386.md (addqi_1_slp): Set memory attribute. + + 2005-01-07 Eric Botcazou + + * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo. + * configure: Regenerate. + + 2005-01-07 Jakub Jelinek + + * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy + TYPE_MODE. + + 2005-01-06 Richard Sandiford + + PR rtl-opt/13299 + * loop.c (get_monotonic_increment, biased_biv_fits_mode_p, + biv_fits_mode_p, extension_within_bounds_p): New functions. + (check_ext_dependent_givs): Use them. + + 2005-01-05 Richard Henderson + + PR rtl-opt/10692 + * reload1.c (do_input_reload): Restrict the optimization deleteing + a previous output reload to RELOAD_FOR_INPUT. + + 2005-01-06 Jakub Jelinek + + Backport from mainline: + 2004-03-22 Diego Novillo + + * c-typeck.c (same_translation_unit_p): Fix pasto. + + 2005-01-02 Roger Sayle + Andrew Pinski + James E. Wilson + + PR rtl-optimization/12092 + * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK + is zero. + + 2004-12-30 Roger Sayle + + PR middle-end/19175 + * loop-unroll.c (expand_bct): Pass the code_label to the function + do_compare_rtx_and_jump, not the label ref. Clean-up style issues. + + 2004-12-27 John David Anglin + + * vax.c (vax_address_cost, vax_rtx_cost): Correct casts. + (vax_rtx_cost): Handle small offsets for both PLUS and MINUS. + + 2004-12-27 Steven Bosscher + John David Anglin + + rtl-optimization/12863 + * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define. + * config/vax/vax.md (casesi): Emit a test-and-branch to make sure + that the case is in range, to make sure the casesi insn is always + in range and never falls through. + (casesi1): Add comment to explain why casesi never falls through. + Remove the unnamed special case casesi pattern. + + 2004-12-27 John David Anglin + + PR c++/14607. + Backported from main. + * configure.ac (HAVE_GAS_NSUBSPA_COMDAT): Add check for .NSUBSPA + COMDAT support. + * configure. config.in: Rebuilt. + * config/pa/pa-protos.h (som_text_section_asm_op, + som_readonly_data_section, som_one_only_readonly_data_section, + som_one_only_data_section, forget_section): Declare. + * pa.c (override_options): Set init_machine_status to + pa_init_machine_status. + (pa_init_machine_status): New function. + (pa_output_function_epilogue): Call forget_section if TARGET_SOM and + TARGET_GAS. + (pa_asm_output_mi_thunk): Likewise. + (som_text_section_asm_op): New function. + (pa_select_section): Call som_one_only_readonly_data_section and + som_one_only_data_section when appropriate. + * pa.h (struct machine_function): Define. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, + SOM_READONLY_DATA_SECTION_FUNCTION, + SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION + SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New + macros. + * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete. + (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op. + (READONLY_DATA_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (READONLY_DATA_SECTION): Call som_readonly_data_section when not PIC. + (SUPPORTS_SOM_COMDAT): New define. + (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT. + (MAKE_DECL_ONE_ONLY): Rework common support. + + 2004-12-26 John David Anglin + + PR target/17643 + * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when + generating code for the portable runtime. + + 2004-12-25 Alan Modra + + PR target/19147 + * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete. + + 2004-12-23 Richard Henderson + + PR c/18282 + * c-decl.c (finish_enum): Retain precision acquired from an attribute. + + 2004-12-23 Alexandre Oliva + + PR target/16819 + * calls.c (load_register_parameters): Don't call use_regs when + nregs is zero. + + 2004-12-22 Richard Henderson + + PR target/19102 + * config/i386/i386.c (x86_inter_unit_moves): Disable. + (ix86_hard_regno_mode_ok): Disallow SSE2 and MMX scalar modes + in SSE registers when only SSE1 enabled. + + 2004-12-21 David O'Brien + + Backport from mainline: + * config/freebsd-spec.h: Use KSE pthread lib for -pthread. + + 2004-12-19 Richard Henderson + + * config/i386/i386.c (ix86_hard_regno_mode_ok): Always accept all SSE, + MMX, 3DNOW modes in SSE registers; always accept all MMX, 3DNOW modes + in MMX registers. + * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include + VALID_MMX_REG_MODE. + * config/i386/i386.md (movv4sf_internal, movv4si_internal, + movv2di_internal, movv2si_internal, movv4hi_internal, + movv2sf_internal, movv2df_internal, movv8hi_internal, + movv16qi_internal, movti_internal): Add leading '*' to name. + (movv2di_internal, movv2df_internal, movv8hi_internal, + movv16qi_internal, movv2df, movv8hi, movv16qi, movv2di, + pushv2di, pushv8hi, pushv16qi): Enable for SSE1. + (movv2si_internal, movv4hi_internal): Add SSE alternatives. + (movv8qi_internal, movv2sf_internal): Likewise. + (movtf): Simplify conditional. + (movv2sf, pushv2sf): Enable for MMX. + + 2004-12-19 Roger Sayle + + PR middle-end/19068 + * expr.c (expand_expr_real_1) : Ensure that target, op0 + and op1 are all registers (or constants) before expanding the RTL + comparison sequence [to avoid reg_overlap_mentioned (target, op1)]. + + 2004-12-18 Eric Botcazou + + PR rtl-optimization/16968 + * loop.c (scan_loop): Stop scanning the loop for movable + insns as soon as an optimization barrier is encountered. + + 2004-12-16 H.J. Lu + + PR other/18508 + * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix + to back up the existing shared library. + * config/arm/t-netbsd (SHLIB_LINK): Likewise. + * config/mips/t-iris5-6 (SHLIB_LINK): Likewise. + * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. + * config/sh/t-linux (SHLIB_LINK): Likewise. + * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. + * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. + * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. + * config/t-slibgcc-sld (SHLIB_LINK): Likewise. + + 2004-12-16 Roger Sayle + + PR middle-end/18493 + * c-typeck.c (c_finish_case): Rechain statements if we didn't + encounter any case labels or a default. + + 2004-12-16 Eric Botcazou + + PR middle-end/18882 + * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment + when passed -2 as 'align'. + (put_var_into_stack): Use 'bool' as the type for the three local + predicates. Adjust calls to put_reg_into_stack. + When passed a CONCAT, instruct put_reg_into_stack to use + a consecutive stack slot for the second part. + (put_reg_into_stack): Remove 'promoted_mode' parameter, add + 'consecutive_p' parameter. Turn the three predicates into 'bool' + parameters. Retrieve the register mode from 'reg'. + When consecutive_p is true, instruct assign_stack_local_1 to use + BITS_PER_UNIT alignment. + (put_addressof_into_stack): Use 'bool' as the type for the two + local predicates. Adjust call to put_reg_into_stack. + + 2004-12-16 Eric Botcazou + + PR middle-end/18590 + * function.c (fixup_var_refs_insns_with_hash): Do not invoke + fixup_var_refs_insn on insns marked as deleted. + + 2004-12-15 Richard Henderson + + PR target/19028 + * config/i386/i386.md (sse compare splitter): Test for SF and DFmode + explicitly instead of using VALID_SSE_REG_MODE. + + 2004-12-15 Richard Henderson + + PR target/19005 + * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with + optimize_size. + (swapqi_1): Rename from swapqi. Enable only for no partial reg + stall and optimize_size. + (swapqi_2): New. + (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode. + (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override. + + 2004-12-15 H.J. Lu + + PR target/18153 + * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports + -Bstatic/-Bdynamic option. + * config.in: Regenerated. + * configure: Likewise. + + * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static + -lunwind if possible. + + 2004-12-15 Richard Henderson + + PR target/19010 + * config/i386/i386.c (gen_reg_or_parallel): New. + (function_arg): Use it. + (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately, + MMX and 3DNOW separately. + (ix86_rtx_costs): Simplify FLOAT_EXTEND case. + * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ... + (VALID_SSE_REG_MODE): ... here. + * config/i386/i386.md (movv4sf_internal): Validate one MEM. + (movv4si_internal): Likewise. + (movv2di_internal): Likewise. Enable for SSE2 only. + (movv2di): Enable for SSE2 only. + (pushv4si): Enable for SSE1. + + 2004-12-15 Eric Botcazou + + PR c++/17972 + * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS + on the STMT_EXPR wrapping up the inlined body. + + 2004-12-15 Eric Botcazou + + PR preprocessor/15167 + * cppfiles.c (destroy_cpp_file): New function. + (should_stack_file): Make a new file if the + compared file is still stacked. + + 2004-12-15 Eric Botcazou + + PR other/18665 + * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2. + Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. + * libgcc-darwin.ver (GCC_3.4.4): Inherit from GCC_3.4. + Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. + * libgcc2.c (__addvsi3): Rename to __addvSI3. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__addvdi3): Rename to __addvDI3. + (__subvsi3): Rename to __subvSI3. Use word type for the result. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__subvdi3): Rename to __subvDI3. + (_mulvsi3): Rename to _mulvSI3. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (_mulvdi3): Rename to _mulvDI3. + (__negvsi2): Rename to __negvSI2. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__negvdi2): Rename to __negvDI2. + (__absvsi2): Rename to __absvSI2. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__absvdi2): Rename to __absvDI2. + * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2, + __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate + symbol and declare. + (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if + COMPAT_SIMODE_TRAPPING_ARITHMETIC. + + 2004-12-14 Steve Ellcey + + * doc/invoke.texi (IA-64 options): Add existing options that + weren't already listed. + + 2004-12-14 Jakub Jelinek + + PR middle-end/18951 + * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2): Avoid + using arguments passed to save_expr after that call. + + 2004-12-13 John David Anglin + + PR middle-end/18730 + * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When + the first/last insn is a sequence, return the first/last insn of the + sequence. + + 2004-12-13 Roger Sayle + + PR target/18002 + PR middle-end/18424 + Backport from mainline + + 2004-03-20 Richard Sandiford + * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h. + (GTFILES): Add $(srcdir)/dojump.h. + (gt-dojump.h): New dependency. + * dojump.c (and_reg, and_test, shift_test): New static variables. + (prefer_and_bit_test): New function. + (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1. + + 2004-03-21 Andrew Pinski + * dojump.c (prefer_and_bit_test): Fix which part of + the and_test is replaced. + + 2004-12-10 Roger Sayle + * dojump.c (do_jump): When attempting to reverse the effects of + fold_single_bit_test, we need to STRIP_NOPS and narrowing type + conversions, and handle BIT_XOR_EXPR that's used to invert the + sense of the single bit test. + + 2004-12-13 Richard Henderson + + PR target/17990 + * config/i386/i386.md (negsf2): Fix condition for using sse. + (negdf2, abssf2, absdf2): Likewise. + (negsf2_if, abssf2_if): Don't disable if sse enabled. + (movv4sf_internal splitter): Postpone til after reload. + (movv2di_internal splitter): Likewise. + + 2004-12-13 Richard Henderson + + PR middle-end/17930 + * toplev.c (rest_of_compilation): Fix computation of + preferred_incoming_stack_boundary. + + 2004-12-12 Richard Henderson + + PR rtl-opt/17186 + * reg-stack.c (move_for_stack_reg): Handle source register not + live with a nan. + + 2004-12-12 Richard Henderson + + PR target/18932 + * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand + and compare_operator to propagate the input CC mode to the output. + * config/i386/i386.c (compare_operator): New. + * config/i386/i386.h (PREDICATE_CODES): Add it. + * config/i386/i386-protos.h: Update. + + 2004-12-09 Richard Henderson + + PR c/18282 + * attribs.c (decl_attributes): Clear DECL_ALIGN when relaying out decl. + * c-common.c (handle_mode_attribute): Handle enumeral types. + + 2004-12-09 Richard Henderson + + PR target/17025 + * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New. + (test_qi_1, andqi_2): Do not promote to simode. + + 2004-12-07 David Mosberger + + PR target/18443 + * config/ia64/ia64.c (ia64_assemble_integer): Add support for + emitting unaligned pointer-sized integers. + + 2004-12-07 Eric Botcazou + + PR middle-end/17827 + * c-semantics.c (expand_unreachable_if_stmt): Invoke + expand_cond on the condition. + + 2004-12-06 Aldy Hernandez + + * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1. + + 2004-12-05 Richard Henderson + + PR target/18841 + * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New. + (builtin_setjmp_receiver_er_sl_1): Use it. + (builtin_setjmp_receiver_er_1): Likewise. + (builtin_setjmp_receiver_er, exception_receiver_er): Remove. + (builtin_setjmp_receiver): Don't split for explicit relocs until + after reload. + (exception_receiver): Likewise. + + 2004-12-05 Alan Modra + + * config/rs6000/rs6000.c (rs6000_assemble_integer): Fix typo. + + 2004-12-04 Richard Henderson + + * emit-rtl.c, expr.c, function.c, integrate.c, optabs.c, rtl.h: + Revert the patches for PR rtl-opt/15289. + + 2004-12-03 Eric Botcazou + + * integrate.c (expand_inline_function): Accept non-CONCAT arguments + for CONCAT parameters and invoke read_complex_part on them. + + 2004-12-02 Richard Henderson + + * expr.c (write_complex_part): Use simplify_gen_subreg when the + submode is at least as large as a word. + (read_complex_part): Likewise. + + 2004-12-02 Roger Sayle + + PR target/9908 + * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct + Intel assembler syntax by using %A1 instead of %*%1. + + 2004-12-02 Richard Henderson + + PR rtl-opt/15289 + * emit-rtl.c (gen_complex_constant_part): Remove. + (gen_realpart, gen_imagpart, subreg_realpart_p): Remove. + * expr.c (write_complex_part, read_complex_part): New. + (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push, + emit_move_complex_push, emit_move_complex, emit_move_ccmode, + emit_move_multi_word): Split out from ... + (emit_move_insn_1): ... here. + (expand_expr_real) : Use write_complex_part. + : Use read_complex_part. + : Likewise. + * function.c (assign_parms): Hard-code transformations + instead of using gen_realpart/gen_imagpart. + * integrate.c (initialize_for_inline): Likewise. + * optabs.c (expand_unop): Use read_complex_part/write_complex_part. + (expand_complex_abs): Likewise. + (expand_binop): Likewise. Rearrange to build a CONCAT at the end, + rather than creating a complex target at the beginning. + * rtl.h (gen_realpart, gen_imagpart, subreg_realpart_p): Remove. + (read_complex_part, write_complex_part): Declare. + + 2004-12-02 Alan Modra + + * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the + #ifdef RELOCATABLE_NEEDS_FIXUP. + + 2004-12-01 Nathanael Nerode + + PR preprocessor/17651 + * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply + flag_no_line_commands. + * c-ppoutput.c (pp_file_change): Remove now-redundant check of + flag_no_output. + + PR preprocessor/17610 + * directives.c (do_include_common): Error out if an empty filename + is given for #include (or #include_next or #import). + PR preprocessor/17610 + * testsuite/gcc.dg/cpp/empty-include.c: New testcase. + + 2004-12-02 Alan Modra + + PR target/16952 + * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace + #ifdef RELOCATABLE_NEEDS_FIXUP with if. + * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms + of target_flags_explicit. + * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch + case. Define as 0 for non-biarch. + + 2004-12-01 Richard Henderson + + * expr.c (optimize_bitfield_assignment_op): Split out from ... + (expand_assignment): ... here. Use handled_component_p to gate + get_inner_reference code. Simplify MEM handling. Special case + CONCAT destinations. + (get_inner_reference): Handle REAL/IMAGPART_EXPR. + (handled_component_p): Likewise. + + 2004-12-01 Alan Modra + + PR target/12817 + * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. + + 2004-11-30 Jakub Jelinek + + * fold-const.c (extract_muldiv_1) : If ctype is + unsigned and type signed, build ABS_EXPR with signed_type (ctype) + and only afterwards convert to ctype. + + 2004-11-29 Richard Henderson + + PR target/17224 + * config/ia64/ia64.c (sdata_symbolic_operand): Deny offsets + outside the referenced object. + + 2004-11-28 Andreas Fischer + Alan Modra + + PR target/16343 + * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow + functions, strings and thread-local vars. + + 2004-11-27 Alan Modra + + PR target/12769 + * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie + from rs6000_default_long_calls for libcalls. + + PR target/18686 + * config/rs6000/rs6000-c.c (rs6000_pragma_longcall): Use + integer_zerop and integer_onep instead of comparing against + canonical trees. + + 2004-11-25 Richard Henderson + + PR c++/6764 + * reload1.c (set_initial_eh_label_offset): New. + (set_initial_label_offsets): Use it. + + 2004-11-26 Alan Modra + + PR rtl-optimization/16356 + * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with + separate output register and one less jump. Enable for powerpc64. + (floatdisf2): Adjust for above. + + 2004-11-25 Ralf Corsepius + + * config.gcc (avr-*-rtems*): Fix typo. + + 2004-11-24 Uros Bizjak + + PR rtl-optimization/18614 + * simplify-rtx.c (simplify_binary_operation): Do not + simplify inner elements of constant arguments of + VEC_CONCAT insn. + + 2004-11-23 Eric Botcazou + + Backport from mainline: + 2004-10-18 Eric Botcazou + Roger Sayle + + PR middle-end/17813 + * dojump.c (discard_pending_stack_adjust): New function. + (clear_pending_stack_adjust): Call it. + * expr.h (discard_pending_stack_adjust): Declare it. + * explow.c (emit_stack_save): Emit pending stack adjustments + before saving the stack pointer. + (emit_stack_restore): Discard pending stack adjustments before + restoring the stack pointer. + + 2004-11-23 Ralf Corsepius + + * config/c4x/t-rtems: New. + * config.gcc: Reflect having added c4x/t-rtems. + + 2004-11-23 Ralf Corsepius + + * config/arm/t-rtems: New. + * config.gcc: Reflect having added arm/t-rtems. + + 2004-11-23 Ralf Corsepius + + * config.gcc: Add avr-*-rtems*. + * config/avr/t-rtems: New. + * config/avr/rtems.h: New. + + 2004-11-22 John David Anglin + + PR rtl-optimization/14838 + * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a + note. + (get_last_nonnote_insn): Don't assume last insn is a note. + + 2004-11-21 Roger Sayle + + * fixinc/inclhack.def (alpha_pthread_init): Fix technical problems + with the last check-in caused by CVS variable substitution. + * fixinc/fixincl.x: Likewise. + * fixinc/tests/base/pthread.h: Likewise. + + 2004-11-21 Roger Sayle + Bruce Korb + + Synchronize with mainline + * fixinc/inclhack.def (alpha_pthread_init): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/pthread.h: Update for new test. + + 2004-11-17 Ramana Radhakrishnan + + PR target/18263 + * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the + equivalent on the A4. + + 2004-11-16 Joseph S. Myers + + PR c/18498 + * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width + after processing the declarator. + + 2004-11-14 Andrew Pinski + + PR objc/18406 + * objc/obj-act.c (encode_type): 96bits doubles are encoded the + same way as 64bit and 128bit doubles are. + + 2004-11-14 Hans-Peter Nilsson + + PR target/18347 + * config/mmix/mmix.c (mmix_function_outgoing_value): Handle + TImode. Sorry for other non-complex larger-than-64-bit modes. + * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define. + (INIT_CUMULATIVE_ARGS): Correct unused macro name FNDECL. + + 2004-11-13 Eric Botcazou + + * doc/md.texi (constraints) <% modifier>: Mention that it is + useless when the two alternatives are strictly identical. + + 2004-11-12 Richard Henderson + + PR 17778 + * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New. + * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. + (TARGET_96_ROUND_53_LONG_DOUBLE): New. + * config/i386/i386-modes.def (XF): Use it. + + 2004-11-12 Ralf Corsepius + + * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY): + Remove m505/roe multilib variant. + + 2004-11-12 Eric Botcazou + + Backport from mainline: + 2004-02-25 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't + use (op0-op1) == 0 if op0 is a pointer. + + 2004-11-10 Joseph S. Myers + + PR c/18322 + * c-common.c (fname_decl): Don't use line number of decl in + diagnostic. + + 2004-11-10 Eric Botcazou + + * config/sparc/sparc.c (function_arg_union_value): New 'slotno' + argument. Return naked register for unions with zero length. + When the union is passed in the 6th slot, build a PARALLEL with + only one element. + (function_arg): Adjust call to function_arg_union_value. + (function_value): Likewise. + + 2004-11-09 H.J. Lu + + PR target/18380 + * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it + hidden. + + * unwind-dw2.c (_Unwind_FindTableEntry): Removed. + + 2004-11-10 Alan Modra + + PR target/16480 + 2004-08-26 Alan Modra + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort + on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well + as PLUS base regs. + 2004-08-01 Geoffrey Keating + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort + if trying to *store* to a non-offsettable address. + 2004-07-30 Geoffrey Keating + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Cope with + non-offsettable addresses being moved into multiple GPRs. + + 2004-11-07 Richard Sandiford + + * config/mips/t-iris6 (tp-bit.c): Fix target filename. + + 2004-11-07 Mark Mitchell + + * version.c (version_string): Set to 3.4.4. + * doc/include/gcc-common.texi (version): Likewise. + 2004-11-04 Release Manager * GCC 3.4.3 released. *************** *** 158,166 **** 2004-10-13 Richard Henderson ! PR debug/15860 ! * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction ! for DECL_INCOMING_RTL. 2004-10-13 Richard Henderson --- 1564,1572 ---- 2004-10-13 Richard Henderson ! PR debug/15860 ! * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction ! for DECL_INCOMING_RTL. 2004-10-13 Richard Henderson *************** *** 702,711 **** 2004-03-20 Ziemowit Laski 2004-03-24 Ziemowit Laski 2004-05-11 Fariborz Jahanian ! 2004-07-23 Janis Johnson ! 2004-08-12 Janis Johnson 2004-08-12 Ben Elliston ! 2004-08-16 Janis Johnson * c-common.c (vector_size_helper): Remove; call reconstruct_complex_type() instead. --- 2108,2117 ---- 2004-03-20 Ziemowit Laski 2004-03-24 Ziemowit Laski 2004-05-11 Fariborz Jahanian ! 2004-07-23 Janis Johnson ! 2004-08-12 Janis Johnson 2004-08-12 Ben Elliston ! 2004-08-16 Janis Johnson * c-common.c (vector_size_helper): Remove; call reconstruct_complex_type() instead. diff -Nrc3pad gcc-3.4.3/gcc/Makefile.in gcc-3.4.4/gcc/Makefile.in *** gcc-3.4.3/gcc/Makefile.in Mon Oct 18 16:00:39 2004 --- gcc-3.4.4/gcc/Makefile.in Thu Feb 24 09:26:57 2005 *************** LIB2FUNCS_EXTRA = *** 553,558 **** --- 553,562 ---- # Assembler files should have names ending in `.asm'. LIB2FUNCS_STATIC_EXTRA = + # List of extra C and assembler files to add to shared libgcc2. + # Assembler files should have names ending in `.asm'. + LIB2FUNCS_SHARED_EXTRA = + # Program to convert libraries. LIBCONVERT = *************** xlimits.h: glimits.h limitx.h limity.h *** 1144,1157 **** LIB2ADD = $(LIB2FUNCS_EXTRA) LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA) ! libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext) specs objext='$(objext)' \ LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \ LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \ LIBGCOV='$(LIBGCOV)' \ LIB2ADD='$(LIB2ADD)' \ LIB2ADD_ST='$(LIB2ADD_ST)' \ LIB2ADDEH='$(LIB2ADDEH)' \ LIB2ADDEHSTATIC='$(LIB2ADDEHSTATIC)' \ LIB2ADDEHSHARED='$(LIB2ADDEHSHARED)' \ --- 1148,1164 ---- LIB2ADD = $(LIB2FUNCS_EXTRA) LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA) + LIB2ADD_SH = $(LIB2FUNCS_SHARED_EXTRA) ! libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) $(LIB2ADD_SH) \ ! xgcc$(exeext) specs objext='$(objext)' \ LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \ LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \ LIBGCOV='$(LIBGCOV)' \ LIB2ADD='$(LIB2ADD)' \ LIB2ADD_ST='$(LIB2ADD_ST)' \ + LIB2ADD_SH='$(LIB2ADD_SH)' \ LIB2ADDEH='$(LIB2ADDEH)' \ LIB2ADDEHSTATIC='$(LIB2ADDEHSTATIC)' \ LIB2ADDEHSHARED='$(LIB2ADDEHSHARED)' \ *************** LIBGCC_DEPS = $(GCC_PASSES) $(LANGUAGES) *** 1187,1194 **** libgcc.mk $(srcdir)/libgcc2.c $(srcdir)/libgcov.c $(TCONFIG_H) \ $(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs \ tsystem.h $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \ ! $(LIB2ADD_ST) $(LIB2ADDEH) $(LIB2ADDEHDEP) $(EXTRA_PARTS) \ ! $(srcdir)/config/$(LIB1ASMSRC) \ $(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h libgcov.a: libgcc.a; @true --- 1194,1201 ---- libgcc.mk $(srcdir)/libgcc2.c $(srcdir)/libgcov.c $(TCONFIG_H) \ $(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs \ tsystem.h $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \ ! $(LIB2ADD_ST) $(LIB2ADD_SH) $(LIB2ADDEH) $(LIB2ADDEHDEP) \ ! $(EXTRA_PARTS) $(srcdir)/config/$(LIB1ASMSRC) \ $(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h libgcov.a: libgcc.a; @true *************** expr.o : expr.c $(CONFIG_H) $(SYSTEM_H) *** 1595,1601 **** except.h reload.h $(GGC_H) langhooks.h intl.h $(TM_P_H) real.h $(TARGET_H) dojump.o : dojump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \ flags.h function.h $(EXPR_H) $(OPTABS_H) $(INSN_ATTR_H) insn-config.h \ ! langhooks.h builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H)\ flags.h $(TARGET_H) function.h $(REGS_H) $(EXPR_H) $(OPTABS_H) insn-config.h \ $(RECOG_H) output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h \ --- 1602,1608 ---- except.h reload.h $(GGC_H) langhooks.h intl.h $(TM_P_H) real.h $(TARGET_H) dojump.o : dojump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \ flags.h function.h $(EXPR_H) $(OPTABS_H) $(INSN_ATTR_H) insn-config.h \ ! langhooks.h $(GGC_H) gt-dojump.h builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H)\ flags.h $(TARGET_H) function.h $(REGS_H) $(EXPR_H) $(OPTABS_H) insn-config.h \ $(RECOG_H) output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h \ *************** dominance.o : dominance.c $(CONFIG_H) $( *** 1744,1750 **** et-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) et-forest.h alloc-pool.h combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) flags.h \ function.h insn-config.h $(INSN_ATTR_H) $(REGS_H) $(EXPR_H) \ ! $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h toplev.h $(TM_P_H) $(TREE_H) $(TARGET_H) regclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ hard-reg-set.h flags.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h $(RECOG_H) reload.h \ real.h toplev.h function.h output.h $(GGC_H) $(TM_P_H) $(EXPR_H) $(TIMEVAR_H) --- 1751,1758 ---- et-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) et-forest.h alloc-pool.h combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) flags.h \ function.h insn-config.h $(INSN_ATTR_H) $(REGS_H) $(EXPR_H) \ ! $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h toplev.h $(TM_P_H) \ ! $(TREE_H) $(TARGET_H) $(PARAMS_H) regclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ hard-reg-set.h flags.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h $(RECOG_H) reload.h \ real.h toplev.h function.h output.h $(GGC_H) $(TM_P_H) $(EXPR_H) $(TIMEVAR_H) *************** GTFILES = $(srcdir)/input.h $(srcdir)/co *** 2077,2082 **** --- 2085,2091 ---- $(srcdir)/c-common.h $(srcdir)/c-tree.h \ $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ + $(srcdir)/dojump.c \ $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ $(srcdir)/fold-const.c $(srcdir)/function.c \ $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ *************** gt-cgraph.h gt-coverage.h gtype-desc.h g *** 2096,2102 **** gt-function.h gt-integrate.h gt-stmt.h gt-tree.h gt-varasm.h \ gt-emit-rtl.h gt-explow.h gt-stor-layout.h gt-regclass.h \ gt-lists.h gt-alias.h gt-cselib.h gt-fold-const.h gt-gcse.h \ ! gt-expr.h gt-sdbout.h gt-optabs.h gt-bitmap.h \ gt-dwarf2out.h gt-ra-build.h gt-reg-stack.h gt-dwarf2asm.h \ gt-dbxout.h gt-c-common.h gt-c-decl.h gt-c-parse.h \ gt-c-pragma.h gtype-c.h gt-input.h gt-cfglayout.h \ --- 2105,2111 ---- gt-function.h gt-integrate.h gt-stmt.h gt-tree.h gt-varasm.h \ gt-emit-rtl.h gt-explow.h gt-stor-layout.h gt-regclass.h \ gt-lists.h gt-alias.h gt-cselib.h gt-fold-const.h gt-gcse.h \ ! gt-expr.h gt-sdbout.h gt-optabs.h gt-bitmap.h gt-dojump.h \ gt-dwarf2out.h gt-ra-build.h gt-reg-stack.h gt-dwarf2asm.h \ gt-dbxout.h gt-c-common.h gt-c-decl.h gt-c-parse.h \ gt-c-pragma.h gtype-c.h gt-input.h gt-cfglayout.h \ diff -Nrc3pad gcc-3.4.3/gcc/attribs.c gcc-3.4.4/gcc/attribs.c *** gcc-3.4.3/gcc/attribs.c Wed Aug 20 12:24:18 2003 --- gcc-3.4.4/gcc/attribs.c Fri Dec 10 19:23:24 2004 *************** decl_attributes (tree *node, tree attrib *** 266,271 **** --- 266,273 ---- /* Force a recalculation of mode and size. */ DECL_MODE (*node) = VOIDmode; DECL_SIZE (*node) = 0; + if (!DECL_USER_ALIGN (*node)) + DECL_ALIGN (*node) = 0; layout_decl (*node, 0); } diff -Nrc3pad gcc-3.4.3/gcc/builtins.c gcc-3.4.4/gcc/builtins.c *** gcc-3.4.3/gcc/builtins.c Mon Feb 23 12:46:55 2004 --- gcc-3.4.4/gcc/builtins.c Thu Feb 3 17:47:33 2005 *************** expand_builtin_mathfn (tree exp, rtx tar *** 1708,1713 **** --- 1708,1714 ---- narg = save_expr (arg); if (narg != arg) { + arg = narg; arglist = build_tree_list (NULL_TREE, arg); exp = build_function_call_expr (fndecl, arglist); } *************** expand_builtin_mathfn_2 (tree exp, rtx t *** 1840,1845 **** --- 1841,1847 ---- narg = save_expr (arg1); if (narg != arg1) { + arg1 = narg; temp = build_tree_list (NULL_TREE, narg); stable = false; } *************** expand_builtin_mathfn_2 (tree exp, rtx t *** 1849,1854 **** --- 1851,1857 ---- narg = save_expr (arg0); if (narg != arg0) { + arg0 = narg; arglist = tree_cons (NULL_TREE, narg, temp); stable = false; } *************** fold_builtin (tree exp) *** 6581,6587 **** return build_function_call_expr (expfn, arglist); } ! /* Optimize sqrt(pow(x,y)) = pow(x,y*0.5). */ if (flag_unsafe_math_optimizations && (fcode == BUILT_IN_POW || fcode == BUILT_IN_POWF --- 6584,6590 ---- return build_function_call_expr (expfn, arglist); } ! /* Optimize sqrt(pow(x,y)) = pow(|x|,y*0.5). */ if (flag_unsafe_math_optimizations && (fcode == BUILT_IN_POW || fcode == BUILT_IN_POWF *************** fold_builtin (tree exp) *** 6590,6597 **** tree powfn = TREE_OPERAND (TREE_OPERAND (arg, 0), 0); tree arg0 = TREE_VALUE (TREE_OPERAND (arg, 1)); tree arg1 = TREE_VALUE (TREE_CHAIN (TREE_OPERAND (arg, 1))); ! tree narg1 = fold (build (MULT_EXPR, type, arg1, ! build_real (type, dconsthalf))); arglist = tree_cons (NULL_TREE, arg0, build_tree_list (NULL_TREE, narg1)); return build_function_call_expr (powfn, arglist); --- 6593,6603 ---- tree powfn = TREE_OPERAND (TREE_OPERAND (arg, 0), 0); tree arg0 = TREE_VALUE (TREE_OPERAND (arg, 1)); tree arg1 = TREE_VALUE (TREE_CHAIN (TREE_OPERAND (arg, 1))); ! tree narg1; ! if (!tree_expr_nonnegative_p (arg0)) ! arg0 = build1 (ABS_EXPR, type, arg0); ! narg1 = fold (build (MULT_EXPR, type, arg1, ! build_real (type, dconsthalf))); arglist = tree_cons (NULL_TREE, arg0, build_tree_list (NULL_TREE, narg1)); return build_function_call_expr (powfn, arglist); diff -Nrc3pad gcc-3.4.3/gcc/c-common.c gcc-3.4.4/gcc/c-common.c *** gcc-3.4.3/gcc/c-common.c Wed Oct 13 23:29:04 2004 --- gcc-3.4.4/gcc/c-common.c Fri Jan 7 19:58:51 2005 *************** fname_decl (unsigned int rid, tree id) *** 1137,1143 **** input_line = saved_lineno; } if (!ix && !current_function_decl) ! pedwarn ("%J'%D' is not defined outside of function scope", decl, decl); return decl; } --- 1137,1143 ---- input_line = saved_lineno; } if (!ix && !current_function_decl) ! pedwarn ("'%D' is not defined outside of function scope", decl); return decl; } *************** handle_mode_attribute (tree *node, tree *** 4678,4683 **** --- 4678,4710 ---- mode); *node = ptr_type; } + else if (TREE_CODE (type) == ENUMERAL_TYPE) + { + /* For enumeral types, copy the precision from the integer + type returned above. If not an INTEGER_TYPE, we can't use + this mode for this type. */ + if (TREE_CODE (typefm) != INTEGER_TYPE) + { + error ("cannot use mode %qs for enumeral types", p); + return NULL_TREE; + } + + if (!(flags & (int) ATTR_FLAG_TYPE_IN_PLACE)) + type = build_type_copy (type); + + /* We cannot use layout_type here, because that will attempt + to re-layout all variants, corrupting our original. */ + TYPE_PRECISION (type) = TYPE_PRECISION (typefm); + TYPE_MIN_VALUE (type) = TYPE_MIN_VALUE (typefm); + TYPE_MAX_VALUE (type) = TYPE_MAX_VALUE (typefm); + TYPE_SIZE (type) = TYPE_SIZE (typefm); + TYPE_SIZE_UNIT (type) = TYPE_SIZE_UNIT (typefm); + TYPE_MODE (type) = TYPE_MODE (typefm); + if (!TYPE_USER_ALIGN (type)) + TYPE_ALIGN (type) = TYPE_ALIGN (typefm); + + *node = type; + } else if (VECTOR_MODE_P (mode) ? TREE_CODE (type) != TREE_CODE (TREE_TYPE (typefm)) : TREE_CODE (type) != TREE_CODE (typefm)) diff -Nrc3pad gcc-3.4.3/gcc/c-decl.c gcc-3.4.4/gcc/c-decl.c *** gcc-3.4.3/gcc/c-decl.c Tue Aug 17 16:24:57 2004 --- gcc-3.4.4/gcc/c-decl.c Sun May 1 10:43:46 2005 *************** grokdeclarator (tree declarator, tree de *** 3620,3629 **** } } - /* Check the type and width of a bit-field. */ - if (bitfield) - check_bitfield_type_and_width (&type, width, orig_name); - /* Figure out the type qualifiers for the declaration. There are two ways a declaration can become qualified. One is something like `const int i' where the `const' is explicit. Another is --- 3620,3625 ---- *************** grokdeclarator (tree declarator, tree de *** 4133,4138 **** --- 4129,4138 ---- /* Now TYPE has the actual type. */ + /* Check the type and width of a bit-field. */ + if (bitfield) + check_bitfield_type_and_width (&type, width, orig_name); + /* Did array size calculations overflow? */ if (TREE_CODE (type) == ARRAY_TYPE *************** finish_struct (tree t, tree fieldlist, t *** 5132,5138 **** make it one, warn and turn off the flag. */ if (TREE_CODE (t) == UNION_TYPE && TYPE_TRANSPARENT_UNION (t) ! && TYPE_MODE (t) != DECL_MODE (TYPE_FIELDS (t))) { TYPE_TRANSPARENT_UNION (t) = 0; warning ("union cannot be made transparent"); --- 5132,5138 ---- make it one, warn and turn off the flag. */ if (TREE_CODE (t) == UNION_TYPE && TYPE_TRANSPARENT_UNION (t) ! && (!TYPE_FIELDS (t) || TYPE_MODE (t) != DECL_MODE (TYPE_FIELDS (t)))) { TYPE_TRANSPARENT_UNION (t) = 0; warning ("union cannot be made transparent"); *************** finish_enum (tree enumtype, tree values, *** 5284,5292 **** TYPE_MIN_VALUE (enumtype) = minnode; TYPE_MAX_VALUE (enumtype) = maxnode; - TYPE_PRECISION (enumtype) = precision; TREE_UNSIGNED (enumtype) = unsign; TYPE_SIZE (enumtype) = 0; layout_type (enumtype); if (values != error_mark_node) --- 5284,5302 ---- TYPE_MIN_VALUE (enumtype) = minnode; TYPE_MAX_VALUE (enumtype) = maxnode; TREE_UNSIGNED (enumtype) = unsign; TYPE_SIZE (enumtype) = 0; + + /* If the precision of the type was specific with an attribute and it + was too small, give an error. Otherwise, use it. */ + if (TYPE_PRECISION (enumtype)) + { + if (precision > TYPE_PRECISION (enumtype)) + error ("specified mode too small for enumeral values"); + } + else + TYPE_PRECISION (enumtype) = precision; + layout_type (enumtype); if (values != error_mark_node) diff -Nrc3pad gcc-3.4.3/gcc/c-format.c gcc-3.4.4/gcc/c-format.c *** gcc-3.4.3/gcc/c-format.c Sat Dec 20 00:00:27 2003 --- gcc-3.4.4/gcc/c-format.c Sun May 1 10:38:56 2005 *************** init_dynamic_asm_fprintf_info (void) *** 2518,2526 **** length modifier to work, one must have issued: "typedef HOST_WIDE_INT __gcc_host_wide_int__;" in one's source code prior to using that modifier. */ ! if (!(hwi = maybe_get_identifier ("__gcc_host_wide_int__")) ! || !(hwi = DECL_ORIGINAL_TYPE (identifier_global_value (hwi)))) abort (); /* Create a new (writable) copy of asm_fprintf_length_specs. */ new_asm_fprintf_length_specs = xmemdup (asm_fprintf_length_specs, --- 2518,2544 ---- length modifier to work, one must have issued: "typedef HOST_WIDE_INT __gcc_host_wide_int__;" in one's source code prior to using that modifier. */ ! hwi = maybe_get_identifier ("__gcc_host_wide_int__"); ! if (!hwi) ! { ! error ("'__gcc_host_wide_int__' is not defined as a type"); ! return; ! } ! hwi = identifier_global_value (hwi); ! if (!hwi || TREE_CODE (hwi) != TYPE_DECL) ! { ! error ("'__gcc_host_wide_int__' is not defined as a type"); ! return; ! } ! hwi = DECL_ORIGINAL_TYPE (hwi); ! if (!hwi) abort (); + if (hwi != long_integer_type_node && hwi != long_long_integer_type_node) + { + error ("'__gcc_host_wide_int__' is not defined as 'long'" + " or 'long long'"); + return; + } /* Create a new (writable) copy of asm_fprintf_length_specs. */ new_asm_fprintf_length_specs = xmemdup (asm_fprintf_length_specs, *************** init_dynamic_diag_info (void) *** 2563,2581 **** However we don't force a hard ICE because we may see only one or the other type. */ if ((loc = maybe_get_identifier ("location_t"))) ! loc = TREE_TYPE (identifier_global_value (loc)); /* We need to grab the underlying `union tree_node' so peek into an extra type level. */ if ((t = maybe_get_identifier ("tree"))) ! t = TREE_TYPE (TREE_TYPE (identifier_global_value (t))); /* Find the underlying type for HOST_WIDE_INT. For the %w length modifier to work, one must have issued: "typedef HOST_WIDE_INT __gcc_host_wide_int__;" in one's source code prior to using that modifier. */ if ((hwi = maybe_get_identifier ("__gcc_host_wide_int__"))) ! hwi = DECL_ORIGINAL_TYPE (identifier_global_value (hwi)); /* Assign the new data for use. */ --- 2581,2651 ---- However we don't force a hard ICE because we may see only one or the other type. */ if ((loc = maybe_get_identifier ("location_t"))) ! { ! loc = identifier_global_value (loc); ! if (loc) ! { ! if (TREE_CODE (loc) != TYPE_DECL) ! { ! error ("'location_t' is not defined as a type"); ! loc = 0; ! } ! else ! loc = TREE_TYPE (loc); ! } ! } /* We need to grab the underlying `union tree_node' so peek into an extra type level. */ if ((t = maybe_get_identifier ("tree"))) ! { ! t = identifier_global_value (t); ! if (t) ! { ! if (TREE_CODE (t) != TYPE_DECL) ! { ! error ("'tree' is not defined as a type"); ! t = 0; ! } ! else if (TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE) ! { ! error ("'tree' is not defined as a pointer type"); ! t = 0; ! } ! else ! t = TREE_TYPE (TREE_TYPE (t)); ! } ! } /* Find the underlying type for HOST_WIDE_INT. For the %w length modifier to work, one must have issued: "typedef HOST_WIDE_INT __gcc_host_wide_int__;" in one's source code prior to using that modifier. */ if ((hwi = maybe_get_identifier ("__gcc_host_wide_int__"))) ! { ! hwi = identifier_global_value (hwi); ! if (hwi) ! { ! if (TREE_CODE (hwi) != TYPE_DECL) ! { ! error ("'__gcc_host_wide_int__' is not defined as a type"); ! hwi = 0; ! } ! else ! { ! hwi = DECL_ORIGINAL_TYPE (hwi); ! if (!hwi) ! abort (); ! if (hwi != long_integer_type_node ! && hwi != long_long_integer_type_node) ! { ! error ("'__gcc_host_wide_int__' is not defined" ! " as 'long' or 'long long'"); ! hwi = 0; ! } ! } ! } ! } /* Assign the new data for use. */ diff -Nrc3pad gcc-3.4.3/gcc/c-opts.c gcc-3.4.4/gcc/c-opts.c *** gcc-3.4.3/gcc/c-opts.c Thu Oct 14 21:43:34 2004 --- gcc-3.4.4/gcc/c-opts.c Wed Mar 9 01:00:56 2005 *************** c_common_post_options (const char **pfil *** 1168,1175 **** *pfilename = this_input_filename = cpp_read_main_file (parse_in, in_fnames[0]); if (this_input_filename == NULL) ! return true; if (flag_working_directory && flag_preprocess_only && ! flag_no_line_commands) --- 1168,1179 ---- *pfilename = this_input_filename = cpp_read_main_file (parse_in, in_fnames[0]); + /* Don't do any compilation or preprocessing if there is no input file. */ if (this_input_filename == NULL) ! { ! errorcount++; ! return false; ! } if (flag_working_directory && flag_preprocess_only && ! flag_no_line_commands) *************** sanitize_cpp_opts (void) *** 1358,1368 **** --- 1362,1374 ---- /* Disable -dD, -dN and -dI if normal output is suppressed. Allow -dM since at least glibc relies on -M -dM to work. */ + /* Also, flag_no_output implies flag_no_line_commands, always. */ if (flag_no_output) { if (flag_dump_macros != 'M') flag_dump_macros = 0; flag_dump_includes = 0; + flag_no_line_commands = 1; } cpp_opts->unsigned_char = !flag_signed_char; diff -Nrc3pad gcc-3.4.3/gcc/c-ppoutput.c gcc-3.4.4/gcc/c-ppoutput.c *** gcc-3.4.3/gcc/c-ppoutput.c Sat Oct 9 00:25:04 2004 --- gcc-3.4.4/gcc/c-ppoutput.c Thu Dec 2 02:32:17 2004 *************** pp_file_change (const struct line_map *m *** 359,365 **** { const char *flags = ""; ! if (flag_no_line_commands || flag_no_output) return; if (map != NULL) --- 359,365 ---- { const char *flags = ""; ! if (flag_no_line_commands) return; if (map != NULL) diff -Nrc3pad gcc-3.4.3/gcc/c-semantics.c gcc-3.4.4/gcc/c-semantics.c *** gcc-3.4.3/gcc/c-semantics.c Tue Aug 24 04:02:34 2004 --- gcc-3.4.4/gcc/c-semantics.c Tue Dec 7 07:53:54 2004 *************** expand_unreachable_if_stmt (tree t) *** 937,942 **** --- 937,945 ---- return true; } + /* Account for declarations as conditions. */ + expand_cond (IF_COND (t)); + if (THEN_CLAUSE (t) && ELSE_CLAUSE (t)) { n = expand_unreachable_stmt (THEN_CLAUSE (t), 0); diff -Nrc3pad gcc-3.4.3/gcc/c-typeck.c gcc-3.4.4/gcc/c-typeck.c *** gcc-3.4.3/gcc/c-typeck.c Thu Sep 23 15:05:13 2004 --- gcc-3.4.4/gcc/c-typeck.c Wed Jan 19 09:44:35 2005 *************** same_translation_unit_p (tree t1, tree t *** 647,653 **** while (t2 && TREE_CODE (t2) != TRANSLATION_UNIT_DECL) switch (TREE_CODE_CLASS (TREE_CODE (t2))) { ! case 'd': t2 = DECL_CONTEXT (t1); break; case 't': t2 = TYPE_CONTEXT (t2); break; case 'b': t2 = BLOCK_SUPERCONTEXT (t2); break; default: abort (); --- 647,653 ---- while (t2 && TREE_CODE (t2) != TRANSLATION_UNIT_DECL) switch (TREE_CODE_CLASS (TREE_CODE (t2))) { ! case 'd': t2 = DECL_CONTEXT (t2); break; case 't': t2 = TYPE_CONTEXT (t2); break; case 'b': t2 = BLOCK_SUPERCONTEXT (t2); break; default: abort (); *************** digest_init (tree type, tree init, int r *** 4097,4114 **** /* Build a VECTOR_CST from a *constant* vector constructor. If the vector constructor is not constant (e.g. {1,2,3,foo()}) then punt below and handle as a constructor. */ ! if (code == VECTOR_TYPE ! && comptypes (TREE_TYPE (inside_init), type, COMPARE_STRICT) ! && TREE_CONSTANT (inside_init)) ! { ! if (TREE_CODE (inside_init) == VECTOR_CST ! && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)), ! TYPE_MAIN_VARIANT (type), ! COMPARE_STRICT)) ! return inside_init; ! else ! return build_vector (type, CONSTRUCTOR_ELTS (inside_init)); ! } /* Any type can be initialized from an expression of the same type, optionally with braces. */ --- 4097,4128 ---- /* Build a VECTOR_CST from a *constant* vector constructor. If the vector constructor is not constant (e.g. {1,2,3,foo()}) then punt below and handle as a constructor. */ ! if (code == VECTOR_TYPE ! && comptypes (TREE_TYPE (inside_init), type, COMPARE_STRICT) ! && TREE_CONSTANT (inside_init)) ! { ! if (TREE_CODE (inside_init) == VECTOR_CST ! && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)), ! TYPE_MAIN_VARIANT (type), ! COMPARE_STRICT)) ! return inside_init; ! ! if (TREE_CODE (inside_init) == CONSTRUCTOR) ! { ! tree link; ! ! /* Iterate through elements and check if all constructor ! elements are *_CSTs. */ ! for (link = CONSTRUCTOR_ELTS (inside_init); ! link; ! link = TREE_CHAIN (link)) ! if (TREE_CODE_CLASS (TREE_CODE (TREE_VALUE (link))) != 'c') ! break; ! ! if (link == NULL) ! return build_vector (type, CONSTRUCTOR_ELTS (inside_init)); ! } ! } /* Any type can be initialized from an expression of the same type, optionally with braces. */ *************** c_finish_case (void) *** 6551,6556 **** --- 6565,6578 ---- { struct c_switch *cs = switch_stack; + /* If we've not seen any case labels (or a default), we may still + need to chain any statements that were seen as the SWITCH_BODY. */ + if (SWITCH_BODY (cs->switch_stmt) == NULL) + { + SWITCH_BODY (cs->switch_stmt) = TREE_CHAIN (cs->switch_stmt); + TREE_CHAIN (cs->switch_stmt) = NULL_TREE; + } + /* Rechain the next statements to the SWITCH_STMT. */ last_tree = cs->switch_stmt; diff -Nrc3pad gcc-3.4.3/gcc/c.opt gcc-3.4.4/gcc/c.opt *** gcc-3.4.3/gcc/c.opt Wed Feb 18 00:09:03 2004 --- gcc-3.4.4/gcc/c.opt Sat Mar 19 20:30:38 2005 *************** Give strings the type \"array of char\" *** 405,411 **** ansi C ObjC C++ ObjC++ ! A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead d C ObjC C++ ObjC++ Joined --- 405,411 ---- ansi C ObjC C++ ObjC++ ! A synonym for -std=c89 (for C) or -std=c++98 (for C++). d C ObjC C++ ObjC++ Joined *************** Deprecated in favor of -std=gnu99 *** 788,794 **** std=iso9899:1990 C ObjC ! Deprecated in favor of -std=c89 std=iso9899:199409 C ObjC --- 788,794 ---- std=iso9899:1990 C ObjC ! Conform to the ISO 1990 C standard std=iso9899:199409 C ObjC *************** Conform to the ISO 1990 C standard as am *** 796,806 **** std=iso9899:1999 C ObjC ! Deprecated in favor of -std=c99 std=iso9899:199x C ObjC ! Deprecated in favor of -std=c99 traditional-cpp C ObjC C++ ObjC++ --- 796,806 ---- std=iso9899:1999 C ObjC ! Conform to the ISO 1999 C standard std=iso9899:199x C ObjC ! Deprecated in favor of -std=iso9899:1999 traditional-cpp C ObjC C++ ObjC++ diff -Nrc3pad gcc-3.4.3/gcc/calls.c gcc-3.4.4/gcc/calls.c *** gcc-3.4.3/gcc/calls.c Thu Jun 24 07:26:50 2004 --- gcc-3.4.4/gcc/calls.c Wed Apr 6 21:01:44 2005 *************** load_register_parameters (struct arg_dat *** 1719,1726 **** use_group_regs (call_fusage, reg); else if (nregs == -1) use_reg (call_fusage, reg); ! else ! use_regs (call_fusage, REGNO (reg), nregs == 0 ? 1 : nregs); } } } --- 1719,1726 ---- use_group_regs (call_fusage, reg); else if (nregs == -1) use_reg (call_fusage, reg); ! else if (nregs > 0) ! use_regs (call_fusage, REGNO (reg), nregs); } } } *************** expand_call (tree exp, rtx target, int i *** 2730,2739 **** Also, do all pending adjustments now if there is any chance this might be a call to alloca or if we are expanding a sibling call sequence or if we are calling a function that is to return ! with stack pointer depressed. */ if (pending_stack_adjust >= 32 || (pending_stack_adjust > 0 && (flags & (ECF_MAY_BE_ALLOCA | ECF_SP_DEPRESSED))) || pass == 0) do_pending_stack_adjust (); --- 2730,2743 ---- Also, do all pending adjustments now if there is any chance this might be a call to alloca or if we are expanding a sibling call sequence or if we are calling a function that is to return ! with stack pointer depressed. ! Also do the adjustments before a throwing call, otherwise ! exception handling can fail; PR 19225. */ if (pending_stack_adjust >= 32 || (pending_stack_adjust > 0 && (flags & (ECF_MAY_BE_ALLOCA | ECF_SP_DEPRESSED))) + || (pending_stack_adjust > 0 + && flag_exceptions && !(flags & ECF_NOTHROW)) || pass == 0) do_pending_stack_adjust (); diff -Nrc3pad gcc-3.4.3/gcc/collect2.c gcc-3.4.4/gcc/collect2.c *** gcc-3.4.3/gcc/collect2.c Tue Mar 9 15:49:56 2004 --- gcc-3.4.4/gcc/collect2.c Mon Jan 10 15:25:23 2005 *************** static int strip_flag; /* true if -s * *** 189,194 **** --- 189,195 ---- #ifdef COLLECT_EXPORT_LIST static int export_flag; /* true if -bE */ static int aix64_flag; /* true if -b64 */ + static int aixrtl_flag; /* true if -brtl */ #endif int debug; /* true if -debug */ *************** static struct path_prefix cmdline_lib_di *** 246,252 **** static struct path_prefix libpath_lib_dirs; /* directories in LIBPATH */ static struct path_prefix *libpaths[3] = {&cmdline_lib_dirs, &libpath_lib_dirs, NULL}; - static const char *const libexts[3] = {"a", "so", NULL}; /* possible library extensions */ #endif static void handler (int); --- 247,252 ---- *************** main (int argc, char **argv) *** 1080,1085 **** --- 1080,1087 ---- export_flag = 1; else if (arg[2] == '6' && arg[3] == '4') aix64_flag = 1; + else if (arg[2] == 'r' && arg[3] == 't' && arg[4] == 'l') + aixrtl_flag = 1; break; #endif *************** resolve_lib_name (const char *name) *** 2823,2828 **** --- 2825,2832 ---- { char *lib_buf; int i, j, l = 0; + /* Library extensions for AIX dynamic linking. */ + const char * const libexts[2] = {"a", "so"}; for (i = 0; libpaths[i]; i++) if (libpaths[i]->max_len > l) *************** resolve_lib_name (const char *name) *** 2841,2854 **** const char *p = ""; if (list->prefix[strlen(list->prefix)-1] != '/') p = "/"; ! for (j = 0; libexts[j]; j++) { sprintf (lib_buf, "%s%slib%s.%s", ! list->prefix, p, name, libexts[j]); ! if (debug) fprintf (stderr, "searching for: %s\n", lib_buf); if (file_exists (lib_buf)) { ! if (debug) fprintf (stderr, "found: %s\n", lib_buf); return (lib_buf); } } --- 2845,2859 ---- const char *p = ""; if (list->prefix[strlen(list->prefix)-1] != '/') p = "/"; ! for (j = 0; j < 2; j++) { sprintf (lib_buf, "%s%slib%s.%s", ! list->prefix, p, name, ! libexts[(j + aixrtl_flag) % 2]); ! if (debug) fprintf (stderr, "searching for: %s\n", lib_buf); if (file_exists (lib_buf)) { ! if (debug) fprintf (stderr, "found: %s\n", lib_buf); return (lib_buf); } } diff -Nrc3pad gcc-3.4.3/gcc/combine.c gcc-3.4.4/gcc/combine.c *** gcc-3.4.3/gcc/combine.c Tue Oct 12 23:35:29 2004 --- gcc-3.4.4/gcc/combine.c Thu Mar 17 01:36:08 2005 *************** Software Foundation, 59 Temple Place - S *** 90,95 **** --- 90,96 ---- #include "real.h" #include "toplev.h" #include "target.h" + #include "params.h" #ifndef SHIFT_COUNT_TRUNCATED #define SHIFT_COUNT_TRUNCATED 0 *************** subst (rtx x, rtx from, rtx to, int in_d *** 3417,3426 **** /* If this is a register being set, ignore it. */ new = XEXP (x, i); if (in_dest - && (code == SUBREG || code == STRICT_LOW_PART - || code == ZERO_EXTRACT) && i == 0 ! && GET_CODE (new) == REG) ; else if (COMBINE_RTX_EQUAL_P (XEXP (x, i), from)) --- 3418,3427 ---- /* If this is a register being set, ignore it. */ new = XEXP (x, i); if (in_dest && i == 0 ! && (((code == SUBREG || code == ZERO_EXTRACT) ! && GET_CODE (new) == REG) ! || code == STRICT_LOW_PART)) ; else if (COMBINE_RTX_EQUAL_P (XEXP (x, i), from)) *************** simplify_comparison (enum rtx_code code, *** 10688,10721 **** break; case SUBREG: ! /* Check for the case where we are comparing A - C1 with C2, ! both constants are smaller than 1/2 the maximum positive ! value in MODE, and the comparison is equality or unsigned. ! In that case, if A is either zero-extended to MODE or has ! sufficient sign bits so that the high-order bit in MODE ! is a copy of the sign in the inner mode, we can prove that it is ! safe to do the operation in the wider mode. This simplifies ! many range checks. */ if (mode_width <= HOST_BITS_PER_WIDE_INT && subreg_lowpart_p (op0) && GET_CODE (SUBREG_REG (op0)) == PLUS ! && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT ! && INTVAL (XEXP (SUBREG_REG (op0), 1)) < 0 ! && (-INTVAL (XEXP (SUBREG_REG (op0), 1)) ! < (HOST_WIDE_INT) (GET_MODE_MASK (mode) / 2)) ! && (unsigned HOST_WIDE_INT) const_op < GET_MODE_MASK (mode) / 2 ! && (0 == (nonzero_bits (XEXP (SUBREG_REG (op0), 0), ! GET_MODE (SUBREG_REG (op0))) ! & ~GET_MODE_MASK (mode)) ! || (num_sign_bit_copies (XEXP (SUBREG_REG (op0), 0), ! GET_MODE (SUBREG_REG (op0))) ! > (unsigned int) ! (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0))) ! - GET_MODE_BITSIZE (mode))))) { ! op0 = SUBREG_REG (op0); ! continue; } /* If the inner mode is narrower and we are extracting the low part, --- 10689,10749 ---- break; case SUBREG: ! /* Check for the case where we are comparing A - C1 with C2, that is ! ! (subreg:MODE (plus (A) (-C1))) op (C2) ! ! with C1 a constant, and try to lift the SUBREG, i.e. to do the ! comparison in the wider mode. One of the following two conditions ! must be true in order for this to be valid: ! ! 1. The mode extension results in the same bit pattern being added ! on both sides and the comparison is equality or unsigned. As ! C2 has been truncated to fit in MODE, the pattern can only be ! all 0s or all 1s. ! ! 2. The mode extension results in the sign bit being copied on ! each side. ! ! The difficulty here is that we have predicates for A but not for ! (A - C1) so we need to check that C1 is within proper bounds so ! as to perturbate A as little as possible. */ if (mode_width <= HOST_BITS_PER_WIDE_INT && subreg_lowpart_p (op0) + && GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0))) > mode_width && GET_CODE (SUBREG_REG (op0)) == PLUS ! && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT) { ! enum machine_mode inner_mode = GET_MODE (SUBREG_REG (op0)); ! rtx a = XEXP (SUBREG_REG (op0), 0); ! HOST_WIDE_INT c1 = -INTVAL (XEXP (SUBREG_REG (op0), 1)); ! ! if ((c1 > 0 ! && (unsigned HOST_WIDE_INT) c1 ! < (unsigned HOST_WIDE_INT) 1 << (mode_width - 1) ! && (equality_comparison_p || unsigned_comparison_p) ! /* (A - C1) zero-extends if it is positive and sign-extends ! if it is negative, C2 both zero- and sign-extends. */ ! && ((0 == (nonzero_bits (a, inner_mode) ! & ~GET_MODE_MASK (mode)) ! && const_op >= 0) ! /* (A - C1) sign-extends if it is positive and 1-extends ! if it is negative, C2 both sign- and 1-extends. */ ! || (num_sign_bit_copies (a, inner_mode) ! > (unsigned int) (GET_MODE_BITSIZE (inner_mode) ! - mode_width) ! && const_op < 0))) ! || ((unsigned HOST_WIDE_INT) c1 ! < (unsigned HOST_WIDE_INT) 1 << (mode_width - 2) ! /* (A - C1) always sign-extends, like C2. */ ! && num_sign_bit_copies (a, inner_mode) ! > (unsigned int) (GET_MODE_BITSIZE (inner_mode) ! - mode_width - 1))) ! { ! op0 = SUBREG_REG (op0); ! continue; ! } } /* If the inner mode is narrower and we are extracting the low part, *************** reversed_comparison (rtx exp, enum machi *** 11353,11358 **** --- 11381,11427 ---- return gen_binary (reversed_code, mode, op0, op1); } + /* Utility function for record_value_for_reg. Count number of + rtxs in X. */ + static int + count_rtxs (rtx x) + { + enum rtx_code code = GET_CODE (x); + const char *fmt; + int i, ret = 1; + + if (GET_RTX_CLASS (code) == '2' + || GET_RTX_CLASS (code) == 'c') + { + rtx x0 = XEXP (x, 0); + rtx x1 = XEXP (x, 1); + + if (x0 == x1) + return 1 + 2 * count_rtxs (x0); + + if ((GET_RTX_CLASS (GET_CODE (x1)) == '2' + || GET_RTX_CLASS (GET_CODE (x1)) == 'c') + && (x0 == XEXP (x1, 0) || x0 == XEXP (x1, 1))) + return 2 + 2 * count_rtxs (x0) + + count_rtxs (x == XEXP (x1, 0) + ? XEXP (x1, 1) : XEXP (x1, 0)); + + if ((GET_RTX_CLASS (GET_CODE (x0)) == '2' + || GET_RTX_CLASS (GET_CODE (x0)) == 'c') + && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1))) + return 2 + 2 * count_rtxs (x1) + + count_rtxs (x == XEXP (x0, 0) + ? XEXP (x0, 1) : XEXP (x0, 0)); + } + + fmt = GET_RTX_FORMAT (code); + for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) + if (fmt[i] == 'e') + ret += count_rtxs (XEXP (x, i)); + + return ret; + } + /* Utility function for following routine. Called when X is part of a value being stored into reg_last_set_value. Sets reg_last_set_table_tick for each register mentioned. Similar to mention_regs in cse.c */ *************** record_value_for_reg (rtx reg, rtx insn, *** 11459,11464 **** --- 11528,11540 ---- && GET_CODE (XEXP (tem, 0)) == CLOBBER && GET_CODE (XEXP (tem, 1)) == CLOBBER) tem = XEXP (tem, 0); + else if (count_occurrences (value, reg, 1) >= 2) + { + /* If there are two or more occurrences of REG in VALUE, + prevent the value from growing too much. */ + if (count_rtxs (tem) > MAX_LAST_VALUE_RTL) + tem = gen_rtx_CLOBBER (GET_MODE (tem), const0_rtx); + } value = replace_rtx (copy_rtx (value), reg, tem); } diff -Nrc3pad gcc-3.4.3/gcc/config/alpha/alpha.c gcc-3.4.4/gcc/config/alpha/alpha.c *** gcc-3.4.3/gcc/config/alpha/alpha.c Thu Sep 30 17:45:48 2004 --- gcc-3.4.4/gcc/config/alpha/alpha.c Fri Nov 12 09:11:33 2004 *************** alpha_emit_conditional_branch (enum rtx_ *** 3197,3203 **** /* If the constants doesn't fit into an immediate, but can be generated by lda/ldah, we adjust the argument and compare against zero, so we can use beq/bne directly. */ ! else if (GET_CODE (op1) == CONST_INT && (code == EQ || code == NE)) { HOST_WIDE_INT v = INTVAL (op1), n = -v; --- 3197,3209 ---- /* If the constants doesn't fit into an immediate, but can be generated by lda/ldah, we adjust the argument and compare against zero, so we can use beq/bne directly. */ ! /* ??? Don't do this when comparing against symbols, otherwise ! we'll reduce (&x == 0x1234) to (&x-0x1234 == 0), which will ! be declared false out of hand (at least for non-weak). */ ! else if (GET_CODE (op1) == CONST_INT ! && (code == EQ || code == NE) ! && !(symbolic_operand (op0, VOIDmode) ! || (GET_CODE (op0) == REG && REG_POINTER (op0)))) { HOST_WIDE_INT v = INTVAL (op1), n = -v; diff -Nrc3pad gcc-3.4.3/gcc/config/alpha/alpha.md gcc-3.4.4/gcc/config/alpha/alpha.md *** gcc-3.4.3/gcc/config/alpha/alpha.md Thu Aug 26 10:02:22 2004 --- gcc-3.4.4/gcc/config/alpha/alpha.md Sun Dec 5 19:59:59 2004 *************** *** 77,82 **** --- 77,83 ---- (UNSPECV_PLDGP2 11) ; prologue ldgp (UNSPECV_SET_TP 12) (UNSPECV_RPCC 13) + (UNSPECV_SETJMPR_ER 14) ; builtin_setjmp_receiver fragment ]) ;; Where necessary, the suffixes _le and _be are used to distinguish between *************** *** 6900,6969 **** "jmp $31,(%0),0" [(set_attr "type" "ibr")]) ! (define_insn "*builtin_setjmp_receiver_er_sl_1" ! [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] ! "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF && TARGET_AS_CAN_SUBTRACT_LABELS" ! "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:") ! ! (define_insn "*builtin_setjmp_receiver_er_1" ! [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] ! "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF" ! "br $27,$LSJ%=\n$LSJ%=:" ! [(set_attr "type" "ibr")]) ! ! (define_split ! [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] ! "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF ! && prev_nonnote_insn (insn) == operands[0]" ! [(const_int 0)] ! " ! { ! emit_note (NOTE_INSN_DELETED); ! DONE; ! }") ! ! (define_insn "*builtin_setjmp_receiver_1" [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] "TARGET_ABI_OSF" ! "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)" ! [(set_attr "length" "12") ! (set_attr "type" "multi")]) ! (define_expand "builtin_setjmp_receiver_er" ! [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR) (set (match_dup 1) (unspec_volatile:DI [(match_dup 2) (match_dup 3)] UNSPECV_LDGP1)) (set (match_dup 1) (unspec:DI [(match_dup 1) (match_dup 3)] UNSPEC_LDGP2))] - "" { operands[1] = pic_offset_table_rtx; operands[2] = gen_rtx_REG (Pmode, 27); operands[3] = GEN_INT (alpha_next_sequence_number++); ! }) ! (define_expand "builtin_setjmp_receiver" ! [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] ! "TARGET_ABI_OSF" ! { ! if (TARGET_EXPLICIT_RELOCS) ! { ! emit_insn (gen_builtin_setjmp_receiver_er (operands[0])); ! DONE; ! } ! }) ! (define_expand "exception_receiver_er" ! [(set (match_dup 0) ! (unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1)) ! (set (match_dup 0) ! (unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))] ! "" ! { ! operands[0] = pic_offset_table_rtx; ! operands[1] = gen_rtx_REG (Pmode, 26); ! operands[2] = GEN_INT (alpha_next_sequence_number++); ! }) (define_expand "exception_receiver" [(unspec_volatile [(match_dup 0)] UNSPECV_EHR)] --- 6901,6944 ---- "jmp $31,(%0),0" [(set_attr "type" "ibr")]) ! (define_expand "builtin_setjmp_receiver" [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] "TARGET_ABI_OSF" ! "") ! (define_insn_and_split "*builtin_setjmp_receiver_1" ! [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR)] ! "TARGET_ABI_OSF" ! { ! if (TARGET_EXPLICIT_RELOCS) ! return "#"; ! else ! return "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)"; ! } ! "&& TARGET_EXPLICIT_RELOCS && reload_completed" ! [(unspec_volatile [(match_dup 0)] UNSPECV_SETJMPR_ER) (set (match_dup 1) (unspec_volatile:DI [(match_dup 2) (match_dup 3)] UNSPECV_LDGP1)) (set (match_dup 1) (unspec:DI [(match_dup 1) (match_dup 3)] UNSPEC_LDGP2))] { operands[1] = pic_offset_table_rtx; operands[2] = gen_rtx_REG (Pmode, 27); operands[3] = GEN_INT (alpha_next_sequence_number++); ! } ! [(set_attr "length" "12") ! (set_attr "type" "multi")]) ! (define_insn "*builtin_setjmp_receiver_er_sl_1" ! [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)] ! "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS && TARGET_AS_CAN_SUBTRACT_LABELS" ! "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:") ! (define_insn "*builtin_setjmp_receiver_er_1" ! [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)] ! "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS" ! "br $27,$LSJ%=\n$LSJ%=:" ! [(set_attr "type" "ibr")]) (define_expand "exception_receiver" [(unspec_volatile [(match_dup 0)] UNSPECV_EHR)] *************** *** 6971,6998 **** { if (TARGET_LD_BUGGY_LDGP) operands[0] = alpha_gp_save_rtx (); - else if (TARGET_EXPLICIT_RELOCS) - { - emit_insn (gen_exception_receiver_er ()); - DONE; - } else operands[0] = const0_rtx; }) - (define_insn "*exception_receiver_1" - [(unspec_volatile [(const_int 0)] UNSPECV_EHR)] - "! TARGET_LD_BUGGY_LDGP" - "ldgp $29,0($26)" - [(set_attr "length" "8") - (set_attr "type" "multi")]) - (define_insn "*exception_receiver_2" [(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] UNSPECV_EHR)] ! "TARGET_LD_BUGGY_LDGP" "ldq $29,%0" [(set_attr "type" "ild")]) (define_expand "nonlocal_goto_receiver" [(unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE) (set (reg:DI 27) (mem:DI (reg:DI 29))) --- 6946,6983 ---- { if (TARGET_LD_BUGGY_LDGP) operands[0] = alpha_gp_save_rtx (); else operands[0] = const0_rtx; }) (define_insn "*exception_receiver_2" [(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] UNSPECV_EHR)] ! "TARGET_ABI_OSF && TARGET_LD_BUGGY_LDGP" "ldq $29,%0" [(set_attr "type" "ild")]) + (define_insn_and_split "*exception_receiver_1" + [(unspec_volatile [(const_int 0)] UNSPECV_EHR)] + "TARGET_ABI_OSF" + { + if (TARGET_EXPLICIT_RELOCS) + return "ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%*"; + else + return "ldgp $29,0($26)"; + } + "&& TARGET_EXPLICIT_RELOCS && reload_completed" + [(set (match_dup 0) + (unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1)) + (set (match_dup 0) + (unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))] + { + operands[0] = pic_offset_table_rtx; + operands[1] = gen_rtx_REG (Pmode, 26); + operands[2] = GEN_INT (alpha_next_sequence_number++); + } + [(set_attr "length" "8") + (set_attr "type" "multi")]) + (define_expand "nonlocal_goto_receiver" [(unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE) (set (reg:DI 27) (mem:DI (reg:DI 29))) diff -Nrc3pad gcc-3.4.3/gcc/config/alpha/t-osf4 gcc-3.4.4/gcc/config/alpha/t-osf4 *** gcc-3.4.3/gcc/config/alpha/t-osf4 Mon Oct 18 16:00:48 2004 --- gcc-3.4.4/gcc/config/alpha/t-osf4 Thu Dec 16 19:16:21 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 19,25 **** -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SONAME) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) --- 19,25 ---- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SONAME) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) diff -Nrc3pad gcc-3.4.3/gcc/config/arc/lib1funcs.asm gcc-3.4.4/gcc/config/arc/lib1funcs.asm *** gcc-3.4.3/gcc/config/arc/lib1funcs.asm Thu Oct 21 21:54:06 2004 --- gcc-3.4.4/gcc/config/arc/lib1funcs.asm Wed Nov 17 12:29:16 2004 *************** ___umulsidi3: *** 89,95 **** nop beq.nd .Ldone and.f 0,r0,1 ; if (a & 1) ! cmp r0,0 nop beq .Ldontadd add.f r4,r4,r1 ; r += b --- 89,95 ---- nop beq.nd .Ldone and.f 0,r0,1 ; if (a & 1) ! sub.f 0,r0,0 nop beq .Ldontadd add.f r4,r4,r1 ; r += b diff -Nrc3pad gcc-3.4.3/gcc/config/arm/arm-protos.h gcc-3.4.4/gcc/config/arm/arm-protos.h *** gcc-3.4.3/gcc/config/arm/arm-protos.h Thu Nov 20 11:44:18 2003 --- gcc-3.4.4/gcc/config/arm/arm-protos.h Tue Feb 1 15:07:02 2005 *************** *** 1,5 **** /* Prototypes for exported functions defined in arm.c and pe.c ! Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rearnsha@arm.com) Minor hacks by Nick Clifton (nickc@cygnus.com) --- 1,6 ---- /* Prototypes for exported functions defined in arm.c and pe.c ! Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 ! Free Software Foundation, Inc. Contributed by Richard Earnshaw (rearnsha@arm.com) Minor hacks by Nick Clifton (nickc@cygnus.com) *************** extern int arm_debugger_arg_offset (int, *** 138,143 **** --- 139,145 ---- extern int arm_is_longcall_p (rtx, int, int); extern int arm_emit_vector_const (FILE *, rtx); extern const char * arm_output_load_gr (rtx *); + extern int arm_eliminable_register (rtx); #if defined TREE_CODE extern rtx arm_function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int); diff -Nrc3pad gcc-3.4.3/gcc/config/arm/arm.c gcc-3.4.4/gcc/config/arm/arm.c *** gcc-3.4.3/gcc/config/arm/arm.c Thu Apr 29 19:52:41 2004 --- gcc-3.4.4/gcc/config/arm/arm.c Tue Feb 1 15:07:02 2005 *************** *** 1,6 **** /* Output routines for GCC for ARM. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ! 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) and Martin Simmons (@harleqn.co.uk). More major hacks by Richard Earnshaw (rearnsha@arm.com). --- 1,6 ---- /* Output routines for GCC for ARM. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ! 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) and Martin Simmons (@harleqn.co.uk). More major hacks by Richard Earnshaw (rearnsha@arm.com). *************** cirrus_shift_const (rtx op, enum machine *** 4056,4061 **** --- 4056,4071 ---- && INTVAL (op) < 64); } + /* Return true if X is a register that will be eliminated later on. */ + int + arm_eliminable_register (rtx x) + { + return REG_P (x) && (REGNO (x) == FRAME_POINTER_REGNUM + || REGNO (x) == ARG_POINTER_REGNUM + || (REGNO (x) >= FIRST_VIRTUAL_REGISTER + && REGNO (x) <= LAST_VIRTUAL_REGISTER)); + } + /* Returns TRUE if INSN is an "LDR REG, ADDR" instruction. Use by the Cirrus Maverick code which has to workaround a hardware bug triggered by such instructions. */ *************** adjacent_mem_locations (rtx a, rtx b) *** 4569,4601 **** || (GET_CODE (XEXP (b, 0)) == PLUS && GET_CODE (XEXP (XEXP (b, 0), 1)) == CONST_INT))) { ! int val0 = 0, val1 = 0; ! int reg0, reg1; ! if (GET_CODE (XEXP (a, 0)) == PLUS) { ! reg0 = REGNO (XEXP (XEXP (a, 0), 0)); val0 = INTVAL (XEXP (XEXP (a, 0), 1)); } else ! reg0 = REGNO (XEXP (a, 0)); if (GET_CODE (XEXP (b, 0)) == PLUS) { ! reg1 = REGNO (XEXP (XEXP (b, 0), 0)); val1 = INTVAL (XEXP (XEXP (b, 0), 1)); } else ! reg1 = REGNO (XEXP (b, 0)); /* Don't accept any offset that will require multiple instructions to handle, since this would cause the arith_adjacentmem pattern to output an overlong sequence. */ if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1)) return 0; ! ! return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4); } return 0; } --- 4579,4620 ---- || (GET_CODE (XEXP (b, 0)) == PLUS && GET_CODE (XEXP (XEXP (b, 0), 1)) == CONST_INT))) { ! HOST_WIDE_INT val0 = 0, val1 = 0; ! rtx reg0, reg1; ! int val_diff; ! if (GET_CODE (XEXP (a, 0)) == PLUS) { ! reg0 = XEXP (XEXP (a, 0), 0); val0 = INTVAL (XEXP (XEXP (a, 0), 1)); } else ! reg0 = XEXP (a, 0); if (GET_CODE (XEXP (b, 0)) == PLUS) { ! reg1 = XEXP (XEXP (b, 0), 0); val1 = INTVAL (XEXP (XEXP (b, 0), 1)); } else ! reg1 = XEXP (b, 0); /* Don't accept any offset that will require multiple instructions to handle, since this would cause the arith_adjacentmem pattern to output an overlong sequence. */ if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1)) return 0; ! ! /* Don't allow an eliminable register: register elimination can make ! the offset too large. */ ! if (arm_eliminable_register (reg0)) ! return 0; ! ! val_diff = val1 - val0; ! return ((REGNO (reg0) == REGNO (reg1)) ! && (val_diff == 4 || val_diff == -4)); } + return 0; } *************** output_call_mem (rtx *operands) *** 7301,7307 **** return ""; } - /* Output a move from arm registers to an fpa registers. OPERANDS[0] is an fpa register. OPERANDS[1] is the first registers of an arm register pair. */ --- 7320,7325 ---- diff -Nrc3pad gcc-3.4.3/gcc/config/arm/arm.md gcc-3.4.4/gcc/config/arm/arm.md *** gcc-3.4.3/gcc/config/arm/arm.md Wed Aug 25 15:46:19 2004 --- gcc-3.4.4/gcc/config/arm/arm.md Tue Jan 25 12:50:34 2005 *************** *** 7130,7137 **** (const_string "no"))) (set (attr "length") (if_then_else ! (and (ge (minus (match_dup 0) (pc)) (const_int -2048)) ! (le (minus (match_dup 0) (pc)) (const_int 2044))) (const_int 2) (const_int 4)))] ) --- 7130,7137 ---- (const_string "no"))) (set (attr "length") (if_then_else ! (and (ge (minus (match_dup 0) (pc)) (const_int -2044)) ! (le (minus (match_dup 0) (pc)) (const_int 2048))) (const_int 2) (const_int 4)))] ) diff -Nrc3pad gcc-3.4.3/gcc/config/arm/t-netbsd gcc-3.4.4/gcc/config/arm/t-netbsd *** gcc-3.4.3/gcc/config/arm/t-netbsd Mon Oct 18 16:00:49 2004 --- gcc-3.4.4/gcc/config/arm/t-netbsd Thu Dec 16 19:16:21 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 14,20 **** -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SONAME) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) --- 14,20 ---- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SONAME) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) diff -Nrc3pad gcc-3.4.3/gcc/config/arm/t-rtems gcc-3.4.4/gcc/config/arm/t-rtems *** gcc-3.4.3/gcc/config/arm/t-rtems Thu Jan 1 00:00:00 1970 --- gcc-3.4.4/gcc/config/arm/t-rtems Tue Nov 23 05:30:32 2004 *************** *** 0 **** --- 1,10 ---- + # Custom rtems multilibs + + MULTILIB_OPTIONS = marm/mthumb + MULTILIB_DIRNAMES = arm thumb + MULTILIB_EXCEPTIONS = + MULTILIB_MATCHES = marm=mno-thumb + + MULTILIB_OPTIONS += msoft-float/mhard-float + MULTILIB_DIRNAMES += soft fpu + MULTILIB_EXCEPTIONS += *mthumb/*mhard-float* diff -Nrc3pad gcc-3.4.3/gcc/config/avr/avr.c gcc-3.4.4/gcc/config/avr/avr.c *** gcc-3.4.3/gcc/config/avr/avr.c Tue Sep 28 01:13:55 2004 --- gcc-3.4.4/gcc/config/avr/avr.c Sun Mar 20 21:14:28 2005 *************** *** 1,5 **** /* Subroutines for insn-output.c for ATMEL AVR micro controllers ! Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. Contributed by Denis Chertykov (denisc@overta.ru) --- 1,5 ---- /* Subroutines for insn-output.c for ATMEL AVR micro controllers ! Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. Contributed by Denis Chertykov (denisc@overta.ru) *************** avr_output_function_prologue (FILE *file *** 660,673 **** } else if (minimize && (frame_pointer_needed || live_seq > 6)) { - const char *cfun_name = current_function_name (); fprintf (file, ("\t" AS1 (ldi, r26) ",lo8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB AS1 (ldi, r27) ",hi8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB), size, size); ! fprintf (file, (AS2 (ldi, r30, pm_lo8(.L_%s_body)) CR_TAB ! AS2 (ldi, r31, pm_hi8(.L_%s_body)) CR_TAB), ! cfun_name, cfun_name); prologue_size += 4; --- 660,671 ---- } else if (minimize && (frame_pointer_needed || live_seq > 6)) { fprintf (file, ("\t" AS1 (ldi, r26) ",lo8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB AS1 (ldi, r27) ",hi8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB), size, size); ! fputs ((AS2 (ldi,r30,pm_lo8(1f)) CR_TAB ! AS2 (ldi,r31,pm_hi8(1f)) CR_TAB), file); prologue_size += 4; *************** avr_output_function_prologue (FILE *file *** 683,689 **** (18 - live_seq) * 2); ++prologue_size; } ! fprintf (file, ".L_%s_body:\n", cfun_name); } else { --- 681,687 ---- (18 - live_seq) * 2); ++prologue_size; } ! fputs ("1:\n", file); } else { *************** print_operand (FILE *file, rtx x, int co *** 1099,1104 **** --- 1097,1112 ---- print_operand (file, XEXP (addr, 1), 0); } + else if (code == 'p' || code == 'r') + { + if (GET_CODE (addr) != POST_INC && GET_CODE (addr) != PRE_DEC) + fatal_insn ("bad address, not post_inc or pre_dec:", addr); + + if (code == 'p') + print_operand_address (file, XEXP (addr, 0)); /* X, Y, Z */ + else + print_operand (file, XEXP (addr, 0), 0); /* r26, r28, r30 */ + } else if (GET_CODE (addr) == PLUS) { print_operand_address (file, XEXP (addr,0)); *************** notice_update_cc (rtx body ATTRIBUTE_UNU *** 1208,1213 **** --- 1216,1222 ---- rtx x = XEXP (src, 1); if (GET_CODE (x) == CONST_INT + && INTVAL (x) > 0 && INTVAL (x) != 6) { cc_status.value1 = SET_DEST (set); *************** out_movhi_r_mr (rtx insn, rtx op[], int *** 1813,1818 **** --- 1822,1830 ---- rtx base = XEXP (src, 0); int reg_dest = true_regnum (dest); int reg_base = true_regnum (base); + /* "volatile" forces reading low byte first, even if less efficient, + for correct operation with 16-bit I/O registers. */ + int mem_volatile_p = MEM_VOLATILE_P (src); int tmp; if (!l) *************** out_movhi_r_mr (rtx insn, rtx op[], int *** 1906,1911 **** --- 1918,1942 ---- if (reg_overlap_mentioned_p (dest, XEXP (base, 0))) fatal_insn ("incorrect insn:", insn); + if (mem_volatile_p) + { + if (REGNO (XEXP (base, 0)) == REG_X) + { + *l = 4; + return (AS2 (sbiw,r26,2) CR_TAB + AS2 (ld,%A0,X+) CR_TAB + AS2 (ld,%B0,X) CR_TAB + AS2 (sbiw,r26,1)); + } + else + { + *l = 3; + return (AS2 (sbiw,%r1,2) CR_TAB + AS2 (ld,%A0,%p1) CR_TAB + AS2 (ldd,%B0,%p1+1)); + } + } + *l = 2; return (AS2 (ld,%B0,%1) CR_TAB AS2 (ld,%A0,%1)); *************** out_movhi_mr_r (rtx insn, rtx op[], int *** 2486,2492 **** --- 2517,2527 ---- rtx base = XEXP (dest, 0); int reg_base = true_regnum (base); int reg_src = true_regnum (src); + /* "volatile" forces writing high byte first, even if less efficient, + for correct operation with 16-bit I/O registers. */ + int mem_volatile_p = MEM_VOLATILE_P (dest); int tmp; + if (!l) l = &tmp; if (CONSTANT_ADDRESS_P (base)) *************** out_movhi_mr_r (rtx insn, rtx op[], int *** 2506,2538 **** { if (reg_src == REG_X) { ! /* "st X+,r26" is undefined */ ! if (reg_unused_after (insn, src)) return *l=4, (AS2 (mov,__tmp_reg__,r27) CR_TAB AS2 (st,X,r26) CR_TAB AS2 (adiw,r26,1) CR_TAB AS2 (st,X,__tmp_reg__)); else return *l=5, (AS2 (mov,__tmp_reg__,r27) CR_TAB - AS2 (st,X,r26) CR_TAB AS2 (adiw,r26,1) CR_TAB AS2 (st,X,__tmp_reg__) CR_TAB ! AS2 (sbiw,r26,1)); } else { ! if (reg_unused_after (insn, base)) return *l=2, (AS2 (st,X+,%A1) CR_TAB AS2 (st,X,%B1)); else ! return *l=3, (AS2 (st ,X+,%A1) CR_TAB ! AS2 (st ,X,%B1) CR_TAB ! AS2 (sbiw,r26,1)); } } else ! return *l=2, (AS2 (st ,%0,%A1) CR_TAB ! AS2 (std,%0+1,%B1)); } else if (GET_CODE (base) == PLUS) { --- 2541,2573 ---- { if (reg_src == REG_X) { ! /* "st X+,r26" and "st -X,r26" are undefined. */ ! if (!mem_volatile_p && reg_unused_after (insn, src)) return *l=4, (AS2 (mov,__tmp_reg__,r27) CR_TAB AS2 (st,X,r26) CR_TAB AS2 (adiw,r26,1) CR_TAB AS2 (st,X,__tmp_reg__)); else return *l=5, (AS2 (mov,__tmp_reg__,r27) CR_TAB AS2 (adiw,r26,1) CR_TAB AS2 (st,X,__tmp_reg__) CR_TAB ! AS2 (sbiw,r26,1) CR_TAB ! AS2 (st,X,r26)); } else { ! if (!mem_volatile_p && reg_unused_after (insn, base)) return *l=2, (AS2 (st,X+,%A1) CR_TAB AS2 (st,X,%B1)); else ! return *l=3, (AS2 (adiw,r26,1) CR_TAB ! AS2 (st,X,%B1) CR_TAB ! AS2 (st,-X,%A1)); } } else ! return *l=2, (AS2 (std,%0+1,%B1) CR_TAB ! AS2 (st,%0,%A1)); } else if (GET_CODE (base) == PLUS) { *************** out_movhi_mr_r (rtx insn, rtx op[], int *** 2545,2558 **** if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))) return *l = 4, (AS2 (adiw,r28,%o0-62) CR_TAB - AS2 (std,Y+62,%A1) CR_TAB AS2 (std,Y+63,%B1) CR_TAB AS2 (sbiw,r28,%o0-62)); return *l = 6, (AS2 (subi,r28,lo8(-%o0)) CR_TAB AS2 (sbci,r29,hi8(-%o0)) CR_TAB - AS2 (st,Y,%A1) CR_TAB AS2 (std,Y+1,%B1) CR_TAB AS2 (subi,r28,lo8(%o0)) CR_TAB AS2 (sbci,r29,hi8(%o0))); } --- 2580,2593 ---- if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))) return *l = 4, (AS2 (adiw,r28,%o0-62) CR_TAB AS2 (std,Y+63,%B1) CR_TAB + AS2 (std,Y+62,%A1) CR_TAB AS2 (sbiw,r28,%o0-62)); return *l = 6, (AS2 (subi,r28,lo8(-%o0)) CR_TAB AS2 (sbci,r29,hi8(-%o0)) CR_TAB AS2 (std,Y+1,%B1) CR_TAB + AS2 (st,Y,%A1) CR_TAB AS2 (subi,r28,lo8(%o0)) CR_TAB AS2 (sbci,r29,hi8(%o0))); } *************** out_movhi_mr_r (rtx insn, rtx op[], int *** 2560,2590 **** { /* (X + d) = R */ if (reg_src == REG_X) ! { *l = 7; return (AS2 (mov,__tmp_reg__,r26) CR_TAB AS2 (mov,__zero_reg__,r27) CR_TAB ! AS2 (adiw,r26,%o0) CR_TAB ! AS2 (st,X+,__tmp_reg__) CR_TAB AS2 (st,X,__zero_reg__) CR_TAB AS1 (clr,__zero_reg__) CR_TAB ! AS2 (sbiw,r26,%o0+1)); } *l = 4; ! return (AS2 (adiw,r26,%o0) CR_TAB ! AS2 (st,X+,%A1) CR_TAB ! AS2 (st,X,%B1) CR_TAB ! AS2 (sbiw,r26,%o0+1)); } ! return *l=2, (AS2 (std,%A0,%A1) CR_TAB ! AS2 (std,%B0,%B1)); } else if (GET_CODE (base) == PRE_DEC) /* (--R) */ return *l=2, (AS2 (st,%0,%B1) CR_TAB AS2 (st,%0,%A1)); else if (GET_CODE (base) == POST_INC) /* (R++) */ ! return *l=2, (AS2 (st,%0,%A1) CR_TAB ! AS2 (st,%0,%B1)); fatal_insn ("unknown move insn:",insn); return ""; } --- 2595,2647 ---- { /* (X + d) = R */ if (reg_src == REG_X) ! { *l = 7; return (AS2 (mov,__tmp_reg__,r26) CR_TAB AS2 (mov,__zero_reg__,r27) CR_TAB ! AS2 (adiw,r26,%o0+1) CR_TAB AS2 (st,X,__zero_reg__) CR_TAB + AS2 (st,-X,__tmp_reg__) CR_TAB AS1 (clr,__zero_reg__) CR_TAB ! AS2 (sbiw,r26,%o0)); } *l = 4; ! return (AS2 (adiw,r26,%o0+1) CR_TAB ! AS2 (st,X,%B1) CR_TAB ! AS2 (st,-X,%A1) CR_TAB ! AS2 (sbiw,r26,%o0)); } ! return *l=2, (AS2 (std,%B0,%B1) CR_TAB ! AS2 (std,%A0,%A1)); } else if (GET_CODE (base) == PRE_DEC) /* (--R) */ return *l=2, (AS2 (st,%0,%B1) CR_TAB AS2 (st,%0,%A1)); else if (GET_CODE (base) == POST_INC) /* (R++) */ ! { ! if (mem_volatile_p) ! { ! if (REGNO (XEXP (base, 0)) == REG_X) ! { ! *l = 4; ! return (AS2 (adiw,r26,1) CR_TAB ! AS2 (st,X,%B1) CR_TAB ! AS2 (st,-X,%A1) CR_TAB ! AS2 (adiw,r26,2)); ! } ! else ! { ! *l = 3; ! return (AS2 (std,%p0+1,%B1) CR_TAB ! AS2 (st,%p0,%A1) CR_TAB ! AS2 (adiw,%r0,2)); ! } ! } ! ! *l = 2; ! return (AS2 (st,%0,%A1) CR_TAB ! AS2 (st,%0,%B1)); ! } fatal_insn ("unknown move insn:",insn); return ""; } *************** out_shift_with_cnt (const char *template *** 2728,2733 **** --- 2785,2797 ---- int count = INTVAL (operands[2]); int max_len = 10; /* If larger than this, always use a loop. */ + if (count <= 0) + { + if (len) + *len = 0; + return; + } + if (count < 8 && !scratch) use_zero_reg = 1; *************** ashlqi3_out (rtx insn, rtx operands[], i *** 2850,2855 **** --- 2914,2922 ---- switch (INTVAL (operands[2])) { default: + if (INTVAL (operands[2]) < 8) + break; + *len = 1; return AS1 (clr,%0); *************** ashlhi3_out (rtx insn, rtx operands[], i *** 2946,2951 **** --- 3013,3026 ---- switch (INTVAL (operands[2])) { + default: + if (INTVAL (operands[2]) < 16) + break; + + *len = 2; + return (AS1 (clr,%B0) CR_TAB + AS1 (clr,%A0)); + case 4: if (optimize_size && scratch) break; /* 5 */ *************** ashlsi3_out (rtx insn, rtx operands[], i *** 3197,3202 **** --- 3272,3291 ---- switch (INTVAL (operands[2])) { + default: + if (INTVAL (operands[2]) < 32) + break; + + if (AVR_ENHANCED) + return *len = 3, (AS1 (clr,%D0) CR_TAB + AS1 (clr,%C0) CR_TAB + AS2 (movw,%A0,%C0)); + *len = 4; + return (AS1 (clr,%D0) CR_TAB + AS1 (clr,%C0) CR_TAB + AS1 (clr,%B0) CR_TAB + AS1 (clr,%A0)); + case 8: { int reg0 = true_regnum (operands[0]); *************** ashrqi3_out (rtx insn, rtx operands[], i *** 3335,3340 **** --- 3424,3434 ---- AS2 (bld,%0,0)); default: + if (INTVAL (operands[2]) < 8) + break; + + /* fall through */ + case 7: *len = 2; return (AS1 (lsl,%0) CR_TAB *************** ashrhi3_out (rtx insn, rtx operands[], i *** 3498,3503 **** --- 3592,3603 ---- AS2 (mov,%B0,%A0) CR_TAB AS1 (rol,%A0)); + default: + if (INTVAL (operands[2]) < 16) + break; + + /* fall through */ + case 15: return *len = 3, (AS1 (lsl,%B0) CR_TAB AS2 (sbc,%A0,%A0) CR_TAB *************** ashrsi3_out (rtx insn, rtx operands[], i *** 3605,3610 **** --- 3705,3716 ---- AS2 (mov,%B0,%D0) CR_TAB AS2 (mov,%C0,%D0)); + default: + if (INTVAL (operands[2]) < 32) + break; + + /* fall through */ + case 31: if (AVR_ENHANCED) return *len = 4, (AS1 (lsl,%D0) CR_TAB *************** lshrqi3_out (rtx insn, rtx operands[], i *** 3643,3648 **** --- 3749,3757 ---- switch (INTVAL (operands[2])) { default: + if (INTVAL (operands[2]) < 8) + break; + *len = 1; return AS1 (clr,%0); *************** lshrhi3_out (rtx insn, rtx operands[], i *** 3737,3742 **** --- 3846,3859 ---- switch (INTVAL (operands[2])) { + default: + if (INTVAL (operands[2]) < 16) + break; + + *len = 2; + return (AS1 (clr,%B0) CR_TAB + AS1 (clr,%A0)); + case 4: if (optimize_size && scratch) break; /* 5 */ *************** lshrsi3_out (rtx insn, rtx operands[], i *** 3987,3992 **** --- 4104,4123 ---- switch (INTVAL (operands[2])) { + default: + if (INTVAL (operands[2]) < 32) + break; + + if (AVR_ENHANCED) + return *len = 3, (AS1 (clr,%D0) CR_TAB + AS1 (clr,%C0) CR_TAB + AS2 (movw,%A0,%C0)); + *len = 4; + return (AS1 (clr,%D0) CR_TAB + AS1 (clr,%C0) CR_TAB + AS1 (clr,%B0) CR_TAB + AS1 (clr,%A0)); + case 8: { int reg0 = true_regnum (operands[0]); diff -Nrc3pad gcc-3.4.3/gcc/config/avr/avr.md gcc-3.4.4/gcc/config/avr/avr.md *** gcc-3.4.3/gcc/config/avr/avr.md Fri Sep 24 15:20:57 2004 --- gcc-3.4.4/gcc/config/avr/avr.md Sat Mar 19 15:45:41 2005 *************** *** 1,7 **** ;; -*- Mode: Scheme -*- ;; Machine description for GNU compiler, ;; for ATMEL AVR micro controllers. ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. ;; Contributed by Denis Chertykov (denisc@overta.ru) ;; This file is part of GCC. --- 1,8 ---- ;; -*- Mode: Scheme -*- ;; Machine description for GNU compiler, ;; for ATMEL AVR micro controllers. ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 ! ;; Free Software Foundation, Inc. ;; Contributed by Denis Chertykov (denisc@overta.ru) ;; This file is part of GCC. *************** *** 29,34 **** --- 30,37 ---- ;; j Branch condition. ;; k Reverse branch condition. ;; o Displacement for (mem (plus (reg) (const_int))) operands. + ;; p POST_INC or PRE_DEC address as a pointer (X, Y, Z) + ;; r POST_INC or PRE_DEC address as a register (r26, r28, r30) ;; ~ Output 'r' if not AVR_MEGA. ;; UNSPEC usage: *************** *** 343,417 **** ;;========================================================================= ;; move string (like memcpy) (define_expand "movstrhi" [(parallel [(set (match_operand:BLK 0 "memory_operand" "") ! (match_operand:BLK 1 "memory_operand" "")) ! (use (match_operand:HI 2 "const_int_operand" "")) ! (use (match_operand:HI 3 "const_int_operand" "")) ! (clobber (match_scratch:HI 4 "")) ! (clobber (match_scratch:HI 5 "")) ! (clobber (match_dup 6))])] "" "{ ! rtx addr0, addr1; ! int cnt8; enum machine_mode mode; if (GET_CODE (operands[2]) != CONST_INT) FAIL; - cnt8 = byte_immediate_operand (operands[2], GET_MODE (operands[2])); - mode = cnt8 ? QImode : HImode; - operands[2] = copy_to_mode_reg (mode, - gen_int_mode (INTVAL (operands[2]), mode)); - addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); - addr1 = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); ! operands[6] = gen_rtx_SCRATCH (mode); ! operands[0] = gen_rtx (MEM, BLKmode, addr0); ! operands[1] = gen_rtx (MEM, BLKmode, addr1); ! }") ! (define_insn "*movstrqi_insn" ! [(set (mem:BLK (match_operand:HI 0 "register_operand" "e")) ! (mem:BLK (match_operand:HI 1 "register_operand" "e"))) ! (use (match_operand:QI 2 "register_operand" "r")) ! (use (match_operand:QI 3 "const_int_operand" "i")) ! (clobber (match_scratch:HI 4 "=0")) ! (clobber (match_scratch:HI 5 "=1")) ! (clobber (match_scratch:QI 6 "=2"))] ! "" ! "ld __tmp_reg__,%a1+ ! st %a0+,__tmp_reg__ ! dec %2 ! brne .-8" ! [(set_attr "length" "4") ! (set_attr "cc" "clobber")]) ! (define_insn "*movstrhi" ! [(set (mem:BLK (match_operand:HI 0 "register_operand" "e,e")) ! (mem:BLK (match_operand:HI 1 "register_operand" "e,e"))) ! (use (match_operand:HI 2 "register_operand" "!w,d")) ! (use (match_operand:HI 3 "const_int_operand" "")) ! (clobber (match_scratch:HI 4 "=0,0")) ! (clobber (match_scratch:HI 5 "=1,1")) ! (clobber (match_scratch:HI 6 "=2,2"))] ! "" ! "*{ ! if (which_alternative==0) ! return (AS2 (ld,__tmp_reg__,%a1+) CR_TAB ! AS2 (st,%a0+,__tmp_reg__) CR_TAB ! AS2 (sbiw,%A2,1) CR_TAB ! AS1 (brne,.-8)); ! else ! return (AS2 (ld,__tmp_reg__,%a1+) CR_TAB ! AS2 (st,%a0+,__tmp_reg__) CR_TAB ! AS2 (subi,%A2,1) CR_TAB ! AS2 (sbci,%B2,0) CR_TAB ! AS1 (brne,.-10)); ! }" ! [(set_attr "length" "4,5") ! (set_attr "cc" "clobber,clobber")]) ;; =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 ;; memset (%0, 0, %1) --- 346,414 ---- ;;========================================================================= ;; move string (like memcpy) + ;; implement as RTL loop (define_expand "movstrhi" [(parallel [(set (match_operand:BLK 0 "memory_operand" "") ! (match_operand:BLK 1 "memory_operand" "")) ! (use (match_operand:HI 2 "const_int_operand" "")) ! (use (match_operand:HI 3 "const_int_operand" ""))])] "" "{ ! int prob; ! HOST_WIDE_INT count; enum machine_mode mode; + rtx label = gen_label_rtx (); + rtx loop_reg; + rtx jump; + + /* Copy pointers into new psuedos - they will be changed. */ + rtx addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); + rtx addr1 = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); + + /* Create rtx for tmp register - we use this as scratch. */ + rtx tmp_reg_rtx = gen_rtx_REG (QImode, TMP_REGNO); if (GET_CODE (operands[2]) != CONST_INT) FAIL; ! count = INTVAL (operands[2]); ! if (count <= 0) ! FAIL; ! /* Work out branch probability for latter use. */ ! prob = REG_BR_PROB_BASE - REG_BR_PROB_BASE / count; ! /* See if constant fit 8 bits. */ ! mode = (count < 0x100) ? QImode : HImode; ! /* Create loop counter register. */ ! loop_reg = copy_to_mode_reg (mode, gen_int_mode (count, mode)); ! ! /* Now create RTL code for move loop. */ ! /* Label at top of loop. */ ! emit_label (label); ! ! /* Move one byte into scratch and inc pointer. */ ! emit_move_insn (tmp_reg_rtx, gen_rtx_MEM (QImode, addr1)); ! emit_move_insn (addr1, gen_rtx_PLUS (Pmode, addr1, const1_rtx)); ! ! /* Move to mem and inc pointer. */ ! emit_move_insn (gen_rtx_MEM (QImode, addr0), tmp_reg_rtx); ! emit_move_insn (addr0, gen_rtx_PLUS (Pmode, addr0, const1_rtx)); ! ! /* Decrement count. */ ! emit_move_insn (loop_reg, gen_rtx_PLUS (mode, loop_reg, constm1_rtx)); ! ! /* Compare with zero and jump if not equal. */ ! emit_cmp_and_jump_insns (loop_reg, const0_rtx, NE, NULL_RTX, mode, 1, ! label); ! /* Set jump probability based on loop count. */ ! jump = get_last_insn (); ! REG_NOTES (jump) = gen_rtx_EXPR_LIST (REG_BR_PROB, ! GEN_INT (prob), ! REG_NOTES (jump)); ! DONE; ! }") ;; =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 ;; memset (%0, 0, %1) *************** *** 1166,1196 **** ;; arithmetic shift left (define_insn "ashlqi3" ! [(set (match_operand:QI 0 "register_operand" "=r,r,r,!d,r,r") ! (ashift:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,K,n,n,Qm")))] "" "* return ashlqi3_out (insn, operands, NULL);" ! [(set_attr "length" "5,1,2,4,6,9") ! (set_attr "cc" "clobber,set_czn,set_czn,set_czn,set_czn,clobber")]) (define_insn "ashlhi3" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") ! (ashift:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] "" "* return ashlhi3_out (insn, operands, NULL);" ! [(set_attr "length" "6,2,2,4,10,10") ! (set_attr "cc" "clobber,set_n,clobber,set_n,clobber,clobber")]) (define_insn "ashlsi3" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r") ! (ashift:SI (match_operand:SI 1 "register_operand" "0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] "" "* return ashlsi3_out (insn, operands, NULL);" ! [(set_attr "length" "8,4,4,8,10,12") ! (set_attr "cc" "clobber,set_n,clobber,set_n,clobber,clobber")]) ;; Optimize if a scratch register from LD_REGS happens to be available. --- 1163,1193 ---- ;; arithmetic shift left (define_insn "ashlqi3" ! [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,!d,r,r") ! (ashift:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,K,n,n,Qm")))] "" "* return ashlqi3_out (insn, operands, NULL);" ! [(set_attr "length" "5,0,1,2,4,6,9") ! (set_attr "cc" "clobber,none,set_czn,set_czn,set_czn,set_czn,clobber")]) (define_insn "ashlhi3" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") ! (ashift:HI (match_operand:HI 1 "register_operand" "0,0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] "" "* return ashlhi3_out (insn, operands, NULL);" ! [(set_attr "length" "6,0,2,2,4,10,10") ! (set_attr "cc" "clobber,none,set_n,clobber,set_n,clobber,clobber")]) (define_insn "ashlsi3" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r") ! (ashift:SI (match_operand:SI 1 "register_operand" "0,0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] "" "* return ashlsi3_out (insn, operands, NULL);" ! [(set_attr "length" "8,0,4,4,8,10,12") ! (set_attr "cc" "clobber,none,set_n,clobber,set_n,clobber,clobber")]) ;; Optimize if a scratch register from LD_REGS happens to be available. *************** *** 1206,1219 **** FAIL;") (define_insn "*ashlhi3_const" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") ! (ashift:HI (match_operand:HI 1 "register_operand" "0,r,0,0") ! (match_operand:QI 2 "const_int_operand" "P,O,K,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,&d"))] "reload_completed" "* return ashlhi3_out (insn, operands, NULL);" ! [(set_attr "length" "2,2,4,10") ! (set_attr "cc" "set_n,clobber,set_n,clobber")]) (define_peephole2 [(match_scratch:QI 3 "d") --- 1203,1216 ---- FAIL;") (define_insn "*ashlhi3_const" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") ! (ashift:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0") ! (match_operand:QI 2 "const_int_operand" "L,P,O,K,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))] "reload_completed" "* return ashlhi3_out (insn, operands, NULL);" ! [(set_attr "length" "0,2,2,4,10") ! (set_attr "cc" "none,set_n,clobber,set_n,clobber")]) (define_peephole2 [(match_scratch:QI 3 "d") *************** *** 1227,1270 **** FAIL;") (define_insn "*ashlsi3_const" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r") ! (ashift:SI (match_operand:SI 1 "register_operand" "0,r,0") ! (match_operand:QI 2 "const_int_operand" "P,O,n"))) ! (clobber (match_scratch:QI 3 "=X,X,&d"))] "reload_completed" "* return ashlsi3_out (insn, operands, NULL);" ! [(set_attr "length" "4,4,10") ! (set_attr "cc" "set_n,clobber,clobber")]) ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> ;; arithmetic shift right (define_insn "ashrqi3" ! [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r") ! (ashiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,K,n,Qm")))] "" "* return ashrqi3_out (insn, operands, NULL);" ! [(set_attr "length" "5,1,2,5,9") ! (set_attr "cc" "clobber,clobber,clobber,clobber,clobber")]) (define_insn "ashrhi3" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") ! (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] "" "* return ashrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "6,2,4,4,10,10") ! (set_attr "cc" "clobber,clobber,set_n,clobber,clobber,clobber")]) (define_insn "ashrsi3" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r") ! (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] "" "* return ashrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "8,4,6,8,10,12") ! (set_attr "cc" "clobber,clobber,set_n,clobber,clobber,clobber")]) ;; Optimize if a scratch register from LD_REGS happens to be available. --- 1224,1267 ---- FAIL;") (define_insn "*ashlsi3_const" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ! (ashift:SI (match_operand:SI 1 "register_operand" "0,0,r,0") ! (match_operand:QI 2 "const_int_operand" "L,P,O,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,&d"))] "reload_completed" "* return ashlsi3_out (insn, operands, NULL);" ! [(set_attr "length" "0,4,4,10") ! (set_attr "cc" "none,set_n,clobber,clobber")]) ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> ;; arithmetic shift right (define_insn "ashrqi3" ! [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r") ! (ashiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,K,n,Qm")))] "" "* return ashrqi3_out (insn, operands, NULL);" ! [(set_attr "length" "5,0,1,2,5,9") ! (set_attr "cc" "clobber,none,clobber,clobber,clobber,clobber")]) (define_insn "ashrhi3" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") ! (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] "" "* return ashrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "6,0,2,4,4,10,10") ! (set_attr "cc" "clobber,none,clobber,set_n,clobber,clobber,clobber")]) (define_insn "ashrsi3" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r") ! (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] "" "* return ashrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "8,0,4,6,8,10,12") ! (set_attr "cc" "clobber,none,clobber,set_n,clobber,clobber,clobber")]) ;; Optimize if a scratch register from LD_REGS happens to be available. *************** *** 1280,1293 **** FAIL;") (define_insn "*ashrhi3_const" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") ! (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,r,0,0") ! (match_operand:QI 2 "const_int_operand" "P,O,K,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,&d"))] "reload_completed" "* return ashrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "2,4,4,10") ! (set_attr "cc" "clobber,set_n,clobber,clobber")]) (define_peephole2 [(match_scratch:QI 3 "d") --- 1277,1290 ---- FAIL;") (define_insn "*ashrhi3_const" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") ! (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0") ! (match_operand:QI 2 "const_int_operand" "L,P,O,K,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))] "reload_completed" "* return ashrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "0,2,4,4,10") ! (set_attr "cc" "none,clobber,set_n,clobber,clobber")]) (define_peephole2 [(match_scratch:QI 3 "d") *************** *** 1301,1344 **** FAIL;") (define_insn "*ashrsi3_const" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r") ! (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,r,0") ! (match_operand:QI 2 "const_int_operand" "P,O,n"))) ! (clobber (match_scratch:QI 3 "=X,X,&d"))] "reload_completed" "* return ashrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "4,4,10") ! (set_attr "cc" "clobber,set_n,clobber")]) ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> ;; logical shift right (define_insn "lshrqi3" ! [(set (match_operand:QI 0 "register_operand" "=r,r,r,!d,r,r") ! (lshiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,K,n,n,Qm")))] "" "* return lshrqi3_out (insn, operands, NULL);" ! [(set_attr "length" "5,1,2,4,6,9") ! (set_attr "cc" "clobber,set_czn,set_czn,set_czn,set_czn,clobber")]) (define_insn "lshrhi3" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") ! (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] "" "* return lshrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "6,2,2,4,10,10") ! (set_attr "cc" "clobber,clobber,clobber,clobber,clobber,clobber")]) (define_insn "lshrsi3" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r") ! (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] "" "* return lshrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "8,4,4,8,10,12") ! (set_attr "cc" "clobber,clobber,clobber,clobber,clobber,clobber")]) ;; Optimize if a scratch register from LD_REGS happens to be available. --- 1298,1341 ---- FAIL;") (define_insn "*ashrsi3_const" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ! (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0") ! (match_operand:QI 2 "const_int_operand" "L,P,O,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,&d"))] "reload_completed" "* return ashrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "0,4,4,10") ! (set_attr "cc" "none,clobber,set_n,clobber")]) ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> ;; logical shift right (define_insn "lshrqi3" ! [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,!d,r,r") ! (lshiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,K,n,n,Qm")))] "" "* return lshrqi3_out (insn, operands, NULL);" ! [(set_attr "length" "5,0,1,2,4,6,9") ! (set_attr "cc" "clobber,none,set_czn,set_czn,set_czn,set_czn,clobber")]) (define_insn "lshrhi3" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") ! (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] "" "* return lshrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "6,0,2,2,4,10,10") ! (set_attr "cc" "clobber,none,clobber,clobber,clobber,clobber,clobber")]) (define_insn "lshrsi3" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r") ! (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,0,0,r,0,0,0") ! (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] "" "* return lshrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "8,0,4,4,8,10,12") ! (set_attr "cc" "clobber,none,clobber,clobber,clobber,clobber,clobber")]) ;; Optimize if a scratch register from LD_REGS happens to be available. *************** *** 1354,1367 **** FAIL;") (define_insn "*lshrhi3_const" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") ! (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,r,0,0") ! (match_operand:QI 2 "const_int_operand" "P,O,K,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,&d"))] "reload_completed" "* return lshrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "2,2,4,10") ! (set_attr "cc" "clobber,clobber,clobber,clobber")]) (define_peephole2 [(match_scratch:QI 3 "d") --- 1351,1364 ---- FAIL;") (define_insn "*lshrhi3_const" ! [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") ! (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0") ! (match_operand:QI 2 "const_int_operand" "L,P,O,K,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))] "reload_completed" "* return lshrhi3_out (insn, operands, NULL);" ! [(set_attr "length" "0,2,2,4,10") ! (set_attr "cc" "none,clobber,clobber,clobber,clobber")]) (define_peephole2 [(match_scratch:QI 3 "d") *************** *** 1375,1388 **** FAIL;") (define_insn "*lshrsi3_const" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r") ! (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,r,0") ! (match_operand:QI 2 "const_int_operand" "P,O,n"))) ! (clobber (match_scratch:QI 3 "=X,X,&d"))] "reload_completed" "* return lshrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "4,4,10") ! (set_attr "cc" "clobber,clobber,clobber")]) ;; abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) ;; abs --- 1372,1385 ---- FAIL;") (define_insn "*lshrsi3_const" ! [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ! (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0") ! (match_operand:QI 2 "const_int_operand" "L,P,O,n"))) ! (clobber (match_scratch:QI 3 "=X,X,X,&d"))] "reload_completed" "* return lshrsi3_out (insn, operands, NULL);" ! [(set_attr "length" "0,4,4,10") ! (set_attr "cc" "none,clobber,clobber,clobber")]) ;; abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) ;; abs diff -Nrc3pad gcc-3.4.3/gcc/config/avr/rtems.h gcc-3.4.4/gcc/config/avr/rtems.h *** gcc-3.4.3/gcc/config/avr/rtems.h Thu Jan 1 00:00:00 1970 --- gcc-3.4.4/gcc/config/avr/rtems.h Tue Nov 23 03:44:03 2004 *************** *** 0 **** --- 1,29 ---- + /* Definitions for rtems targeting a AVR using ELF. + Copyright (C) 2004 Free Software Foundation, Inc. + Contributed by Ralf Corsepius (ralf.corsepius@rtems.org). + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + + /* Specify predefined symbols in preprocessor. */ + + #define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ + builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) diff -Nrc3pad gcc-3.4.3/gcc/config/avr/t-avr gcc-3.4.4/gcc/config/avr/t-avr *** gcc-3.4.3/gcc/config/avr/t-avr Thu Feb 27 21:45:33 2003 --- gcc-3.4.4/gcc/config/avr/t-avr Mon Apr 25 04:17:34 2005 *************** *** 1,7 **** - # Specific names for AVR tools - AR_FOR_TARGET = avr-ar - RANLIB_FOR_TARGET = avr-ranlib - LIB1ASMSRC = avr/libgcc.S LIB1ASMFUNCS = \ _mulqi3 \ --- 1,3 ---- diff -Nrc3pad gcc-3.4.3/gcc/config/avr/t-rtems gcc-3.4.4/gcc/config/avr/t-rtems *** gcc-3.4.3/gcc/config/avr/t-rtems Thu Jan 1 00:00:00 1970 --- gcc-3.4.4/gcc/config/avr/t-rtems Tue Nov 23 03:44:03 2004 *************** *** 0 **** --- 1,3 ---- + # Multilibs for avr RTEMS targets. + + # ATM, this is just a stub diff -Nrc3pad gcc-3.4.3/gcc/config/c4x/c4x.h gcc-3.4.4/gcc/config/c4x/c4x.h *** gcc-3.4.3/gcc/config/c4x/c4x.h Tue Mar 9 02:59:56 2004 --- gcc-3.4.4/gcc/config/c4x/c4x.h Mon Apr 25 03:16:17 2005 *************** *** 81,94 **** } \ while (0) - /* Name of the c4x assembler. */ - - #define ASM_PROG "c4x-as" - - /* Name of the c4x linker. */ - - #define LD_PROG "c4x-ld" - /* Define assembler options. */ #define ASM_SPEC "\ --- 81,86 ---- diff -Nrc3pad gcc-3.4.3/gcc/config/c4x/t-rtems gcc-3.4.4/gcc/config/c4x/t-rtems *** gcc-3.4.3/gcc/config/c4x/t-rtems Thu Jan 1 00:00:00 1970 --- gcc-3.4.4/gcc/config/c4x/t-rtems Tue Nov 23 09:30:39 2004 *************** *** 0 **** --- 1,10 ---- + # Custom RTEMS multilibs + + # We'd actually want to support -msmall, but it trips a bug in gcc + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14436 + # + # MULTILIB_OPTIONS = m30 msmall mmemparm + # MULTILIB_DIRNAMES = c3x small mem + + MULTILIB_OPTIONS = m30 mmemparm + MULTILIB_DIRNAMES = c3x mem diff -Nrc3pad gcc-3.4.3/gcc/config/freebsd-spec.h gcc-3.4.4/gcc/config/freebsd-spec.h *** gcc-3.4.3/gcc/config/freebsd-spec.h Tue Mar 2 22:34:55 2004 --- gcc-3.4.4/gcc/config/freebsd-spec.h Sun May 1 21:52:41 2005 *************** Boston, MA 02111-1307, USA. */ *** 107,118 **** 500016, select the appropriate libc, depending on whether we're doing profiling or need threads support. At __FreeBSD_version 500016 and later, when threads support is requested include both ! -lc and -lc_r instead of only -lc_r. To make matters interesting, ! we can't actually use __FreeBSD_version provided by ! directly since it breaks cross-compiling. As a final twist, make ! it a hard error if -pthread is provided on the command line and gcc ! was configured with --disable-threads (this will help avoid bug ! reports from users complaining about threading when they misconfigured the gcc bootstrap but are later consulting FreeBSD manual pages that refer to the mythical -pthread option). */ --- 107,118 ---- 500016, select the appropriate libc, depending on whether we're doing profiling or need threads support. At __FreeBSD_version 500016 and later, when threads support is requested include both ! -lc and the threading lib instead of only -lc_r. To make matters ! interesting, we can't actually use __FreeBSD_version provided by ! directly since it breaks cross-compiling. As a final ! twist, make it a hard error if -pthread is provided on the command ! line and gcc was configured with --disable-threads (this will help ! avoid bug reports from users complaining about threading when they misconfigured the gcc bootstrap but are later consulting FreeBSD manual pages that refer to the mythical -pthread option). */ *************** is built with the --enable-threads confi *** 129,141 **** %{pg: -lc_p} \ }" #else ! #if FBSD_MAJOR >= 5 ! #define FBSD_LIB_SPEC " \ ! %{!shared: \ ! %{!pg: %{pthread:-lc_r} -lc} \ ! %{pg: %{pthread:-lc_r_p} -lc_p} \ ! }" ! #else #define FBSD_LIB_SPEC " \ %{!shared: \ %{!pg: \ --- 129,135 ---- %{pg: -lc_p} \ }" #else ! #if FBSD_MAJOR < 5 #define FBSD_LIB_SPEC " \ %{!shared: \ %{!pg: \ *************** is built with the --enable-threads confi *** 145,150 **** --- 139,150 ---- %{!pthread:-lc_p} \ %{pthread:-lc_r_p}} \ }" + #else + #define FBSD_LIB_SPEC " \ + %{!shared: \ + %{!pg: %{pthread:-lpthread} -lc} \ + %{pg: %{pthread:-lpthread_p} -lc_p} \ + }" #endif #endif diff -Nrc3pad gcc-3.4.3/gcc/config/i386/cygwin1.c gcc-3.4.4/gcc/config/i386/cygwin1.c *** gcc-3.4.3/gcc/config/i386/cygwin1.c Tue Sep 30 21:28:09 2003 --- gcc-3.4.4/gcc/config/i386/cygwin1.c Mon Mar 7 04:24:07 2005 *************** mingw_scan (int argc ATTRIBUTE_UNUSED, *** 30,42 **** const char *const *argv, char **spec_machine) { ! putenv ("GCC_CYGWIN_MINGW=0"); while (*++argv) if (strcmp (*argv, "-mno-win32") == 0) ! putenv ("GCC_CYGWIN_WIN32=0"); else if (strcmp (*argv, "-mwin32") == 0) ! putenv ("GCC_CYGWIN_WIN32=1"); else if (strcmp (*argv, "-mno-cygwin") == 0) { char *p = strstr (*spec_machine, "-cygwin"); --- 30,42 ---- const char *const *argv, char **spec_machine) { ! putenv (xstrdup ("GCC_CYGWIN_MINGW=0")); while (*++argv) if (strcmp (*argv, "-mno-win32") == 0) ! putenv (xstrdup ("GCC_CYGWIN_WIN32=0")); else if (strcmp (*argv, "-mwin32") == 0) ! putenv (xstrdup ("GCC_CYGWIN_WIN32=1")); else if (strcmp (*argv, "-mno-cygwin") == 0) { char *p = strstr (*spec_machine, "-cygwin"); *************** mingw_scan (int argc ATTRIBUTE_UNUSED, *** 48,54 **** strcpy (s + len, "-mingw32"); *spec_machine = s; } ! putenv ("GCC_CYGWIN_MINGW=1"); } return; } --- 48,54 ---- strcpy (s + len, "-mingw32"); *spec_machine = s; } ! putenv (xstrdup ("GCC_CYGWIN_MINGW=1")); } return; } diff -Nrc3pad gcc-3.4.3/gcc/config/i386/freebsd.h gcc-3.4.4/gcc/config/i386/freebsd.h *** gcc-3.4.3/gcc/config/i386/freebsd.h Tue Mar 2 22:34:58 2004 --- gcc-3.4.4/gcc/config/i386/freebsd.h Fri Nov 12 21:26:54 2004 *************** Boston, MA 02111-1307, USA. */ *** 138,149 **** /* FreeBSD sets the rounding precision of the FPU to 53 bits. Let the compiler get the contents of and std::numeric_limits correct. */ ! #define SUBTARGET_OVERRIDE_OPTIONS \ ! do { \ ! if (!TARGET_64BIT) { \ ! REAL_MODE_FORMAT (XFmode) \ ! = &ieee_extended_intel_96_round_53_format; \ ! REAL_MODE_FORMAT (TFmode) \ ! = &ieee_extended_intel_96_round_53_format; \ ! } \ ! } while (0) --- 138,142 ---- /* FreeBSD sets the rounding precision of the FPU to 53 bits. Let the compiler get the contents of and std::numeric_limits correct. */ ! #undef TARGET_96_ROUND_53_LONG_DOUBLE ! #define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT) diff -Nrc3pad gcc-3.4.3/gcc/config/i386/i386-modes.def gcc-3.4.4/gcc/config/i386/i386-modes.def *** gcc-3.4.3/gcc/config/i386/i386-modes.def Thu Oct 30 23:27:30 2003 --- gcc-3.4.4/gcc/config/i386/i386-modes.def Fri Nov 12 21:26:54 2004 *************** Boston, MA 02111-1307, USA. */ *** 29,34 **** --- 29,36 ---- FLOAT_MODE (XF, 12, ieee_extended_intel_96_format); ADJUST_FLOAT_FORMAT (XF, (TARGET_128BIT_LONG_DOUBLE ? &ieee_extended_intel_128_format + : TARGET_96_ROUND_53_LONG_DOUBLE + ? &ieee_extended_intel_96_round_53_format : &ieee_extended_intel_96_format)); ADJUST_BYTESIZE (XF, TARGET_128BIT_LONG_DOUBLE ? 16 : 12); ADJUST_ALIGNMENT (XF, TARGET_128BIT_LONG_DOUBLE ? 16 : 4); diff -Nrc3pad gcc-3.4.3/gcc/config/i386/i386-protos.h gcc-3.4.4/gcc/config/i386/i386-protos.h *** gcc-3.4.3/gcc/config/i386/i386-protos.h Tue Feb 10 18:07:58 2004 --- gcc-3.4.4/gcc/config/i386/i386-protos.h Sun Dec 12 20:59:22 2004 *************** extern int memory_displacement_operand ( *** 93,98 **** --- 93,99 ---- extern int cmpsi_operand (rtx, enum machine_mode); extern int long_memory_operand (rtx, enum machine_mode); extern int aligned_operand (rtx, enum machine_mode); + extern int compare_operator (rtx, enum machine_mode); extern enum machine_mode ix86_cc_mode (enum rtx_code, rtx, rtx); extern int ix86_expand_movstr (rtx, rtx, rtx, rtx); diff -Nrc3pad gcc-3.4.3/gcc/config/i386/i386.c gcc-3.4.4/gcc/config/i386/i386.c *** gcc-3.4.3/gcc/config/i386/i386.c Wed Aug 25 05:19:08 2004 --- gcc-3.4.4/gcc/config/i386/i386.c Wed Mar 16 15:23:40 2005 *************** const int x86_sse_typeless_stores = m_AT *** 522,528 **** const int x86_sse_load0_by_pxor = m_PPRO | m_PENT4; const int x86_use_ffreep = m_ATHLON_K8; const int x86_rep_movl_optimal = m_386 | m_PENT | m_PPRO | m_K6; ! const int x86_inter_unit_moves = ~(m_ATHLON_K8); const int x86_ext_80387_constants = m_K6 | m_ATHLON | m_PENT4 | m_PPRO; /* In case the average insn count for single function invocation is --- 522,535 ---- const int x86_sse_load0_by_pxor = m_PPRO | m_PENT4; const int x86_use_ffreep = m_ATHLON_K8; const int x86_rep_movl_optimal = m_386 | m_PENT | m_PPRO | m_K6; ! ! /* ??? HACK! The following is a lie. SSE can hold e.g. SImode, and ! indeed *must* be able to hold SImode so that SSE2 shifts are able ! to work right. But this can result in some mighty surprising ! register allocation when building kernels. Turning this off should ! make us less likely to all-of-the-sudden select an SSE register. */ ! const int x86_inter_unit_moves = 0; /* ~(m_ATHLON_K8) */ ! const int x86_ext_80387_constants = m_K6 | m_ATHLON | m_PENT4 | m_PPRO; /* In case the average insn count for single function invocation is *************** function_arg_advance (CUMULATIVE_ARGS *c *** 2536,2541 **** --- 2543,2576 ---- return; } + /* A subroutine of function_arg. We want to pass a parameter whose nominal + type is MODE in REGNO. We try to minimize ABI variation, so MODE may not + actually be valid for REGNO with the current ISA. In this case, ALT_MODE + is used instead. It must be the same size as MODE, and must be known to + be valid for REGNO. Finally, ORIG_MODE is the original mode of the + parameter, as seen by the type system. This may be different from MODE + when we're mucking with things minimizing ABI variations. + + Returns a REG or a PARALLEL as appropriate. */ + + static rtx + gen_reg_or_parallel (enum machine_mode mode, enum machine_mode alt_mode, + enum machine_mode orig_mode, unsigned int regno) + { + rtx tmp; + + if (HARD_REGNO_MODE_OK (regno, mode)) + tmp = gen_rtx_REG (mode, regno); + else + { + tmp = gen_rtx_REG (alt_mode, regno); + tmp = gen_rtx_EXPR_LIST (VOIDmode, tmp, const0_rtx); + tmp = gen_rtx_PARALLEL (orig_mode, gen_rtvec (1, tmp)); + } + + return tmp; + } + /* Define where to put the arguments to a function. Value is zero to push the argument on the stack, or a hard register in which to store the argument. *************** function_arg_advance (CUMULATIVE_ARGS *c *** 2550,2561 **** (otherwise it is an extra parameter matching an ellipsis). */ rtx ! function_arg (CUMULATIVE_ARGS *cum, /* current arg information */ ! enum machine_mode mode, /* current arg mode */ ! tree type, /* type of the argument or 0 if lib support */ ! int named) /* != 0 for normal args, == 0 for ... args */ { ! rtx ret = NULL_RTX; int bytes = (mode == BLKmode) ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode); int words = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD; --- 2585,2595 ---- (otherwise it is an extra parameter matching an ellipsis). */ rtx ! function_arg (CUMULATIVE_ARGS *cum, enum machine_mode orig_mode, ! tree type, int named) { ! enum machine_mode mode = orig_mode; ! rtx ret = NULL_RTX; int bytes = (mode == BLKmode) ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode); int words = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD; *************** function_arg (CUMULATIVE_ARGS *cum, /* c *** 2628,2634 **** "changes the ABI"); } if (cum->sse_nregs) ! ret = gen_rtx_REG (mode, cum->sse_regno + FIRST_SSE_REG); } break; case V8QImode: --- 2662,2669 ---- "changes the ABI"); } if (cum->sse_nregs) ! ret = gen_reg_or_parallel (mode, TImode, orig_mode, ! cum->sse_regno + FIRST_SSE_REG); } break; case V8QImode: *************** function_arg (CUMULATIVE_ARGS *cum, /* c *** 2644,2650 **** "changes the ABI"); } if (cum->mmx_nregs) ! ret = gen_rtx_REG (mode, cum->mmx_regno + FIRST_MMX_REG); } break; } --- 2679,2686 ---- "changes the ABI"); } if (cum->mmx_nregs) ! ret = gen_reg_or_parallel (mode, DImode, orig_mode, ! cum->mmx_regno + FIRST_MMX_REG); } break; } *************** aligned_operand (rtx op, enum machine_mo *** 4319,4324 **** --- 4355,4366 ---- /* Didn't find one -- this must be an aligned address. */ return 1; } + + int + compare_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) + { + return GET_CODE (op) == COMPARE; + } /* Initialize the table of extra 80387 mathematical constants. */ *************** ix86_split_to_parts (rtx operand, rtx *p *** 10604,10613 **** else if (GET_CODE (operand) == CONST_DOUBLE) { REAL_VALUE_TYPE r; ! long l[3]; REAL_VALUE_FROM_CONST_DOUBLE (r, operand); real_to_target (l, &r, mode); /* Do not use shift by 32 to avoid warning on 32bit systems. */ if (HOST_BITS_PER_WIDE_INT >= 64) parts[0] --- 10646,10656 ---- else if (GET_CODE (operand) == CONST_DOUBLE) { REAL_VALUE_TYPE r; ! long l[4]; REAL_VALUE_FROM_CONST_DOUBLE (r, operand); real_to_target (l, &r, mode); + /* Do not use shift by 32 to avoid warning on 32bit systems. */ if (HOST_BITS_PER_WIDE_INT >= 64) parts[0] *************** ix86_split_to_parts (rtx operand, rtx *p *** 10617,10622 **** --- 10660,10666 ---- DImode); else parts[0] = immed_double_const (l[0], l[1], DImode); + if (upper_mode == SImode) parts[1] = gen_int_mode (l[2], SImode); else if (HOST_BITS_PER_WIDE_INT >= 64) *************** ix86_hard_regno_mode_ok (int regno, enum *** 14891,14900 **** if (FP_REGNO_P (regno)) return VALID_FP_MODE_P (mode); if (SSE_REGNO_P (regno)) ! return (TARGET_SSE ? VALID_SSE_REG_MODE (mode) : 0); if (MMX_REGNO_P (regno)) ! return (TARGET_MMX ! ? VALID_MMX_REG_MODE (mode) || VALID_MMX_REG_MODE_3DNOW (mode) : 0); /* We handle both integer and floats in the general purpose registers. In future we should be able to handle vector modes as well. */ if (!VALID_INT_MODE_P (mode) && !VALID_FP_MODE_P (mode)) --- 14935,14963 ---- if (FP_REGNO_P (regno)) return VALID_FP_MODE_P (mode); if (SSE_REGNO_P (regno)) ! { ! /* HACK! We didn't change all of the constraints for SSE1 for the ! scalar modes on the branch. Fortunately, they're not required ! for ABI compatibility. */ ! if (!TARGET_SSE2 && !VECTOR_MODE_P (mode)) ! return VALID_SSE_REG_MODE (mode); ! ! /* We implement the move patterns for all vector modes into and ! out of SSE registers, even when no operation instructions ! are available. */ ! return (VALID_SSE_REG_MODE (mode) ! || VALID_SSE2_REG_MODE (mode) ! || VALID_MMX_REG_MODE (mode) ! || VALID_MMX_REG_MODE_3DNOW (mode)); ! } if (MMX_REGNO_P (regno)) ! { ! /* We implement the move patterns for 3DNOW modes even in MMX mode, ! so if the register is available at all, then we can move data of ! the given mode into or out of it. */ ! return (VALID_MMX_REG_MODE (mode) ! || VALID_MMX_REG_MODE_3DNOW (mode)); ! } /* We handle both integer and floats in the general purpose registers. In future we should be able to handle vector modes as well. */ if (!VALID_INT_MODE_P (mode) && !VALID_FP_MODE_P (mode)) *************** ix86_rtx_costs (rtx x, int code, int out *** 15230,15236 **** return false; case FLOAT_EXTEND: ! if (!TARGET_SSE_MATH || !VALID_SSE_REG_MODE (mode)) *total = 0; return false; --- 15293,15301 ---- return false; case FLOAT_EXTEND: ! if (!TARGET_SSE_MATH ! || mode == XFmode ! || (mode == DFmode && !TARGET_SSE2)) *total = 0; return false; diff -Nrc3pad gcc-3.4.3/gcc/config/i386/i386.h gcc-3.4.4/gcc/config/i386/i386.h *** gcc-3.4.3/gcc/config/i386/i386.h Wed Apr 21 15:12:41 2004 --- gcc-3.4.4/gcc/config/i386/i386.h Mon Dec 20 05:37:40 2004 *************** extern int x86_prefetch_sse; *** 447,452 **** --- 447,456 ---- redefines this to 1. */ #define TARGET_MACHO 0 + /* Subtargets may reset this to 1 in order to enable 96-bit long double + with the rounding mode forced to 53 bits. */ + #define TARGET_96_ROUND_53_LONG_DOUBLE 0 + /* This macro is similar to `TARGET_SWITCHES' but defines names of command options that have values. Its definition is an initializer with a subgrouping for each command option. *************** do { \ *** 1059,1072 **** #define VALID_SSE2_REG_MODE(MODE) \ ((MODE) == V16QImode || (MODE) == V8HImode || (MODE) == V2DFmode \ ! || (MODE) == V2DImode) #define VALID_SSE_REG_MODE(MODE) \ ((MODE) == TImode || (MODE) == V4SFmode || (MODE) == V4SImode \ ! || (MODE) == SFmode || (MODE) == TFmode \ ! /* Always accept SSE2 modes so that xmmintrin.h compiles. */ \ ! || VALID_SSE2_REG_MODE (MODE) \ ! || (TARGET_SSE2 && ((MODE) == DFmode || VALID_MMX_REG_MODE (MODE)))) #define VALID_MMX_REG_MODE_3DNOW(MODE) \ ((MODE) == V2SFmode || (MODE) == SFmode) --- 1063,1073 ---- #define VALID_SSE2_REG_MODE(MODE) \ ((MODE) == V16QImode || (MODE) == V8HImode || (MODE) == V2DFmode \ ! || (MODE) == V2DImode || (MODE) == DFmode) #define VALID_SSE_REG_MODE(MODE) \ ((MODE) == TImode || (MODE) == V4SFmode || (MODE) == V4SImode \ ! || (MODE) == SFmode || (MODE) == TFmode) #define VALID_MMX_REG_MODE_3DNOW(MODE) \ ((MODE) == V2SFmode || (MODE) == SFmode) *************** do { \ *** 2990,2996 **** {"zero_extended_scalar_load_operand", {MEM}}, \ {"vector_move_operand", {CONST_VECTOR, SUBREG, REG, MEM}}, \ {"no_seg_address_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ ! LABEL_REF, SUBREG, REG, MEM, PLUS, MULT}}, /* A list of predicates that do special things with modes, and so should not elicit warnings for VOIDmode match_operand. */ --- 2991,2998 ---- {"zero_extended_scalar_load_operand", {MEM}}, \ {"vector_move_operand", {CONST_VECTOR, SUBREG, REG, MEM}}, \ {"no_seg_address_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ ! LABEL_REF, SUBREG, REG, MEM, PLUS, MULT}}, \ ! {"compare_operator", {COMPARE}}, /* A list of predicates that do special things with modes, and so should not elicit warnings for VOIDmode match_operand. */ diff -Nrc3pad gcc-3.4.3/gcc/config/i386/i386.md gcc-3.4.4/gcc/config/i386/i386.md *** gcc-3.4.3/gcc/config/i386/i386.md Mon Oct 18 13:05:59 2004 --- gcc-3.4.4/gcc/config/i386/i386.md Tue May 10 21:04:28 2005 *************** *** 1261,1270 **** "" "xchg{l}\t%1, %0" [(set_attr "type" "imov") (set_attr "pent_pair" "np") (set_attr "athlon_decode" "vector") - (set_attr "mode" "SI") - (set_attr "modrm" "0") (set_attr "ppro_uops" "few")]) (define_expand "movhi" --- 1261,1269 ---- "" "xchg{l}\t%1, %0" [(set_attr "type" "imov") + (set_attr "mode" "SI") (set_attr "pent_pair" "np") (set_attr "athlon_decode" "vector") (set_attr "ppro_uops" "few")]) (define_expand "movhi" *************** *** 1377,1388 **** (match_operand:HI 1 "register_operand" "+r")) (set (match_dup 1) (match_dup 0))] ! "TARGET_PARTIAL_REG_STALL" ! "xchg{w}\t%1, %0" [(set_attr "type" "imov") (set_attr "pent_pair" "np") ! (set_attr "mode" "HI") ! (set_attr "modrm" "0") (set_attr "ppro_uops" "few")]) (define_insn "*swaphi_2" --- 1376,1387 ---- (match_operand:HI 1 "register_operand" "+r")) (set (match_dup 1) (match_dup 0))] ! "!TARGET_PARTIAL_REG_STALL || optimize_size" ! "xchg{l}\t%k1, %k0" [(set_attr "type" "imov") + (set_attr "mode" "SI") (set_attr "pent_pair" "np") ! (set_attr "athlon_decode" "vector") (set_attr "ppro_uops" "few")]) (define_insn "*swaphi_2" *************** *** 1390,1401 **** (match_operand:HI 1 "register_operand" "+r")) (set (match_dup 1) (match_dup 0))] ! "! TARGET_PARTIAL_REG_STALL" ! "xchg{l}\t%k1, %k0" [(set_attr "type" "imov") (set_attr "pent_pair" "np") ! (set_attr "mode" "SI") ! (set_attr "modrm" "0") (set_attr "ppro_uops" "few")]) (define_expand "movstricthi" --- 1389,1400 ---- (match_operand:HI 1 "register_operand" "+r")) (set (match_dup 1) (match_dup 0))] ! "TARGET_PARTIAL_REG_STALL" ! "xchg{w}\t%1, %0" [(set_attr "type" "imov") + (set_attr "mode" "HI") (set_attr "pent_pair" "np") ! (set_attr "athlon_decode" "vector") (set_attr "ppro_uops" "few")]) (define_expand "movstricthi" *************** *** 1543,1559 **** DONE; }) ! (define_insn "*swapqi" [(set (match_operand:QI 0 "register_operand" "+r") (match_operand:QI 1 "register_operand" "+r")) (set (match_dup 1) (match_dup 0))] ! "" ! "xchg{b}\t%1, %0" [(set_attr "type" "imov") (set_attr "pent_pair" "np") (set_attr "mode" "QI") ! (set_attr "modrm" "0") (set_attr "ppro_uops" "few")]) (define_expand "movstrictqi" --- 1542,1571 ---- DONE; }) ! (define_insn "*swapqi_1" [(set (match_operand:QI 0 "register_operand" "+r") (match_operand:QI 1 "register_operand" "+r")) (set (match_dup 1) (match_dup 0))] ! "!TARGET_PARTIAL_REG_STALL || optimize_size" ! "xchg{l}\t%k1, %k0" [(set_attr "type" "imov") + (set_attr "mode" "SI") (set_attr "pent_pair" "np") + (set_attr "athlon_decode" "vector") + (set_attr "ppro_uops" "few")]) + + (define_insn "*swapqi_2" + [(set (match_operand:QI 0 "register_operand" "+q") + (match_operand:QI 1 "register_operand" "+q")) + (set (match_dup 1) + (match_dup 0))] + "TARGET_PARTIAL_REG_STALL" + "xchg{b}\t%1, %0" + [(set_attr "type" "imov") (set_attr "mode" "QI") ! (set_attr "pent_pair" "np") ! (set_attr "athlon_decode" "vector") (set_attr "ppro_uops" "few")]) (define_expand "movstrictqi" *************** *** 2108,2120 **** "TARGET_64BIT" "xchg{q}\t%1, %0" [(set_attr "type" "imov") (set_attr "pent_pair" "np") (set_attr "athlon_decode" "vector") - (set_attr "mode" "DI") - (set_attr "modrm" "0") (set_attr "ppro_uops" "few")]) - (define_expand "movsf" [(set (match_operand:SF 0 "nonimmediate_operand" "") (match_operand:SF 1 "general_operand" ""))] --- 2120,2130 ---- "TARGET_64BIT" "xchg{q}\t%1, %0" [(set_attr "type" "imov") + (set_attr "mode" "DI") (set_attr "pent_pair" "np") (set_attr "athlon_decode" "vector") (set_attr "ppro_uops" "few")]) (define_expand "movsf" [(set (match_operand:SF 0 "nonimmediate_operand" "") (match_operand:SF 1 "general_operand" ""))] *************** *** 6317,6322 **** --- 6327,6336 ---- (if_then_else (match_operand:QI 1 "incdec_operand" "") (const_string "incdec") (const_string "alu1"))) + (set (attr "memory") + (if_then_else (match_operand 1 "memory_operand" "") + (const_string "load") + (const_string "none"))) (set_attr "mode" "QI")]) (define_insn "*addqi_2" *************** *** 7872,7889 **** "" "") ! (define_insn "*testqi_1" [(set (reg 17) ! (compare (and:QI (match_operand:QI 0 "nonimmediate_operand" "%!*a,q,qm,r") ! (match_operand:QI 1 "general_operand" "n,n,qn,n")) ! (const_int 0)))] ! "ix86_match_ccmode (insn, CCNOmode) ! && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { if (which_alternative == 3) { ! if (GET_CODE (operands[1]) == CONST_INT ! && (INTVAL (operands[1]) & 0xffffff00)) operands[1] = GEN_INT (INTVAL (operands[1]) & 0xff); return "test{l}\t{%1, %k0|%k0, %1}"; } --- 7886,7906 ---- "" "") ! (define_insn "*testqi_1_maybe_si" [(set (reg 17) ! (compare ! (and:QI ! (match_operand:QI 0 "nonimmediate_operand" "%!*a,q,qm,r") ! (match_operand:QI 1 "general_operand" "n,n,qn,n")) ! (const_int 0)))] ! "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) ! && ix86_match_ccmode (insn, ! GET_CODE (operands[1]) == CONST_INT ! && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)" { if (which_alternative == 3) { ! if (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) < 0) operands[1] = GEN_INT (INTVAL (operands[1]) & 0xff); return "test{l}\t{%1, %k0|%k0, %1}"; } *************** *** 7894,7899 **** --- 7911,7931 ---- (set_attr "mode" "QI,QI,QI,SI") (set_attr "pent_pair" "uv,np,uv,np")]) + (define_insn "*testqi_1" + [(set (reg 17) + (compare + (and:QI + (match_operand:QI 0 "nonimmediate_operand" "%!*a,q,qm") + (match_operand:QI 1 "general_operand" "n,n,qn")) + (const_int 0)))] + "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) + && ix86_match_ccmode (insn, CCNOmode)" + "test{b}\t{%1, %0|%0, %1}" + [(set_attr "type" "test") + (set_attr "modrm" "0,1,1") + (set_attr "mode" "QI") + (set_attr "pent_pair" "uv,np,uv")]) + (define_expand "testqi_ext_ccno_0" [(set (reg:CCNO 17) (compare:CCNO *************** *** 8012,8062 **** "#") (define_split ! [(set (reg 17) ! (compare (zero_extract ! (match_operand 0 "nonimmediate_operand" "") ! (match_operand 1 "const_int_operand" "") ! (match_operand 2 "const_int_operand" "")) ! (const_int 0)))] "ix86_match_ccmode (insn, CCNOmode)" ! [(set (reg:CCNO 17) (compare:CCNO (match_dup 3) (const_int 0)))] { ! HOST_WIDE_INT len = INTVAL (operands[1]); ! HOST_WIDE_INT pos = INTVAL (operands[2]); HOST_WIDE_INT mask; enum machine_mode mode, submode; ! mode = GET_MODE (operands[0]); ! if (GET_CODE (operands[0]) == MEM) { /* ??? Combine likes to put non-volatile mem extractions in QImode no matter the size of the test. So find a mode that works. */ ! if (! MEM_VOLATILE_P (operands[0])) { mode = smallest_mode_for_size (pos + len, MODE_INT); ! operands[0] = adjust_address (operands[0], mode, 0); } } ! else if (GET_CODE (operands[0]) == SUBREG ! && (submode = GET_MODE (SUBREG_REG (operands[0])), GET_MODE_BITSIZE (mode) > GET_MODE_BITSIZE (submode)) && pos + len <= GET_MODE_BITSIZE (submode)) { /* Narrow a paradoxical subreg to prevent partial register stalls. */ mode = submode; ! operands[0] = SUBREG_REG (operands[0]); } else if (mode == HImode && pos + len <= 8) { /* Small HImode tests can be converted to QImode. */ mode = QImode; ! operands[0] = gen_lowpart (QImode, operands[0]); } mask = ((HOST_WIDE_INT)1 << (pos + len)) - 1; mask &= ~(((HOST_WIDE_INT)1 << pos) - 1); ! operands[3] = gen_rtx_AND (mode, operands[0], gen_int_mode (mask, mode)); }) ;; Convert HImode/SImode test instructions with immediate to QImode ones. --- 8044,8096 ---- "#") (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(zero_extract ! (match_operand 2 "nonimmediate_operand" "") ! (match_operand 3 "const_int_operand" "") ! (match_operand 4 "const_int_operand" "")) ! (const_int 0)]))] "ix86_match_ccmode (insn, CCNOmode)" ! [(set (match_dup 0) (match_op_dup 1 [(match_dup 2) (const_int 0)]))] { ! rtx val = operands[2]; ! HOST_WIDE_INT len = INTVAL (operands[3]); ! HOST_WIDE_INT pos = INTVAL (operands[4]); HOST_WIDE_INT mask; enum machine_mode mode, submode; ! mode = GET_MODE (val); ! if (GET_CODE (val) == MEM) { /* ??? Combine likes to put non-volatile mem extractions in QImode no matter the size of the test. So find a mode that works. */ ! if (! MEM_VOLATILE_P (val)) { mode = smallest_mode_for_size (pos + len, MODE_INT); ! val = adjust_address (val, mode, 0); } } ! else if (GET_CODE (val) == SUBREG ! && (submode = GET_MODE (SUBREG_REG (val)), GET_MODE_BITSIZE (mode) > GET_MODE_BITSIZE (submode)) && pos + len <= GET_MODE_BITSIZE (submode)) { /* Narrow a paradoxical subreg to prevent partial register stalls. */ mode = submode; ! val = SUBREG_REG (val); } else if (mode == HImode && pos + len <= 8) { /* Small HImode tests can be converted to QImode. */ mode = QImode; ! val = gen_lowpart (QImode, val); } mask = ((HOST_WIDE_INT)1 << (pos + len)) - 1; mask &= ~(((HOST_WIDE_INT)1 << pos) - 1); ! operands[2] = gen_rtx_AND (mode, val, gen_int_mode (mask, mode)); }) ;; Convert HImode/SImode test instructions with immediate to QImode ones. *************** *** 8065,8110 **** ;; Do the conversion only post-reload to avoid limiting of the register class ;; to QI regs. (define_split ! [(set (reg 17) ! (compare ! (and (match_operand 0 "register_operand" "") ! (match_operand 1 "const_int_operand" "")) ! (const_int 0)))] "reload_completed ! && QI_REG_P (operands[0]) && ((ix86_match_ccmode (insn, CCZmode) ! && !(INTVAL (operands[1]) & ~(255 << 8))) || (ix86_match_ccmode (insn, CCNOmode) ! && !(INTVAL (operands[1]) & ~(127 << 8)))) ! && GET_MODE (operands[0]) != QImode" ! [(set (reg:CCNO 17) ! (compare:CCNO ! (and:SI (zero_extract:SI (match_dup 0) (const_int 8) (const_int 8)) ! (match_dup 1)) ! (const_int 0)))] ! "operands[0] = gen_lowpart (SImode, operands[0]); ! operands[1] = gen_int_mode (INTVAL (operands[1]) >> 8, SImode);") (define_split ! [(set (reg 17) ! (compare ! (and (match_operand 0 "nonimmediate_operand" "") ! (match_operand 1 "const_int_operand" "")) ! (const_int 0)))] "reload_completed ! && (!REG_P (operands[0]) || ANY_QI_REG_P (operands[0])) && ((ix86_match_ccmode (insn, CCZmode) ! && !(INTVAL (operands[1]) & ~255)) || (ix86_match_ccmode (insn, CCNOmode) ! && !(INTVAL (operands[1]) & ~127))) ! && GET_MODE (operands[0]) != QImode" ! [(set (reg:CCNO 17) ! (compare:CCNO ! (and:QI (match_dup 0) ! (match_dup 1)) ! (const_int 0)))] ! "operands[0] = gen_lowpart (QImode, operands[0]); ! operands[1] = gen_lowpart (QImode, operands[1]);") ;; %%% This used to optimize known byte-wide and operations to memory, --- 8099,8142 ---- ;; Do the conversion only post-reload to avoid limiting of the register class ;; to QI regs. (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(and (match_operand 2 "register_operand" "") ! (match_operand 3 "const_int_operand" "")) ! (const_int 0)]))] "reload_completed ! && QI_REG_P (operands[2]) ! && GET_MODE (operands[2]) != QImode && ((ix86_match_ccmode (insn, CCZmode) ! && !(INTVAL (operands[3]) & ~(255 << 8))) || (ix86_match_ccmode (insn, CCNOmode) ! && !(INTVAL (operands[3]) & ~(127 << 8))))" ! [(set (match_dup 0) ! (match_op_dup 1 ! [(and:SI (zero_extract:SI (match_dup 2) (const_int 8) (const_int 8)) ! (match_dup 3)) ! (const_int 0)]))] ! "operands[2] = gen_lowpart (SImode, operands[2]); ! operands[3] = gen_int_mode (INTVAL (operands[3]) >> 8, SImode);") (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(and (match_operand 2 "nonimmediate_operand" "") ! (match_operand 3 "const_int_operand" "")) ! (const_int 0)]))] "reload_completed ! && GET_MODE (operands[2]) != QImode ! && (!REG_P (operands[2]) || ANY_QI_REG_P (operands[2])) && ((ix86_match_ccmode (insn, CCZmode) ! && !(INTVAL (operands[3]) & ~255)) || (ix86_match_ccmode (insn, CCNOmode) ! && !(INTVAL (operands[3]) & ~127)))" ! [(set (match_dup 0) ! (match_op_dup 1 [(and:QI (match_dup 2) (match_dup 3)) ! (const_int 0)]))] ! "operands[2] = gen_lowpart (QImode, operands[2]); ! operands[3] = gen_lowpart (QImode, operands[3]);") ;; %%% This used to optimize known byte-wide and operations to memory, *************** *** 8381,8401 **** [(set_attr "type" "alu1") (set_attr "mode" "QI")]) ! (define_insn "*andqi_2" [(set (reg 17) (compare (and:QI ! (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") ! (match_operand:QI 2 "general_operand" "qim,qi,i")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm,*r") (and:QI (match_dup 1) (match_dup 2)))] ! "ix86_match_ccmode (insn, CCNOmode) ! && ix86_binary_operator_ok (AND, QImode, operands)" { if (which_alternative == 2) { ! if (GET_CODE (operands[2]) == CONST_INT ! && (INTVAL (operands[2]) & 0xffffff00)) operands[2] = GEN_INT (INTVAL (operands[2]) & 0xff); return "and{l}\t{%2, %k0|%k0, %2}"; } --- 8413,8434 ---- [(set_attr "type" "alu1") (set_attr "mode" "QI")]) ! (define_insn "*andqi_2_maybe_si" [(set (reg 17) (compare (and:QI ! (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") ! (match_operand:QI 2 "general_operand" "qim,qi,i")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm,*r") (and:QI (match_dup 1) (match_dup 2)))] ! "ix86_binary_operator_ok (AND, QImode, operands) ! && ix86_match_ccmode (insn, ! GET_CODE (operands[2]) == CONST_INT ! && INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)" { if (which_alternative == 2) { ! if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) < 0) operands[2] = GEN_INT (INTVAL (operands[2]) & 0xff); return "and{l}\t{%2, %k0|%k0, %2}"; } *************** *** 8404,8409 **** --- 8437,8456 ---- [(set_attr "type" "alu") (set_attr "mode" "QI,QI,SI")]) + (define_insn "*andqi_2" + [(set (reg 17) + (compare (and:QI + (match_operand:QI 1 "nonimmediate_operand" "%0,0") + (match_operand:QI 2 "general_operand" "qim,qi")) + (const_int 0))) + (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm") + (and:QI (match_dup 1) (match_dup 2)))] + "ix86_match_ccmode (insn, CCNOmode) + && ix86_binary_operator_ok (AND, QImode, operands)" + "and{b}\t{%2, %0|%0, %2}" + [(set_attr "type" "alu") + (set_attr "mode" "QI")]) + (define_insn "*andqi_2_slp" [(set (reg 17) (compare (and:QI *************** *** 9567,9574 **** [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "") (neg:SF (match_operand:SF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387" ! "if (TARGET_SSE) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) --- 9614,9621 ---- [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "") (neg:SF (match_operand:SF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387 || TARGET_SSE_MATH" ! "if (TARGET_SSE_MATH) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) *************** *** 9641,9652 **** (use (match_operand:V4SF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (subreg:TI (match_dup 0) 0) ! (xor:TI (match_dup 1) ! (match_dup 2)))] { ! operands[1] = simplify_gen_subreg (TImode, operands[1], SFmode, 0); ! operands[2] = simplify_gen_subreg (TImode, operands[2], V4SFmode, 0); if (operands_match_p (operands[0], operands[2])) { rtx tmp; --- 9688,9699 ---- (use (match_operand:V4SF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (match_dup 0) ! (xor:V4SF (match_dup 1) ! (match_dup 2)))] { ! operands[0] = simplify_gen_subreg (V4SFmode, operands[0], SFmode, 0); ! operands[1] = simplify_gen_subreg (V4SFmode, operands[1], SFmode, 0); if (operands_match_p (operands[0], operands[2])) { rtx tmp; *************** *** 9664,9670 **** [(set (match_operand:SF 0 "nonimmediate_operand" "=f#r,rm#f") (neg:SF (match_operand:SF 1 "nonimmediate_operand" "0,0"))) (clobber (reg:CC 17))] ! "TARGET_80387 && !TARGET_SSE && ix86_unary_operator_ok (NEG, SFmode, operands)" "#") --- 9711,9717 ---- [(set (match_operand:SF 0 "nonimmediate_operand" "=f#r,rm#f") (neg:SF (match_operand:SF 1 "nonimmediate_operand" "0,0"))) (clobber (reg:CC 17))] ! "TARGET_80387 && ix86_unary_operator_ok (NEG, SFmode, operands)" "#") *************** *** 9707,9714 **** [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "") (neg:DF (match_operand:DF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387" ! "if (TARGET_SSE2) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) --- 9754,9761 ---- [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "") (neg:DF (match_operand:DF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)" ! "if (TARGET_SSE2 && TARGET_SSE_MATH) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) *************** *** 9809,9821 **** (use (match_operand:V2DF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (subreg:TI (match_dup 0) 0) ! (xor:TI (match_dup 1) ! (match_dup 2)))] { operands[0] = simplify_gen_subreg (V2DFmode, operands[0], DFmode, 0); ! operands[1] = simplify_gen_subreg (TImode, operands[1], DFmode, 0); ! operands[2] = simplify_gen_subreg (TImode, operands[2], V2DFmode, 0); /* Avoid possible reformatting on the operands. */ if (TARGET_SSE_PARTIAL_REGS && !optimize_size) emit_insn (gen_sse2_unpcklpd (operands[0], operands[0], operands[0])); --- 9856,9867 ---- (use (match_operand:V2DF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (match_dup 0) ! (xor:V2DF (match_dup 1) ! (match_dup 2)))] { operands[0] = simplify_gen_subreg (V2DFmode, operands[0], DFmode, 0); ! operands[1] = simplify_gen_subreg (V2DFmode, operands[1], DFmode, 0); /* Avoid possible reformatting on the operands. */ if (TARGET_SSE_PARTIAL_REGS && !optimize_size) emit_insn (gen_sse2_unpcklpd (operands[0], operands[0], operands[0])); *************** *** 9974,9981 **** [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "") (neg:SF (match_operand:SF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387" ! "if (TARGET_SSE) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) --- 10020,10027 ---- [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "") (neg:SF (match_operand:SF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387 || TARGET_SSE_MATH" ! "if (TARGET_SSE_MATH) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) *************** *** 10049,10060 **** (use (match_operand:V4SF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (subreg:TI (match_dup 0) 0) ! (and:TI (match_dup 1) ! (match_dup 2)))] { ! operands[1] = simplify_gen_subreg (TImode, operands[1], SFmode, 0); ! operands[2] = simplify_gen_subreg (TImode, operands[2], V4SFmode, 0); if (operands_match_p (operands[0], operands[2])) { rtx tmp; --- 10095,10106 ---- (use (match_operand:V4SF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (match_dup 0) ! (and:V4SF (match_dup 1) ! (match_dup 2)))] { ! operands[0] = simplify_gen_subreg (V4SFmode, operands[0], SFmode, 0); ! operands[1] = simplify_gen_subreg (V4SFmode, operands[1], SFmode, 0); if (operands_match_p (operands[0], operands[2])) { rtx tmp; *************** *** 10071,10077 **** [(set (match_operand:SF 0 "nonimmediate_operand" "=f#r,rm#f") (abs:SF (match_operand:SF 1 "nonimmediate_operand" "0,0"))) (clobber (reg:CC 17))] ! "TARGET_80387 && ix86_unary_operator_ok (ABS, SFmode, operands) && !TARGET_SSE" "#") (define_split --- 10117,10123 ---- [(set (match_operand:SF 0 "nonimmediate_operand" "=f#r,rm#f") (abs:SF (match_operand:SF 1 "nonimmediate_operand" "0,0"))) (clobber (reg:CC 17))] ! "TARGET_80387 && ix86_unary_operator_ok (ABS, SFmode, operands)" "#") (define_split *************** *** 10113,10120 **** [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "") (neg:DF (match_operand:DF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387" ! "if (TARGET_SSE2) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) --- 10159,10166 ---- [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "") (neg:DF (match_operand:DF 1 "nonimmediate_operand" ""))) (clobber (reg:CC 17))])] ! "TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)" ! "if (TARGET_SSE2 && TARGET_SSE_MATH) { /* In case operand is in memory, we will not use SSE. */ if (memory_operand (operands[0], VOIDmode) *************** *** 10203,10215 **** (use (match_operand:V2DF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (subreg:TI (match_dup 0) 0) ! (and:TI (match_dup 1) ! (match_dup 2)))] { operands[0] = simplify_gen_subreg (V2DFmode, operands[0], DFmode, 0); ! operands[1] = simplify_gen_subreg (TImode, operands[1], DFmode, 0); ! operands[2] = simplify_gen_subreg (TImode, operands[2], V2DFmode, 0); /* Avoid possible reformatting on the operands. */ if (TARGET_SSE_PARTIAL_REGS && !optimize_size) emit_insn (gen_sse2_unpcklpd (operands[0], operands[0], operands[0])); --- 10249,10260 ---- (use (match_operand:V2DF 2 "nonimmediate_operand" "")) (clobber (reg:CC 17))] "reload_completed && SSE_REG_P (operands[0])" ! [(set (match_dup 0) ! (and:V2DF (match_dup 1) ! (match_dup 2)))] { operands[0] = simplify_gen_subreg (V2DFmode, operands[0], DFmode, 0); ! operands[1] = simplify_gen_subreg (V2DFmode, operands[1], DFmode, 0); /* Avoid possible reformatting on the operands. */ if (TARGET_SSE_PARTIAL_REGS && !optimize_size) emit_insn (gen_sse2_unpcklpd (operands[0], operands[0], operands[0])); *************** *** 10383,10399 **** (set_attr "mode" "DI")]) (define_split ! [(set (reg 17) ! (compare (not:DI (match_operand:DI 1 "nonimmediate_operand" "")) ! (const_int 0))) ! (set (match_operand:DI 0 "nonimmediate_operand" "") ! (not:DI (match_dup 1)))] "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (reg:CCNO 17) ! (compare:CCNO (xor:DI (match_dup 1) (const_int -1)) ! (const_int 0))) ! (set (match_dup 0) ! (xor:DI (match_dup 1) (const_int -1)))])] "") (define_expand "one_cmplsi2" --- 10428,10446 ---- (set_attr "mode" "DI")]) (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 2 "compare_operator" ! [(not:DI (match_operand:DI 3 "nonimmediate_operand" "")) ! (const_int 0)])) ! (set (match_operand:DI 1 "nonimmediate_operand" "") ! (not:DI (match_dup 3)))] "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (match_dup 0) ! (match_op_dup 2 ! [(xor:DI (match_dup 3) (const_int -1)) ! (const_int 0)])) ! (set (match_dup 1) ! (xor:DI (match_dup 3) (const_int -1)))])] "") (define_expand "one_cmplsi2" *************** *** 10432,10448 **** (set_attr "mode" "SI")]) (define_split ! [(set (reg 17) ! (compare (not:SI (match_operand:SI 1 "nonimmediate_operand" "")) ! (const_int 0))) ! (set (match_operand:SI 0 "nonimmediate_operand" "") ! (not:SI (match_dup 1)))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (reg:CCNO 17) ! (compare:CCNO (xor:SI (match_dup 1) (const_int -1)) ! (const_int 0))) ! (set (match_dup 0) ! (xor:SI (match_dup 1) (const_int -1)))])] "") ;; ??? Currently never generated - xor is used instead. --- 10479,10496 ---- (set_attr "mode" "SI")]) (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 2 "compare_operator" ! [(not:SI (match_operand:SI 3 "nonimmediate_operand" "")) ! (const_int 0)])) ! (set (match_operand:SI 1 "nonimmediate_operand" "") ! (not:SI (match_dup 3)))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (match_dup 0) ! (match_op_dup 2 [(xor:SI (match_dup 3) (const_int -1)) ! (const_int 0)])) ! (set (match_dup 1) ! (xor:SI (match_dup 3) (const_int -1)))])] "") ;; ??? Currently never generated - xor is used instead. *************** *** 10459,10475 **** (set_attr "mode" "SI")]) (define_split ! [(set (reg 17) ! (compare (not:SI (match_operand:SI 1 "register_operand" "")) ! (const_int 0))) ! (set (match_operand:DI 0 "register_operand" "") ! (zero_extend:DI (not:SI (match_dup 1))))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (reg:CCNO 17) ! (compare:CCNO (xor:SI (match_dup 1) (const_int -1)) ! (const_int 0))) ! (set (match_dup 0) ! (zero_extend:DI (xor:SI (match_dup 1) (const_int -1))))])] "") (define_expand "one_cmplhi2" --- 10507,10524 ---- (set_attr "mode" "SI")]) (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 2 "compare_operator" ! [(not:SI (match_operand:SI 3 "register_operand" "")) ! (const_int 0)])) ! (set (match_operand:DI 1 "register_operand" "") ! (zero_extend:DI (not:SI (match_dup 3))))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (match_dup 0) ! (match_op_dup 2 [(xor:SI (match_dup 3) (const_int -1)) ! (const_int 0)])) ! (set (match_dup 1) ! (zero_extend:DI (xor:SI (match_dup 3) (const_int -1))))])] "") (define_expand "one_cmplhi2" *************** *** 10499,10515 **** (set_attr "mode" "HI")]) (define_split ! [(set (reg 17) ! (compare (not:HI (match_operand:HI 1 "nonimmediate_operand" "")) ! (const_int 0))) ! (set (match_operand:HI 0 "nonimmediate_operand" "") ! (not:HI (match_dup 1)))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (reg:CCNO 17) ! (compare:CCNO (xor:HI (match_dup 1) (const_int -1)) ! (const_int 0))) ! (set (match_dup 0) ! (xor:HI (match_dup 1) (const_int -1)))])] "") ;; %%% Potential partial reg stall on alternative 1. What to do? --- 10548,10565 ---- (set_attr "mode" "HI")]) (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 2 "compare_operator" ! [(not:HI (match_operand:HI 3 "nonimmediate_operand" "")) ! (const_int 0)])) ! (set (match_operand:HI 1 "nonimmediate_operand" "") ! (not:HI (match_dup 3)))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (match_dup 0) ! (match_op_dup 2 [(xor:HI (match_dup 3) (const_int -1)) ! (const_int 0)])) ! (set (match_dup 1) ! (xor:HI (match_dup 3) (const_int -1)))])] "") ;; %%% Potential partial reg stall on alternative 1. What to do? *************** *** 10542,10558 **** (set_attr "mode" "QI")]) (define_split ! [(set (reg 17) ! (compare (not:QI (match_operand:QI 1 "nonimmediate_operand" "")) ! (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "") ! (not:QI (match_dup 1)))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (reg:CCNO 17) ! (compare:CCNO (xor:QI (match_dup 1) (const_int -1)) ! (const_int 0))) ! (set (match_dup 0) ! (xor:QI (match_dup 1) (const_int -1)))])] "") ;; Arithmetic shift instructions --- 10592,10609 ---- (set_attr "mode" "QI")]) (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 2 "compare_operator" ! [(not:QI (match_operand:QI 3 "nonimmediate_operand" "")) ! (const_int 0)])) ! (set (match_operand:QI 1 "nonimmediate_operand" "") ! (not:QI (match_dup 3)))] "ix86_match_ccmode (insn, CCNOmode)" ! [(parallel [(set (match_dup 0) ! (match_op_dup 2 [(xor:QI (match_dup 3) (const_int -1)) ! (const_int 0)])) ! (set (match_dup 1) ! (xor:QI (match_dup 3) (const_int -1)))])] "") ;; Arithmetic shift instructions *************** *** 17003,17009 **** (clobber (match_operand 6 "" "")) (clobber (reg:CC 17))] "!SSE_REG_P (operands[0]) && reload_completed ! && VALID_SSE_REG_MODE (GET_MODE (operands[0]))" [(const_int 0)] { ix86_compare_op0 = operands[5]; --- 17054,17061 ---- (clobber (match_operand 6 "" "")) (clobber (reg:CC 17))] "!SSE_REG_P (operands[0]) && reload_completed ! && (GET_MODE (operands[0]) == SFmode ! || (TARGET_SSE2 && GET_MODE (operands[0]) == DFmode))" [(const_int 0)] { ix86_compare_op0 = operands[5]; *************** *** 17020,17041 **** ;; nand op0, op3 - load op3 to op0 if comparison was false ;; or op2, op0 - get the nonzero one into the result. (define_split ! [(set (match_operand 0 "register_operand" "") ! (if_then_else (match_operator 1 "sse_comparison_operator" ! [(match_operand 4 "register_operand" "") ! (match_operand 5 "nonimmediate_operand" "")]) ! (match_operand 2 "register_operand" "") ! (match_operand 3 "register_operand" ""))) (clobber (match_operand 6 "" "")) (clobber (reg:CC 17))] "SSE_REG_P (operands[0]) && reload_completed" [(set (match_dup 4) (match_op_dup 1 [(match_dup 4) (match_dup 5)])) ! (set (subreg:TI (match_dup 2) 0) (and:TI (subreg:TI (match_dup 2) 0) ! (subreg:TI (match_dup 4) 0))) ! (set (subreg:TI (match_dup 4) 0) (and:TI (not:TI (subreg:TI (match_dup 4) 0)) ! (subreg:TI (match_dup 3) 0))) ! (set (subreg:TI (match_dup 0) 0) (ior:TI (subreg:TI (match_dup 6) 0) ! (subreg:TI (match_dup 7) 0)))] { if (GET_MODE (operands[2]) == DFmode && TARGET_SSE_PARTIAL_REGS && !optimize_size) --- 17072,17131 ---- ;; nand op0, op3 - load op3 to op0 if comparison was false ;; or op2, op0 - get the nonzero one into the result. (define_split ! [(set (match_operand:SF 0 "register_operand" "") ! (if_then_else:SF (match_operator 1 "sse_comparison_operator" ! [(match_operand:SF 4 "register_operand" "") ! (match_operand:SF 5 "nonimmediate_operand" "")]) ! (match_operand:SF 2 "register_operand" "") ! (match_operand:SF 3 "register_operand" ""))) (clobber (match_operand 6 "" "")) (clobber (reg:CC 17))] "SSE_REG_P (operands[0]) && reload_completed" [(set (match_dup 4) (match_op_dup 1 [(match_dup 4) (match_dup 5)])) ! (set (match_dup 2) (and:V4SF (match_dup 2) ! (match_dup 8))) ! (set (match_dup 8) (and:V4SF (not:V4SF (match_dup 8)) ! (match_dup 3))) ! (set (match_dup 0) (ior:V4SF (match_dup 6) ! (match_dup 7)))] ! { ! /* If op2 == op3, op3 would be clobbered before it is used. */ ! if (operands_match_p (operands[2], operands[3])) ! { ! emit_move_insn (operands[0], operands[2]); ! DONE; ! } ! ! PUT_MODE (operands[1], GET_MODE (operands[0])); ! if (operands_match_p (operands[0], operands[4])) ! operands[6] = operands[4], operands[7] = operands[2]; ! else ! operands[6] = operands[2], operands[7] = operands[4]; ! operands[0] = simplify_gen_subreg (V4SFmode, operands[0], SFmode, 0); ! operands[2] = simplify_gen_subreg (V4SFmode, operands[2], SFmode, 0); ! operands[3] = simplify_gen_subreg (V4SFmode, operands[3], SFmode, 0); ! operands[8] = simplify_gen_subreg (V4SFmode, operands[4], SFmode, 0); ! operands[6] = simplify_gen_subreg (V4SFmode, operands[6], SFmode, 0); ! operands[7] = simplify_gen_subreg (V4SFmode, operands[7], SFmode, 0); ! }) ! ! (define_split ! [(set (match_operand:DF 0 "register_operand" "") ! (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "register_operand" "") ! (match_operand:DF 5 "nonimmediate_operand" "")]) ! (match_operand:DF 2 "register_operand" "") ! (match_operand:DF 3 "register_operand" ""))) ! (clobber (match_operand 6 "" "")) ! (clobber (reg:CC 17))] ! "SSE_REG_P (operands[0]) && reload_completed" ! [(set (match_dup 4) (match_op_dup 1 [(match_dup 4) (match_dup 5)])) ! (set (match_dup 2) (and:V2DF (match_dup 2) ! (match_dup 8))) ! (set (match_dup 8) (and:V2DF (not:V2DF (match_dup 8)) ! (match_dup 3))) ! (set (match_dup 0) (ior:V2DF (match_dup 6) ! (match_dup 7)))] { if (GET_MODE (operands[2]) == DFmode && TARGET_SSE_PARTIAL_REGS && !optimize_size) *************** *** 17058,17063 **** --- 17148,17159 ---- operands[6] = operands[4], operands[7] = operands[2]; else operands[6] = operands[2], operands[7] = operands[4]; + operands[0] = simplify_gen_subreg (V2DFmode, operands[0], DFmode, 0); + operands[2] = simplify_gen_subreg (V2DFmode, operands[2], DFmode, 0); + operands[3] = simplify_gen_subreg (V2DFmode, operands[3], DFmode, 0); + operands[8] = simplify_gen_subreg (V2DFmode, operands[4], DFmode, 0); + operands[6] = simplify_gen_subreg (V2DFmode, operands[6], DFmode, 0); + operands[7] = simplify_gen_subreg (V2DFmode, operands[7], DFmode, 0); }) ;; Special case of conditional move we can handle effectively. *************** *** 17144,17161 **** "#") (define_split ! [(set (match_operand 0 "register_operand" "") ! (if_then_else (match_operator 1 "comparison_operator" ! [(match_operand 4 "nonimmediate_operand" "") ! (match_operand 5 "nonimmediate_operand" "")]) ! (match_operand 2 "nonmemory_operand" "") ! (match_operand 3 "nonmemory_operand" "")))] "SSE_REG_P (operands[0]) && reload_completed && (const0_operand (operands[2], GET_MODE (operands[0])) || const0_operand (operands[3], GET_MODE (operands[0])))" [(set (match_dup 0) (match_op_dup 1 [(match_dup 0) (match_dup 5)])) ! (set (subreg:TI (match_dup 0) 0) (and:TI (match_dup 6) ! (match_dup 7)))] { if (TARGET_SSE_PARTIAL_REGS && !optimize_size && GET_MODE (operands[2]) == DFmode) --- 17240,17294 ---- "#") (define_split ! [(set (match_operand:SF 0 "register_operand" "") ! (if_then_else:SF (match_operator 1 "comparison_operator" ! [(match_operand:SF 4 "nonimmediate_operand" "") ! (match_operand:SF 5 "nonimmediate_operand" "")]) ! (match_operand:SF 2 "nonmemory_operand" "") ! (match_operand:SF 3 "nonmemory_operand" "")))] "SSE_REG_P (operands[0]) && reload_completed && (const0_operand (operands[2], GET_MODE (operands[0])) || const0_operand (operands[3], GET_MODE (operands[0])))" [(set (match_dup 0) (match_op_dup 1 [(match_dup 0) (match_dup 5)])) ! (set (match_dup 8) (and:V4SF (match_dup 6) (match_dup 7)))] ! { ! PUT_MODE (operands[1], GET_MODE (operands[0])); ! if (!sse_comparison_operator (operands[1], VOIDmode) ! || !rtx_equal_p (operands[0], operands[4])) ! { ! rtx tmp = operands[5]; ! operands[5] = operands[4]; ! operands[4] = tmp; ! PUT_CODE (operands[1], swap_condition (GET_CODE (operands[1]))); ! } ! if (!rtx_equal_p (operands[0], operands[4])) ! abort (); ! operands[8] = simplify_gen_subreg (V4SFmode, operands[0], SFmode, 0); ! if (const0_operand (operands[2], GET_MODE (operands[2]))) ! { ! operands[7] = operands[3]; ! operands[6] = gen_rtx_NOT (V4SFmode, operands[5]); ! } ! else ! { ! operands[7] = operands[2]; ! operands[6] = operands[8]; ! } ! operands[7] = simplify_gen_subreg (V4SFmode, operands[7], SFmode, 0); ! }) ! ! (define_split ! [(set (match_operand:DF 0 "register_operand" "") ! (if_then_else:DF (match_operator 1 "comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "") ! (match_operand:DF 5 "nonimmediate_operand" "")]) ! (match_operand:DF 2 "nonmemory_operand" "") ! (match_operand:DF 3 "nonmemory_operand" "")))] ! "SSE_REG_P (operands[0]) && reload_completed ! && (const0_operand (operands[2], GET_MODE (operands[0])) ! || const0_operand (operands[3], GET_MODE (operands[0])))" ! [(set (match_dup 0) (match_op_dup 1 [(match_dup 0) (match_dup 5)])) ! (set (match_dup 8) (and:V2DF (match_dup 6) (match_dup 7)))] { if (TARGET_SSE_PARTIAL_REGS && !optimize_size && GET_MODE (operands[2]) == DFmode) *************** *** 17182,17200 **** } if (!rtx_equal_p (operands[0], operands[4])) abort (); ! if (const0_operand (operands[2], GET_MODE (operands[0]))) { operands[7] = operands[3]; ! operands[6] = gen_rtx_NOT (TImode, gen_rtx_SUBREG (TImode, operands[0], ! 0)); } else { operands[7] = operands[2]; ! operands[6] = gen_rtx_SUBREG (TImode, operands[0], 0); } ! operands[7] = simplify_gen_subreg (TImode, operands[7], ! GET_MODE (operands[7]), 0); }) (define_expand "allocate_stack_worker" --- 17315,17332 ---- } if (!rtx_equal_p (operands[0], operands[4])) abort (); ! operands[8] = simplify_gen_subreg (V2DFmode, operands[0], DFmode, 0); ! if (const0_operand (operands[2], GET_MODE (operands[2]))) { operands[7] = operands[3]; ! operands[6] = gen_rtx_NOT (V2DFmode, operands[8]); } else { operands[7] = operands[2]; ! operands[6] = operands[8]; } ! operands[7] = simplify_gen_subreg (V2DFmode, operands[7], DFmode, 0); }) (define_expand "allocate_stack_worker" *************** *** 17319,17370 **** ; instruction size is unchanged, except in the %eax case for ; which it is increased by one byte, hence the ! optimize_size. (define_split ! [(set (reg 17) ! (compare (and (match_operand 1 "aligned_operand" "") ! (match_operand 2 "const_int_operand" "")) ! (const_int 0))) ! (set (match_operand 0 "register_operand" "") ! (and (match_dup 1) (match_dup 2)))] "! TARGET_PARTIAL_REG_STALL && reload_completed /* Ensure that the operand will remain sign-extended immediate. */ ! && ix86_match_ccmode (insn, INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode) && ! optimize_size ! && ((GET_MODE (operands[0]) == HImode && ! TARGET_FAST_PREFIX) ! || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))" ! [(parallel [(set (reg:CCNO 17) ! (compare:CCNO (and:SI (match_dup 1) (match_dup 2)) ! (const_int 0))) ! (set (match_dup 0) ! (and:SI (match_dup 1) (match_dup 2)))])] ! "operands[2] ! = gen_int_mode (INTVAL (operands[2]) ! & GET_MODE_MASK (GET_MODE (operands[0])), ! SImode); ! operands[0] = gen_lowpart (SImode, operands[0]); ! operands[1] = gen_lowpart (SImode, operands[1]);") ; Don't promote the QImode tests, as i386 doesn't have encoding of ; the TEST instruction with 32-bit sign-extended immediate and thus ; the instruction size would at least double, which is not what we ; want even with ! optimize_size. (define_split ! [(set (reg 17) ! (compare (and (match_operand:HI 0 "aligned_operand" "") ! (match_operand:HI 1 "const_int_operand" "")) ! (const_int 0)))] "! TARGET_PARTIAL_REG_STALL && reload_completed /* Ensure that the operand will remain sign-extended immediate. */ ! && ix86_match_ccmode (insn, INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode) && ! TARGET_FAST_PREFIX && ! optimize_size" ! [(set (reg:CCNO 17) ! (compare:CCNO (and:SI (match_dup 0) (match_dup 1)) ! (const_int 0)))] ! "operands[1] ! = gen_int_mode (INTVAL (operands[1]) ! & GET_MODE_MASK (GET_MODE (operands[0])), ! SImode); ! operands[0] = gen_lowpart (SImode, operands[0]);") (define_split [(set (match_operand 0 "register_operand" "") --- 17451,17506 ---- ; instruction size is unchanged, except in the %eax case for ; which it is increased by one byte, hence the ! optimize_size. (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 2 "compare_operator" ! [(and (match_operand 3 "aligned_operand" "") ! (match_operand 4 "const_int_operand" "")) ! (const_int 0)])) ! (set (match_operand 1 "register_operand" "") ! (and (match_dup 3) (match_dup 4)))] "! TARGET_PARTIAL_REG_STALL && reload_completed /* Ensure that the operand will remain sign-extended immediate. */ ! && ix86_match_ccmode (insn, INTVAL (operands[4]) >= 0 ? CCNOmode : CCZmode) && ! optimize_size ! && ((GET_MODE (operands[1]) == HImode && ! TARGET_FAST_PREFIX) ! || (GET_MODE (operands[1]) == QImode && TARGET_PROMOTE_QImode))" ! [(parallel [(set (match_dup 0) ! (match_op_dup 2 [(and:SI (match_dup 3) (match_dup 4)) ! (const_int 0)])) ! (set (match_dup 1) ! (and:SI (match_dup 3) (match_dup 4)))])] ! { ! operands[4] ! = gen_int_mode (INTVAL (operands[4]) ! & GET_MODE_MASK (GET_MODE (operands[1])), SImode); ! operands[1] = gen_lowpart (SImode, operands[1]); ! operands[3] = gen_lowpart (SImode, operands[3]); ! }) ; Don't promote the QImode tests, as i386 doesn't have encoding of ; the TEST instruction with 32-bit sign-extended immediate and thus ; the instruction size would at least double, which is not what we ; want even with ! optimize_size. (define_split ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(and (match_operand:HI 2 "aligned_operand" "") ! (match_operand:HI 3 "const_int_operand" "")) ! (const_int 0)]))] "! TARGET_PARTIAL_REG_STALL && reload_completed /* Ensure that the operand will remain sign-extended immediate. */ ! && ix86_match_ccmode (insn, INTVAL (operands[3]) >= 0 ? CCNOmode : CCZmode) && ! TARGET_FAST_PREFIX && ! optimize_size" ! [(set (match_dup 0) ! (match_op_dup 1 [(and:SI (match_dup 2) (match_dup 3)) ! (const_int 0)]))] ! { ! operands[3] ! = gen_int_mode (INTVAL (operands[3]) ! & GET_MODE_MASK (GET_MODE (operands[2])), SImode); ! operands[2] = gen_lowpart (SImode, operands[2]); ! }) (define_split [(set (match_operand 0 "register_operand" "") *************** *** 17537,17549 **** ;; Don't compare memory with zero, load and use a test instead. (define_peephole2 ! [(set (reg 17) ! (compare (match_operand:SI 0 "memory_operand" "") ! (const_int 0))) (match_scratch:SI 3 "r")] "ix86_match_ccmode (insn, CCNOmode) && ! optimize_size" ! [(set (match_dup 3) (match_dup 0)) ! (set (reg:CCNO 17) (compare:CCNO (match_dup 3) (const_int 0)))] "") ;; NOT is not pairable on Pentium, while XOR is, but one byte longer. --- 17673,17686 ---- ;; Don't compare memory with zero, load and use a test instead. (define_peephole2 ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(match_operand:SI 2 "memory_operand" "") ! (const_int 0)])) (match_scratch:SI 3 "r")] "ix86_match_ccmode (insn, CCNOmode) && ! optimize_size" ! [(set (match_dup 3) (match_dup 2)) ! (set (match_dup 0) (match_op_dup 1 [(match_dup 3) (const_int 0)]))] "") ;; NOT is not pairable on Pentium, while XOR is, but one byte longer. *************** *** 17607,17683 **** ;; versions if we're concerned about partial register stalls. (define_peephole2 ! [(set (reg 17) ! (compare (and:SI (match_operand:SI 0 "register_operand" "") ! (match_operand:SI 1 "immediate_operand" "")) ! (const_int 0)))] "ix86_match_ccmode (insn, CCNOmode) ! && (true_regnum (operands[0]) != 0 ! || (GET_CODE (operands[1]) == CONST_INT ! && CONST_OK_FOR_LETTER_P (INTVAL (operands[1]), 'K'))) ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" [(parallel ! [(set (reg:CCNO 17) ! (compare:CCNO (and:SI (match_dup 0) ! (match_dup 1)) ! (const_int 0))) ! (set (match_dup 0) ! (and:SI (match_dup 0) (match_dup 1)))])] "") ;; We don't need to handle HImode case, because it will be promoted to SImode ;; on ! TARGET_PARTIAL_REG_STALL (define_peephole2 ! [(set (reg 17) ! (compare (and:QI (match_operand:QI 0 "register_operand" "") ! (match_operand:QI 1 "immediate_operand" "")) ! (const_int 0)))] "! TARGET_PARTIAL_REG_STALL && ix86_match_ccmode (insn, CCNOmode) ! && true_regnum (operands[0]) != 0 ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" [(parallel ! [(set (reg:CCNO 17) ! (compare:CCNO (and:QI (match_dup 0) ! (match_dup 1)) ! (const_int 0))) ! (set (match_dup 0) ! (and:QI (match_dup 0) (match_dup 1)))])] "") (define_peephole2 ! [(set (reg 17) ! (compare ! (and:SI ! (zero_extract:SI ! (match_operand 0 "ext_register_operand" "") ! (const_int 8) ! (const_int 8)) ! (match_operand 1 "const_int_operand" "")) ! (const_int 0)))] "! TARGET_PARTIAL_REG_STALL && ix86_match_ccmode (insn, CCNOmode) ! && true_regnum (operands[0]) != 0 ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ! [(parallel [(set (reg:CCNO 17) ! (compare:CCNO ! (and:SI ! (zero_extract:SI ! (match_dup 0) ! (const_int 8) ! (const_int 8)) ! (match_dup 1)) ! (const_int 0))) ! (set (zero_extract:SI (match_dup 0) (const_int 8) (const_int 8)) (and:SI (zero_extract:SI ! (match_dup 0) (const_int 8) (const_int 8)) ! (match_dup 1)))])] "") ;; Don't do logical operations with memory inputs. --- 17744,17820 ---- ;; versions if we're concerned about partial register stalls. (define_peephole2 ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(and:SI (match_operand:SI 2 "register_operand" "") ! (match_operand:SI 3 "immediate_operand" "")) ! (const_int 0)]))] "ix86_match_ccmode (insn, CCNOmode) ! && (true_regnum (operands[2]) != 0 ! || (GET_CODE (operands[3]) == CONST_INT ! && CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'K'))) ! && peep2_reg_dead_p (1, operands[2])" [(parallel ! [(set (match_dup 0) ! (match_op_dup 1 [(and:SI (match_dup 2) (match_dup 3)) ! (const_int 0)])) ! (set (match_dup 2) ! (and:SI (match_dup 2) (match_dup 3)))])] "") ;; We don't need to handle HImode case, because it will be promoted to SImode ;; on ! TARGET_PARTIAL_REG_STALL (define_peephole2 ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(and:QI (match_operand:QI 2 "register_operand" "") ! (match_operand:QI 3 "immediate_operand" "")) ! (const_int 0)]))] "! TARGET_PARTIAL_REG_STALL && ix86_match_ccmode (insn, CCNOmode) ! && true_regnum (operands[2]) != 0 ! && peep2_reg_dead_p (1, operands[2])" [(parallel ! [(set (match_dup 0) ! (match_op_dup 1 [(and:QI (match_dup 2) (match_dup 3)) ! (const_int 0)])) ! (set (match_dup 2) ! (and:QI (match_dup 2) (match_dup 3)))])] "") (define_peephole2 ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(and:SI ! (zero_extract:SI ! (match_operand 2 "ext_register_operand" "") ! (const_int 8) ! (const_int 8)) ! (match_operand 3 "const_int_operand" "")) ! (const_int 0)]))] "! TARGET_PARTIAL_REG_STALL && ix86_match_ccmode (insn, CCNOmode) ! && true_regnum (operands[2]) != 0 ! && peep2_reg_dead_p (1, operands[2])" ! [(parallel [(set (match_dup 0) ! (match_op_dup 1 ! [(and:SI ! (zero_extract:SI ! (match_dup 2) ! (const_int 8) ! (const_int 8)) ! (match_dup 3)) ! (const_int 0)])) ! (set (zero_extract:SI (match_dup 2) (const_int 8) (const_int 8)) (and:SI (zero_extract:SI ! (match_dup 2) (const_int 8) (const_int 8)) ! (match_dup 3)))])] "") ;; Don't do logical operations with memory inputs. *************** *** 17979,18044 **** "") ;; Convert compares with 1 to shorter inc/dec operations when CF is not ! ;; required and register dies. ! (define_peephole2 ! [(set (reg 17) ! (compare (match_operand:SI 0 "register_operand" "") ! (match_operand:SI 1 "incdec_operand" "")))] ! "ix86_match_ccmode (insn, CCGCmode) ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ! [(parallel [(set (reg:CCGC 17) ! (compare:CCGC (match_dup 0) ! (match_dup 1))) ! (clobber (match_dup 0))])] ! "") ! ! (define_peephole2 ! [(set (reg 17) ! (compare (match_operand:HI 0 "register_operand" "") ! (match_operand:HI 1 "incdec_operand" "")))] ! "ix86_match_ccmode (insn, CCGCmode) ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ! [(parallel [(set (reg:CCGC 17) ! (compare:CCGC (match_dup 0) ! (match_dup 1))) ! (clobber (match_dup 0))])] ! "") ! ! (define_peephole2 ! [(set (reg 17) ! (compare (match_operand:QI 0 "register_operand" "") ! (match_operand:QI 1 "incdec_operand" "")))] ! "ix86_match_ccmode (insn, CCGCmode) ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ! [(parallel [(set (reg:CCGC 17) ! (compare:CCGC (match_dup 0) ! (match_dup 1))) ! (clobber (match_dup 0))])] ! "") ! ! ;; Convert compares with 128 to shorter add -128 ! (define_peephole2 ! [(set (reg 17) ! (compare (match_operand:SI 0 "register_operand" "") ! (const_int 128)))] ! "ix86_match_ccmode (insn, CCGCmode) ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ! [(parallel [(set (reg:CCGC 17) ! (compare:CCGC (match_dup 0) ! (const_int 128))) ! (clobber (match_dup 0))])] ! "") ! (define_peephole2 ! [(set (reg 17) ! (compare (match_operand:HI 0 "register_operand" "") ! (const_int 128)))] ! "ix86_match_ccmode (insn, CCGCmode) ! && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ! [(parallel [(set (reg:CCGC 17) ! (compare:CCGC (match_dup 0) ! (const_int 128))) ! (clobber (match_dup 0))])] "") (define_peephole2 --- 18116,18135 ---- "") ;; Convert compares with 1 to shorter inc/dec operations when CF is not ! ;; required and register dies. Similarly for 128 to plus -128. (define_peephole2 ! [(set (match_operand 0 "flags_reg_operand" "") ! (match_operator 1 "compare_operator" ! [(match_operand 2 "register_operand" "") ! (match_operand 3 "const_int_operand" "")]))] ! "(INTVAL (operands[3]) == -1 ! || INTVAL (operands[3]) == 1 ! || INTVAL (operands[3]) == 128) ! && ix86_match_ccmode (insn, CCGCmode) ! && peep2_reg_dead_p (1, operands[2])" ! [(parallel [(set (match_dup 0) ! (match_op_dup 1 [(match_dup 2) (match_dup 3)])) ! (clobber (match_dup 2))])] "") (define_peephole2 *************** *** 18326,18332 **** { if (constant_call_address_operand (operands[1], QImode)) return "call\t%P1"; ! return "call\t%*%1"; } [(set_attr "type" "callv")]) --- 18417,18423 ---- { if (constant_call_address_operand (operands[1], QImode)) return "call\t%P1"; ! return "call\t%A1"; } [(set_attr "type" "callv")]) *************** *** 18338,18344 **** { if (constant_call_address_operand (operands[1], QImode)) return "jmp\t%P1"; ! return "jmp\t%*%1"; } [(set_attr "type" "callv")]) --- 18429,18435 ---- { if (constant_call_address_operand (operands[1], QImode)) return "jmp\t%P1"; ! return "jmp\t%A1"; } [(set_attr "type" "callv")]) *************** *** 18422,18431 **** ;; Moves for SSE/MMX regs. ! (define_insn "movv4sf_internal" [(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,x,m") (match_operand:V4SF 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE" "@ xorps\t%0, %0 movaps\t{%1, %0|%0, %1} --- 18513,18523 ---- ;; Moves for SSE/MMX regs. ! (define_insn "*movv4sf_internal" [(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,x,m") (match_operand:V4SF 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE ! && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ xorps\t%0, %0 movaps\t{%1, %0|%0, %1} *************** *** 18436,18442 **** (define_split [(set (match_operand:V4SF 0 "register_operand" "") (match_operand:V4SF 1 "zero_extended_scalar_load_operand" ""))] ! "TARGET_SSE" [(set (match_dup 0) (vec_merge:V4SF (vec_duplicate:V4SF (match_dup 1)) --- 18528,18534 ---- (define_split [(set (match_operand:V4SF 0 "register_operand" "") (match_operand:V4SF 1 "zero_extended_scalar_load_operand" ""))] ! "TARGET_SSE && reload_completed" [(set (match_dup 0) (vec_merge:V4SF (vec_duplicate:V4SF (match_dup 1)) *************** *** 18447,18456 **** operands[2] = CONST0_RTX (V4SFmode); }) ! (define_insn "movv4si_internal" [(set (match_operand:V4SI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V4SI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE" { switch (which_alternative) { --- 18539,18549 ---- operands[2] = CONST0_RTX (V4SFmode); }) ! (define_insn "*movv4si_internal" [(set (match_operand:V4SI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V4SI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE ! && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) { *************** *** 18487,18496 **** (const_string "TI"))] (const_string "TI")))]) ! (define_insn "movv2di_internal" [(set (match_operand:V2DI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V2DI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE" { switch (which_alternative) { --- 18580,18590 ---- (const_string "TI"))] (const_string "TI")))]) ! (define_insn "*movv2di_internal" [(set (match_operand:V2DI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V2DI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE ! && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) { *************** *** 18530,18536 **** (define_split [(set (match_operand:V2DF 0 "register_operand" "") (match_operand:V2DF 1 "zero_extended_scalar_load_operand" ""))] ! "TARGET_SSE2" [(set (match_dup 0) (vec_merge:V2DF (vec_duplicate:V2DF (match_dup 1)) --- 18624,18630 ---- (define_split [(set (match_operand:V2DF 0 "register_operand" "") (match_operand:V2DF 1 "zero_extended_scalar_load_operand" ""))] ! "TARGET_SSE2 && reload_completed" [(set (match_dup 0) (vec_merge:V2DF (vec_duplicate:V2DF (match_dup 1)) *************** *** 18541,18592 **** operands[2] = CONST0_RTX (V2DFmode); }) ! (define_insn "movv8qi_internal" ! [(set (match_operand:V8QI 0 "nonimmediate_operand" "=y,y,m") ! (match_operand:V8QI 1 "vector_move_operand" "C,ym,y"))] "TARGET_MMX && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxmov") (set_attr "mode" "DI")]) ! (define_insn "movv4hi_internal" ! [(set (match_operand:V4HI 0 "nonimmediate_operand" "=y,y,m") ! (match_operand:V4HI 1 "vector_move_operand" "C,ym,y"))] "TARGET_MMX && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxmov") (set_attr "mode" "DI")]) ! (define_insn "movv2si_internal" ! [(set (match_operand:V2SI 0 "nonimmediate_operand" "=y,y,m") ! (match_operand:V2SI 1 "vector_move_operand" "C,ym,y"))] "TARGET_MMX && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxcvt") (set_attr "mode" "DI")]) ! (define_insn "movv2sf_internal" ! [(set (match_operand:V2SF 0 "nonimmediate_operand" "=y,y,m") ! (match_operand:V2SF 1 "vector_move_operand" "C,ym,y"))] ! "TARGET_3DNOW && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxcvt") (set_attr "mode" "DI")]) (define_expand "movti" --- 18635,18714 ---- operands[2] = CONST0_RTX (V2DFmode); }) ! (define_insn "*movv2si_internal" ! [(set (match_operand:V2SI 0 "nonimmediate_operand" ! "=y,y ,m,!y,!*Y,*x,?*x,?m") ! (match_operand:V2SI 1 "vector_move_operand" ! "C ,ym,y,*Y,y ,C ,*xm,*x"))] "TARGET_MMX && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1} + movdq2q\t{%1, %0|%0, %1} + movq2dq\t{%1, %0|%0, %1} + pxor\t%0, %0 + movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") (set_attr "mode" "DI")]) ! (define_insn "*movv4hi_internal" ! [(set (match_operand:V4HI 0 "nonimmediate_operand" ! "=y,y ,m,!y,!*Y,*x,?*x,?m") ! (match_operand:V4HI 1 "vector_move_operand" ! "C ,ym,y,*Y,y ,C ,*xm,*x"))] "TARGET_MMX && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1} + movdq2q\t{%1, %0|%0, %1} + movq2dq\t{%1, %0|%0, %1} + pxor\t%0, %0 + movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") (set_attr "mode" "DI")]) ! (define_insn "*movv8qi_internal" ! [(set (match_operand:V8QI 0 "nonimmediate_operand" ! "=y,y ,m,!y,!*Y,*x,?*x,?m") ! (match_operand:V8QI 1 "vector_move_operand" ! "C ,ym,y,*Y,y ,C ,*xm,*x"))] "TARGET_MMX && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1} + movdq2q\t{%1, %0|%0, %1} + movq2dq\t{%1, %0|%0, %1} + pxor\t%0, %0 + movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") (set_attr "mode" "DI")]) ! (define_insn "*movv2sf_internal" ! [(set (match_operand:V2SF 0 "nonimmediate_operand" ! "=y,y ,m,!y,!*Y,*x,?*x,?m") ! (match_operand:V2SF 1 "vector_move_operand" ! "C ,ym,y,*Y,y ,C ,*xm,*x"))] ! "TARGET_MMX && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ pxor\t%0, %0 movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1} + movdq2q\t{%1, %0|%0, %1} + movq2dq\t{%1, %0|%0, %1} + xorps\t%0, %0 + movq\t{%1, %0|%0, %1} movq\t{%1, %0|%0, %1}" ! [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") (set_attr "mode" "DI")]) (define_expand "movti" *************** *** 18606,18622 **** (match_operand:TF 1 "nonimmediate_operand" ""))] "TARGET_64BIT" { ! if (TARGET_64BIT) ! ix86_expand_move (TFmode, operands); ! else ! ix86_expand_vector_move (TFmode, operands); DONE; }) ! (define_insn "movv2df_internal" [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,m") (match_operand:V2DF 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE2 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) --- 18728,18741 ---- (match_operand:TF 1 "nonimmediate_operand" ""))] "TARGET_64BIT" { ! ix86_expand_move (TFmode, operands); DONE; }) ! (define_insn "*movv2df_internal" [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,m") (match_operand:V2DF 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) *************** *** 18638,18644 **** } [(set_attr "type" "ssemov") (set (attr "mode") ! (cond [(eq_attr "alternative" "0,1") (if_then_else (ne (symbol_ref "optimize_size") (const_int 0)) --- 18757,18765 ---- } [(set_attr "type" "ssemov") (set (attr "mode") ! (cond [(eq (symbol_ref "TARGET_SSE2") (const_int 0)) ! (const_string "V4SF") ! (eq_attr "alternative" "0,1") (if_then_else (ne (symbol_ref "optimize_size") (const_int 0)) *************** *** 18654,18663 **** (const_string "V2DF"))] (const_string "V2DF")))]) ! (define_insn "movv8hi_internal" [(set (match_operand:V8HI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V8HI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE2 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) --- 18775,18784 ---- (const_string "V2DF"))] (const_string "V2DF")))]) ! (define_insn "*movv8hi_internal" [(set (match_operand:V8HI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V8HI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) *************** *** 18695,18704 **** (const_string "TI"))] (const_string "TI")))]) ! (define_insn "movv16qi_internal" [(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V16QI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE2 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) --- 18816,18825 ---- (const_string "TI"))] (const_string "TI")))]) ! (define_insn "*movv16qi_internal" [(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,x,m") (match_operand:V16QI 1 "vector_move_operand" "C,xm,x"))] ! "TARGET_SSE && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" { switch (which_alternative) *************** *** 18739,18745 **** (define_expand "movv2df" [(set (match_operand:V2DF 0 "nonimmediate_operand" "") (match_operand:V2DF 1 "nonimmediate_operand" ""))] ! "TARGET_SSE2" { ix86_expand_vector_move (V2DFmode, operands); DONE; --- 18860,18866 ---- (define_expand "movv2df" [(set (match_operand:V2DF 0 "nonimmediate_operand" "") (match_operand:V2DF 1 "nonimmediate_operand" ""))] ! "TARGET_SSE" { ix86_expand_vector_move (V2DFmode, operands); DONE; *************** *** 18748,18754 **** (define_expand "movv8hi" [(set (match_operand:V8HI 0 "nonimmediate_operand" "") (match_operand:V8HI 1 "nonimmediate_operand" ""))] ! "TARGET_SSE2" { ix86_expand_vector_move (V8HImode, operands); DONE; --- 18869,18875 ---- (define_expand "movv8hi" [(set (match_operand:V8HI 0 "nonimmediate_operand" "") (match_operand:V8HI 1 "nonimmediate_operand" ""))] ! "TARGET_SSE" { ix86_expand_vector_move (V8HImode, operands); DONE; *************** *** 18757,18763 **** (define_expand "movv16qi" [(set (match_operand:V16QI 0 "nonimmediate_operand" "") (match_operand:V16QI 1 "nonimmediate_operand" ""))] ! "TARGET_SSE2" { ix86_expand_vector_move (V16QImode, operands); DONE; --- 18878,18884 ---- (define_expand "movv16qi" [(set (match_operand:V16QI 0 "nonimmediate_operand" "") (match_operand:V16QI 1 "nonimmediate_operand" ""))] ! "TARGET_SSE" { ix86_expand_vector_move (V16QImode, operands); DONE; *************** *** 18820,18826 **** (define_expand "movv2sf" [(set (match_operand:V2SF 0 "nonimmediate_operand" "") (match_operand:V2SF 1 "nonimmediate_operand" ""))] ! "TARGET_3DNOW" { ix86_expand_vector_move (V2SFmode, operands); DONE; --- 18941,18947 ---- (define_expand "movv2sf" [(set (match_operand:V2SF 0 "nonimmediate_operand" "") (match_operand:V2SF 1 "nonimmediate_operand" ""))] ! "TARGET_MMX" { ix86_expand_vector_move (V2SFmode, operands); DONE; *************** *** 18841,18859 **** (define_insn "*pushv2di" [(set (match_operand:V2DI 0 "push_operand" "=<") (match_operand:V2DI 1 "register_operand" "x"))] ! "TARGET_SSE2" "#") (define_insn "*pushv8hi" [(set (match_operand:V8HI 0 "push_operand" "=<") (match_operand:V8HI 1 "register_operand" "x"))] ! "TARGET_SSE2" "#") (define_insn "*pushv16qi" [(set (match_operand:V16QI 0 "push_operand" "=<") (match_operand:V16QI 1 "register_operand" "x"))] ! "TARGET_SSE2" "#") (define_insn "*pushv4sf" --- 18962,18980 ---- (define_insn "*pushv2di" [(set (match_operand:V2DI 0 "push_operand" "=<") (match_operand:V2DI 1 "register_operand" "x"))] ! "TARGET_SSE" "#") (define_insn "*pushv8hi" [(set (match_operand:V8HI 0 "push_operand" "=<") (match_operand:V8HI 1 "register_operand" "x"))] ! "TARGET_SSE" "#") (define_insn "*pushv16qi" [(set (match_operand:V16QI 0 "push_operand" "=<") (match_operand:V16QI 1 "register_operand" "x"))] ! "TARGET_SSE" "#") (define_insn "*pushv4sf" *************** *** 18865,18871 **** (define_insn "*pushv4si" [(set (match_operand:V4SI 0 "push_operand" "=<") (match_operand:V4SI 1 "register_operand" "x"))] ! "TARGET_SSE2" "#") (define_insn "*pushv2si" --- 18986,18992 ---- (define_insn "*pushv4si" [(set (match_operand:V4SI 0 "push_operand" "=<") (match_operand:V4SI 1 "register_operand" "x"))] ! "TARGET_SSE" "#") (define_insn "*pushv2si" *************** *** 18889,18895 **** (define_insn "*pushv2sf" [(set (match_operand:V2SF 0 "push_operand" "=<") (match_operand:V2SF 1 "register_operand" "y"))] ! "TARGET_3DNOW" "#") (define_split --- 19010,19016 ---- (define_insn "*pushv2sf" [(set (match_operand:V2SF 0 "push_operand" "=<") (match_operand:V2SF 1 "register_operand" "y"))] ! "TARGET_MMX" "#") (define_split *************** *** 18915,18921 **** operands[3] = GEN_INT (-GET_MODE_SIZE (GET_MODE (operands[0])));") ! (define_insn "movti_internal" [(set (match_operand:TI 0 "nonimmediate_operand" "=x,x,m") (match_operand:TI 1 "vector_move_operand" "C,xm,x"))] "TARGET_SSE && !TARGET_64BIT --- 19036,19042 ---- operands[3] = GEN_INT (-GET_MODE_SIZE (GET_MODE (operands[0])));") ! (define_insn "*movti_internal" [(set (match_operand:TI 0 "nonimmediate_operand" "=x,x,m") (match_operand:TI 1 "vector_move_operand" "C,xm,x"))] "TARGET_SSE && !TARGET_64BIT *************** *** 19462,19487 **** ;; of DImode subregs again! ;; SSE1 single precision floating point logical operation (define_expand "sse_andv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "") 0) ! (and:TI (subreg:TI (match_operand:V4SF 1 "register_operand" "") 0) ! (subreg:TI (match_operand:V4SF 2 "nonimmediate_operand" "") 0)))] "TARGET_SSE" "") (define_insn "*sse_andv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "=x") 0) ! (and:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE ! && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" ! "andps\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V4SF")]) ! ! (define_insn "*sse_andsf3" ! [(set (subreg:TI (match_operand:SF 0 "register_operand" "=x") 0) ! (and:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] "TARGET_SSE && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "andps\t{%2, %0|%0, %2}" --- 19583,19598 ---- ;; of DImode subregs again! ;; SSE1 single precision floating point logical operation (define_expand "sse_andv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "") ! (and:V4SF (match_operand:V4SF 1 "register_operand" "") ! (match_operand:V4SF 2 "nonimmediate_operand" "")))] "TARGET_SSE" "") (define_insn "*sse_andv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "=x") ! (and:V4SF (match_operand:V4SF 1 "nonimmediate_operand" "%0") ! (match_operand:V4SF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "andps\t{%2, %0|%0, %2}" *************** *** 19489,19539 **** (set_attr "mode" "V4SF")]) (define_expand "sse_nandv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "") 0) ! (and:TI (not:TI (subreg:TI (match_operand:V4SF 1 "register_operand" "") 0)) ! (subreg:TI (match_operand:V4SF 2 "nonimmediate_operand" "") 0)))] "TARGET_SSE" "") (define_insn "*sse_nandv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "=x") 0) ! (and:TI (not:TI (match_operand:TI 1 "register_operand" "0")) ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE" ! "andnps\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V4SF")]) ! ! (define_insn "*sse_nandsf3" ! [(set (subreg:TI (match_operand:SF 0 "register_operand" "=x") 0) ! (and:TI (not:TI (match_operand:TI 1 "register_operand" "0")) ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] "TARGET_SSE" "andnps\t{%2, %0|%0, %2}" [(set_attr "type" "sselog") (set_attr "mode" "V4SF")]) (define_expand "sse_iorv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "") 0) ! (ior:TI (subreg:TI (match_operand:V4SF 1 "register_operand" "") 0) ! (subreg:TI (match_operand:V4SF 2 "nonimmediate_operand" "") 0)))] "TARGET_SSE" "") (define_insn "*sse_iorv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "=x") 0) ! (ior:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE ! && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" ! "orps\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V4SF")]) ! ! (define_insn "*sse_iorsf3" ! [(set (subreg:TI (match_operand:SF 0 "register_operand" "=x") 0) ! (ior:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] "TARGET_SSE && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "orps\t{%2, %0|%0, %2}" --- 19600,19631 ---- (set_attr "mode" "V4SF")]) (define_expand "sse_nandv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "") ! (and:V4SF (not:V4SF (match_operand:V4SF 1 "register_operand" "")) ! (match_operand:V4SF 2 "nonimmediate_operand" "")))] "TARGET_SSE" "") (define_insn "*sse_nandv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "=x") ! (and:V4SF (not:V4SF (match_operand:V4SF 1 "register_operand" "0")) ! (match_operand:V4SF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE" "andnps\t{%2, %0|%0, %2}" [(set_attr "type" "sselog") (set_attr "mode" "V4SF")]) (define_expand "sse_iorv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "") ! (ior:V4SF (match_operand:V4SF 1 "register_operand" "") ! (match_operand:V4SF 2 "nonimmediate_operand" "")))] "TARGET_SSE" "") (define_insn "*sse_iorv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "=x") ! (ior:V4SF (match_operand:V4SF 1 "nonimmediate_operand" "%0") ! (match_operand:V4SF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "orps\t{%2, %0|%0, %2}" *************** *** 19541,19567 **** (set_attr "mode" "V4SF")]) (define_expand "sse_xorv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "") 0) ! (xor:TI (subreg:TI (match_operand:V4SF 1 "register_operand" "") 0) ! (subreg:TI (match_operand:V4SF 2 "nonimmediate_operand" "") 0)))] ! "TARGET_SSE ! && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "") (define_insn "*sse_xorv4sf3" ! [(set (subreg:TI (match_operand:V4SF 0 "register_operand" "=x") 0) ! (xor:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE ! && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" ! "xorps\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V4SF")]) ! ! (define_insn "*sse_xorsf3" ! [(set (subreg:TI (match_operand:SF 0 "register_operand" "=x") 0) ! (xor:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] "TARGET_SSE && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "xorps\t{%2, %0|%0, %2}" --- 19633,19648 ---- (set_attr "mode" "V4SF")]) (define_expand "sse_xorv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "") ! (xor:V4SF (match_operand:V4SF 1 "register_operand" "") ! (match_operand:V4SF 2 "nonimmediate_operand" "")))] ! "TARGET_SSE" "") (define_insn "*sse_xorv4sf3" ! [(set (match_operand:V4SF 0 "register_operand" "=x") ! (xor:V4SF (match_operand:V4SF 1 "nonimmediate_operand" "%0") ! (match_operand:V4SF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "xorps\t{%2, %0|%0, %2}" *************** *** 19571,19596 **** ;; SSE2 double precision floating point logical operation (define_expand "sse2_andv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "") 0) ! (and:TI (subreg:TI (match_operand:V2DF 1 "register_operand" "") 0) ! (subreg:TI (match_operand:V2DF 2 "nonimmediate_operand" "") 0)))] "TARGET_SSE2" "") (define_insn "*sse2_andv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "=x") 0) ! (and:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE2 ! && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" ! "andpd\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V2DF")]) ! ! (define_insn "*sse2_andv2df3" ! [(set (subreg:TI (match_operand:DF 0 "register_operand" "=x") 0) ! (and:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] "TARGET_SSE2 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "andpd\t{%2, %0|%0, %2}" --- 19652,19667 ---- ;; SSE2 double precision floating point logical operation (define_expand "sse2_andv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "") ! (and:V2DF (match_operand:V2DF 1 "register_operand" "") ! (match_operand:V2DF 2 "nonimmediate_operand" "")))] "TARGET_SSE2" "") (define_insn "*sse2_andv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "=x") ! (and:V2DF (match_operand:V2DF 1 "nonimmediate_operand" "%0") ! (match_operand:V2DF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE2 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "andpd\t{%2, %0|%0, %2}" *************** *** 19598,19648 **** (set_attr "mode" "V2DF")]) (define_expand "sse2_nandv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "") 0) ! (and:TI (not:TI (subreg:TI (match_operand:V2DF 1 "register_operand" "") 0)) ! (subreg:TI (match_operand:V2DF 2 "nonimmediate_operand" "") 0)))] "TARGET_SSE2" "") (define_insn "*sse2_nandv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "=x") 0) ! (and:TI (not:TI (match_operand:TI 1 "register_operand" "0")) ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE2" ! "andnpd\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V2DF")]) ! ! (define_insn "*sse_nandti3_df" ! [(set (subreg:TI (match_operand:DF 0 "register_operand" "=Y") 0) ! (and:TI (not:TI (match_operand:TI 1 "register_operand" "0")) ! (match_operand:TI 2 "nonimmediate_operand" "Ym")))] "TARGET_SSE2" "andnpd\t{%2, %0|%0, %2}" [(set_attr "type" "sselog") (set_attr "mode" "V2DF")]) (define_expand "sse2_iorv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "") 0) ! (ior:TI (subreg:TI (match_operand:V2DF 1 "register_operand" "") 0) ! (subreg:TI (match_operand:V2DF 2 "nonimmediate_operand" "") 0)))] "TARGET_SSE2" "") (define_insn "*sse2_iorv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "=x") 0) ! (ior:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE2 ! && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" ! "orpd\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V2DF")]) ! ! (define_insn "*sse2_iordf3" ! [(set (subreg:TI (match_operand:DF 0 "register_operand" "=x") 0) ! (ior:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] "TARGET_SSE2 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "orpd\t{%2, %0|%0, %2}" --- 19669,19700 ---- (set_attr "mode" "V2DF")]) (define_expand "sse2_nandv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "") ! (and:V2DF (not:V2DF (match_operand:V2DF 1 "register_operand" "")) ! (match_operand:V2DF 2 "nonimmediate_operand" "")))] "TARGET_SSE2" "") (define_insn "*sse2_nandv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "=x") ! (and:V2DF (not:V2DF (match_operand:V2DF 1 "register_operand" "0")) ! (match_operand:V2DF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE2" "andnpd\t{%2, %0|%0, %2}" [(set_attr "type" "sselog") (set_attr "mode" "V2DF")]) (define_expand "sse2_iorv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "") ! (ior:V2DF (match_operand:V2DF 1 "register_operand" "") ! (match_operand:V2DF 2 "nonimmediate_operand" "")))] "TARGET_SSE2" "") (define_insn "*sse2_iorv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "=x") ! (ior:V2DF (match_operand:V2DF 1 "nonimmediate_operand" "%0") ! (match_operand:V2DF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE2 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "orpd\t{%2, %0|%0, %2}" *************** *** 19650,19675 **** (set_attr "mode" "V2DF")]) (define_expand "sse2_xorv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "") 0) ! (xor:TI (subreg:TI (match_operand:V2DF 1 "nonimmediate_operand" "") 0) ! (subreg:TI (match_operand:V2DF 2 "nonimmediate_operand" "") 0)))] "TARGET_SSE2" "") (define_insn "*sse2_xorv2df3" ! [(set (subreg:TI (match_operand:V2DF 0 "register_operand" "=x") 0) ! (xor:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] ! "TARGET_SSE2 ! && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" ! "xorpd\t{%2, %0|%0, %2}" ! [(set_attr "type" "sselog") ! (set_attr "mode" "V2DF")]) ! ! (define_insn "*sse2_xordf3" ! [(set (subreg:TI (match_operand:DF 0 "register_operand" "=x") 0) ! (xor:TI (match_operand:TI 1 "nonimmediate_operand" "%0") ! (match_operand:TI 2 "nonimmediate_operand" "xm")))] "TARGET_SSE2 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "xorpd\t{%2, %0|%0, %2}" --- 19702,19717 ---- (set_attr "mode" "V2DF")]) (define_expand "sse2_xorv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "") ! (xor:V2DF (match_operand:V2DF 1 "nonimmediate_operand" "") ! (match_operand:V2DF 2 "nonimmediate_operand" "")))] "TARGET_SSE2" "") (define_insn "*sse2_xorv2df3" ! [(set (match_operand:V2DF 0 "register_operand" "=x") ! (xor:V2DF (match_operand:V2DF 1 "nonimmediate_operand" "%0") ! (match_operand:V2DF 2 "nonimmediate_operand" "xm")))] "TARGET_SSE2 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" "xorpd\t{%2, %0|%0, %2}" diff -Nrc3pad gcc-3.4.3/gcc/config/i386/t-rtems-i386 gcc-3.4.4/gcc/config/i386/t-rtems-i386 *** gcc-3.4.3/gcc/config/i386/t-rtems-i386 Wed Feb 13 22:48:53 2002 --- gcc-3.4.4/gcc/config/i386/t-rtems-i386 Thu Jan 13 12:31:06 2005 *************** xp-bit.c: $(srcdir)/config/fp-bit.c *** 36,52 **** echo '#define EXTENDED_FLOAT_STUBS' > xp-bit.c cat $(srcdir)/config/fp-bit.c >> xp-bit.c ! MULTILIB_OPTIONS = mcpu=i486/mcpu=pentium/mcpu=pentiumpro/mcpu=k6/mcpu=athlon \ msoft-float mno-fp-ret-in-387 MULTILIB_DIRNAMES= m486 mpentium mpentiumpro k6 athlon soft-float nofp MULTILIB_MATCHES = msoft-float=mno-m80387 MULTILIB_EXCEPTIONS = \ mno-fp-ret-in-387 \ ! mcpu=i486/*mno-fp-ret-in-387* \ ! mcpu=pentium/*msoft-float* mcpu=pentium/*mno-fp-ret-in-387* \ ! mcpu=pentiumpro/*msoft-float* mcpu=pentiumpro/*mno-fp-ret-in-387* \ ! mcpu=k6/*msoft-float* mcpu=k6/*mno-fp-ret-in-387* \ ! mcpu=athlon/*msoft-float* mcpu=athlon/*mno-fp-ret-in-387* EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o --- 36,52 ---- echo '#define EXTENDED_FLOAT_STUBS' > xp-bit.c cat $(srcdir)/config/fp-bit.c >> xp-bit.c ! MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro/mtune=k6/mtune=athlon \ msoft-float mno-fp-ret-in-387 MULTILIB_DIRNAMES= m486 mpentium mpentiumpro k6 athlon soft-float nofp MULTILIB_MATCHES = msoft-float=mno-m80387 MULTILIB_EXCEPTIONS = \ mno-fp-ret-in-387 \ ! mtune=i486/*mno-fp-ret-in-387* \ ! mtune=pentium/*msoft-float* mtune=pentium/*mno-fp-ret-in-387* \ ! mtune=pentiumpro/*msoft-float* mtune=pentiumpro/*mno-fp-ret-in-387* \ ! mtune=k6/*msoft-float* mtune=k6/*mno-fp-ret-in-387* \ ! mtune=athlon/*msoft-float* mtune=athlon/*mno-fp-ret-in-387* EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o diff -Nrc3pad gcc-3.4.3/gcc/config/ia64/ia64.c gcc-3.4.4/gcc/config/ia64/ia64.c *** gcc-3.4.3/gcc/config/ia64/ia64.c Wed Sep 15 23:21:12 2004 --- gcc-3.4.4/gcc/config/ia64/ia64.c Thu Jan 13 05:57:05 2005 *************** call_operand (rtx op, enum machine_mode *** 390,409 **** int sdata_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { switch (GET_CODE (op)) { case CONST: ! if (GET_CODE (XEXP (op, 0)) != PLUS ! || GET_CODE (XEXP (XEXP (op, 0), 0)) != SYMBOL_REF) break; ! op = XEXP (XEXP (op, 0), 0); /* FALLTHRU */ case SYMBOL_REF: if (CONSTANT_POOL_ADDRESS_P (op)) ! return GET_MODE_SIZE (get_pool_mode (op)) <= ia64_section_threshold; else ! return SYMBOL_REF_LOCAL_P (op) && SYMBOL_REF_SMALL_P (op); default: break; --- 390,444 ---- int sdata_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { + HOST_WIDE_INT offset = 0, size = 0; + switch (GET_CODE (op)) { case CONST: ! op = XEXP (op, 0); ! if (GET_CODE (op) != PLUS ! || GET_CODE (XEXP (op, 0)) != SYMBOL_REF ! || GET_CODE (XEXP (op, 1)) != CONST_INT) break; ! offset = INTVAL (XEXP (op, 1)); ! op = XEXP (op, 0); /* FALLTHRU */ case SYMBOL_REF: if (CONSTANT_POOL_ADDRESS_P (op)) ! { ! size = GET_MODE_SIZE (get_pool_mode (op)); ! if (size > ia64_section_threshold) ! return false; ! } else ! { ! tree t; ! ! if (!SYMBOL_REF_LOCAL_P (op) || !SYMBOL_REF_SMALL_P (op)) ! return false; ! ! /* Note that in addition to DECLs, we can get various forms ! of constants here. */ ! t = SYMBOL_REF_DECL (op); ! if (DECL_P (t)) ! t = DECL_SIZE_UNIT (t); ! else ! t = TYPE_SIZE_UNIT (TREE_TYPE (t)); ! if (t && host_integerp (t, 0)) ! { ! size = tree_low_cst (t, 0); ! if (size < 0) ! size = 0; ! } ! } ! ! /* Deny the stupid user trick of addressing outside the object. Such ! things quickly result in GPREL22 relocation overflows. Of course, ! they're also highly undefined. From a pure pedant's point of view ! they deserve a slap on the wrist (such as provided by a relocation ! overflow), but that just leads to bugzilla noise. */ ! return (offset >= 0 && offset <= size); default: break; *************** ia64_expand_epilogue (int sibcall_p) *** 3154,3163 **** preserve those input registers used as arguments to the sibling call. It is unclear how to compute that number here. */ if (current_frame_info.n_input_regs != 0) ! emit_insn (gen_alloc (gen_rtx_REG (DImode, fp), ! GEN_INT (0), GEN_INT (0), ! GEN_INT (current_frame_info.n_input_regs), ! GEN_INT (0))); } } --- 3189,3201 ---- preserve those input registers used as arguments to the sibling call. It is unclear how to compute that number here. */ if (current_frame_info.n_input_regs != 0) ! { ! rtx n_inputs = GEN_INT (current_frame_info.n_input_regs); ! insn = emit_insn (gen_alloc (gen_rtx_REG (DImode, fp), ! const0_rtx, const0_rtx, ! n_inputs, const0_rtx)); ! RTX_FRAME_RELATED_P (insn) = 1; ! } } } *************** static bool *** 3283,3297 **** ia64_assemble_integer (rtx x, unsigned int size, int aligned_p) { if (size == POINTER_SIZE / BITS_PER_UNIT - && aligned_p && !(TARGET_NO_PIC || TARGET_AUTO_PIC) && GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_FUNCTION_P (x)) { ! if (POINTER_SIZE == 32) ! fputs ("\tdata4\t@fptr(", asm_out_file); ! else ! fputs ("\tdata8\t@fptr(", asm_out_file); output_addr_const (asm_out_file, x); fputs (")\n", asm_out_file); return true; --- 3321,3336 ---- ia64_assemble_integer (rtx x, unsigned int size, int aligned_p) { if (size == POINTER_SIZE / BITS_PER_UNIT && !(TARGET_NO_PIC || TARGET_AUTO_PIC) && GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_FUNCTION_P (x)) { ! static const char * const directive[2][2] = { ! /* 64-bit pointer */ /* 32-bit pointer */ ! { "\tdata8.ua\t@fptr(", "\tdata4.ua\t@fptr("}, /* unaligned */ ! { "\tdata8\t@fptr(", "\tdata4\t@fptr("} /* aligned */ ! }; ! fputs (directive[(aligned_p != 0)][POINTER_SIZE == 32], asm_out_file); output_addr_const (asm_out_file, x); fputs (")\n", asm_out_file); return true; *************** process_set (FILE *asm_out_file, rtx pat *** 7788,7800 **** { dest_regno = REGNO (dest); ! /* If this isn't the final destination for ar.pfs, the alloc ! shouldn't have been marked frame related. */ ! if (dest_regno != current_frame_info.reg_save_ar_pfs) ! abort (); ! ! fprintf (asm_out_file, "\t.save ar.pfs, r%d\n", ! ia64_dbx_register_number (dest_regno)); return 1; } --- 7827,7850 ---- { dest_regno = REGNO (dest); ! /* If this is the final destination for ar.pfs, then this must ! be the alloc in the prologue. */ ! if (dest_regno == current_frame_info.reg_save_ar_pfs) ! fprintf (asm_out_file, "\t.save ar.pfs, r%d\n", ! ia64_dbx_register_number (dest_regno)); ! else ! { ! /* This must be an alloc before a sibcall. We must drop the ! old frame info. The easiest way to drop the old frame ! info is to ensure we had a ".restore sp" directive ! followed by a new prologue. If the procedure doesn't ! have a memory-stack frame, we'll issue a dummy ".restore ! sp" now. */ ! if (current_frame_info.total_size == 0 && !frame_pointer_needed) ! /* if haven't done process_epilogue() yet, do it now */ ! process_epilogue (); ! fprintf (asm_out_file, "\t.prologue\n"); ! } return 1; } diff -Nrc3pad gcc-3.4.3/gcc/config/ia64/unwind-ia64.c gcc-3.4.4/gcc/config/ia64/unwind-ia64.c *** gcc-3.4.3/gcc/config/ia64/unwind-ia64.c Wed Sep 8 15:16:16 2004 --- gcc-3.4.4/gcc/config/ia64/unwind-ia64.c Wed Apr 6 03:48:27 2005 *************** uw_install_context (struct _Unwind_Conte *** 2275,2280 **** --- 2275,2282 ---- "(p6) ldf.fill f22 = [r28] \n\t" "cmp.ne p7, p0 = r0, r29 \n\t" ";; \n\t" + "ld8 r27 = [r20], 8 \n\t" + ";; \n\t" "ld8 r28 = [r20], 8 \n\t" "(p7) ldf.fill f23 = [r29] \n\t" "cmp.ne p6, p0 = r0, r22 \n\t" diff -Nrc3pad gcc-3.4.3/gcc/config/ia64/unwind-ia64.h gcc-3.4.4/gcc/config/ia64/unwind-ia64.h *** gcc-3.4.3/gcc/config/ia64/unwind-ia64.h Thu Mar 13 18:26:30 2003 --- gcc-3.4.4/gcc/config/ia64/unwind-ia64.h Wed Nov 10 06:37:03 2004 *************** struct unw_table_entry *** 28,31 **** extern struct unw_table_entry * _Unwind_FindTableEntry (void *pc, unsigned long *segment_base, ! unsigned long *gp); --- 28,32 ---- extern struct unw_table_entry * _Unwind_FindTableEntry (void *pc, unsigned long *segment_base, ! unsigned long *gp) ! __attribute__ ((__visibility__ ("hidden"))); diff -Nrc3pad gcc-3.4.3/gcc/config/m68hc11/m68hc11.c gcc-3.4.4/gcc/config/m68hc11/m68hc11.c *** gcc-3.4.3/gcc/config/m68hc11/m68hc11.c Sun Jun 6 13:50:27 2004 --- gcc-3.4.4/gcc/config/m68hc11/m68hc11.c Sun May 8 18:54:51 2005 *************** *** 1,5 **** /* Subroutines for code generation on Motorola 68HC11 and 68HC12. ! Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Stephane Carrez (stcarrez@nerim.fr) --- 1,5 ---- /* Subroutines for code generation on Motorola 68HC11 and 68HC12. ! Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by Stephane Carrez (stcarrez@nerim.fr) *************** reg_or_some_mem_operand (rtx operand, en *** 1027,1032 **** --- 1027,1033 ---- if (GET_CODE (operand) == MEM) { rtx op = XEXP (operand, 0); + int addr_mode; if (symbolic_memory_operand (op, mode)) return 1; *************** reg_or_some_mem_operand (rtx operand, en *** 1034,1043 **** if (IS_STACK_PUSH (operand)) return 1; ! if (m68hc11_register_indirect_p (operand, mode)) ! return 1; ! return 0; } return register_operand (operand, mode); --- 1035,1054 ---- if (IS_STACK_PUSH (operand)) return 1; ! if (GET_CODE (operand) == REG && reload_in_progress ! && REGNO (operand) >= FIRST_PSEUDO_REGISTER ! && reg_equiv_memory_loc[REGNO (operand)]) ! { ! operand = reg_equiv_memory_loc[REGNO (operand)]; ! operand = eliminate_regs (operand, 0, NULL_RTX); ! } ! if (GET_CODE (operand) != MEM) ! return 0; ! operand = XEXP (operand, 0); ! addr_mode = m68hc11_addr_mode | (reload_completed ? ADDR_STRICT : 0); ! addr_mode &= ~ADDR_INDIRECT; ! return register_indirect_p (operand, mode, addr_mode); } return register_operand (operand, mode); *************** m68hc11_gen_highpart (enum machine_mode *** 2044,2049 **** --- 2055,2064 ---- { return gen_int_mode (val >> 16, HImode); } + else if (mode == SImode) + { + return gen_int_mode (val >> 32, SImode); + } } if (mode == QImode && D_REG_P (x)) return gen_rtx (REG, mode, HARD_A_REGNUM); *************** m68hc11_split_move (rtx to, rtx from, rt *** 2926,2940 **** high_to = m68hc11_gen_highpart (mode, to); low_from = m68hc11_gen_lowpart (mode, from); ! if (mode == SImode && GET_CODE (from) == CONST_INT) ! { ! if (INTVAL (from) >= 0) ! high_from = const0_rtx; ! else ! high_from = constm1_rtx; ! } ! else ! high_from = m68hc11_gen_highpart (mode, from); if (offset) { --- 2941,2947 ---- high_to = m68hc11_gen_highpart (mode, to); low_from = m68hc11_gen_lowpart (mode, from); ! high_from = m68hc11_gen_highpart (mode, from); if (offset) { *************** m68hc11_split_logical (enum machine_mode *** 3117,3142 **** low[2] = m68hc11_gen_lowpart (mode, operands[2]); high[0] = m68hc11_gen_highpart (mode, operands[0]); ! ! if (mode == SImode && GET_CODE (operands[1]) == CONST_INT) ! { ! if (INTVAL (operands[1]) >= 0) ! high[1] = const0_rtx; ! else ! high[1] = constm1_rtx; ! } ! else ! high[1] = m68hc11_gen_highpart (mode, operands[1]); ! ! if (mode == SImode && GET_CODE (operands[2]) == CONST_INT) ! { ! if (INTVAL (operands[2]) >= 0) ! high[2] = const0_rtx; ! else ! high[2] = constm1_rtx; ! } ! else ! high[2] = m68hc11_gen_highpart (mode, operands[2]); low[3] = operands[3]; high[3] = operands[3]; --- 3124,3131 ---- low[2] = m68hc11_gen_lowpart (mode, operands[2]); high[0] = m68hc11_gen_highpart (mode, operands[0]); ! high[1] = m68hc11_gen_highpart (mode, operands[1]); ! high[2] = m68hc11_gen_highpart (mode, operands[2]); low[3] = operands[3]; high[3] = operands[3]; *************** m68hc11_gen_movhi (rtx insn, rtx *operan *** 3243,3252 **** if (TARGET_M6812) { ! if (IS_STACK_PUSH (operands[0]) && H_REG_P (operands[1])) { cc_status = cc_prev_status; ! switch (REGNO (operands[1])) { case HARD_X_REGNUM: case HARD_Y_REGNUM: --- 3232,3244 ---- if (TARGET_M6812) { ! rtx from = operands[1]; ! rtx to = operands[0]; ! ! if (IS_STACK_PUSH (to) && H_REG_P (from)) { cc_status = cc_prev_status; ! switch (REGNO (from)) { case HARD_X_REGNUM: case HARD_Y_REGNUM: *************** m68hc11_gen_movhi (rtx insn, rtx *operan *** 3261,3270 **** } return; } ! if (IS_STACK_POP (operands[1]) && H_REG_P (operands[0])) { cc_status = cc_prev_status; ! switch (REGNO (operands[0])) { case HARD_X_REGNUM: case HARD_Y_REGNUM: --- 3253,3262 ---- } return; } ! if (IS_STACK_POP (from) && H_REG_P (to)) { cc_status = cc_prev_status; ! switch (REGNO (to)) { case HARD_X_REGNUM: case HARD_Y_REGNUM: *************** m68hc11_gen_movhi (rtx insn, rtx *operan *** 3295,3305 **** else output_asm_insn ("st%1\t%0", operands); } else { - rtx from = operands[1]; - rtx to = operands[0]; - if ((m68hc11_register_indirect_p (from, GET_MODE (from)) && !m68hc11_small_indexed_indirect_p (from, GET_MODE (from))) || (m68hc11_register_indirect_p (to, GET_MODE (to)) --- 3287,3338 ---- else output_asm_insn ("st%1\t%0", operands); } + + /* The 68hc12 does not support (MEM:HI (MEM:HI)) with the movw + instruction. We have to use a scratch register as temporary location. + Trying to use a specific pattern or constrain failed. */ + else if (GET_CODE (to) == MEM && GET_CODE (XEXP (to, 0)) == MEM) + { + rtx ops[4]; + + ops[0] = to; + ops[2] = from; + ops[3] = 0; + if (dead_register_here (insn, d_reg)) + ops[1] = d_reg; + else if (dead_register_here (insn, ix_reg)) + ops[1] = ix_reg; + else if (dead_register_here (insn, iy_reg)) + ops[1] = iy_reg; + else + { + ops[1] = d_reg; + ops[3] = d_reg; + output_asm_insn ("psh%3", ops); + } + + ops[0] = to; + ops[2] = from; + output_asm_insn ("ld%1\t%2", ops); + output_asm_insn ("st%1\t%0", ops); + if (ops[3]) + output_asm_insn ("pul%3", ops); + } + + /* Use movw for non-null constants or when we are clearing + a volatile memory reference. However, this is possible + only if the memory reference has a small offset or is an + absolute address. */ + else if (GET_CODE (from) == CONST_INT + && INTVAL (from) == 0 + && (MEM_VOLATILE_P (to) == 0 + || m68hc11_small_indexed_indirect_p (to, HImode) == 0)) + { + output_asm_insn ("clr\t%h0", operands); + output_asm_insn ("clr\t%b0", operands); + } else { if ((m68hc11_register_indirect_p (from, GET_MODE (from)) && !m68hc11_small_indexed_indirect_p (from, GET_MODE (from))) || (m68hc11_register_indirect_p (to, GET_MODE (to)) *************** m68hc11_gen_movhi (rtx insn, rtx *operan *** 3316,3321 **** --- 3349,3355 ---- ops[0] = to; ops[1] = operands[2]; m68hc11_gen_movhi (insn, ops); + return; } else { *************** m68hc11_gen_movhi (rtx insn, rtx *operan *** 3323,3341 **** fatal_insn ("move insn not handled", insn); } } ! else ! { ! if (GET_CODE (from) == CONST_INT && INTVAL (from) == 0) ! { ! output_asm_insn ("clr\t%h0", operands); ! output_asm_insn ("clr\t%b0", operands); ! } ! else ! { ! m68hc11_notice_keep_cc (operands[0]); ! output_asm_insn ("movw\t%1,%0", operands); ! } ! } } return; } --- 3357,3367 ---- fatal_insn ("move insn not handled", insn); } } ! else ! { ! m68hc11_notice_keep_cc (operands[0]); ! output_asm_insn ("movw\t%1,%0", operands); ! } } return; } *************** m68hc11_gen_movqi (rtx insn, rtx *operan *** 3663,3670 **** } else if (H_REG_P (operands[0])) { ! if (Q_REG_P (operands[0])) ! output_asm_insn ("lda%0\t%b1", operands); else if (D_REG_P (operands[0])) output_asm_insn ("ldab\t%b1", operands); else --- 3689,3698 ---- } else if (H_REG_P (operands[0])) { ! if (IS_STACK_POP (operands[1])) ! output_asm_insn ("pul%b0", operands); ! else if (Q_REG_P (operands[0])) ! output_asm_insn ("lda%0\t%b1", operands); else if (D_REG_P (operands[0])) output_asm_insn ("ldab\t%b1", operands); else *************** m68hc11_z_replacement (rtx insn) *** 5028,5036 **** if (info.save_before_last) save_pos_insn = PREV_INSN (save_pos_insn); ! emit_insn_before (gen_movhi (gen_rtx (REG, HImode, SOFT_Z_REGNUM), ! gen_rtx (REG, HImode, info.regno)), ! save_pos_insn); } if (info.must_push_reg && info.last) --- 5056,5066 ---- if (info.save_before_last) save_pos_insn = PREV_INSN (save_pos_insn); ! /* Use emit_insn_after () to ensure the new insn is part of ! the good basic block. */ ! emit_insn_after (gen_movhi (gen_rtx (REG, HImode, SOFT_Z_REGNUM), ! gen_rtx (REG, HImode, info.regno)), ! PREV_INSN (save_pos_insn)); } if (info.must_push_reg && info.last) *************** m68hc11_z_replacement (rtx insn) *** 5069,5076 **** else dst = gen_rtx (REG, HImode, SOFT_SAVED_XY_REGNUM); ! emit_insn_before (gen_movhi (gen_rtx (REG, HImode, info.regno), ! dst), insn); } } --- 5099,5106 ---- else dst = gen_rtx (REG, HImode, SOFT_SAVED_XY_REGNUM); ! emit_insn_after (gen_movhi (gen_rtx (REG, HImode, info.regno), ! dst), PREV_INSN (insn)); } } diff -Nrc3pad gcc-3.4.3/gcc/config/m68hc11/m68hc11.md gcc-3.4.4/gcc/config/m68hc11/m68hc11.md *** gcc-3.4.3/gcc/config/m68hc11/m68hc11.md Sun Jun 6 16:56:02 2004 --- gcc-3.4.4/gcc/config/m68hc11/m68hc11.md Sun May 8 19:22:22 2005 *************** *** 1,5 **** ;;- Machine description file for Motorola 68HC11 and 68HC12. ! ;;- Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 ;;- Free Software Foundation, Inc. ;;- Contributed by Stephane Carrez (stcarrez@nerim.fr) --- 1,5 ---- ;;- Machine description file for Motorola 68HC11 and 68HC12. ! ;;- Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 ;;- Free Software Foundation, Inc. ;;- Contributed by Stephane Carrez (stcarrez@nerim.fr) *************** *** 687,694 **** DONE;") (define_insn_and_split "movdf_internal" ! [(set (match_operand:DF 0 "non_push_operand" "=mu,U,!u,U,m,m,!u") ! (match_operand:DF 1 "general_operand" "G,iU,iU,!u,mi,!u,!mu")) (clobber (match_scratch:HI 2 "=X,&d,&d,&d,&d,&d,&d"))] "" "#" --- 687,694 ---- DONE;") (define_insn_and_split "movdf_internal" ! [(set (match_operand:DF 0 "non_push_operand" "=mu,U,m,!u,U,m,!u") ! (match_operand:DF 1 "general_operand" "G,iU,mi,iU,!u,!u,!mu")) (clobber (match_scratch:HI 2 "=X,&d,&d,&d,&d,&d,&d"))] "" "#" *************** *** 884,901 **** } }") - (define_insn "movhi_const0" - [(set (match_operand:HI 0 "splitable_operand" "=d,A,um") - (const_int 0))] - "" - "@ - clra\\n\\tclrb - ld%0\\t#0 - clr\\t%b0\\n\\tclr\\t%h0") - (define_insn "*movhi_68hc12" ! [(set (match_operand:HI 0 "nonimmediate_operand" "=U,dAw,dAw,U,U,m,!u") ! (match_operand:HI 1 "general_operand" "U,dAwim,!u,dAwi,!u,dAw,riU"))] "TARGET_M6812" "* { --- 884,892 ---- } }") (define_insn "*movhi_68hc12" ! [(set (match_operand:HI 0 "nonimmediate_operand" "=U,dAw,dAw,m,U,U,m,!u") ! (match_operand:HI 1 "general_operand" "U,dAwim,!u,K,dAwi,!u,dAw,riU"))] "TARGET_M6812" "* { *************** *** 903,908 **** --- 894,908 ---- return \"\"; }") + (define_insn "movhi_const0" + [(set (match_operand:HI 0 "nonimmediate_operand" "=d,A,um") + (const_int 0))] + "TARGET_M6811" + "@ + clra\\n\\tclrb + ld%0\\t#0 + clr\\t%b0\\n\\tclr\\t%h0") + (define_insn "*movhi_m68hc11" [(set (match_operand:HI 0 "nonimmediate_operand" "=dAw,!u,m,m,dAw,!*u") (match_operand:HI 1 "general_operand" "dAwim,dAw,dA,?Aw,!*u,dAw"))] *************** *** 1235,1241 **** [(set (match_operand:DI 0 "nonimmediate_operand" "=m,m,!u,!u") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "m,Du,m,Du"))) ! (clobber (match_scratch:HI 2 "=d,d,&d,d"))] "" "#") --- 1235,1241 ---- [(set (match_operand:DI 0 "nonimmediate_operand" "=m,m,!u,!u") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "m,Du,m,Du"))) ! (clobber (match_scratch:HI 2 "=d,d,d,d"))] "" "#") *************** *** 2380,2386 **** [(set (match_operand:HI 0 "hard_reg_operand" "=A,d") (plus:HI (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,um*A")) ! (match_operand:HI 2 "hard_reg_operand" "0,0")))] "" "* { --- 2380,2386 ---- [(set (match_operand:HI 0 "hard_reg_operand" "=A,d") (plus:HI (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,um*A")) ! (match_operand:HI 2 "general_operand" "0,0")))] "" "* { *************** *** 2714,2720 **** (define_insn "*subhi3" [(set (match_operand:HI 0 "register_operand" "=d,*A,d,*A") ! (minus:HI (match_operand:HI 1 "register_operand" "0,0,0,0") (match_operand:HI 2 "general_operand" "im*A*d,im*d*A,u,!u")))] "" "* --- 2714,2720 ---- (define_insn "*subhi3" [(set (match_operand:HI 0 "register_operand" "=d,*A,d,*A") ! (minus:HI (match_operand:HI 1 "general_operand" "0,0,0,0") (match_operand:HI 2 "general_operand" "im*A*d,im*d*A,u,!u")))] "" "* *************** *** 2729,2735 **** (define_insn "*subhi3_zext" [(set (match_operand:HI 0 "hard_reg_operand" "=d,d") ! (minus:HI (match_operand:HI 1 "hard_reg_operand" "0,0") (zero_extend:HI (match_operand:QI 2 "general_operand" "mi*A,!u"))))] "" "* --- 2729,2735 ---- (define_insn "*subhi3_zext" [(set (match_operand:HI 0 "hard_reg_operand" "=d,d") ! (minus:HI (match_operand:HI 1 "general_operand" "0,0") (zero_extend:HI (match_operand:QI 2 "general_operand" "mi*A,!u"))))] "" "* *************** *** 2749,2755 **** (define_insn "subqi3" [(set (match_operand:QI 0 "hard_reg_operand" "=dq,!*x*y") ! (minus:QI (match_operand:QI 1 "hard_reg_operand" "0,0") (match_operand:QI 2 "general_operand" "uim*A*d,uim*A*d")))] "" "* --- 2749,2755 ---- (define_insn "subqi3" [(set (match_operand:QI 0 "hard_reg_operand" "=dq,!*x*y") ! (minus:QI (match_operand:QI 1 "general_operand" "0,0") (match_operand:QI 2 "general_operand" "uim*A*d,uim*A*d")))] "" "* *************** *** 2902,2909 **** (define_insn "mulqi3" [(set (match_operand:QI 0 "register_operand" "=d,*x,*y") ! (mult:QI (match_operand:QI 1 "nonimmediate_operand" "%dum,0,0") ! (match_operand:QI 2 "general_operand" "dium,*xium,*yium")))] "" "* { --- 2902,2909 ---- (define_insn "mulqi3" [(set (match_operand:QI 0 "register_operand" "=d,*x,*y") ! (mult:QI (match_operand:QI 1 "general_operand" "%di*um,0,0") ! (match_operand:QI 2 "general_operand" "di*um,*xium,*yium")))] "" "* { *************** *** 2958,2968 **** ") (define_insn "mulqihi3" ! [(set (match_operand:HI 0 "register_operand" "=d,d") (mult:HI (sign_extend:HI ! (match_operand:QI 1 "register_operand" "%0,0")) (sign_extend:HI ! (match_operand:QI 2 "nonimmediate_operand" "dm,*A"))))] "" "* { --- 2958,2968 ---- ") (define_insn "mulqihi3" ! [(set (match_operand:HI 0 "register_operand" "=d,d,d") (mult:HI (sign_extend:HI ! (match_operand:QI 1 "register_operand" "%0,0,0")) (sign_extend:HI ! (match_operand:QI 2 "general_operand" "mi*u,*A,0"))))] "" "* { *************** *** 3324,3331 **** (define_insn "*andqi3_gen" [(set (match_operand:QI 0 "register_operand" "=d,d,d,?*A,?*A,!*q") ! (and:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "mi,!u,?*A,!um,?*A*d,!um*A")))] "" "* { --- 3324,3331 ---- (define_insn "*andqi3_gen" [(set (match_operand:QI 0 "register_operand" "=d,d,d,?*A,?*A,!*q") ! (and:QI (match_operand:QI 1 "general_operand" "%0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "mi,!*u,?*A,!*um,?*A*d,!*um*A")))] "" "* { *************** *** 3542,3549 **** (define_insn "*iorqi3_gen" [(set (match_operand:QI 0 "register_operand" "=d,d,d,?*A,?*A,!*q") ! (ior:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "mi,!u,!*A,!um,?*A*d,!um*A")))] "" "* { --- 3542,3549 ---- (define_insn "*iorqi3_gen" [(set (match_operand:QI 0 "register_operand" "=d,d,d,?*A,?*A,!*q") ! (ior:QI (match_operand:QI 1 "general_operand" "%0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "mi,!*u,!*A,!*um,?*A*d,!*um*A")))] "" "* { *************** *** 3634,3641 **** (define_insn "xorqi3" [(set (match_operand:QI 0 "register_operand" "=d,d,d,?*A,?*A,!*q") ! (xor:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "im,!u,!*A,!ium,?*A*d,!ium*A")))] "" "* { --- 3634,3641 ---- (define_insn "xorqi3" [(set (match_operand:QI 0 "register_operand" "=d,d,d,?*A,?*A,!*q") ! (xor:QI (match_operand:QI 1 "general_operand" "%0,0,0,0,0,0") ! (match_operand:QI 2 "general_operand" "im,!*u,!*A,!i*um,?*A*d,!i*um*A")))] "" "* { *************** *** 6909,6922 **** ;; ;; Replace "leas 2,sp" with a "pulx" or a "puly". ;; On 68HC12, this is one cycle slower but one byte smaller. ! ;; pr target/6899: This peephole is not valid because a register CSE ! ;; pass removes the pulx/puly. ;; (define_peephole2 [(set (reg:HI SP_REGNUM) (plus:HI (reg:HI SP_REGNUM) (const_int 2))) (match_scratch:HI 0 "xy")] ! "0 && TARGET_M6812 && optimize_size" ! [(set (match_dup 0) (match_dup 1))] "operands[1] = gen_rtx (MEM, HImode, gen_rtx (POST_INC, HImode, gen_rtx_REG (HImode, HARD_SP_REGNUM)));") --- 6909,6924 ---- ;; ;; Replace "leas 2,sp" with a "pulx" or a "puly". ;; On 68HC12, this is one cycle slower but one byte smaller. ! ;; pr target/6899: This peephole was not valid because a register CSE ! ;; pass removes the pulx/puly. The 'use' clause ensure that the pulx is ! ;; not removed. ;; (define_peephole2 [(set (reg:HI SP_REGNUM) (plus:HI (reg:HI SP_REGNUM) (const_int 2))) (match_scratch:HI 0 "xy")] ! "TARGET_M6812 && optimize_size" ! [(set (match_dup 0) (match_dup 1)) ! (use (match_dup 0))] "operands[1] = gen_rtx (MEM, HImode, gen_rtx (POST_INC, HImode, gen_rtx_REG (HImode, HARD_SP_REGNUM)));") diff -Nrc3pad gcc-3.4.3/gcc/config/m68hc11/t-m68hc11-gas gcc-3.4.4/gcc/config/m68hc11/t-m68hc11-gas *** gcc-3.4.3/gcc/config/m68hc11/t-m68hc11-gas Tue Oct 14 19:07:12 2003 --- gcc-3.4.4/gcc/config/m68hc11/t-m68hc11-gas Fri Jan 28 22:18:27 2005 *************** LIB1ASMFUNCS = _mulsi3 \ *** 27,33 **** _ashrhi3 _lshrhi3 _lshlhi3 _ashrqi3 _lshlqi3 _map_data _init_bss \ _ctor _dtor _far_tramp _call_far _return_far ! TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -DIN_GCC # C implementation of 32-bit div/mod. LIB2FUNCS_EXTRA = $(srcdir)/config/udivmodsi4.c \ --- 27,33 ---- _ashrhi3 _lshrhi3 _lshlhi3 _ashrqi3 _lshlqi3 _map_data _init_bss \ _ctor _dtor _far_tramp _call_far _return_far ! TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -DIN_GCC -Dinhibit_libc # C implementation of 32-bit div/mod. LIB2FUNCS_EXTRA = $(srcdir)/config/udivmodsi4.c \ *************** DPBIT = dp-bit.c *** 53,59 **** dp-bit.c: $(srcdir)/config/fp-bit.c echo '#define SMALL_MACHINE' >> dp-bit.c echo '#define CMPtype HItype' >> dp-bit.c ! echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c echo '#endif' >> dp-bit.c cat $(srcdir)/config/fp-bit.c >> dp-bit.c --- 53,59 ---- dp-bit.c: $(srcdir)/config/fp-bit.c echo '#define SMALL_MACHINE' >> dp-bit.c echo '#define CMPtype HItype' >> dp-bit.c ! echo '#ifdef __LITTLE_ENDIAN__' >> dp-bit.c echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c echo '#endif' >> dp-bit.c cat $(srcdir)/config/fp-bit.c >> dp-bit.c diff -Nrc3pad gcc-3.4.3/gcc/config/m68k/t-rtems gcc-3.4.4/gcc/config/m68k/t-rtems *** gcc-3.4.3/gcc/config/m68k/t-rtems Fri Sep 19 16:47:54 2003 --- gcc-3.4.4/gcc/config/m68k/t-rtems Mon Feb 7 05:40:55 2005 *************** *** 3,6 **** --- 3,7 ---- MULTILIB_OPTIONS = m68000/m68020/m5200/mcpu32/m68030/m68040/m68060 m68881/msoft-float MULTILIB_DIRNAMES = MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 m68030=mc68030 + MULTILIB_MATCHES += m5200=m528x MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float mcpu32/m68881 mcpu32/msoft-float m68040/m68881 m68060/m68881 diff -Nrc3pad gcc-3.4.3/gcc/config/mips/mips.c gcc-3.4.4/gcc/config/mips/mips.c *** gcc-3.4.3/gcc/config/mips/mips.c Wed Jul 7 19:21:10 2004 --- gcc-3.4.4/gcc/config/mips/mips.c Sun May 8 12:06:23 2005 *************** get_float_compare_codes (enum rtx_code i *** 3049,3056 **** switch (in_code) { case NE: - case UNGE: - case UNGT: case LTGT: case ORDERED: *cmp_code = reverse_condition_maybe_unordered (in_code); --- 3049,3054 ---- diff -Nrc3pad gcc-3.4.3/gcc/config/mips/mips.md gcc-3.4.4/gcc/config/mips/mips.md *** gcc-3.4.3/gcc/config/mips/mips.md Thu Oct 7 06:38:44 2004 --- gcc-3.4.4/gcc/config/mips/mips.md Sun May 8 12:06:24 2005 *************** srl\t%M0,%M1,%2\n\ *** 7765,7770 **** --- 7765,7788 ---- [(set_attr "type" "fcmp") (set_attr "mode" "FPSW")]) + (define_insn "sungt_df" + [(set (match_operand:CC 0 "register_operand" "=z") + (ungt:CC (match_operand:DF 1 "register_operand" "f") + (match_operand:DF 2 "register_operand" "f")))] + "TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT" + "c.ult.d\t%Z0%2,%1" + [(set_attr "type" "fcmp") + (set_attr "mode" "FPSW")]) + + (define_insn "sunge_df" + [(set (match_operand:CC 0 "register_operand" "=z") + (unge:CC (match_operand:DF 1 "register_operand" "f") + (match_operand:DF 2 "register_operand" "f")))] + "TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT" + "c.ule.d\t%Z0%2,%1" + [(set_attr "type" "fcmp") + (set_attr "mode" "FPSW")]) + (define_insn "seq_df" [(set (match_operand:CC 0 "register_operand" "=z") (eq:CC (match_operand:DF 1 "register_operand" "f") *************** srl\t%M0,%M1,%2\n\ *** 7846,7851 **** --- 7864,7887 ---- [(set_attr "type" "fcmp") (set_attr "mode" "FPSW")]) + (define_insn "sungt_sf" + [(set (match_operand:CC 0 "register_operand" "=z") + (ungt:CC (match_operand:SF 1 "register_operand" "f") + (match_operand:SF 2 "register_operand" "f")))] + "TARGET_HARD_FLOAT" + "c.ult.s\t%Z0%2,%1" + [(set_attr "type" "fcmp") + (set_attr "mode" "FPSW")]) + + (define_insn "sunge_sf" + [(set (match_operand:CC 0 "register_operand" "=z") + (unge:CC (match_operand:SF 1 "register_operand" "f") + (match_operand:SF 2 "register_operand" "f")))] + "TARGET_HARD_FLOAT" + "c.ule.s\t%Z0%2,%1" + [(set_attr "type" "fcmp") + (set_attr "mode" "FPSW")]) + (define_insn "seq_sf" [(set (match_operand:CC 0 "register_operand" "=z") (eq:CC (match_operand:SF 1 "register_operand" "f") diff -Nrc3pad gcc-3.4.3/gcc/config/mips/rtems.h gcc-3.4.4/gcc/config/mips/rtems.h *** gcc-3.4.3/gcc/config/mips/rtems.h Sat Sep 27 04:48:26 2003 --- gcc-3.4.4/gcc/config/mips/rtems.h Sat Jan 15 08:43:50 2005 *************** *** 1,5 **** /* Definitions for rtems targeting a MIPS using ELF. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. --- 1,6 ---- /* Definitions for rtems targeting a MIPS using ELF. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2005 ! Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. *************** do { \ *** 27,29 **** --- 28,36 ---- builtin_define ("__USE_INIT_FINI__"); \ builtin_assert ("system=rtems"); \ } while (0) + + /* No sdata. + * The RTEMS BSPs expect -G0 + */ + #undef MIPS_DEFAULT_GVALUE + #define MIPS_DEFAULT_GVALUE 0 diff -Nrc3pad gcc-3.4.3/gcc/config/mips/t-iris5-6 gcc-3.4.4/gcc/config/mips/t-iris5-6 *** gcc-3.4.3/gcc/config/mips/t-iris5-6 Mon Oct 18 16:00:51 2004 --- gcc-3.4.4/gcc/config/mips/t-iris5-6 Thu Dec 16 19:16:21 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 12,18 **** -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) --- 12,18 ---- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) diff -Nrc3pad gcc-3.4.3/gcc/config/mips/t-iris6 gcc-3.4.4/gcc/config/mips/t-iris6 *** gcc-3.4.3/gcc/config/mips/t-iris6 Wed Dec 24 03:59:59 2003 --- gcc-3.4.4/gcc/config/mips/t-iris6 Sun Nov 7 20:20:14 2004 *************** tp-bit.c: $(srcdir)/config/fp-bit.c *** 22,28 **** echo '#ifdef __MIPSEL__' > tp-bit.c echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c echo '#endif' >> tp-bit.c ! echo '#define QUIET_NAN_NEGATED' >> dp-bit.c echo '#if __LDBL_MANT_DIG__ == 106' >> tp-bit.c echo '# define TFLOAT' >> tp-bit.c cat $(srcdir)/config/fp-bit.c >> tp-bit.c --- 22,28 ---- echo '#ifdef __MIPSEL__' > tp-bit.c echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c echo '#endif' >> tp-bit.c ! echo '#define QUIET_NAN_NEGATED' >> tp-bit.c echo '#if __LDBL_MANT_DIG__ == 106' >> tp-bit.c echo '# define TFLOAT' >> tp-bit.c cat $(srcdir)/config/fp-bit.c >> tp-bit.c diff -Nrc3pad gcc-3.4.3/gcc/config/mips/t-rtems gcc-3.4.4/gcc/config/mips/t-rtems *** gcc-3.4.3/gcc/config/mips/t-rtems Fri Sep 19 13:24:47 2003 --- gcc-3.4.4/gcc/config/mips/t-rtems Sat Jan 15 08:43:50 2005 *************** *** 1,5 **** # Custom multilibs for RTEMS ! MULTILIB_OPTIONS = mips1/mips3 msoft-float/msingle-float EL/EB ! MULTILIB_DIRNAMES = mips1 mips3 soft-float single el eb MULTILIB_MATCHES = msingle-float=m4650 --- 1,5 ---- # Custom multilibs for RTEMS ! MULTILIB_OPTIONS = mips1/mips3/mips32 msoft-float/msingle-float ! MULTILIB_DIRNAMES = mips1 mips3 mips32 soft-float single MULTILIB_MATCHES = msingle-float=m4650 diff -Nrc3pad gcc-3.4.3/gcc/config/mmix/mmix.c gcc-3.4.4/gcc/config/mmix/mmix.c *** gcc-3.4.3/gcc/config/mmix/mmix.c Sun Oct 5 19:50:55 2003 --- gcc-3.4.4/gcc/config/mmix/mmix.c Sun Nov 14 04:53:23 2004 *************** mmix_function_outgoing_value (tree valty *** 620,627 **** return gen_rtx_REG (mode, MMIX_OUTGOING_RETURN_VALUE_REGNUM); ! /* A complex type, made up of components. */ ! cmode = TYPE_MODE (TREE_TYPE (valtype)); nregs = ((GET_MODE_BITSIZE (mode) + BITS_PER_WORD - 1) / BITS_PER_WORD); /* We need to take care of the effect of the register hole on return --- 620,641 ---- return gen_rtx_REG (mode, MMIX_OUTGOING_RETURN_VALUE_REGNUM); ! if (COMPLEX_MODE_P (mode)) ! /* A complex type, made up of components. */ ! cmode = TYPE_MODE (TREE_TYPE (valtype)); ! else ! { ! /* Of the other larger-than-register modes, we only support ! scalar mode TImode. (At least, that's the only one that's ! been rudimentally tested.) Make sure we're alerted for ! unexpected cases. */ ! if (mode != TImode) ! sorry ("support for mode `%s'", GET_MODE_NAME (mode)); ! ! /* In any case, we will fill registers to the natural size. */ ! cmode = DImode; ! } ! nregs = ((GET_MODE_BITSIZE (mode) + BITS_PER_WORD - 1) / BITS_PER_WORD); /* We need to take care of the effect of the register hole on return diff -Nrc3pad gcc-3.4.3/gcc/config/mmix/mmix.h gcc-3.4.4/gcc/config/mmix/mmix.h *** gcc-3.4.3/gcc/config/mmix/mmix.h Tue Mar 9 03:00:05 2004 --- gcc-3.4.4/gcc/config/mmix/mmix.h Sun Nov 14 04:53:23 2004 *************** *** 1,5 **** /* Definitions of target machine for GNU compiler, for MMIX. ! Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson (hp@bitrange.com) This file is part of GCC. --- 1,5 ---- /* Definitions of target machine for GNU compiler, for MMIX. ! Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson (hp@bitrange.com) This file is part of GCC. *************** extern int target_flags; *** 269,283 **** #define FLOAT_WORDS_BIG_ENDIAN 1 #define UNITS_PER_WORD 8 - /* FIXME: This macro is correlated to MAX_FIXED_MODE_SIZE in that - e.g. this macro must not be 8 (default, UNITS_PER_WORD) when - MAX_FIXED_MODE_SIZE is 64 (default, DImode), or really: this must be - set manually if MAX_FIXED_MODE_SIZE is not at least twice the register - size. By setting it to 4, we don't have to worry about TImode things - yet. Revisit, perhaps get TImode going or get some solution that does - not mandate TImode or lie in other ways. */ - #define MIN_UNITS_PER_WORD 4 - /* FIXME: Promotion of modes currently generates slow code, extending before every operation. */ --- 269,274 ---- *************** enum reg_class *** 745,751 **** typedef struct { int regs; int lib; } CUMULATIVE_ARGS; ! #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ ((CUM).regs = 0, (CUM).lib = ((LIBNAME) != 0)) #define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ --- 736,742 ---- typedef struct { int regs; int lib; } CUMULATIVE_ARGS; ! #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \ ((CUM).regs = 0, (CUM).lib = ((LIBNAME) != 0)) #define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ diff -Nrc3pad gcc-3.4.3/gcc/config/pa/pa-protos.h gcc-3.4.4/gcc/config/pa/pa-protos.h *** gcc-3.4.3/gcc/config/pa/pa-protos.h Wed Jan 21 22:16:47 2004 --- gcc-3.4.4/gcc/config/pa/pa-protos.h Tue Dec 28 04:51:32 2004 *************** extern struct rtx_def *hppa_builtin_save *** 137,142 **** --- 137,143 ---- extern void override_options (void); extern void output_ascii (FILE *, const char *, int); + extern const char * som_text_section_asm_op (void); extern HOST_WIDE_INT compute_frame_size (HOST_WIDE_INT, int *); extern int and_mask_p (unsigned HOST_WIDE_INT); extern int cint_ok_for_move (HOST_WIDE_INT); *************** extern int cmpib_comparison_operator (rt *** 153,159 **** #endif - #ifdef TREE_CODE extern int reloc_needed (tree); #ifdef RTX_CODE --- 154,159 ---- *************** extern int function_arg_partial_nregs (C *** 165,167 **** --- 165,173 ---- enum machine_mode, tree, int); #endif /* TREE_CODE */ + + /* Functions in varasm.c used by pa.c. */ + extern void som_readonly_data_section (void); + extern void som_one_only_readonly_data_section (void); + extern void som_one_only_data_section (void); + extern void forget_section (void); diff -Nrc3pad gcc-3.4.3/gcc/config/pa/pa.c gcc-3.4.4/gcc/config/pa/pa.c *** gcc-3.4.3/gcc/config/pa/pa.c Sun Jul 11 03:32:51 2004 --- gcc-3.4.4/gcc/config/pa/pa.c Tue Dec 28 04:51:33 2004 *************** static void output_deferred_plabels (voi *** 148,153 **** --- 148,154 ---- #ifdef HPUX_LONG_DOUBLE_LIBRARY static void pa_hpux_init_libfuncs (void); #endif + static struct machine_function * pa_init_machine_status (void); /* Save the operands last given to a compare for use when we generate a scc or bcc insn. */ *************** override_options (void) *** 370,375 **** --- 371,378 ---- targetm.asm_out.unaligned_op.si = NULL; targetm.asm_out.unaligned_op.di = NULL; } + + init_machine_status = pa_init_machine_status; } static void *************** pa_init_builtins (void) *** 381,386 **** --- 384,399 ---- #endif } + /* Function to init struct machine_function. + This will be called, via a pointer variable, + from push_function_context. */ + + static struct machine_function * + pa_init_machine_status (void) + { + return ggc_alloc_cleared (sizeof (machine_function)); + } + /* If FROM is a probable pointer register, mark TO as a probable pointer register with the same pointer alignment as FROM. */ *************** pa_output_function_epilogue (FILE *file, *** 4098,4103 **** --- 4111,4124 ---- fputs ("\t.EXIT\n\t.PROCEND\n", file); + if (TARGET_SOM && TARGET_GAS) + { + /* We done with this subspace except possibly for some additional + debug information. Forget that we are in this subspace to ensure + that the next function is output in its own subspace. */ + forget_section (); + } + if (INSN_ADDRESSES_SET_P ()) { insn = get_last_nonnote_insn (); *************** pa_asm_output_mi_thunk (FILE *file, tree *** 7897,7904 **** fprintf (file, "\t.align 4\n"); ASM_OUTPUT_LABEL (file, label); fprintf (file, "\t.word P'%s\n", fname); - function_section (thunk_fndecl); } current_thunk_number++; nbytes = ((nbytes + FUNCTION_BOUNDARY / BITS_PER_UNIT - 1) --- 7918,7926 ---- fprintf (file, "\t.align 4\n"); ASM_OUTPUT_LABEL (file, label); fprintf (file, "\t.word P'%s\n", fname); } + else if (TARGET_SOM && TARGET_GAS) + forget_section (); current_thunk_number++; nbytes = ((nbytes + FUNCTION_BOUNDARY / BITS_PER_UNIT - 1) *************** pa_asm_output_mi_thunk (FILE *file, tree *** 7933,7938 **** --- 7955,7963 ---- static bool pa_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) { + if (TARGET_PORTABLE_RUNTIME) + return false; + /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in single subspace mode and the call is not indirect. As far as I know, there is no operating system support for the multiple subspace mode. *************** pa_function_ok_for_sibcall (tree decl, t *** 7950,7958 **** if (TARGET_64BIT) return false; ! return (decl ! && !TARGET_PORTABLE_RUNTIME ! && !TREE_PUBLIC (decl)); } /* Returns 1 if the 6 operands specified in OPERANDS are suitable for --- 7975,7982 ---- if (TARGET_64BIT) return false; ! /* Sibcalls are only ok within a translation unit. */ ! return (decl && !TREE_PUBLIC (decl)); } /* Returns 1 if the 6 operands specified in OPERANDS are suitable for *************** cmpib_comparison_operator (rtx op, enum *** 9058,9063 **** --- 9082,9131 ---- || GET_CODE (op) == LEU)); } + /* Return a string to output before text in the current function. + + This function is only used with SOM. Because we don't support + named subspaces, we can only create a new subspace or switch back + to the default text subspace. */ + const char * + som_text_section_asm_op (void) + { + if (!TARGET_SOM) + return ""; + + if (TARGET_GAS) + { + if (cfun && !cfun->machine->in_nsubspa) + { + /* We only want to emit a .nsubspa directive once at the + start of the function. */ + cfun->machine->in_nsubspa = 1; + + /* Create a new subspace for the text. This provides + better stub placement and one-only functions. */ + if (cfun->decl + && DECL_ONE_ONLY (cfun->decl) + && !DECL_WEAK (cfun->decl)) + return + "\t.SPACE $TEXT$\n\t.NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,SORT=24,COMDAT"; + + return "\t.SPACE $TEXT$\n\t.NSUBSPA $CODE$"; + } + else + { + /* There isn't a current function or the body of the current + function has been completed. So, we are changing to the + text section to output debugging information. Do this in + the default text section. We need to forget that we are + in the text section so that the function text_section in + varasm.c will call us the next time around. */ + forget_section (); + } + } + + return "\t.SPACE $TEXT$\n\t.SUBSPA $CODE$"; + } + /* On hpux10, the linker will give an error if we have a reference in the read-only data section to a symbol defined in a shared library. Therefore, expressions that might require a reloc can *************** pa_select_section (tree exp, int reloc, *** 9074,9084 **** && (DECL_INITIAL (exp) == error_mark_node || TREE_CONSTANT (DECL_INITIAL (exp))) && !reloc) ! readonly_data_section (); else if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'c' && !(TREE_CODE (exp) == STRING_CST && flag_writable_strings) && !reloc) readonly_data_section (); else data_section (); } --- 9142,9164 ---- && (DECL_INITIAL (exp) == error_mark_node || TREE_CONSTANT (DECL_INITIAL (exp))) && !reloc) ! { ! if (TARGET_SOM ! && DECL_ONE_ONLY (exp) ! && !DECL_WEAK (exp)) ! som_one_only_readonly_data_section (); ! else ! readonly_data_section (); ! } else if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'c' && !(TREE_CODE (exp) == STRING_CST && flag_writable_strings) && !reloc) readonly_data_section (); + else if (TARGET_SOM + && TREE_CODE (exp) == VAR_DECL + && DECL_ONE_ONLY (exp) + && !DECL_WEAK (exp)) + som_one_only_data_section (); else data_section (); } diff -Nrc3pad gcc-3.4.3/gcc/config/pa/pa.h gcc-3.4.4/gcc/config/pa/pa.h *** gcc-3.4.3/gcc/config/pa/pa.h Tue Jun 22 00:18:08 2004 --- gcc-3.4.4/gcc/config/pa/pa.h Tue Mar 1 03:24:16 2005 *************** do { \ *** 424,429 **** --- 424,435 ---- #define CAN_DEBUG_WITHOUT_FP /* target machine storage layout */ + typedef struct machine_function GTY(()) + { + /* Flag indicating that a .NSUBSPA directive has been output for + this function. */ + int in_nsubspa; + } machine_function; /* Define this macro if it is advisable to hold scalars in registers in a wider mode than that declared by the program. In such cases, *************** extern int may_call_alloca; *** 1524,1530 **** && (TARGET_NO_SPACE_REGS \ ? (base && REG_P (index)) \ : (base == XEXP (X, 1) && REG_P (index) \ ! && REG_POINTER (base) && !REG_POINTER (index))) \ && MODE_OK_FOR_UNSCALED_INDEXING_P (MODE) \ && REG_OK_FOR_INDEX_P (index) \ && borx_reg_operand (base, Pmode) \ --- 1530,1541 ---- && (TARGET_NO_SPACE_REGS \ ? (base && REG_P (index)) \ : (base == XEXP (X, 1) && REG_P (index) \ ! && (reload_completed \ ! || (reload_in_progress && HARD_REGISTER_P (base)) \ ! || REG_POINTER (base)) \ ! && (reload_completed \ ! || (reload_in_progress && HARD_REGISTER_P (index)) \ ! || !REG_POINTER (index)))) \ && MODE_OK_FOR_UNSCALED_INDEXING_P (MODE) \ && REG_OK_FOR_INDEX_P (index) \ && borx_reg_operand (base, Pmode) \ *************** do { \ *** 1682,1693 **** goto LABEL #define TARGET_ASM_SELECT_SECTION pa_select_section ! /* Return a nonzero value if DECL has a section attribute. */ #define IN_NAMED_SECTION_P(DECL) \ ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \ && DECL_SECTION_NAME (DECL) != NULL_TREE) /* Define this macro if references to a symbol must be treated differently depending on something about the variable or function named by the symbol (such as what section it is in). --- 1693,1770 ---- goto LABEL #define TARGET_ASM_SELECT_SECTION pa_select_section ! /* Return a nonzero value if DECL has a section attribute. */ #define IN_NAMED_SECTION_P(DECL) \ ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \ && DECL_SECTION_NAME (DECL) != NULL_TREE) + /* The following extra sections and extra section functions are only used + for SOM, but they must be provided unconditionally because pa.c's calls + to the functions might not get optimized out when other object formats + are in use. */ + + #define EXTRA_SECTIONS \ + in_som_readonly_data, \ + in_som_one_only_readonly_data, \ + in_som_one_only_data + + #define EXTRA_SECTION_FUNCTIONS \ + SOM_READONLY_DATA_SECTION_FUNCTION \ + SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION \ + SOM_ONE_ONLY_DATA_SECTION_FUNCTION \ + FORGET_SECTION_FUNCTION + + /* SOM puts readonly data in the default $LIT$ subspace when PIC code + is not being generated. */ + #define SOM_READONLY_DATA_SECTION_FUNCTION \ + void \ + som_readonly_data_section (void) \ + { \ + if (!TARGET_SOM) \ + return; \ + if (in_section != in_som_readonly_data) \ + { \ + in_section = in_som_readonly_data; \ + fputs ("\t.SPACE $TEXT$\n\t.SUBSPA $LIT$\n", asm_out_file); \ + } \ + } + + /* When secondary definitions are not supported, SOM makes readonly data one + only by creating a new $LIT$ subspace in $TEXT$ with the comdat flag. */ + #define SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION \ + void \ + som_one_only_readonly_data_section (void) \ + { \ + if (!TARGET_SOM) \ + return; \ + in_section = in_som_one_only_readonly_data; \ + fputs ("\t.SPACE $TEXT$\n" \ + "\t.NSUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16,COMDAT\n",\ + asm_out_file); \ + } + + /* When secondary definitions are not supported, SOM makes data one only by + creating a new $DATA$ subspace in $PRIVATE$ with the comdat flag. */ + #define SOM_ONE_ONLY_DATA_SECTION_FUNCTION \ + void \ + som_one_only_data_section (void) \ + { \ + if (!TARGET_SOM) \ + return; \ + in_section = in_som_one_only_data; \ + fputs ("\t.SPACE $PRIVATE$\n" \ + "\t.NSUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24,COMDAT\n", \ + asm_out_file); \ + } + + #define FORGET_SECTION_FUNCTION \ + void \ + forget_section (void) \ + { \ + in_section = no_section; \ + } + /* Define this macro if references to a symbol must be treated differently depending on something about the variable or function named by the symbol (such as what section it is in). diff -Nrc3pad gcc-3.4.3/gcc/config/pa/pa.md gcc-3.4.4/gcc/config/pa/pa.md *** gcc-3.4.3/gcc/config/pa/pa.md Mon Jun 7 20:20:11 2004 --- gcc-3.4.4/gcc/config/pa/pa.md Sun Feb 27 17:14:31 2005 *************** *** 5082,5088 **** (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 4))]) ! (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))] "" " { --- 5082,5088 ---- (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 4))]) ! (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))] "" " { *************** *** 5208,5214 **** (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))] "" " { --- 5208,5214 ---- (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))] "" " { *************** *** 5264,5270 **** (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))] "" " { --- 5264,5270 ---- (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))] "" " { *************** *** 5321,5327 **** (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))] "" " { --- 5321,5327 ---- (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))] "" " { *************** *** 5373,5379 **** (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))] "" " { --- 5373,5379 ---- (clobber (reg:SI 26)) (clobber (reg:SI 25)) (clobber (match_dup 5))]) ! (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))] "" " { *************** *** 5422,5446 **** (define_expand "anddi3" [(set (match_operand:DI 0 "register_operand" "") ! (and:DI (match_operand:DI 1 "and_operand" "") (match_operand:DI 2 "and_operand" "")))] "" " { ! if (TARGET_64BIT) ! { ! /* One operand must be a register operand. */ ! if (!register_operand (operands[1], DImode) ! && !register_operand (operands[2], DImode)) ! FAIL; ! } ! else ! { ! /* Both operands must be register operands. */ ! if (!register_operand (operands[1], DImode) ! || !register_operand (operands[2], DImode)) ! FAIL; ! } }") (define_insn "" --- 5422,5435 ---- (define_expand "anddi3" [(set (match_operand:DI 0 "register_operand" "") ! (and:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "and_operand" "")))] "" " { ! /* Both operands must be register operands. */ ! if (!TARGET_64BIT && !register_operand (operands[2], DImode)) ! FAIL; }") (define_insn "" *************** *** 5501,5525 **** (define_expand "iordi3" [(set (match_operand:DI 0 "register_operand" "") ! (ior:DI (match_operand:DI 1 "ior_operand" "") (match_operand:DI 2 "ior_operand" "")))] "" " { ! if (TARGET_64BIT) ! { ! /* One operand must be a register operand. */ ! if (!register_operand (operands[1], DImode) ! && !register_operand (operands[2], DImode)) ! FAIL; ! } ! else ! { ! /* Both operands must be register operands. */ ! if (!register_operand (operands[1], DImode) ! || !register_operand (operands[2], DImode)) ! FAIL; ! } }") (define_insn "" --- 5490,5503 ---- (define_expand "iordi3" [(set (match_operand:DI 0 "register_operand" "") ! (ior:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "ior_operand" "")))] "" " { ! /* Both operands must be register operands. */ ! if (!TARGET_64BIT && !register_operand (operands[2], DImode)) ! FAIL; }") (define_insn "" diff -Nrc3pad gcc-3.4.3/gcc/config/pa/som.h gcc-3.4.4/gcc/config/pa/som.h *** gcc-3.4.3/gcc/config/pa/som.h Sun Nov 2 01:01:24 2003 --- gcc-3.4.4/gcc/config/pa/som.h Tue Dec 28 04:51:33 2004 *************** *** 1,5 **** /* Definitions for SOM assembler support. ! Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GCC. --- 1,5 ---- /* Definitions for SOM assembler support. ! Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. *************** do { \ *** 129,147 **** #endif - /* NAME refers to the function's name. If we are placing each function into - its own section, we need to switch to the section for this function. Note - that the section name will have a "." prefix. */ - #define ASM_OUTPUT_FUNCTION_PREFIX(FILE, NAME) \ - { \ - const char *name = (*targetm.strip_name_encoding) (NAME); \ - if (TARGET_GAS && in_section == in_text) \ - fputs ("\t.NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY\n", FILE); \ - else if (TARGET_GAS) \ - fprintf (FILE, \ - "\t.SUBSPA .%s\n", name); \ - } - #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ do { tree fntype = TREE_TYPE (TREE_TYPE (DECL)); \ tree tree_type = TREE_TYPE (DECL); \ --- 129,134 ---- *************** do { \ *** 219,247 **** #define TARGET_ASM_FILE_START pa_som_file_start ! /* Output before code. */ ! ! /* Supposedly the assembler rejects the command if there is no tab! */ ! #define TEXT_SECTION_ASM_OP "\t.SPACE $TEXT$\n\t.SUBSPA $CODE$\n" ! ! /* Output before read-only data. */ ! ! /* Supposedly the assembler rejects the command if there is no tab! */ ! #define READONLY_DATA_ASM_OP "\t.SPACE $TEXT$\n\t.SUBSPA $LIT$\n" ! #define EXTRA_SECTIONS in_readonly_data ! #define EXTRA_SECTION_FUNCTIONS \ ! extern void readonly_data (void); \ ! void \ ! readonly_data (void) \ ! { \ ! if (in_section != in_readonly_data) \ ! { \ ! in_section = in_readonly_data; \ ! fprintf (asm_out_file, "%s\n", READONLY_DATA_ASM_OP); \ ! } \ ! } /* FIXME: HPUX ld generates incorrect GOT entries for "T" fixups which reference data within the $TEXT$ space (for example constant --- 206,219 ---- #define TARGET_ASM_FILE_START pa_som_file_start ! /* String to output before text. */ ! #define TEXT_SECTION_ASM_OP som_text_section_asm_op () ! /* String to output before writable data. */ ! #define DATA_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $DATA$\n" ! /* String to output before uninitialized data. */ ! #define BSS_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $BSS$\n" /* FIXME: HPUX ld generates incorrect GOT entries for "T" fixups which reference data within the $TEXT$ space (for example constant *************** readonly_data (void) \ *** 255,271 **** $TEXT$ space during PIC generation. Instead place all constant data into the $PRIVATE$ subspace (this reduces sharing, but it works correctly). */ ! ! #define READONLY_DATA_SECTION (flag_pic ? data_section : readonly_data) ! ! /* Output before writable data. */ ! ! /* Supposedly the assembler rejects the command if there is no tab! */ ! #define DATA_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $DATA$\n" ! ! /* Output before uninitialized data. */ ! ! #define BSS_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $BSS$\n" /* We must not have a reference to an external symbol defined in a shared library in a readonly section, else the SOM linker will --- 227,234 ---- $TEXT$ space during PIC generation. Instead place all constant data into the $PRIVATE$ subspace (this reduces sharing, but it works correctly). */ ! #define READONLY_DATA_SECTION \ ! (flag_pic ? data_section : som_readonly_data_section) /* We must not have a reference to an external symbol defined in a shared library in a readonly section, else the SOM linker will *************** do { \ *** 361,371 **** #define SUPPORTS_WEAK 0 #endif ! /* We can support one only if we support weak. */ ! #define SUPPORTS_ONE_ONLY SUPPORTS_WEAK ! /* Use weak (secondary definitions) to make one only declarations. */ ! #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) /* This is how we tell the assembler that a symbol is weak. The SOM weak implementation uses the secondary definition (sdef) flag. --- 324,353 ---- #define SUPPORTS_WEAK 0 #endif ! /* CVS GAS as of 4/28/04 supports a comdat parameter for the .nsubspa ! directive. This provides one-only linkage semantics even though we ! don't have weak support. */ ! #ifdef HAVE_GAS_NSUBSPA_COMDAT ! #define SUPPORTS_SOM_COMDAT (TARGET_GAS) ! #else ! #define SUPPORTS_SOM_COMDAT 0 ! #endif ! /* We can support one only if we support weak or comdat. */ ! #define SUPPORTS_ONE_ONLY (SUPPORTS_WEAK || SUPPORTS_SOM_COMDAT) ! ! /* We use DECL_COMMON for uninitialized one-only variables as we don't ! have linkonce .bss. We use SOM secondary definitions or comdat for ! initialized variables and functions. */ ! #define MAKE_DECL_ONE_ONLY(DECL) \ ! do { \ ! if (TREE_CODE (DECL) == VAR_DECL \ ! && (DECL_INITIAL (DECL) == 0 \ ! || DECL_INITIAL (DECL) == error_mark_node)) \ ! DECL_COMMON (DECL) = 1; \ ! else if (SUPPORTS_WEAK) \ ! DECL_WEAK (DECL) = 1; \ ! } while (0) /* This is how we tell the assembler that a symbol is weak. The SOM weak implementation uses the secondary definition (sdef) flag. diff -Nrc3pad gcc-3.4.3/gcc/config/pa/t-hpux-shlib gcc-3.4.4/gcc/config/pa/t-hpux-shlib *** gcc-3.4.3/gcc/config/pa/t-hpux-shlib Mon Oct 18 16:00:51 2004 --- gcc-3.4.4/gcc/config/pa/t-hpux-shlib Thu Dec 16 19:16:22 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 8,14 **** -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SONAME) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) --- 8,14 ---- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SONAME) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/aix.h gcc-3.4.4/gcc/config/rs6000/aix.h *** gcc-3.4.3/gcc/config/rs6000/aix.h Sat Sep 11 17:10:24 2004 --- gcc-3.4.4/gcc/config/rs6000/aix.h Thu Feb 17 00:34:42 2005 *************** *** 1,6 **** /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX. ! Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX. ! Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GCC. *************** *** 175,189 **** #define JUMP_TABLES_IN_TEXT_SECTION 1 /* Enable AIX XL compiler calling convention breakage compatibility. */ ! #undef TARGET_XL_CALL ! #define MASK_XL_CALL 0x40000000 ! #define TARGET_XL_CALL (target_flags & MASK_XL_CALL) #undef SUBTARGET_SWITCHES #define SUBTARGET_SWITCHES \ ! {"xl-call", MASK_XL_CALL, \ ! N_("Always pass floating-point arguments in memory") }, \ ! {"no-xl-call", - MASK_XL_CALL, \ ! N_("Don't always pass floating-point arguments in memory") }, \ SUBSUBTARGET_SWITCHES #define SUBSUBTARGET_SWITCHES --- 175,189 ---- #define JUMP_TABLES_IN_TEXT_SECTION 1 /* Enable AIX XL compiler calling convention breakage compatibility. */ ! #undef TARGET_XL_COMPAT ! #define MASK_XL_COMPAT 0x40000000 ! #define TARGET_XL_COMPAT (target_flags & MASK_XL_COMPAT) #undef SUBTARGET_SWITCHES #define SUBTARGET_SWITCHES \ ! {"xl-compat", MASK_XL_COMPAT, \ ! N_("Conform more closely to IBM XLC semantics") }, \ ! {"no-xl-compat", - MASK_XL_COMPAT, \ ! N_("Default GCC semantics that differ from IBM XLC") }, \ SUBSUBTARGET_SWITCHES #define SUBSUBTARGET_SWITCHES diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/aix41.h gcc-3.4.4/gcc/config/rs6000/aix41.h *** gcc-3.4.3/gcc/config/rs6000/aix41.h Sun Apr 13 17:51:05 2003 --- gcc-3.4.4/gcc/config/rs6000/aix41.h Sun Jan 16 16:01:27 2005 *************** *** 98,100 **** --- 98,104 ---- #undef RS6000_CALL_GLUE #define RS6000_CALL_GLUE "{cror 31,31,31|nop}" + /* The IBM AIX 4.x assembler doesn't support forward references in + .set directives. We handle this by deferring the output of .set + directives to the end of the compilation unit. */ + #define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/aix43.h gcc-3.4.4/gcc/config/rs6000/aix43.h *** gcc-3.4.3/gcc/config/rs6000/aix43.h Sun Apr 13 17:51:05 2003 --- gcc-3.4.4/gcc/config/rs6000/aix43.h Sun Jan 16 16:01:27 2005 *************** do { \ *** 187,189 **** --- 187,194 ---- #undef LD_INIT_SWITCH #define LD_INIT_SWITCH "-binitfini" + + /* The IBM AIX 4.x assembler doesn't support forward references in + .set directives. We handle this by deferring the output of .set + directives to the end of the compilation unit. */ + #define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/aix52.h gcc-3.4.4/gcc/config/rs6000/aix52.h *** gcc-3.4.3/gcc/config/rs6000/aix52.h Fri Jul 4 12:42:01 2003 --- gcc-3.4.4/gcc/config/rs6000/aix52.h Mon Apr 11 17:33:31 2005 *************** do { \ *** 193,195 **** --- 193,199 ---- #undef TARGET_C99_FUNCTIONS #define TARGET_C99_FUNCTIONS 1 + #ifndef _AIX52 + extern long long int atoll(const char *); + #endif + diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/beos.h gcc-3.4.4/gcc/config/rs6000/beos.h *** gcc-3.4.3/gcc/config/rs6000/beos.h Sun Apr 13 17:51:06 2003 --- gcc-3.4.4/gcc/config/rs6000/beos.h Thu Feb 17 00:34:42 2005 *************** *** 23,40 **** #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (BeOS/PowerPC)"); - /* Enable AIX XL compiler calling convention breakage compatibility. */ - #define MASK_XL_CALL 0x40000000 - #define TARGET_XL_CALL (target_flags & MASK_XL_CALL) - #undef SUBTARGET_SWITCHES - #define SUBTARGET_SWITCHES \ - {"xl-call", MASK_XL_CALL, \ - N_("Always pass floating-point arguments in memory") }, \ - {"no-xl-call", - MASK_XL_CALL, \ - N_("Don't always pass floating-point arguments in memory") }, \ - {"threads", 0}, \ - {"pe", 0}, - #undef ASM_SPEC #define ASM_SPEC "-u %(asm_cpu)" --- 23,28 ---- diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/darwin-ldouble-shared.c gcc-3.4.4/gcc/config/rs6000/darwin-ldouble-shared.c *** gcc-3.4.3/gcc/config/rs6000/darwin-ldouble-shared.c Thu Jan 1 00:00:00 1970 --- gcc-3.4.4/gcc/config/rs6000/darwin-ldouble-shared.c Thu Feb 24 09:26:59 2005 *************** *** 0 **** --- 1,2 ---- + #define IN_LIBGCC2_S 1 + #include "darwin-ldouble.c" diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/darwin-ldouble.c gcc-3.4.4/gcc/config/rs6000/darwin-ldouble.c *** gcc-3.4.3/gcc/config/rs6000/darwin-ldouble.c Thu Mar 11 03:14:52 2004 --- gcc-3.4.4/gcc/config/rs6000/darwin-ldouble.c Thu Feb 24 09:26:59 2005 *************** *** 1,5 **** /* 128-bit long double support routines for Darwin. ! Copyright (C) 1993, 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. --- 1,5 ---- /* 128-bit long double support routines for Darwin. ! Copyright (C) 1993, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GCC. *************** Software Foundation, 59 Temple Place - S *** 48,54 **** This code currently assumes big-endian. */ ! #if !_SOFT_FLOAT && (defined (__MACH__) || defined (__powerpc64__)) #define fabs(x) __builtin_fabs(x) --- 48,54 ---- This code currently assumes big-endian. */ ! #if !_SOFT_FLOAT && (defined (__MACH__) || defined (__powerpc64__) || defined (_AIX)) #define fabs(x) __builtin_fabs(x) *************** Software Foundation, 59 Temple Place - S *** 58,67 **** but GCC currently generates poor code when a union is used to turn a long double into a pair of doubles. */ ! extern long double _xlqadd (double, double, double, double); ! extern long double _xlqsub (double, double, double, double); ! extern long double _xlqmul (double, double, double, double); ! extern long double _xlqdiv (double, double, double, double); typedef union { --- 58,84 ---- but GCC currently generates poor code when a union is used to turn a long double into a pair of doubles. */ ! extern long double __gcc_qadd (double, double, double, double); ! extern long double __gcc_qsub (double, double, double, double); ! extern long double __gcc_qmul (double, double, double, double); ! extern long double __gcc_qdiv (double, double, double, double); ! ! #if defined __ELF__ && defined IN_LIBGCC2_S ! /* Provide definitions of the old symbol names to statisfy apps and ! shared libs built against an older libgcc. To access the _xlq ! symbols an explicit version reference is needed, so these won't ! satisfy an unadorned reference like _xlqadd. If dot symbols are ! not needed, the assembler will remove the aliases from the symbol ! table. */ ! __asm__ (".symver __gcc_qadd,_xlqadd@GCC_3.4\n\t" ! ".symver __gcc_qsub,_xlqsub@GCC_3.4\n\t" ! ".symver __gcc_qmul,_xlqmul@GCC_3.4\n\t" ! ".symver __gcc_qdiv,_xlqdiv@GCC_3.4\n\t" ! ".symver .__gcc_qadd,._xlqadd@GCC_3.4\n\t" ! ".symver .__gcc_qsub,._xlqsub@GCC_3.4\n\t" ! ".symver .__gcc_qmul,._xlqmul@GCC_3.4\n\t" ! ".symver .__gcc_qdiv,._xlqdiv@GCC_3.4"); ! #endif typedef union { *************** static const double FPKINF = 1.0/0.0; *** 73,79 **** /* Add two 'long double' values and return the result. */ long double ! _xlqadd (double a, double b, double c, double d) { longDblUnion z; double t, tau, u, FPR_zero, FPR_PosInf; --- 90,96 ---- /* Add two 'long double' values and return the result. */ long double ! __gcc_qadd (double a, double b, double c, double d) { longDblUnion z; double t, tau, u, FPR_zero, FPR_PosInf; *************** _xlqadd (double a, double b, double c, d *** 132,144 **** } long double ! _xlqsub (double a, double b, double c, double d) { ! return _xlqadd (a, b, -c, -d); } long double ! _xlqmul (double a, double b, double c, double d) { longDblUnion z; double t, tau, u, v, w, FPR_zero, FPR_PosInf; --- 149,161 ---- } long double ! __gcc_qsub (double a, double b, double c, double d) { ! return __gcc_qadd (a, b, -c, -d); } long double ! __gcc_qmul (double a, double b, double c, double d) { longDblUnion z; double t, tau, u, v, w, FPR_zero, FPR_PosInf; *************** _xlqmul (double a, double b, double c, d *** 169,175 **** } long double ! _xlqdiv (double a, double b, double c, double d) { longDblUnion z; double s, sigma, t, tau, u, v, w, FPR_zero, FPR_PosInf; --- 186,192 ---- } long double ! __gcc_qdiv (double a, double b, double c, double d) { longDblUnion z; double s, sigma, t, tau, u, v, w, FPR_zero, FPR_PosInf; diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/libgcc-ppc64.ver gcc-3.4.4/gcc/config/rs6000/libgcc-ppc64.ver *** gcc-3.4.3/gcc/config/rs6000/libgcc-ppc64.ver Thu Mar 11 03:14:52 2004 --- gcc-3.4.4/gcc/config/rs6000/libgcc-ppc64.ver Thu Feb 17 00:34:39 2005 *************** *** 1,7 **** ! GCC_3.4 { # long double support ! _xlqadd ! _xlqsub ! _xlqmul ! _xlqdiv } --- 1,7 ---- ! GCC_3.4.4 { # long double support ! __gcc_qadd ! __gcc_qsub ! __gcc_qmul ! __gcc_qdiv } diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/linux-unwind.h gcc-3.4.4/gcc/config/rs6000/linux-unwind.h *** gcc-3.4.3/gcc/config/rs6000/linux-unwind.h Thu Jan 1 00:00:00 1970 --- gcc-3.4.4/gcc/config/rs6000/linux-unwind.h Thu Mar 17 10:41:17 2005 *************** *** 0 **** --- 1,322 ---- + /* DWARF2 EH unwinding support for PowerPC and PowerPC64 Linux. + Copyright (C) 2004, 2005 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 2, or (at your + option) any later version. + + In addition to the permissions in the GNU General Public License, + the Free Software Foundation gives you unlimited permission to link + the compiled version of this file with other programs, and to + distribute those programs without any restriction coming from the + use of this file. (The General Public License restrictions do + apply in other respects; for example, they cover modification of + the file, and distribution when not linked into another program.) + + GCC is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to the + Free Software Foundation, 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA. */ + + /* This file defines our own versions of various kernel and user + structs, so that system headers are not needed, which otherwise + can make bootstrapping a new toolchain difficult. Do not use + these structs elsewhere; Many fields are missing, particularly + from the end of the structures. */ + + struct gcc_vregs + { + __attribute__ ((vector_size (16))) int vr[32]; + #ifdef __powerpc64__ + unsigned int pad1[3]; + unsigned int vscr; + unsigned int vsave; + unsigned int pad2[3]; + #else + unsigned int vsave; + unsigned int pad[2]; + unsigned int vscr; + #endif + }; + + struct gcc_regs + { + unsigned long gpr[32]; + unsigned long nip; + unsigned long msr; + unsigned long orig_gpr3; + unsigned long ctr; + unsigned long link; + unsigned long xer; + unsigned long ccr; + unsigned long softe; + unsigned long trap; + unsigned long dar; + unsigned long dsisr; + unsigned long result; + unsigned long pad1[4]; + double fpr[32]; + unsigned int pad2; + unsigned int fpscr; + #ifdef __powerpc64__ + struct gcc_vregs *vp; + #else + unsigned int pad3[2]; + #endif + struct gcc_vregs vregs; + }; + + struct gcc_ucontext + { + #ifdef __powerpc64__ + unsigned long pad[28]; + #else + unsigned long pad[12]; + #endif + struct gcc_regs *regs; + struct gcc_regs rsave; + }; + + #ifdef __powerpc64__ + + enum { SIGNAL_FRAMESIZE = 128 }; + + /* If the current unwind info (FS) does not contain explicit info + saving R2, then we have to do a minor amount of code reading to + figure out if it was saved. The big problem here is that the + code that does the save/restore is generated by the linker, so + we have no good way to determine at compile time what to do. */ + + #define MD_FROB_UPDATE_CONTEXT(CTX, FS) \ + do { \ + if ((FS)->regs.reg[2].how == REG_UNSAVED) \ + { \ + unsigned int *insn \ + = (unsigned int *) \ + _Unwind_GetGR ((CTX), LINK_REGISTER_REGNUM); \ + if (*insn == 0xE8410028) \ + _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \ + } \ + } while (0) + + /* If PC is at a sigreturn trampoline, return a pointer to the + regs. Otherwise return NULL. */ + + #define PPC_LINUX_GET_REGS(CONTEXT) \ + ({ \ + const unsigned char *pc = (CONTEXT)->ra; \ + struct gcc_regs *regs = NULL; \ + \ + /* addi r1, r1, 128; li r0, 0x0077; sc (sigreturn) */ \ + /* addi r1, r1, 128; li r0, 0x00AC; sc (rt_sigreturn) */ \ + if (*(unsigned int *) (pc + 0) != 0x38210000 + SIGNAL_FRAMESIZE \ + || *(unsigned int *) (pc + 8) != 0x44000002) \ + ; \ + else if (*(unsigned int *) (pc + 4) == 0x38000077) \ + { \ + struct sigframe { \ + char gap[SIGNAL_FRAMESIZE]; \ + unsigned long pad[7]; \ + struct gcc_regs *regs; \ + } *frame = (struct sigframe *) (CONTEXT)->cfa; \ + regs = frame->regs; \ + } \ + else if (*(unsigned int *) (pc + 4) == 0x380000AC) \ + { \ + /* This works for 2.4 kernels, but not for 2.6 kernels with vdso \ + because pc isn't pointing into the stack. Can be removed when \ + no one is running 2.4.19 or 2.4.20, the first two ppc64 \ + kernels released. */ \ + struct rt_sigframe_24 { \ + int tramp[6]; \ + void *pinfo; \ + struct gcc_ucontext *puc; \ + } *frame24 = (struct rt_sigframe_24 *) pc; \ + \ + /* Test for magic value in *puc of vdso. */ \ + if ((long) frame24->puc != -21 * 8) \ + regs = frame24->puc->regs; \ + else \ + { \ + /* This works for 2.4.21 and later kernels. */ \ + struct rt_sigframe { \ + char gap[SIGNAL_FRAMESIZE]; \ + struct gcc_ucontext uc; \ + unsigned long pad[2]; \ + int tramp[6]; \ + void *pinfo; \ + struct gcc_ucontext *puc; \ + } *frame = (struct rt_sigframe *) (CONTEXT)->cfa; \ + regs = frame->uc.regs; \ + } \ + } \ + regs; \ + }) + + #define LINUX_HWCAP_DEFAULT 0xc0000000 + + #define PPC_LINUX_VREGS(REGS) (REGS)->vp + + #else /* !__powerpc64__ */ + + enum { SIGNAL_FRAMESIZE = 64 }; + + #define PPC_LINUX_GET_REGS(CONTEXT) \ + ({ \ + const unsigned char *pc = (CONTEXT)->ra; \ + struct gcc_regs *regs = NULL; \ + \ + /* li r0, 0x7777; sc (sigreturn old) */ \ + /* li r0, 0x0077; sc (sigreturn new) */ \ + /* li r0, 0x6666; sc (rt_sigreturn old) */ \ + /* li r0, 0x00AC; sc (rt_sigreturn new) */ \ + if (*(unsigned int *) (pc + 4) != 0x44000002) \ + ; \ + else if (*(unsigned int *) (pc + 0) == 0x38007777 \ + || *(unsigned int *) (pc + 0) == 0x38000077) \ + { \ + struct sigframe { \ + char gap[SIGNAL_FRAMESIZE]; \ + unsigned long pad[7]; \ + struct gcc_regs *regs; \ + } *frame = (struct sigframe *) (CONTEXT)->cfa; \ + regs = frame->regs; \ + } \ + else if (*(unsigned int *) (pc + 0) == 0x38006666 \ + || *(unsigned int *) (pc + 0) == 0x380000AC) \ + { \ + struct rt_sigframe { \ + char gap[SIGNAL_FRAMESIZE + 16]; \ + char siginfo[128]; \ + struct gcc_ucontext uc; \ + } *frame = (struct rt_sigframe *) (CONTEXT)->cfa; \ + regs = frame->uc.regs; \ + } \ + regs; \ + }) + + #define LINUX_HWCAP_DEFAULT 0x80000000 + + #define PPC_LINUX_VREGS(REGS) &(REGS)->vregs + + #endif + + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + + #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ + do { \ + static long hwcap = 0; \ + struct gcc_regs *regs = PPC_LINUX_GET_REGS (CONTEXT); \ + long new_cfa; \ + int i; \ + \ + if (regs == NULL) \ + break; \ + \ + new_cfa = regs->gpr[STACK_POINTER_REGNUM]; \ + (FS)->cfa_how = CFA_REG_OFFSET; \ + (FS)->cfa_reg = STACK_POINTER_REGNUM; \ + (FS)->cfa_offset = new_cfa - (long) (CONTEXT)->cfa; \ + \ + for (i = 0; i < 32; i++) \ + if (i != STACK_POINTER_REGNUM) \ + { \ + (FS)->regs.reg[i].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[i].loc.offset \ + = (long) ®s->gpr[i] - new_cfa; \ + } \ + \ + (FS)->regs.reg[CR2_REGNO].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[CR2_REGNO].loc.offset \ + = (long) ®s->ccr - new_cfa; \ + \ + (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \ + = (long) ®s->link - new_cfa; \ + \ + (FS)->regs.reg[ARG_POINTER_REGNUM].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[ARG_POINTER_REGNUM].loc.offset \ + = (long) ®s->nip - new_cfa; \ + (FS)->retaddr_column = ARG_POINTER_REGNUM; \ + \ + if (hwcap == 0) \ + { \ + /* __libc_stack_end holds the original stack passed to a \ + process. */ \ + extern long *__libc_stack_end; \ + long argc; \ + char **argv; \ + char **envp; \ + struct auxv \ + { \ + long a_type; \ + long a_val; \ + } *auxp; \ + \ + /* The Linux kernel puts argc first on the stack. */ \ + argc = __libc_stack_end[0]; \ + /* Followed by argv, NULL terminated. */ \ + argv = (char **) __libc_stack_end + 1; \ + /* Followed by environment string pointers, NULL terminated. */ \ + envp = argv + argc + 1; \ + while (*envp++) \ + continue; \ + /* Followed by the aux vector, zero terminated. */ \ + for (auxp = (struct auxv *) envp; auxp->a_type != 0; ++auxp) \ + if (auxp->a_type == 16) \ + { \ + hwcap = auxp->a_val; \ + break; \ + } \ + \ + /* These will already be set if we found AT_HWCAP. A non-zero \ + value stops us looking again if for some reason we couldn't \ + find AT_HWCAP. */ \ + hwcap |= LINUX_HWCAP_DEFAULT; \ + } \ + \ + /* If we have a FPU... */ \ + if (hwcap & 0x08000000) \ + for (i = 0; i < 32; i++) \ + { \ + (FS)->regs.reg[i + 32].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[i + 32].loc.offset \ + = (long) ®s->fpr[i] - new_cfa; \ + } \ + \ + /* If we have a VMX unit... */ \ + if (hwcap & 0x10000000) \ + { \ + struct gcc_vregs *vregs; \ + vregs = PPC_LINUX_VREGS (regs); \ + if (regs->msr & (1 << 25)) \ + { \ + for (i = 0; i < 32; i++) \ + { \ + (FS)->regs.reg[i + FIRST_ALTIVEC_REGNO].how \ + = REG_SAVED_OFFSET; \ + (FS)->regs.reg[i + FIRST_ALTIVEC_REGNO].loc.offset \ + = (long) &vregs[i] - new_cfa; \ + } \ + \ + (FS)->regs.reg[VSCR_REGNO].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[VSCR_REGNO].loc.offset \ + = (long) &vregs->vscr - new_cfa; \ + } \ + \ + (FS)->regs.reg[VRSAVE_REGNO].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[VRSAVE_REGNO].loc.offset \ + = (long) &vregs->vsave - new_cfa; \ + } \ + \ + goto SUCCESS; \ + } while (0) diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/linux.h gcc-3.4.4/gcc/config/rs6000/linux.h *** gcc-3.4.3/gcc/config/rs6000/linux.h Sun Oct 3 03:43:56 2004 --- gcc-3.4.4/gcc/config/rs6000/linux.h Thu Mar 17 10:41:17 2005 *************** *** 1,6 **** /* Definitions of target machine for GNU compiler, for PowerPC machines running Linux. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Michael Meissner (meissner@cygnus.com). --- 1,6 ---- /* Definitions of target machine for GNU compiler, for PowerPC machines running Linux. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by Michael Meissner (meissner@cygnus.com). *************** *** 94,189 **** #undef TARGET_64BIT #define TARGET_64BIT 0 ! /* We don't need to generate entries in .fixup. */ #undef RELOCATABLE_NEEDS_FIXUP #define TARGET_ASM_FILE_END file_end_indicate_exec_stack #define TARGET_HAS_F_SETLKW - /* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - #ifdef IN_LIBGCC2 ! #include ! ! /* During the 2.5 kernel series the kernel ucontext was changed, but ! the new layout is compatible with the old one, so we just define ! and use the old one here for simplicity and compatibility. */ ! ! struct kernel_old_ucontext { ! unsigned long uc_flags; ! struct ucontext *uc_link; ! stack_t uc_stack; ! struct sigcontext_struct uc_mcontext; ! sigset_t uc_sigmask; ! }; ! ! enum { SIGNAL_FRAMESIZE = 64 }; #endif - - #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ - do { \ - unsigned char *pc_ = (CONTEXT)->ra; \ - struct sigcontext *sc_; \ - long new_cfa_; \ - int i_; \ - \ - /* li r0, 0x7777; sc (sigreturn old) */ \ - /* li r0, 0x0077; sc (sigreturn new) */ \ - /* li r0, 0x6666; sc (rt_sigreturn old) */ \ - /* li r0, 0x00AC; sc (rt_sigreturn new) */ \ - if (*(unsigned int *) (pc_+4) != 0x44000002) \ - break; \ - if (*(unsigned int *) (pc_+0) == 0x38007777 \ - || *(unsigned int *) (pc_+0) == 0x38000077) \ - { \ - struct sigframe { \ - char gap[SIGNAL_FRAMESIZE]; \ - struct sigcontext sigctx; \ - } *rt_ = (CONTEXT)->cfa; \ - sc_ = &rt_->sigctx; \ - } \ - else if (*(unsigned int *) (pc_+0) == 0x38006666 \ - || *(unsigned int *) (pc_+0) == 0x380000AC) \ - { \ - struct rt_sigframe { \ - char gap[SIGNAL_FRAMESIZE]; \ - unsigned long _unused[2]; \ - struct siginfo *pinfo; \ - void *puc; \ - struct siginfo info; \ - struct kernel_old_ucontext uc; \ - } *rt_ = (CONTEXT)->cfa; \ - sc_ = &rt_->uc.uc_mcontext; \ - } \ - else \ - break; \ - \ - new_cfa_ = sc_->regs->gpr[STACK_POINTER_REGNUM]; \ - (FS)->cfa_how = CFA_REG_OFFSET; \ - (FS)->cfa_reg = STACK_POINTER_REGNUM; \ - (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \ - \ - for (i_ = 0; i_ < 32; i_++) \ - if (i_ != STACK_POINTER_REGNUM) \ - { \ - (FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \ - (FS)->regs.reg[i_].loc.offset \ - = (long)&(sc_->regs->gpr[i_]) - new_cfa_; \ - } \ - \ - (FS)->regs.reg[CR2_REGNO].how = REG_SAVED_OFFSET; \ - (FS)->regs.reg[CR2_REGNO].loc.offset \ - = (long)&(sc_->regs->ccr) - new_cfa_; \ - \ - (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \ - (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \ - = (long)&(sc_->regs->link) - new_cfa_; \ - \ - (FS)->regs.reg[CR0_REGNO].how = REG_SAVED_OFFSET; \ - (FS)->regs.reg[CR0_REGNO].loc.offset \ - = (long)&(sc_->regs->nip) - new_cfa_; \ - (FS)->retaddr_column = CR0_REGNO; \ - goto SUCCESS; \ - } while (0) --- 94,109 ---- #undef TARGET_64BIT #define TARGET_64BIT 0 ! /* We don't need to generate entries in .fixup, except when ! -mrelocatable or -mrelocatable-lib is given. */ #undef RELOCATABLE_NEEDS_FIXUP + #define RELOCATABLE_NEEDS_FIXUP \ + (target_flags & target_flags_explicit & MASK_RELOCATABLE) #define TARGET_ASM_FILE_END file_end_indicate_exec_stack #define TARGET_HAS_F_SETLKW #ifdef IN_LIBGCC2 ! #include "config/rs6000/linux-unwind.h" #endif diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/linux64.h gcc-3.4.4/gcc/config/rs6000/linux64.h *** gcc-3.4.3/gcc/config/rs6000/linux64.h Sun Oct 3 03:43:56 2004 --- gcc-3.4.4/gcc/config/rs6000/linux64.h Fri Apr 29 00:31:57 2005 *************** *** 1,6 **** /* Definitions of target machine for GNU compiler, for 64 bit PowerPC linux. ! Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. --- 1,6 ---- /* Definitions of target machine for GNU compiler, for 64 bit PowerPC linux. ! Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GCC. *************** *** 53,60 **** #undef PROCESSOR_DEFAULT64 #define PROCESSOR_DEFAULT64 PROCESSOR_PPC630 ! #undef TARGET_RELOCATABLE ! #define TARGET_RELOCATABLE (!TARGET_64BIT && (target_flags & MASK_RELOCATABLE)) #undef RS6000_ABI_NAME #define RS6000_ABI_NAME (TARGET_64BIT ? "aixdesc" : "sysv") --- 53,63 ---- #undef PROCESSOR_DEFAULT64 #define PROCESSOR_DEFAULT64 PROCESSOR_PPC630 ! /* We don't need to generate entries in .fixup, except when ! -mrelocatable or -mrelocatable-lib is given. */ ! #undef RELOCATABLE_NEEDS_FIXUP ! #define RELOCATABLE_NEEDS_FIXUP \ ! (target_flags & target_flags_explicit & MASK_RELOCATABLE) #undef RS6000_ABI_NAME #define RS6000_ABI_NAME (TARGET_64BIT ? "aixdesc" : "sysv") *************** *** 188,193 **** --- 191,198 ---- #define TARGET_EABI 0 #undef TARGET_PROTOTYPE #define TARGET_PROTOTYPE 0 + #undef RELOCATABLE_NEEDS_FIXUP + #define RELOCATABLE_NEEDS_FIXUP 0 #endif *************** *** 212,220 **** #define PROFILE_HOOK(LABEL) \ do { if (TARGET_64BIT) output_profile_hook (LABEL); } while (0) - /* We don't need to generate entries in .fixup. */ - #undef RELOCATABLE_NEEDS_FIXUP - /* PowerPC64 Linux word-aligns FP doubles when -malign-power is given. */ #undef ADJUST_FIELD_ALIGN #define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ --- 217,222 ---- *************** while (0) *** 549,735 **** #undef DRAFT_V4_STRUCT_RET #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT) ! #define TARGET_ASM_FILE_END file_end_indicate_exec_stack #define TARGET_HAS_F_SETLKW #define LINK_GCC_C_SEQUENCE_SPEC \ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" - /* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - #ifdef IN_LIBGCC2 ! #include ! #ifdef __powerpc64__ ! #include ! ! enum { SIGNAL_FRAMESIZE = 128 }; ! ! #else ! ! /* During the 2.5 kernel series the kernel ucontext was changed, but ! the new layout is compatible with the old one, so we just define ! and use the old one here for simplicity and compatibility. */ ! ! struct kernel_old_ucontext { ! unsigned long uc_flags; ! struct ucontext *uc_link; ! stack_t uc_stack; ! struct sigcontext_struct uc_mcontext; ! sigset_t uc_sigmask; ! }; ! enum { SIGNAL_FRAMESIZE = 64 }; ! #endif ! ! #endif ! ! #ifdef __powerpc64__ ! ! /* If the current unwind info (FS) does not contain explicit info ! saving R2, then we have to do a minor amount of code reading to ! figure out if it was saved. The big problem here is that the ! code that does the save/restore is generated by the linker, so ! we have no good way to determine at compile time what to do. */ ! ! #define MD_FROB_UPDATE_CONTEXT(CTX, FS) \ ! do { \ ! if ((FS)->regs.reg[2].how == REG_UNSAVED) \ ! { \ ! unsigned int *insn \ ! = (unsigned int *) \ ! _Unwind_GetGR ((CTX), LINK_REGISTER_REGNUM); \ ! if (*insn == 0xE8410028) \ ! _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \ ! } \ ! } while (0) ! ! #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ ! do { \ ! unsigned char *pc_ = (CONTEXT)->ra; \ ! struct sigcontext *sc_; \ ! long new_cfa_; \ ! int i_; \ ! \ ! /* addi r1, r1, 128; li r0, 0x0077; sc (sigreturn) */ \ ! /* addi r1, r1, 128; li r0, 0x00AC; sc (rt_sigreturn) */ \ ! if (*(unsigned int *) (pc_+0) != 0x38210000 + SIGNAL_FRAMESIZE \ ! || *(unsigned int *) (pc_+8) != 0x44000002) \ ! break; \ ! if (*(unsigned int *) (pc_+4) == 0x38000077) \ ! { \ ! struct sigframe { \ ! char gap[SIGNAL_FRAMESIZE]; \ ! struct sigcontext sigctx; \ ! } *rt_ = (CONTEXT)->cfa; \ ! sc_ = &rt_->sigctx; \ ! } \ ! else if (*(unsigned int *) (pc_+4) == 0x380000AC) \ ! { \ ! struct rt_sigframe { \ ! int tramp[6]; \ ! struct siginfo *pinfo; \ ! struct ucontext *puc; \ ! } *rt_ = (struct rt_sigframe *) pc_; \ ! sc_ = &rt_->puc->uc_mcontext; \ ! } \ ! else \ ! break; \ ! \ ! new_cfa_ = sc_->regs->gpr[STACK_POINTER_REGNUM]; \ ! (FS)->cfa_how = CFA_REG_OFFSET; \ ! (FS)->cfa_reg = STACK_POINTER_REGNUM; \ ! (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \ ! \ ! for (i_ = 0; i_ < 32; i_++) \ ! if (i_ != STACK_POINTER_REGNUM) \ ! { \ ! (FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[i_].loc.offset \ ! = (long)&(sc_->regs->gpr[i_]) - new_cfa_; \ ! } \ ! \ ! (FS)->regs.reg[CR2_REGNO].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[CR2_REGNO].loc.offset \ ! = (long)&(sc_->regs->ccr) - new_cfa_; \ ! \ ! (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \ ! = (long)&(sc_->regs->link) - new_cfa_; \ ! \ ! (FS)->regs.reg[ARG_POINTER_REGNUM].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[ARG_POINTER_REGNUM].loc.offset \ ! = (long)&(sc_->regs->nip) - new_cfa_; \ ! (FS)->retaddr_column = ARG_POINTER_REGNUM; \ ! goto SUCCESS; \ ! } while (0) ! ! #else ! ! #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ ! do { \ ! unsigned char *pc_ = (CONTEXT)->ra; \ ! struct sigcontext *sc_; \ ! long new_cfa_; \ ! int i_; \ ! \ ! /* li r0, 0x7777; sc (sigreturn old) */ \ ! /* li r0, 0x0077; sc (sigreturn new) */ \ ! /* li r0, 0x6666; sc (rt_sigreturn old) */ \ ! /* li r0, 0x00AC; sc (rt_sigreturn new) */ \ ! if (*(unsigned int *) (pc_+4) != 0x44000002) \ ! break; \ ! if (*(unsigned int *) (pc_+0) == 0x38007777 \ ! || *(unsigned int *) (pc_+0) == 0x38000077) \ ! { \ ! struct sigframe { \ ! char gap[SIGNAL_FRAMESIZE]; \ ! struct sigcontext sigctx; \ ! } *rt_ = (CONTEXT)->cfa; \ ! sc_ = &rt_->sigctx; \ ! } \ ! else if (*(unsigned int *) (pc_+0) == 0x38006666 \ ! || *(unsigned int *) (pc_+0) == 0x380000AC) \ ! { \ ! struct rt_sigframe { \ ! char gap[SIGNAL_FRAMESIZE]; \ ! unsigned long _unused[2]; \ ! struct siginfo *pinfo; \ ! void *puc; \ ! struct siginfo info; \ ! struct kernel_old_ucontext uc; \ ! } *rt_ = (CONTEXT)->cfa; \ ! sc_ = &rt_->uc.uc_mcontext; \ ! } \ ! else \ ! break; \ ! \ ! new_cfa_ = sc_->regs->gpr[STACK_POINTER_REGNUM]; \ ! (FS)->cfa_how = CFA_REG_OFFSET; \ ! (FS)->cfa_reg = STACK_POINTER_REGNUM; \ ! (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \ ! \ ! for (i_ = 0; i_ < 32; i_++) \ ! if (i_ != STACK_POINTER_REGNUM) \ ! { \ ! (FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[i_].loc.offset \ ! = (long)&(sc_->regs->gpr[i_]) - new_cfa_; \ ! } \ ! \ ! (FS)->regs.reg[CR2_REGNO].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[CR2_REGNO].loc.offset \ ! = (long)&(sc_->regs->ccr) - new_cfa_; \ ! \ ! (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \ ! = (long)&(sc_->regs->link) - new_cfa_; \ ! \ ! (FS)->regs.reg[CR0_REGNO].how = REG_SAVED_OFFSET; \ ! (FS)->regs.reg[CR0_REGNO].loc.offset \ ! = (long)&(sc_->regs->nip) - new_cfa_; \ ! (FS)->retaddr_column = CR0_REGNO; \ ! goto SUCCESS; \ ! } while (0) ! #endif --- 551,563 ---- #undef DRAFT_V4_STRUCT_RET #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT) ! #define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack #define TARGET_HAS_F_SETLKW #define LINK_GCC_C_SEQUENCE_SPEC \ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" #ifdef IN_LIBGCC2 ! #include "config/rs6000/linux-unwind.h" #endif diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/rs6000-c.c gcc-3.4.4/gcc/config/rs6000/rs6000-c.c *** gcc-3.4.3/gcc/config/rs6000/rs6000-c.c Mon Aug 23 18:02:54 2004 --- gcc-3.4.4/gcc/config/rs6000/rs6000-c.c Sat Nov 27 00:50:21 2004 *************** rs6000_pragma_longcall (cpp_reader *pfil *** 62,74 **** if (c_lex (&x) != CPP_CLOSE_PAREN) SYNTAX_ERROR ("missing close paren"); ! if (n != integer_zero_node && n != integer_one_node) SYNTAX_ERROR ("number must be 0 or 1"); if (c_lex (&x) != CPP_EOF) warning ("junk at end of #pragma longcall"); ! rs6000_default_long_calls = (n == integer_one_node); } /* Handle defining many CPP flags based on TARGET_xxx. As a general --- 62,74 ---- if (c_lex (&x) != CPP_CLOSE_PAREN) SYNTAX_ERROR ("missing close paren"); ! if (!integer_zerop (n) && !integer_onep (n)) SYNTAX_ERROR ("number must be 0 or 1"); if (c_lex (&x) != CPP_EOF) warning ("junk at end of #pragma longcall"); ! rs6000_default_long_calls = integer_onep (n); } /* Handle defining many CPP flags based on TARGET_xxx. As a general diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/rs6000.c gcc-3.4.4/gcc/config/rs6000/rs6000.c *** gcc-3.4.3/gcc/config/rs6000/rs6000.c Fri Oct 22 19:19:35 2004 --- gcc-3.4.4/gcc/config/rs6000/rs6000.c Fri Apr 29 00:32:00 2005 *************** *** 1,6 **** /* Subroutines used for code generation on IBM RS/6000. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. --- 1,6 ---- /* Subroutines used for code generation on IBM RS/6000. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. *************** static GTY(()) int rs6000_sr_alias_set; *** 252,258 **** /* Call distance, overridden by -mlongcall and #pragma longcall(1). The only place that looks at this is rs6000_set_default_type_attributes; everywhere else should rely on the presence or absence of a longcall ! attribute on the function declaration. */ int rs6000_default_long_calls; const char *rs6000_longcall_switch; --- 252,259 ---- /* Call distance, overridden by -mlongcall and #pragma longcall(1). The only place that looks at this is rs6000_set_default_type_attributes; everywhere else should rely on the presence or absence of a longcall ! attribute on the function declaration. Exception: init_cumulative_args ! looks at it too, for libcalls. */ int rs6000_default_long_calls; const char *rs6000_longcall_switch; *************** static void rs6000_file_start (void); *** 319,324 **** --- 320,326 ---- static unsigned int rs6000_elf_section_type_flags (tree, const char *, int); static void rs6000_elf_asm_out_constructor (rtx, int); static void rs6000_elf_asm_out_destructor (rtx, int); + static void rs6000_elf_end_indicate_exec_stack (void) ATTRIBUTE_UNUSED; static void rs6000_elf_select_section (tree, int, unsigned HOST_WIDE_INT); static void rs6000_elf_unique_section (tree, int); static void rs6000_elf_select_rtx_section (enum machine_mode, rtx, *************** rs6000_override_options (const char *def *** 753,761 **** set_masks &= ~MASK_ALTIVEC; #endif ! /* Don't override these by the processor default if given explicitly. */ ! set_masks &= ~(target_flags_explicit ! & (MASK_MULTIPLE | MASK_STRING | MASK_SOFT_FLOAT)); /* Identify the processor type. */ rs6000_select[0].string = default_cpu; --- 755,762 ---- set_masks &= ~MASK_ALTIVEC; #endif ! /* Don't override by the processor default if given explicitly. */ ! set_masks &= ~target_flags_explicit; /* Identify the processor type. */ rs6000_select[0].string = default_cpu; *************** rs6000_legitimize_tls_address (rtx addr, *** 3001,3013 **** rs6000_emit_move (got, gsym, Pmode); else { ! char buf[30]; ! static int tls_got_labelno = 0; ! rtx tempLR, lab, tmp3, mem; rtx first, last; - ASM_GENERATE_INTERNAL_LABEL (buf, "LTLS", tls_got_labelno++); - lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); tempLR = gen_reg_rtx (Pmode); tmp1 = gen_reg_rtx (Pmode); tmp2 = gen_reg_rtx (Pmode); --- 3002,3010 ---- rs6000_emit_move (got, gsym, Pmode); else { ! rtx tempLR, tmp3, mem; rtx first, last; tempLR = gen_reg_rtx (Pmode); tmp1 = gen_reg_rtx (Pmode); tmp2 = gen_reg_rtx (Pmode); *************** rs6000_legitimize_tls_address (rtx addr, *** 3015,3022 **** mem = gen_rtx_MEM (Pmode, tmp1); RTX_UNCHANGING_P (mem) = 1; ! first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, lab, ! gsym)); emit_move_insn (tmp1, tempLR); emit_move_insn (tmp2, mem); emit_insn (gen_addsi3 (tmp3, tmp1, tmp2)); --- 3012,3018 ---- mem = gen_rtx_MEM (Pmode, tmp1); RTX_UNCHANGING_P (mem) = 1; ! first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, gsym)); emit_move_insn (tmp1, tempLR); emit_move_insn (tmp2, mem); emit_insn (gen_addsi3 (tmp3, tmp1, tmp2)); *************** init_cumulative_args (CUMULATIVE_ARGS *c *** 3971,3980 **** cum->nargs_prototype = n_named_args; /* Check for a longcall attribute. */ ! if (fntype ! && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype)) ! && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype))) ! cum->call_cookie = CALL_LONG; if (TARGET_DEBUG_ARG) { --- 3967,3977 ---- cum->nargs_prototype = n_named_args; /* Check for a longcall attribute. */ ! if ((!fntype && rs6000_default_long_calls) ! || (fntype ! && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype)) ! && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype)))) ! cum->call_cookie |= CALL_LONG; if (TARGET_DEBUG_ARG) { *************** function_arg (CUMULATIVE_ARGS *cum, enum *** 4520,4526 **** needs_psave = (type && (cum->nargs_prototype <= 0 || (DEFAULT_ABI == ABI_AIX ! && TARGET_XL_CALL && align_words >= GP_ARG_NUM_REG))); if (!needs_psave && mode == fmode) --- 4517,4523 ---- needs_psave = (type && (cum->nargs_prototype <= 0 || (DEFAULT_ABI == ABI_AIX ! && TARGET_XL_COMPAT && align_words >= GP_ARG_NUM_REG))); if (!needs_psave && mode == fmode) *************** function_arg_partial_nregs (CUMULATIVE_A *** 4614,4620 **** && !(type && (cum->nargs_prototype <= 0 || (DEFAULT_ABI == ABI_AIX ! && TARGET_XL_CALL && align_words >= GP_ARG_NUM_REG)))) { if (cum->fregno + ((GET_MODE_SIZE (mode) + 7) >> 3) > FP_ARG_MAX_REG + 1) --- 4611,4617 ---- && !(type && (cum->nargs_prototype <= 0 || (DEFAULT_ABI == ABI_AIX ! && TARGET_XL_COMPAT && align_words >= GP_ARG_NUM_REG)))) { if (cum->fregno + ((GET_MODE_SIZE (mode) + 7) >> 3) > FP_ARG_MAX_REG + 1) *************** rs6000_init_libfuncs (void) *** 7705,7715 **** set_conv_libfunc (ufix_optab, SImode, TFmode, "_quitrunc"); } ! /* Standard AIX/Darwin/64-bit SVR4 quad floating point routines. */ ! set_optab_libfunc (add_optab, TFmode, "_xlqadd"); ! set_optab_libfunc (sub_optab, TFmode, "_xlqsub"); ! set_optab_libfunc (smul_optab, TFmode, "_xlqmul"); ! set_optab_libfunc (sdiv_optab, TFmode, "_xlqdiv"); } else { --- 7702,7722 ---- set_conv_libfunc (ufix_optab, SImode, TFmode, "_quitrunc"); } ! /* AIX/Darwin/64-bit Linux quad floating point routines. */ ! if (!TARGET_XL_COMPAT) ! { ! set_optab_libfunc (add_optab, TFmode, "__gcc_qadd"); ! set_optab_libfunc (sub_optab, TFmode, "__gcc_qsub"); ! set_optab_libfunc (smul_optab, TFmode, "__gcc_qmul"); ! set_optab_libfunc (sdiv_optab, TFmode, "__gcc_qdiv"); ! } ! else ! { ! set_optab_libfunc (add_optab, TFmode, "_xlqadd"); ! set_optab_libfunc (sub_optab, TFmode, "_xlqsub"); ! set_optab_libfunc (smul_optab, TFmode, "_xlqmul"); ! set_optab_libfunc (sdiv_optab, TFmode, "_xlqdiv"); ! } } else { *************** rs6000_assemble_integer (rtx x, unsigned *** 9750,9756 **** { #ifdef RELOCATABLE_NEEDS_FIXUP /* Special handling for SI values. */ ! if (size == 4 && aligned_p) { extern int in_toc_section (void); static int recurse = 0; --- 9757,9763 ---- { #ifdef RELOCATABLE_NEEDS_FIXUP /* Special handling for SI values. */ ! if (RELOCATABLE_NEEDS_FIXUP && size == 4 && aligned_p) { extern int in_toc_section (void); static int recurse = 0; *************** rs6000_generate_compare (enum rtx_code c *** 9949,9958 **** emit_insn (cmp); } else ! emit_insn (gen_rtx_SET (VOIDmode, compare_result, ! gen_rtx_COMPARE (comp_mode, ! rs6000_compare_op0, ! rs6000_compare_op1))); /* Some kinds of FP comparisons need an OR operation; under flag_finite_math_only we don't bother. */ --- 9956,9989 ---- emit_insn (cmp); } else ! { ! /* Generate XLC-compatible TFmode compare as PARALLEL with extra ! CLOBBERs to match cmptf_internal2 pattern. */ ! if (comp_mode == CCFPmode && TARGET_XL_COMPAT ! && GET_MODE (rs6000_compare_op0) == TFmode ! && (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) ! && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128) ! emit_insn (gen_rtx_PARALLEL (VOIDmode, ! gen_rtvec (9, ! gen_rtx_SET (VOIDmode, ! compare_result, ! gen_rtx_COMPARE (comp_mode, ! rs6000_compare_op0, ! rs6000_compare_op1)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)), ! gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode))))); ! else ! emit_insn (gen_rtx_SET (VOIDmode, compare_result, ! gen_rtx_COMPARE (comp_mode, ! rs6000_compare_op0, ! rs6000_compare_op1))); ! } /* Some kinds of FP comparisons need an OR operation; under flag_finite_math_only we don't bother. */ *************** rs6000_split_multireg_move (rtx dst, rtx *** 10526,10547 **** : gen_adddi3 (breg, breg, delta_rtx)); src = gen_rtx_MEM (mode, breg); } ! /* We have now address involving an base register only. ! If we use one of the registers to address memory, ! we have change that register last. */ ! ! breg = (GET_CODE (XEXP (src, 0)) == PLUS ! ? XEXP (XEXP (src, 0), 0) ! : XEXP (src, 0)); ! ! if (!REG_P (breg)) ! abort(); ! if (REGNO (breg) >= REGNO (dst) && REGNO (breg) < REGNO (dst) + nregs) j = REGNO (breg) - REGNO (dst); ! } if (GET_CODE (dst) == MEM && INT_REGNO_P (reg)) { --- 10557,10583 ---- : gen_adddi3 (breg, breg, delta_rtx)); src = gen_rtx_MEM (mode, breg); } + else if (! offsettable_memref_p (src)) + { + rtx newsrc, basereg; + basereg = gen_rtx_REG (Pmode, reg); + emit_insn (gen_rtx_SET (VOIDmode, basereg, XEXP (src, 0))); + newsrc = gen_rtx_MEM (GET_MODE (src), basereg); + MEM_COPY_ATTRIBUTES (newsrc, src); + src = newsrc; + } ! breg = XEXP (src, 0); ! if (GET_CODE (breg) == PLUS || GET_CODE (breg) == LO_SUM) ! breg = XEXP (breg, 0); ! /* If the base register we are using to address memory is ! also a destination reg, then change that register last. */ ! if (REG_P (breg) ! && REGNO (breg) >= REGNO (dst) && REGNO (breg) < REGNO (dst) + nregs) j = REGNO (breg) - REGNO (dst); ! } if (GET_CODE (dst) == MEM && INT_REGNO_P (reg)) { *************** rs6000_split_multireg_move (rtx dst, rtx *** 10573,10578 **** --- 10609,10616 ---- : gen_adddi3 (breg, breg, delta_rtx)); dst = gen_rtx_MEM (mode, breg); } + else if (! offsettable_memref_p (dst)) + abort (); } for (i = 0; i < nregs; i++) *************** rs6000_split_multireg_move (rtx dst, rtx *** 10582,10588 **** if (j == nregs) j = 0; ! /* If compiler already emited move of first word by store with update, no need to do anything. */ if (j == 0 && used_update) continue; --- 10620,10626 ---- if (j == nregs) j = 0; ! /* If compiler already emitted move of first word by store with update, no need to do anything. */ if (j == 0 && used_update) continue; *************** rs6000_emit_load_toc_table (int fromprol *** 11435,11441 **** rtx temp0 = (fromprolog ? gen_rtx_REG (Pmode, 0) : gen_reg_rtx (Pmode)); - rtx symF; /* possibly create the toc section */ if (! toc_initialized) --- 11473,11478 ---- *************** rs6000_emit_load_toc_table (int fromprol *** 11446,11452 **** if (fromprolog) { ! rtx symL; ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno); symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); --- 11483,11489 ---- if (fromprolog) { ! rtx symF, symL; ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno); symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); *************** rs6000_emit_load_toc_table (int fromprol *** 11464,11477 **** else { rtx tocsym; - static int reload_toc_labelno = 0; tocsym = gen_rtx_SYMBOL_REF (Pmode, toc_label_name); ! ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCG", reload_toc_labelno++); ! symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! ! emit_insn (gen_load_toc_v4_PIC_1b (tempLR, symF, tocsym)); emit_move_insn (dest, tempLR); emit_move_insn (temp0, gen_rtx_MEM (Pmode, dest)); } --- 11501,11509 ---- else { rtx tocsym; tocsym = gen_rtx_SYMBOL_REF (Pmode, toc_label_name); ! emit_insn (gen_load_toc_v4_PIC_1b (tempLR, tocsym)); emit_move_insn (dest, tempLR); emit_move_insn (temp0, gen_rtx_MEM (Pmode, dest)); } *************** rs6000_emit_prologue (void) *** 12100,12107 **** rtx reg, mem, vrsave; int offset; ! /* Get VRSAVE onto a GPR. */ ! reg = gen_rtx_REG (SImode, 12); vrsave = gen_rtx_REG (SImode, VRSAVE_REGNO); if (TARGET_MACHO) emit_insn (gen_get_vrsave_internal (reg)); --- 12132,12141 ---- rtx reg, mem, vrsave; int offset; ! /* Get VRSAVE onto a GPR. Note that ABI_V4 might be using r12 ! as frame_reg_rtx and r11 as the static chain pointer for ! nested functions. */ ! reg = gen_rtx_REG (SImode, 0); vrsave = gen_rtx_REG (SImode, VRSAVE_REGNO); if (TARGET_MACHO) emit_insn (gen_get_vrsave_internal (reg)); *************** rs6000_elf_in_small_data_p (tree decl) *** 15202,15207 **** --- 15236,15253 ---- if (rs6000_sdata == SDATA_NONE) return false; + /* We want to merge strings, so we never consider them small data. */ + if (TREE_CODE (decl) == STRING_CST) + return false; + + /* Functions are never in the small data area. */ + if (TREE_CODE (decl) == FUNCTION_DECL) + return false; + + /* Thread-local vars can't go in the small data area. */ + if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl)) + return false; + if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl)) { const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); *************** rs6000_elf_declare_function_name (FILE * *** 15743,15748 **** --- 15789,15801 ---- } ASM_OUTPUT_LABEL (file, name); } + + static void + rs6000_elf_end_indicate_exec_stack (void) + { + if (TARGET_32BIT) + file_end_indicate_exec_stack (); + } #endif #if TARGET_XCOFF diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/rs6000.h gcc-3.4.4/gcc/config/rs6000/rs6000.h *** gcc-3.4.3/gcc/config/rs6000/rs6000.h Mon Aug 23 18:02:58 2004 --- gcc-3.4.4/gcc/config/rs6000/rs6000.h Thu Feb 17 00:36:44 2005 *************** extern int target_flags; *** 258,264 **** #define TARGET_POWERPC64 (target_flags & MASK_POWERPC64) #endif ! #define TARGET_XL_CALL 0 /* Run-time compilation parameters selecting different hardware subsets. --- 258,264 ---- #define TARGET_POWERPC64 (target_flags & MASK_POWERPC64) #endif ! #define TARGET_XL_COMPAT 0 /* Run-time compilation parameters selecting different hardware subsets. diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/rs6000.md gcc-3.4.4/gcc/config/rs6000/rs6000.md *** gcc-3.4.3/gcc/config/rs6000/rs6000.md Wed Jul 28 12:15:02 2004 --- gcc-3.4.4/gcc/config/rs6000/rs6000.md Thu Mar 31 11:45:47 2005 *************** *** 1,6 **** ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler ;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! ;; 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) ;; This file is part of GCC. --- 1,6 ---- ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler ;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! ;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) ;; This file is part of GCC. *************** *** 2404,2464 **** }" [(set_attr "length" "8")]) - (define_insn_and_split "*andsi3_internal7" - [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y") - (compare:CC (and:SI (match_operand:SI 0 "gpc_reg_operand" "r,r") - (match_operand:SI 1 "mask_operand_wrap" "i,i")) - (const_int 0))) - (clobber (match_scratch:SI 3 "=r,r"))] - "TARGET_POWERPC64" - "#" - "TARGET_POWERPC64" - [(parallel [(set (match_dup 2) - (compare:CC (and:SI (rotate:SI (match_dup 0) (match_dup 4)) - (match_dup 5)) - (const_int 0))) - (clobber (match_dup 3))])] - " - { - int mb = extract_MB (operands[1]); - int me = extract_ME (operands[1]); - operands[4] = GEN_INT (me + 1); - operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb))); - }" - [(set_attr "type" "delayed_compare,compare") - (set_attr "length" "4,8")]) - - (define_insn_and_split "*andsi3_internal8" - [(set (match_operand:CC 3 "cc_reg_operand" "=x,??y") - (compare:CC (and:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") - (match_operand:SI 2 "mask_operand_wrap" "i,i")) - (const_int 0))) - (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") - (and:SI (match_dup 1) - (match_dup 2)))] - "TARGET_POWERPC64" - "#" - "TARGET_POWERPC64" - [(parallel [(set (match_dup 3) - (compare:CC (and:SI (rotate:SI (match_dup 1) (match_dup 4)) - (match_dup 5)) - (const_int 0))) - (set (match_dup 0) - (and:SI (rotate:SI (match_dup 1) (match_dup 4)) - (match_dup 5)))]) - (set (match_dup 0) - (rotate:SI (match_dup 0) (match_dup 6)))] - " - { - int mb = extract_MB (operands[2]); - int me = extract_ME (operands[2]); - operands[4] = GEN_INT (me + 1); - operands[6] = GEN_INT (32 - (me + 1)); - operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb))); - }" - [(set_attr "type" "delayed_compare,compare") - (set_attr "length" "8,12")]) - (define_expand "iorsi3" [(set (match_operand:SI 0 "gpc_reg_operand" "") (ior:SI (match_operand:SI 1 "gpc_reg_operand" "") --- 2404,2409 ---- *************** *** 5245,5260 **** (define_expand "floatdisf2" [(set (match_operand:SF 0 "gpc_reg_operand" "") (float:SF (match_operand:DI 1 "gpc_reg_operand" "")))] ! "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS" " { if (!flag_unsafe_math_optimizations) { rtx label = gen_label_rtx (); ! emit_insn (gen_floatdisf2_internal2 (operands[1], label)); emit_label (label); } ! emit_insn (gen_floatdisf2_internal1 (operands[0], operands[1])); DONE; }") --- 5190,5207 ---- (define_expand "floatdisf2" [(set (match_operand:SF 0 "gpc_reg_operand" "") (float:SF (match_operand:DI 1 "gpc_reg_operand" "")))] ! "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS" " { + rtx val = operands[1]; if (!flag_unsafe_math_optimizations) { rtx label = gen_label_rtx (); ! val = gen_reg_rtx (DImode); ! emit_insn (gen_floatdisf2_internal2 (val, operands[1], label)); emit_label (label); } ! emit_insn (gen_floatdisf2_internal1 (operands[0], val)); DONE; }") *************** *** 5279,5308 **** ;; by a bit that won't be lost at that stage, but is below the SFmode ;; rounding position. (define_expand "floatdisf2_internal2" ! [(parallel [(set (match_dup 4) ! (compare:CC (and:DI (match_operand:DI 0 "" "") ! (const_int 2047)) ! (const_int 0))) ! (set (match_dup 2) (and:DI (match_dup 0) (const_int 2047))) ! (clobber (match_scratch:CC 7 ""))]) ! (set (match_dup 3) (ashiftrt:DI (match_dup 0) (const_int 53))) ! (set (match_dup 3) (plus:DI (match_dup 3) (const_int 1))) ! (set (pc) (if_then_else (eq (match_dup 4) (const_int 0)) ! (label_ref (match_operand:DI 1 "" "")) ! (pc))) ! (set (match_dup 5) (compare:CCUNS (match_dup 3) (const_int 2))) ! (set (pc) (if_then_else (ltu (match_dup 5) (const_int 0)) ! (label_ref (match_dup 1)) (pc))) ! (set (match_dup 0) (xor:DI (match_dup 0) (match_dup 2))) ! (set (match_dup 0) (ior:DI (match_dup 0) (const_int 2048)))] ! "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS" " { - operands[2] = gen_reg_rtx (DImode); operands[3] = gen_reg_rtx (DImode); ! operands[4] = gen_reg_rtx (CCmode); ! operands[5] = gen_reg_rtx (CCUNSmode); }") ;; Define the DImode operations that can be done in a small number --- 5226,5256 ---- ;; by a bit that won't be lost at that stage, but is below the SFmode ;; rounding position. (define_expand "floatdisf2_internal2" ! [(set (match_dup 3) (ashiftrt:DI (match_operand:DI 1 "" "") ! (const_int 53))) ! (parallel [(set (match_operand:DI 0 "" "") (and:DI (match_dup 1) ! (const_int 2047))) ! (clobber (scratch:CC))]) ! (set (match_dup 3) (plus:DI (match_dup 3) ! (const_int 1))) ! (set (match_dup 0) (plus:DI (match_dup 0) ! (const_int 2047))) ! (set (match_dup 4) (compare:CCUNS (match_dup 3) ! (const_int 3))) ! (set (match_dup 0) (ior:DI (match_dup 0) ! (match_dup 1))) ! (parallel [(set (match_dup 0) (and:DI (match_dup 0) ! (const_int -2048))) ! (clobber (scratch:CC))]) ! (set (pc) (if_then_else (geu (match_dup 4) (const_int 0)) ! (label_ref (match_operand:DI 2 "" "")) (pc))) ! (set (match_dup 0) (match_dup 1))] ! "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS" " { operands[3] = gen_reg_rtx (DImode); ! operands[4] = gen_reg_rtx (CCUNSmode); }") ;; Define the DImode operations that can be done in a small number *************** *** 8311,8324 **** DONE; }) ! (define_insn "trunctfdf2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "f")))] ! "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128" "fadd %0,%1,%L1" ! [(set_attr "type" "fp") ! (set_attr "length" "4")]) (define_insn_and_split "trunctfsf2" [(set (match_operand:SF 0 "gpc_reg_operand" "=f") --- 8259,8294 ---- DONE; }) ! (define_expand "trunctfdf2" ! [(set (match_operand:DF 0 "gpc_reg_operand" "") ! (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "")))] ! "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) ! && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128" ! "") ! ! (define_insn_and_split "trunctfdf2_internal1" ! [(set (match_operand:DF 0 "gpc_reg_operand" "=f,?f") ! (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "0,f")))] ! "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && !TARGET_XL_COMPAT ! && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128" ! "@ ! # ! fmr %0,%1" ! "&& reload_completed && REGNO (operands[0]) == REGNO (operands[1])" ! [(const_int 0)] ! { ! emit_note (NOTE_INSN_DELETED); ! DONE; ! } ! [(set_attr "type" "fp")]) ! ! (define_insn "trunctfdf2_internal2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "f")))] ! "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_XL_COMPAT && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128" "fadd %0,%1,%L1" ! [(set_attr "type" "fp")]) (define_insn_and_split "trunctfsf2" [(set (match_operand:SF 0 "gpc_reg_operand" "=f") *************** *** 10081,10091 **** (define_insn "load_toc_v4_PIC_1b" [(set (match_operand:SI 0 "register_operand" "=l") ! (match_operand:SI 1 "immediate_operand" "s")) ! (use (unspec [(match_dup 1) (match_operand 2 "immediate_operand" "s")] UNSPEC_TOCPTR))] "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2" ! "bcl 20,31,%1+4\\n%1:\\n\\t.long %2-%1" [(set_attr "type" "branch") (set_attr "length" "8")]) --- 10051,10060 ---- (define_insn "load_toc_v4_PIC_1b" [(set (match_operand:SI 0 "register_operand" "=l") ! (unspec:SI [(match_operand:SI 1 "immediate_operand" "s")] UNSPEC_TOCPTR))] "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2" ! "bcl 20,31,$+8\\n\\t.long %1-$" [(set_attr "type" "branch") (set_attr "length" "8")]) *************** *** 11349,11359 **** [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") (compare:CCFP (match_operand:TF 1 "gpc_reg_operand" "f") (match_operand:TF 2 "gpc_reg_operand" "f")))] ! "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128" "fcmpu %0,%1,%2\;bne %0,$+8\;fcmpu %0,%L1,%L2" [(set_attr "type" "fpcompare") (set_attr "length" "12")]) ;; Now we have the scc insns. We can do some combinations because of the ;; way the machine works. --- 11318,11389 ---- [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") (compare:CCFP (match_operand:TF 1 "gpc_reg_operand" "f") (match_operand:TF 2 "gpc_reg_operand" "f")))] ! "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && !TARGET_XL_COMPAT && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128" "fcmpu %0,%1,%2\;bne %0,$+8\;fcmpu %0,%L1,%L2" [(set_attr "type" "fpcompare") (set_attr "length" "12")]) + + (define_insn_and_split "*cmptf_internal2" + [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") + (compare:CCFP (match_operand:TF 1 "gpc_reg_operand" "f") + (match_operand:TF 2 "gpc_reg_operand" "f"))) + (clobber (match_scratch:DF 3 "=f")) + (clobber (match_scratch:DF 4 "=f")) + (clobber (match_scratch:DF 5 "=f")) + (clobber (match_scratch:DF 6 "=f")) + (clobber (match_scratch:DF 7 "=f")) + (clobber (match_scratch:DF 8 "=f")) + (clobber (match_scratch:DF 9 "=f")) + (clobber (match_scratch:DF 10 "=f"))] + "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_XL_COMPAT + && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128" + "#" + "&& reload_completed" + [(set (match_dup 3) (match_dup 13)) + (set (match_dup 4) (match_dup 14)) + (set (match_dup 9) (abs:DF (match_dup 5))) + (set (match_dup 0) (compare:CCFP (match_dup 9) (match_dup 3))) + (set (pc) (if_then_else (ne (match_dup 0) (const_int 0)) + (label_ref (match_dup 11)) + (pc))) + (set (match_dup 0) (compare:CCFP (match_dup 5) (match_dup 7))) + (set (pc) (label_ref (match_dup 12))) + (match_dup 11) + (set (match_dup 10) (minus:DF (match_dup 5) (match_dup 7))) + (set (match_dup 9) (minus:DF (match_dup 6) (match_dup 8))) + (set (match_dup 9) (plus:DF (match_dup 10) (match_dup 9))) + (set (match_dup 0) (compare:CCFP (match_dup 7) (match_dup 4))) + (match_dup 12)] + { + REAL_VALUE_TYPE rv; + const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0; + const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode); + + operands[5] = simplify_gen_subreg (DFmode, operands[1], TFmode, hi_word); + operands[6] = simplify_gen_subreg (DFmode, operands[1], TFmode, lo_word); + operands[7] = simplify_gen_subreg (DFmode, operands[2], TFmode, hi_word); + operands[8] = simplify_gen_subreg (DFmode, operands[2], TFmode, lo_word); + operands[11] = gen_label_rtx (); + operands[12] = gen_label_rtx (); + real_inf (&rv); + operands[13] = force_const_mem (DFmode, + CONST_DOUBLE_FROM_REAL_VALUE (rv, DFmode)); + operands[14] = force_const_mem (DFmode, + CONST_DOUBLE_FROM_REAL_VALUE (dconst0, + DFmode)); + if (TARGET_TOC) + { + operands[13] = gen_rtx_MEM (DFmode, + create_TOC_reference (XEXP (operands[13], 0))); + operands[14] = gen_rtx_MEM (DFmode, + create_TOC_reference (XEXP (operands[14], 0))); + set_mem_alias_set (operands[13], get_TOC_alias_set ()); + set_mem_alias_set (operands[14], get_TOC_alias_set ()); + RTX_UNCHANGING_P (operands[13]) = 1; + RTX_UNCHANGING_P (operands[14]) = 1; + } + }) ;; Now we have the scc insns. We can do some combinations because of the ;; way the machine works. diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/rtems.h gcc-3.4.4/gcc/config/rs6000/rtems.h *** gcc-3.4.3/gcc/config/rs6000/rtems.h Wed Sep 22 14:15:35 2004 --- gcc-3.4.4/gcc/config/rs6000/rtems.h Sat Jan 22 03:04:16 2005 *************** *** 1,5 **** /* Definitions for rtems targeting a PowerPC using elf. ! Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. --- 1,6 ---- /* Definitions for rtems targeting a PowerPC using elf. ! Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2005 ! Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. *************** *** 37,39 **** --- 38,57 ---- #undef CPP_OS_DEFAULT_SPEC #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)" + + #define CPP_OS_RTEMS_SPEC "\ + %{!mcpu*: %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\ + %{mcpu=403: %{!Dppc*: %{!Dmpc*: -Dppc403} } } \ + %{mcpu=505: %{!Dppc*: %{!Dmpc*: -Dmpc505} } } \ + %{mcpu=601: %{!Dppc*: %{!Dmpc*: -Dppc601} } } \ + %{mcpu=602: %{!Dppc*: %{!Dmpc*: -Dppc602} } } \ + %{mcpu=603: %{!Dppc*: %{!Dmpc*: -Dppc603} } } \ + %{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \ + %{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \ + %{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \ + %{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \ + %{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } }" + + #undef SUBSUBTARGET_EXTRA_SPECS + #define SUBSUBTARGET_EXTRA_SPECS \ + { "cpp_os_rtems", CPP_OS_RTEMS_SPEC } diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/sysv4.h gcc-3.4.4/gcc/config/rs6000/sysv4.h *** gcc-3.4.3/gcc/config/rs6000/sysv4.h Mon Oct 18 02:24:20 2004 --- gcc-3.4.4/gcc/config/rs6000/sysv4.h Fri Feb 11 21:06:45 2005 *************** extern int fixuplabelno; *** 1115,1122 **** %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" #endif ! #define ENDFILE_LINUX_SPEC "%{!shared:crtend.o%s} %{shared:crtendS.o%s} \ ! %{mnewlib: ecrtn.o%s} %{!mnewlib: crtn.o%s}" #define LINK_START_LINUX_SPEC "" --- 1115,1123 ---- %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" #endif ! #define ENDFILE_LINUX_SPEC "\ ! %{shared|pie:crtendS.o%s;:crtend.o%s} \ ! %{mnewlib:ecrtn.o%s;:crtn.o%s}" #define LINK_START_LINUX_SPEC "" *************** ncrtn.o%s" *** 1358,1361 **** #define DOUBLE_INT_ASM_OP "\t.quad\t" /* Generate entries in .fixup for relocatable addresses. */ ! #define RELOCATABLE_NEEDS_FIXUP --- 1359,1362 ---- #define DOUBLE_INT_ASM_OP "\t.quad\t" /* Generate entries in .fixup for relocatable addresses. */ ! #define RELOCATABLE_NEEDS_FIXUP 1 diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/t-aix43 gcc-3.4.4/gcc/config/rs6000/t-aix43 *** gcc-3.4.3/gcc/config/rs6000/t-aix43 Thu Jan 9 08:00:41 2003 --- gcc-3.4.4/gcc/config/rs6000/t-aix43 Thu Feb 17 00:34:39 2005 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 58,66 **** SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/ SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac` SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk ! SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver SHLIB_NM_FLAGS = -Bpg -X32_64 # Either 32-bit and 64-bit objects in archives. AR_FLAGS_FOR_TARGET = -X32_64 --- 58,69 ---- SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/ SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac` SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk ! SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver SHLIB_NM_FLAGS = -Bpg -X32_64 + # GCC 128-bit long double support routines. + LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c + # Either 32-bit and 64-bit objects in archives. AR_FLAGS_FOR_TARGET = -X32_64 diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/t-aix52 gcc-3.4.4/gcc/config/rs6000/t-aix52 *** gcc-3.4.3/gcc/config/rs6000/t-aix52 Thu Jan 9 08:00:41 2003 --- gcc-3.4.4/gcc/config/rs6000/t-aix52 Thu Feb 17 00:34:39 2005 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 39,47 **** SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/ SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac` SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk ! SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver SHLIB_NM_FLAGS = -Bpg -X32_64 # Either 32-bit and 64-bit objects in archives. AR_FLAGS_FOR_TARGET = -X32_64 --- 39,50 ---- SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/ SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac` SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk ! SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver SHLIB_NM_FLAGS = -Bpg -X32_64 + # GCC 128-bit long double support routines. + LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c + # Either 32-bit and 64-bit objects in archives. AR_FLAGS_FOR_TARGET = -X32_64 diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/t-linux64 gcc-3.4.4/gcc/config/rs6000/t-linux64 *** gcc-3.4.3/gcc/config/rs6000/t-linux64 Wed Mar 17 15:16:48 2004 --- gcc-3.4.4/gcc/config/rs6000/t-linux64 Thu Feb 24 09:26:59 2005 *************** *** 1,8 **** #rs6000/t-linux64 ! LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/ppc64-fp.c \ ! $(srcdir)/config/rs6000/darwin-ldouble.c TARGET_LIBGCC2_CFLAGS = -mno-minimal-toc -fPIC -specs=bispecs --- 1,9 ---- #rs6000/t-linux64 ! LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/ppc64-fp.c ! LIB2FUNCS_STATIC_EXTRA = eabi.S $(srcdir)/config/rs6000/darwin-ldouble.c ! LIB2FUNCS_SHARED_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble-shared.c TARGET_LIBGCC2_CFLAGS = -mno-minimal-toc -fPIC -specs=bispecs diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/t-newas gcc-3.4.4/gcc/config/rs6000/t-newas *** gcc-3.4.3/gcc/config/rs6000/t-newas Wed Dec 18 22:45:35 2002 --- gcc-3.4.4/gcc/config/rs6000/t-newas Thu Feb 17 00:36:46 2005 *************** MULTILIB_MATCHES = $(MULTILIB_MATCHES_FL *** 27,32 **** --- 27,35 ---- mcpu?powerpc=mpowerpc-gpopt \ mcpu?powerpc=mpowerpc-gfxopt + # GCC 128-bit long double support routines. + LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c + # Aix 3.2.x needs milli.exp for -mcpu=common EXTRA_PARTS = milli.exp milli.exp: $(srcdir)/config/rs6000/milli.exp diff -Nrc3pad gcc-3.4.3/gcc/config/rs6000/t-rtems gcc-3.4.4/gcc/config/rs6000/t-rtems *** gcc-3.4.3/gcc/config/rs6000/t-rtems Mon Mar 8 23:56:21 2004 --- gcc-3.4.4/gcc/config/rs6000/t-rtems Fri Nov 12 10:21:18 2004 *************** MULTILIB_MATCHES = ${MULTILIB_MATCHES_ *** 33,38 **** --- 33,39 ---- # Cpu-variants supporting new exception processing only MULTILIB_NEW_EXCEPTIONS_ONLY = \ + *mcpu=505*/*D_OLD_EXCEPTIONS* \ *mcpu=604*/*D_OLD_EXCEPTIONS* \ *mcpu=750*/*D_OLD_EXCEPTIONS* \ *mcpu=821*/*D_OLD_EXCEPTIONS* \ diff -Nrc3pad gcc-3.4.3/gcc/config/s390/s390.md gcc-3.4.4/gcc/config/s390/s390.md *** gcc-3.4.3/gcc/config/s390/s390.md Wed Oct 27 13:44:40 2004 --- gcc-3.4.4/gcc/config/s390/s390.md Thu Jan 27 23:35:54 2005 *************** *** 1039,1049 **** }) (define_expand "reload_outti" ! [(parallel [(match_operand:TI 0 "memory_operand" "") (match_operand:TI 1 "register_operand" "d") (match_operand:DI 2 "register_operand" "=&a")])] "TARGET_64BIT" { s390_load_address (operands[2], XEXP (operands[0], 0)); operands[0] = replace_equiv_address (operands[0], operands[2]); emit_move_insn (operands[0], operands[1]); --- 1039,1051 ---- }) (define_expand "reload_outti" ! [(parallel [(match_operand:TI 0 "" "") (match_operand:TI 1 "register_operand" "d") (match_operand:DI 2 "register_operand" "=&a")])] "TARGET_64BIT" { + if (GET_CODE (operands[0]) != MEM) + abort (); s390_load_address (operands[2], XEXP (operands[0], 0)); operands[0] = replace_equiv_address (operands[0], operands[2]); emit_move_insn (operands[0], operands[1]); *************** *** 1167,1177 **** }) (define_expand "reload_outdi" ! [(parallel [(match_operand:DI 0 "memory_operand" "") (match_operand:DI 1 "register_operand" "d") (match_operand:SI 2 "register_operand" "=&a")])] "!TARGET_64BIT" { s390_load_address (operands[2], XEXP (operands[0], 0)); operands[0] = replace_equiv_address (operands[0], operands[2]); emit_move_insn (operands[0], operands[1]); --- 1169,1181 ---- }) (define_expand "reload_outdi" ! [(parallel [(match_operand:DI 0 "" "") (match_operand:DI 1 "register_operand" "d") (match_operand:SI 2 "register_operand" "=&a")])] "!TARGET_64BIT" { + if (GET_CODE (operands[0]) != MEM) + abort (); s390_load_address (operands[2], XEXP (operands[0], 0)); operands[0] = replace_equiv_address (operands[0], operands[2]); emit_move_insn (operands[0], operands[1]); *************** *** 1647,1657 **** }) (define_expand "reload_outdf" ! [(parallel [(match_operand:DF 0 "memory_operand" "") (match_operand:DF 1 "register_operand" "d") (match_operand:SI 2 "register_operand" "=&a")])] "!TARGET_64BIT" { s390_load_address (operands[2], XEXP (operands[0], 0)); operands[0] = replace_equiv_address (operands[0], operands[2]); emit_move_insn (operands[0], operands[1]); --- 1651,1663 ---- }) (define_expand "reload_outdf" ! [(parallel [(match_operand:DF 0 "" "") (match_operand:DF 1 "register_operand" "d") (match_operand:SI 2 "register_operand" "=&a")])] "!TARGET_64BIT" { + if (GET_CODE (operands[0]) != MEM) + abort (); s390_load_address (operands[2], XEXP (operands[0], 0)); operands[0] = replace_equiv_address (operands[0], operands[2]); emit_move_insn (operands[0], operands[1]); diff -Nrc3pad gcc-3.4.3/gcc/config/s390/tpf.h gcc-3.4.4/gcc/config/s390/tpf.h *** gcc-3.4.3/gcc/config/s390/tpf.h Wed Oct 15 17:10:20 2003 --- gcc-3.4.4/gcc/config/s390/tpf.h Fri Apr 8 17:05:13 2005 *************** Software Foundation, 59 Temple Place - S *** 92,97 **** --- 92,100 ---- #undef CPLUSPLUS_CPP_SPEC #define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)" + #undef ASM_SPEC + #define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}" + #undef LIB_SPEC #define LIB_SPEC "%{pthread:-lpthread} -lc" diff -Nrc3pad gcc-3.4.3/gcc/config/sh/t-linux gcc-3.4.4/gcc/config/sh/t-linux *** gcc-3.4.3/gcc/config/sh/t-linux Mon Oct 18 16:00:52 2004 --- gcc-3.4.4/gcc/config/sh/t-linux Thu Dec 16 19:16:22 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 25,31 **** -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ (echo "/* GNU ld script"; \ --- 25,31 ---- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ (echo "/* GNU ld script"; \ diff -Nrc3pad gcc-3.4.3/gcc/config/sparc/sparc.c gcc-3.4.4/gcc/config/sparc/sparc.c *** gcc-3.4.3/gcc/config/sparc/sparc.c Wed Oct 13 14:16:25 2004 --- gcc-3.4.4/gcc/config/sparc/sparc.c Fri Apr 15 15:11:08 2005 *************** legitimate_pic_operand_p (rtx x) *** 3320,3326 **** int legitimate_address_p (enum machine_mode mode, rtx addr, int strict) { ! rtx rs1 = NULL, rs2 = NULL, imm1 = NULL, imm2; if (REG_P (addr) || GET_CODE (addr) == SUBREG) rs1 = addr; --- 3320,3326 ---- int legitimate_address_p (enum machine_mode mode, rtx addr, int strict) { ! rtx rs1 = NULL, rs2 = NULL, imm1 = NULL; if (REG_P (addr) || GET_CODE (addr) == SUBREG) rs1 = addr; *************** legitimate_address_p (enum machine_mode *** 3384,3390 **** && ! TARGET_CM_MEDMID && RTX_OK_FOR_OLO10_P (rs2)) { - imm2 = rs2; rs2 = NULL; imm1 = XEXP (rs1, 1); rs1 = XEXP (rs1, 0); --- 3384,3389 ---- *************** legitimate_address_p (enum machine_mode *** 3400,3424 **** if (! CONSTANT_P (imm1) || tls_symbolic_operand (rs1)) return 0; ! if (USE_AS_OFFSETABLE_LO10) ! { ! /* We can't allow TFmode, because an offset greater than or equal to ! the alignment (8) may cause the LO_SUM to overflow if !v9. */ ! if (mode == TFmode && ! TARGET_V9) ! return 0; ! } ! else ! { ! /* We prohibit LO_SUM for TFmode when there are no quad move insns ! and we consequently need to split. We do this because LO_SUM ! is not an offsettable address. If we get the situation in reload ! where source and destination of a movtf pattern are both MEMs with ! LO_SUM address, then only one of them gets converted to an ! offsettable address. */ ! if (mode == TFmode ! && ! (TARGET_FPU && TARGET_ARCH64 && TARGET_HARD_QUAD)) ! return 0; ! } } else if (GET_CODE (addr) == CONST_INT && SMALL_INT (addr)) return 1; --- 3399,3408 ---- if (! CONSTANT_P (imm1) || tls_symbolic_operand (rs1)) return 0; ! /* We can't allow TFmode in 32-bit mode, because an offset greater ! than the alignment (8) may cause the LO_SUM to overflow. */ ! if (mode == TFmode && TARGET_ARCH32) ! return 0; } else if (GET_CODE (addr) == CONST_INT && SMALL_INT (addr)) return 1; *************** static void function_arg_record_value_2 *** 5101,5107 **** static void function_arg_record_value_1 (tree, HOST_WIDE_INT, struct function_arg_record_value_parms *, bool); static rtx function_arg_record_value (tree, enum machine_mode, int, int, int); ! static rtx function_arg_union_value (int, enum machine_mode, int); /* A subroutine of function_arg_record_value. Traverse the structure recursively and determine how many registers will be required. */ --- 5085,5091 ---- static void function_arg_record_value_1 (tree, HOST_WIDE_INT, struct function_arg_record_value_parms *, bool); static rtx function_arg_record_value (tree, enum machine_mode, int, int, int); ! static rtx function_arg_union_value (int, enum machine_mode, int, int); /* A subroutine of function_arg_record_value. Traverse the structure recursively and determine how many registers will be required. */ *************** function_arg_record_value (tree type, en *** 5445,5455 **** REGNO is the hard register the union will be passed in. */ static rtx ! function_arg_union_value (int size, enum machine_mode mode, int regno) { int nwords = ROUND_ADVANCE (size), i; rtx regs; /* Unions are passed left-justified. */ regs = gen_rtx_PARALLEL (mode, rtvec_alloc (nwords)); --- 5429,5447 ---- REGNO is the hard register the union will be passed in. */ static rtx ! function_arg_union_value (int size, enum machine_mode mode, int slotno, ! int regno) { int nwords = ROUND_ADVANCE (size), i; rtx regs; + /* See comment in previous function for empty structures. */ + if (nwords == 0) + return gen_rtx_REG (mode, regno); + + if (slotno == SPARC_INT_ARG_MAX - 1) + nwords = 1; + /* Unions are passed left-justified. */ regs = gen_rtx_PARALLEL (mode, rtvec_alloc (nwords)); *************** function_arg (const struct sparc_args *c *** 5516,5522 **** if (size > 16) abort (); /* shouldn't get here */ ! return function_arg_union_value (size, mode, regno); } /* v9 fp args in reg slots beyond the int reg slots get passed in regs but also have the slot allocated for them. --- 5508,5514 ---- if (size > 16) abort (); /* shouldn't get here */ ! return function_arg_union_value (size, mode, slotno, regno); } /* v9 fp args in reg slots beyond the int reg slots get passed in regs but also have the slot allocated for them. *************** function_value (tree type, enum machine_ *** 5796,5802 **** if (size > 32) abort (); /* shouldn't get here */ ! return function_arg_union_value (size, mode, regbase); } else if (AGGREGATE_TYPE_P (type)) { --- 5788,5794 ---- if (size > 32) abort (); /* shouldn't get here */ ! return function_arg_union_value (size, mode, 0, regbase); } else if (AGGREGATE_TYPE_P (type)) { *************** function_value (tree type, enum machine_ *** 5819,5825 **** try to be unduly clever, and simply follow the ABI for unions in that case. */ if (mode == BLKmode) ! return function_arg_union_value (bytes, mode, regbase); } else if (GET_MODE_CLASS (mode) == MODE_INT && GET_MODE_SIZE (mode) < UNITS_PER_WORD) --- 5811,5817 ---- try to be unduly clever, and simply follow the ABI for unions in that case. */ if (mode == BLKmode) ! return function_arg_union_value (bytes, mode, 0, regbase); } else if (GET_MODE_CLASS (mode) == MODE_INT && GET_MODE_SIZE (mode) < UNITS_PER_WORD) diff -Nrc3pad gcc-3.4.3/gcc/config/sparc/t-elf gcc-3.4.4/gcc/config/sparc/t-elf *** gcc-3.4.3/gcc/config/sparc/t-elf Wed May 1 17:17:54 2002 --- gcc-3.4.4/gcc/config/sparc/t-elf Wed Feb 23 11:55:02 2005 *************** INSTALL_LIBGCC = install-multilib *** 24,29 **** # Assemble startup files. crti.o: $(srcdir)/config/sparc/sol2-ci.asm $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o crti.o -x assembler $(srcdir)/config/sparc/sol2-ci.asm crtn.o: $(srcdir)/config/sparc/sol2-cn.asm $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o crtn.o -x assembler $(srcdir)/config/sparc/sol2-cn.asm --- 24,29 ---- # Assemble startup files. crti.o: $(srcdir)/config/sparc/sol2-ci.asm $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o crti.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-ci.asm crtn.o: $(srcdir)/config/sparc/sol2-cn.asm $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o crtn.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-cn.asm diff -Nrc3pad gcc-3.4.3/gcc/config/t-libunwind-elf gcc-3.4.4/gcc/config/t-libunwind-elf *** gcc-3.4.3/gcc/config/t-libunwind-elf Mon Oct 18 16:00:47 2004 --- gcc-3.4.4/gcc/config/t-libunwind-elf Thu Dec 16 19:16:21 2004 *************** SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(L *** 14,21 **** @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIBUNWIND_NAME) ]; then \ ! mv -f $(SHLIBUNWIND_NAME) \ ! $(SHLIBUNWIND_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIBUNWIND_NAME).tmp $(SHLIBUNWIND_NAME) && \ $(LN_S) $(SHLIBUNWIND_NAME) $(SHLIB_SOLINK) --- 14,20 ---- @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIBUNWIND_NAME) ]; then \ ! mv -f $(SHLIBUNWIND_NAME) $(SHLIBUNWIND_NAME).backup; \ else true; fi && \ mv $(SHLIBUNWIND_NAME).tmp $(SHLIBUNWIND_NAME) && \ $(LN_S) $(SHLIBUNWIND_NAME) $(SHLIB_SOLINK) diff -Nrc3pad gcc-3.4.3/gcc/config/t-slibgcc-darwin gcc-3.4.4/gcc/config/t-slibgcc-darwin *** gcc-3.4.3/gcc/config/t-slibgcc-darwin Mon Oct 18 16:00:47 2004 --- gcc-3.4.4/gcc/config/t-slibgcc-darwin Thu Dec 16 19:16:21 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 17,23 **** @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) --- 17,23 ---- @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) diff -Nrc3pad gcc-3.4.3/gcc/config/t-slibgcc-elf-ver gcc-3.4.4/gcc/config/t-slibgcc-elf-ver *** gcc-3.4.3/gcc/config/t-slibgcc-elf-ver Mon Oct 18 16:00:47 2004 --- gcc-3.4.4/gcc/config/t-slibgcc-elf-ver Thu Dec 16 19:16:21 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 17,23 **** -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) --- 17,23 ---- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) diff -Nrc3pad gcc-3.4.3/gcc/config/t-slibgcc-sld gcc-3.4.4/gcc/config/t-slibgcc-sld *** gcc-3.4.3/gcc/config/t-slibgcc-sld Mon Oct 18 16:00:47 2004 --- gcc-3.4.4/gcc/config/t-slibgcc-sld Thu Dec 16 19:16:21 2004 *************** SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2 *** 14,20 **** @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) --- 14,20 ---- @multilib_flags@ $(SHLIB_OBJS) -lc && \ rm -f $(SHLIB_SOLINK) && \ if [ -f $(SHLIB_NAME) ]; then \ ! mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ else true; fi && \ mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) diff -Nrc3pad gcc-3.4.3/gcc/config/vax/vax.c gcc-3.4.4/gcc/config/vax/vax.c *** gcc-3.4.3/gcc/config/vax/vax.c Sat Nov 1 02:11:12 2003 --- gcc-3.4.4/gcc/config/vax/vax.c Fri Mar 25 18:30:57 2005 *************** static void vax_output_mi_thunk (FILE *, *** 50,56 **** HOST_WIDE_INT, tree); static int vax_address_cost_1 (rtx); static int vax_address_cost (rtx); - static int vax_rtx_costs_1 (rtx, enum rtx_code, enum rtx_code); static bool vax_rtx_costs (rtx, int, int, int *); /* Initialize the GCC target structure. */ --- 50,55 ---- *************** vax_address_cost_1 (register rtx addr) *** 467,473 **** case CONST_INT: /* byte offsets cost nothing (on a VAX 2, they cost 1 cycle) */ if (offset == 0) ! offset = (unsigned)(INTVAL(addr)+128) > 256; break; case CONST: case SYMBOL_REF: --- 466,472 ---- case CONST_INT: /* byte offsets cost nothing (on a VAX 2, they cost 1 cycle) */ if (offset == 0) ! offset = (unsigned HOST_WIDE_INT)(INTVAL(addr)+128) > 256; break; case CONST: case SYMBOL_REF: *************** vax_address_cost (rtx x) *** 522,700 **** /* Cost of an expression on a VAX. This version has costs tuned for the CVAX chip (found in the VAX 3 series) with comments for variations on ! other models. */ ! static int ! vax_rtx_costs_1 (register rtx x, enum rtx_code code, enum rtx_code outer_code) { enum machine_mode mode = GET_MODE (x); ! register int c; ! int i = 0; /* may be modified in switch */ const char *fmt = GET_RTX_FORMAT (code); /* may be modified in switch */ switch (code) { /* On a VAX, constants from 0..63 are cheap because they can use the ! 1 byte literal constant format. compare to -1 should be made cheap ! so that decrement-and-branch insns can be formed more easily (if ! the value -1 is copied to a register some decrement-and-branch patterns will not match). */ case CONST_INT: if (INTVAL (x) == 0) ! return 0; if (outer_code == AND) ! return ((unsigned HOST_WIDE_INT) ~INTVAL (x) <= 077) ? 1 : 2; ! if ((unsigned HOST_WIDE_INT) INTVAL (x) <= 077) ! return 1; ! if (outer_code == COMPARE && INTVAL (x) == -1) ! return 1; ! if (outer_code == PLUS && (unsigned HOST_WIDE_INT) -INTVAL (x) <= 077) ! return 1; /* FALLTHRU */ case CONST: case LABEL_REF: case SYMBOL_REF: ! return 3; case CONST_DOUBLE: if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT) ! return vax_float_literal (x) ? 5 : 8; else ! return (((CONST_DOUBLE_HIGH (x) == 0 ! && (unsigned HOST_WIDE_INT) CONST_DOUBLE_LOW (x) < 64) ! || (outer_code == PLUS ! && CONST_DOUBLE_HIGH (x) == -1 \ ! && (unsigned HOST_WIDE_INT)-CONST_DOUBLE_LOW (x) < 64)) ! ? 2 : 5); case POST_INC: ! return 2; case PRE_DEC: ! return 3; case MULT: switch (mode) { case DFmode: ! c = 16; /* 4 on VAX 9000 */ break; case SFmode: ! c = 9; /* 4 on VAX 9000, 12 on VAX 2 */ break; case DImode: ! c = 16; /* 6 on VAX 9000, 28 on VAX 2 */ break; case SImode: case HImode: case QImode: ! c = 10; /* 3-4 on VAX 9000, 20-28 on VAX 2 */ break; default: ! return MAX_COST; /* Mode is not supported. */ } break; case UDIV: if (mode != SImode) ! return MAX_COST; /* Mode is not supported. */ ! c = 17; break; case DIV: if (mode == DImode) ! c = 30; /* highly variable */ else if (mode == DFmode) /* divide takes 28 cycles if the result is not zero, 13 otherwise */ ! c = 24; else ! c = 11; /* 25 on VAX 2 */ break; case MOD: ! c = 23; break; case UMOD: if (mode != SImode) ! return MAX_COST; /* Mode is not supported. */ ! c = 29; break; case FLOAT: ! c = 6 + (mode == DFmode) + (GET_MODE (XEXP (x, 0)) != SImode); ! /* 4 on VAX 9000 */ break; case FIX: ! c = 7; /* 17 on VAX 2 */ break; case ASHIFT: case LSHIFTRT: case ASHIFTRT: if (mode == DImode) ! c = 12; else ! c = 10; /* 6 on VAX 9000 */ break; case ROTATE: case ROTATERT: ! c = 6; /* 5 on VAX 2, 4 on VAX 9000 */ if (GET_CODE (XEXP (x, 1)) == CONST_INT) ! fmt = "e"; /* all constant rotate counts are short */ break; case PLUS: - /* Check for small negative integer operand: subl2 can be used with - a short positive constant instead. */ - if (GET_CODE (XEXP (x, 1)) == CONST_INT) - if ((unsigned)(INTVAL (XEXP (x, 1)) + 63) < 127) - fmt = "e"; case MINUS: ! c = (mode == DFmode) ? 13 : 8; /* 6/8 on VAX 9000, 16/15 on VAX 2 */ case IOR: case XOR: ! c = 3; break; case AND: /* AND is special because the first operand is complemented. */ ! c = 3; if (GET_CODE (XEXP (x, 0)) == CONST_INT) { ! if ((unsigned)~INTVAL (XEXP (x, 0)) > 63) ! c = 4; fmt = "e"; i = 1; } break; case NEG: if (mode == DFmode) ! return 9; else if (mode == SFmode) ! return 6; else if (mode == DImode) ! return 4; case NOT: ! return 2; case ZERO_EXTRACT: case SIGN_EXTRACT: ! c = 15; break; case MEM: if (mode == DImode || mode == DFmode) ! c = 5; /* 7 on VAX 2 */ else ! c = 3; /* 4 on VAX 2 */ x = XEXP (x, 0); ! if (GET_CODE (x) == REG || GET_CODE (x) == POST_INC) ! return c; ! return c + vax_address_cost_1 (x); ! default: ! c = 3; break; } /* Now look inside the expression. Operands which are not registers or short constants add to the cost. FMT and I may have been adjusted in the switch above for instructions ! which require special handling */ while (*fmt++ == 'e') { ! register rtx op = XEXP (x, i++); code = GET_CODE (op); /* A NOT is likely to be found as the first operand of an AND --- 521,748 ---- /* Cost of an expression on a VAX. This version has costs tuned for the CVAX chip (found in the VAX 3 series) with comments for variations on ! other models. ! FIXME: The costs need review, particularly for TRUNCATE, FLOAT_EXTEND ! and FLOAT_TRUNCATE. We need a -mcpu option to allow provision of ! costs on a per cpu basis. */ ! ! static bool ! vax_rtx_costs (rtx x, int code, int outer_code, int *total) { enum machine_mode mode = GET_MODE (x); ! int i = 0; /* may be modified in switch */ const char *fmt = GET_RTX_FORMAT (code); /* may be modified in switch */ switch (code) { /* On a VAX, constants from 0..63 are cheap because they can use the ! 1 byte literal constant format. Compare to -1 should be made cheap ! so that decrement-and-branch insns can be formed more easily (if ! the value -1 is copied to a register some decrement-and-branch patterns will not match). */ case CONST_INT: if (INTVAL (x) == 0) ! return true; if (outer_code == AND) ! { ! *total = ((unsigned HOST_WIDE_INT) ~INTVAL (x) <= 077) ? 1 : 2; ! return true; ! } ! if ((unsigned HOST_WIDE_INT) INTVAL (x) <= 077 ! || (outer_code == COMPARE ! && INTVAL (x) == -1) ! || ((outer_code == PLUS || outer_code == MINUS) ! && (unsigned HOST_WIDE_INT) -INTVAL (x) <= 077)) ! { ! *total = 1; ! return true; ! } /* FALLTHRU */ case CONST: case LABEL_REF: case SYMBOL_REF: ! *total = 3; ! return true; case CONST_DOUBLE: if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT) ! *total = vax_float_literal (x) ? 5 : 8; else ! *total = ((CONST_DOUBLE_HIGH (x) == 0 ! && (unsigned HOST_WIDE_INT) CONST_DOUBLE_LOW (x) < 64) ! || (outer_code == PLUS ! && CONST_DOUBLE_HIGH (x) == -1 ! && (unsigned HOST_WIDE_INT)-CONST_DOUBLE_LOW (x) < 64)) ! ? 2 : 5; ! return true; case POST_INC: ! *total = 2; ! return true; /* Implies register operand. */ ! case PRE_DEC: ! *total = 3; ! return true; /* Implies register operand. */ ! case MULT: switch (mode) { case DFmode: ! *total = 16; /* 4 on VAX 9000 */ break; case SFmode: ! *total = 9; /* 4 on VAX 9000, 12 on VAX 2 */ break; case DImode: ! *total = 16; /* 6 on VAX 9000, 28 on VAX 2 */ break; case SImode: case HImode: case QImode: ! *total = 10; /* 3-4 on VAX 9000, 20-28 on VAX 2 */ break; default: ! *total = MAX_COST; /* Mode is not supported. */ ! return true; } break; + case UDIV: if (mode != SImode) ! { ! *total = MAX_COST; /* Mode is not supported. */ ! return true; ! } ! *total = 17; break; + case DIV: if (mode == DImode) ! *total = 30; /* Highly variable. */ else if (mode == DFmode) /* divide takes 28 cycles if the result is not zero, 13 otherwise */ ! *total = 24; else ! *total = 11; /* 25 on VAX 2 */ break; + case MOD: ! *total = 23; break; + case UMOD: if (mode != SImode) ! { ! *total = MAX_COST; /* Mode is not supported. */ ! return true; ! } ! *total = 29; break; + case FLOAT: ! *total = (6 /* 4 on VAX 9000 */ ! + (mode == DFmode) + (GET_MODE (XEXP (x, 0)) != SImode)); break; + case FIX: ! *total = 7; /* 17 on VAX 2 */ break; + case ASHIFT: case LSHIFTRT: case ASHIFTRT: if (mode == DImode) ! *total = 12; else ! *total = 10; /* 6 on VAX 9000 */ break; + case ROTATE: case ROTATERT: ! *total = 6; /* 5 on VAX 2, 4 on VAX 9000 */ if (GET_CODE (XEXP (x, 1)) == CONST_INT) ! fmt = "e"; /* all constant rotate counts are short */ break; + case PLUS: case MINUS: ! *total = (mode == DFmode) ? 13 : 8; /* 6/8 on VAX 9000, 16/15 on VAX 2 */ ! /* Small integer operands can use subl2 and addl2. */ ! if ((GET_CODE (XEXP (x, 1)) == CONST_INT) ! && (unsigned HOST_WIDE_INT)(INTVAL (XEXP (x, 1)) + 63) < 127) ! fmt = "e"; ! break; ! case IOR: case XOR: ! *total = 3; break; + case AND: /* AND is special because the first operand is complemented. */ ! *total = 3; if (GET_CODE (XEXP (x, 0)) == CONST_INT) { ! if ((unsigned HOST_WIDE_INT)~INTVAL (XEXP (x, 0)) > 63) ! *total = 4; fmt = "e"; i = 1; } break; + case NEG: if (mode == DFmode) ! *total = 9; else if (mode == SFmode) ! *total = 6; else if (mode == DImode) ! *total = 4; ! else ! *total = 2; ! break; ! case NOT: ! *total = 2; ! break; ! case ZERO_EXTRACT: case SIGN_EXTRACT: ! *total = 15; break; + case MEM: if (mode == DImode || mode == DFmode) ! *total = 5; /* 7 on VAX 2 */ else ! *total = 3; /* 4 on VAX 2 */ x = XEXP (x, 0); ! if (GET_CODE (x) != REG && GET_CODE (x) != POST_INC) ! *total += vax_address_cost_1 (x); ! return true; ! ! case FLOAT_EXTEND: ! case FLOAT_TRUNCATE: ! case TRUNCATE: ! *total = 3; /* FIXME: Costs need to be checked */ break; + + default: + return false; } /* Now look inside the expression. Operands which are not registers or short constants add to the cost. FMT and I may have been adjusted in the switch above for instructions ! which require special handling. */ while (*fmt++ == 'e') { ! rtx op = XEXP (x, i); ! ! i += 1; code = GET_CODE (op); /* A NOT is likely to be found as the first operand of an AND *************** vax_rtx_costs_1 (register rtx x, enum rt *** 706,718 **** switch (code) { case CONST_INT: ! if ((unsigned)INTVAL (op) > 63 && GET_MODE (x) != QImode) ! c += 1; /* 2 on VAX 2 */ break; case CONST: case LABEL_REF: case SYMBOL_REF: ! c += 1; /* 2 on VAX 2 */ break; case CONST_DOUBLE: if (GET_MODE_CLASS (GET_MODE (op)) == MODE_FLOAT) --- 754,767 ---- switch (code) { case CONST_INT: ! if ((unsigned HOST_WIDE_INT)INTVAL (op) > 63 ! && GET_MODE (x) != QImode) ! *total += 1; /* 2 on VAX 2 */ break; case CONST: case LABEL_REF: case SYMBOL_REF: ! *total += 1; /* 2 on VAX 2 */ break; case CONST_DOUBLE: if (GET_MODE_CLASS (GET_MODE (op)) == MODE_FLOAT) *************** vax_rtx_costs_1 (register rtx x, enum rt *** 720,756 **** /* Registers are faster than floating point constants -- even those constants which can be encoded in a single byte. */ if (vax_float_literal (op)) ! c++; else ! c += (GET_MODE (x) == DFmode) ? 3 : 2; } else { if (CONST_DOUBLE_HIGH (op) != 0 || (unsigned)CONST_DOUBLE_LOW (op) > 63) ! c += 2; } break; case MEM: ! c += 1; /* 2 on VAX 2 */ if (GET_CODE (XEXP (op, 0)) != REG) ! c += vax_address_cost_1 (XEXP (op, 0)); break; case REG: case SUBREG: break; default: ! c += 1; break; } } - return c; - } - - static bool - vax_rtx_costs (rtx x, int code, int outer_code, int * total) - { - *total = vax_rtx_costs_1 (x, code, outer_code); return true; } --- 769,798 ---- /* Registers are faster than floating point constants -- even those constants which can be encoded in a single byte. */ if (vax_float_literal (op)) ! *total += 1; else ! *total += (GET_MODE (x) == DFmode) ? 3 : 2; } else { if (CONST_DOUBLE_HIGH (op) != 0 || (unsigned)CONST_DOUBLE_LOW (op) > 63) ! *total += 2; } break; case MEM: ! *total += 1; /* 2 on VAX 2 */ if (GET_CODE (XEXP (op, 0)) != REG) ! *total += vax_address_cost_1 (XEXP (op, 0)); break; case REG: case SUBREG: break; default: ! *total += 1; break; } } return true; } diff -Nrc3pad gcc-3.4.3/gcc/config/vax/vax.h gcc-3.4.4/gcc/config/vax/vax.h *** gcc-3.4.3/gcc/config/vax/vax.h Tue Mar 9 03:00:14 2004 --- gcc-3.4.4/gcc/config/vax/vax.h Tue Dec 28 05:25:59 2004 *************** enum reg_class { NO_REGS, ALL_REGS, LIM_ *** 801,811 **** Do not define this if the table should contain absolute addresses. */ #define CASE_VECTOR_PC_RELATIVE 1 - /* Define this if the case instruction drops through after the table - when the index is out of range. Don't define it if the case insn - jumps to the default label instead. */ - #define CASE_DROPS_THROUGH - /* Indicate that jump tables go in the text section. This is necessary when compiling PIC code. */ #define JUMP_TABLES_IN_TEXT_SECTION 1 --- 801,806 ---- diff -Nrc3pad gcc-3.4.3/gcc/config/vax/vax.md gcc-3.4.4/gcc/config/vax/vax.md *** gcc-3.4.3/gcc/config/vax/vax.md Tue Jul 1 01:15:07 2003 --- gcc-3.4.4/gcc/config/vax/vax.md Tue Dec 28 05:25:59 2004 *************** *** 1960,2027 **** "jmp (%0)") ;; This is here to accept 5 arguments (as passed by expand_end_case) ! ;; and pass the first 4 along to the casesi1 pattern that really does the work. (define_expand "casesi" ! [(match_operand:SI 0 "general_operand" "") ; index ! (match_operand:SI 1 "general_operand" "") ; lower ! (match_operand:SI 2 "general_operand" "") ; upper-lower ! (match_operand 3 "" "") ; table label ! (match_operand 4 "" "")] ; default label "" { ! emit_jump_insn (gen_casesi1 (operands[0], operands[1], ! operands[2], operands[3])); DONE; }) (define_insn "casesi1" ! [(set (pc) ! (if_then_else ! (leu (minus:SI (match_operand:SI 0 "general_operand" "g") ! (match_operand:SI 1 "general_operand" "g")) ! (match_operand:SI 2 "general_operand" "g")) ! (plus:SI (sign_extend:SI ! (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0) ! (match_dup 1)) ! (const_int 2)) ! (pc)))) ! (label_ref:SI (match_operand 3 "" ""))) ! (pc)))] ! "" ! "casel %0,%1,%2") ! ! ;; This can arise by simplification when operand 1 is a constant int. ! (define_insn "" ! [(set (pc) ! (if_then_else ! (leu (plus:SI (match_operand:SI 0 "general_operand" "g") ! (match_operand:SI 1 "const_int_operand" "n")) ! (match_operand:SI 2 "general_operand" "g")) ! (plus:SI (sign_extend:SI ! (mem:HI (plus:SI (mult:SI (plus:SI (match_dup 0) ! (match_dup 1)) ! (const_int 2)) ! (pc)))) ! (label_ref:SI (match_operand 3 "" ""))) ! (pc)))] ! "" ! "* ! { ! operands[1] = GEN_INT (-INTVAL (operands[1])); ! return \"casel %0,%1,%2\"; ! }") ! ! ;; This can arise by simplification when the base for the case insn is zero. ! (define_insn "" ! [(set (pc) ! (if_then_else (leu (match_operand:SI 0 "general_operand" "g") ! (match_operand:SI 1 "general_operand" "g")) ! (plus:SI (sign_extend:SI ! (mem:HI (plus:SI (mult:SI (match_dup 0) ! (const_int 2)) ! (pc)))) ! (label_ref:SI (match_operand 2 "" ""))) ! (pc)))] "" "casel %0,$0,%1") --- 1960,2022 ---- "jmp (%0)") ;; This is here to accept 5 arguments (as passed by expand_end_case) ! ;; and pass the first 4 along to the casesi1 pattern that really does ! ;; the actual casesi work. We emit a jump here to the default label ! ;; _before_ the casesi so that we can be sure that the casesi never ! ;; drops through. ! ;; This is suboptimal perhaps, but so is much of the rest of this ! ;; machine description. For what it's worth, HPPA uses the same trick. ! ;; ! ;; operand 0 is index ! ;; operand 1 is the minimum bound (a const_int) ! ;; operand 2 is the maximum bound - minimum bound + 1 (also a const_int) ! ;; operand 3 is CODE_LABEL for the table; ! ;; operand 4 is the CODE_LABEL to go to if index out of range (ie. default). ! ;; ! ;; We emit: ! ;; i = index - minimum_bound ! ;; if (i > (maximum_bound - minimum_bound + 1) goto default; ! ;; casesi (i, 0, table); ! ;; (define_expand "casesi" ! [(match_operand:SI 0 "general_operand" "") ! (match_operand:SI 1 "general_operand" "") ! (match_operand:SI 2 "general_operand" "") ! (match_operand 3 "" "") ! (match_operand 4 "" "")] "" { ! /* i = index - minimum_bound; ! But only if the lower bound is not already zero. */ ! if (operands[1] != const0_rtx) ! { ! rtx index = gen_reg_rtx (SImode); ! emit_insn (gen_addsi3 (index, ! operands[0], ! GEN_INT (-INTVAL (operands[1])))); ! operands[0] = index; ! } ! ! /* if (i > (maximum_bound - minimum_bound + 1) goto default; */ ! emit_insn (gen_cmpsi (operands[0], operands[2])); ! emit_jump_insn (gen_bgtu (operands[4])); ! ! /* casesi (i, 0, table); */ ! emit_jump_insn (gen_casesi1 (operands[0], operands[2], operands[3])); DONE; }) + ;; This insn is a bit of a lier. It actually falls through if no case + ;; matches. But, we prevent that from ever happening by emiting a jump + ;; before this, see the define_expand above. (define_insn "casesi1" ! [(match_operand:SI 1 "const_int_operand" "n") ! (set (pc) ! (plus:SI (sign_extend:SI ! (mem:HI (plus:SI (mult:SI (match_operand:SI 0 "general_operand" "g") ! (const_int 2)) ! (pc)))) ! (label_ref:SI (match_operand 2 "" ""))))] "" "casel %0,$0,%1") diff -Nrc3pad gcc-3.4.3/gcc/config.gcc gcc-3.4.4/gcc/config.gcc *** gcc-3.4.3/gcc/config.gcc Wed Sep 8 15:16:10 2004 --- gcc-3.4.4/gcc/config.gcc Mon Apr 25 04:47:59 2005 *************** esac *** 244,249 **** --- 244,250 ---- # machines. tm_p_file= cpu_type=`echo ${target} | sed 's/-.*$//'` + cpu_is_64bit= case ${target} in alpha*-*-*) cpu_type=alpha *************** powerpc*-*-*) *** 300,305 **** --- 301,311 ---- cpu_type=rs6000 extra_headers="ppc-asm.h altivec.h spe.h" need_64bit_hwint=yes + case x$with_cpu in + xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345]|xrs64a) + cpu_is_64bit=yes + ;; + esac ;; rs6000*-*-*) need_64bit_hwint=yes *************** arm*-*-ecos-elf) *** 680,686 **** ;; arm*-*-rtems*) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h" ! tmake_file="arm/t-arm-elf t-rtems" ;; arm*-*-elf | ep9312-*-elf) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" --- 686,692 ---- ;; arm*-*-rtems*) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h" ! tmake_file="arm/t-arm-elf t-rtems arm/t-rtems" ;; arm*-*-elf | ep9312-*-elf) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" *************** arm*-*-kaos*) *** 700,711 **** tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-arm.h" tmake_file=arm/t-arm-elf ;; avr-*-*) tm_file="avr/avr.h dbxelf.h" use_fixproto=yes ;; c4x-*-rtems* | tic4x-*-rtems*) ! tmake_file="c4x/t-c4x t-rtems" tm_file="c4x/c4x.h c4x/rtems.h rtems.h" c_target_objs="c4x-c.o" cxx_target_objs="c4x-c.o" --- 706,721 ---- tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-arm.h" tmake_file=arm/t-arm-elf ;; + avr-*-rtems*) + tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h" + tmake_file="avr/t-avr t-rtems avr/t-rtems" + ;; avr-*-*) tm_file="avr/avr.h dbxelf.h" use_fixproto=yes ;; c4x-*-rtems* | tic4x-*-rtems*) ! tmake_file="c4x/t-c4x t-rtems c4x/t-rtems" tm_file="c4x/c4x.h c4x/rtems.h rtems.h" c_target_objs="c4x-c.o" cxx_target_objs="c4x-c.o" *************** pdp11-*-bsd) *** 1678,1697 **** pdp11-*-*) use_fixproto=yes ;; - avr-*-*) - use_fixproto=yes - ;; # port not yet contributed #powerpc-*-openbsd*) # tmake_file="${tmake_file} rs6000/t-fprules " # extra_headers= # ;; powerpc64-*-linux*) ! tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" ! case x$with_cpu in ! x|xpowerpc64|xdefault64) tm_file="${tm_file} rs6000/default64.h";; ! esac ! tm_file="${tm_file} rs6000/linux64.h" tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-linux rs6000/t-ppccomm rs6000/t-linux64" ;; powerpc64-*-gnu*) --- 1688,1703 ---- pdp11-*-*) use_fixproto=yes ;; # port not yet contributed #powerpc-*-openbsd*) # tmake_file="${tmake_file} rs6000/t-fprules " # extra_headers= # ;; powerpc64-*-linux*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" ! test x$with_cpu != x || cpu_is_64bit=yes ! test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/default64.h" ! tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h" tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-linux rs6000/t-ppccomm rs6000/t-linux64" ;; powerpc64-*-gnu*) *************** powerpc-*-linux*spe*) *** 1765,1772 **** tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" ;; powerpc-*-linux*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" ;; powerpc-*-gnu-gnualtivec*) tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h" --- 1771,1790 ---- tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" ;; powerpc-*-linux*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" + case ${enable_targets}:${cpu_is_64bit} in + *powerpc64* | all:* | *:yes) + if test x$cpu_is_64bit = xyes; then + tm_file="${tm_file} rs6000/default64.h" + fi + tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h" + tmake_file="$tmake_file rs6000/t-linux64" + ;; + *) + tm_file="${tm_file} rs6000/linux.h" + ;; + esac ;; powerpc-*-gnu-gnualtivec*) tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h" *************** sparc64-*-openbsd*) *** 2007,2013 **** with_cpu=ultrasparc ;; sparc-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h" tmake_file="sparc/t-elf sparc/t-crtfm" extra_parts="crti.o crtn.o crtbegin.o crtend.o" use_fixproto=yes --- 2025,2031 ---- with_cpu=ultrasparc ;; sparc-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-gld.h sparc/elf.h" tmake_file="sparc/t-elf sparc/t-crtfm" extra_parts="crti.o crtn.o crtbegin.o crtend.o" use_fixproto=yes *************** sparc-*-linux*) # SPARC's running GNU/L *** 2017,2023 **** tmake_file="t-slibgcc-elf-ver t-linux sparc/t-crtfm" ;; sparc-*-rtems*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/rtemself.h rtems.h" tmake_file="sparc/t-elf sparc/t-crtfm t-rtems" extra_parts="crti.o crtn.o crtbegin.o crtend.o" ;; --- 2035,2041 ---- tmake_file="t-slibgcc-elf-ver t-linux sparc/t-crtfm" ;; sparc-*-rtems*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-gld.h sparc/elf.h sparc/rtemself.h rtems.h" tmake_file="sparc/t-elf sparc/t-crtfm t-rtems" extra_parts="crti.o crtn.o crtbegin.o crtend.o" ;; *************** sparclite-*-coff*) *** 2106,2118 **** tmake_file=sparc/t-sparclite ;; sparclite-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/liteelf.h" tmake_file="sparc/t-sparclite sparc/t-crtfm" extra_parts="crtbegin.o crtend.o" use_fixproto=yes ;; sparc86x-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/sp86x-elf.h" tmake_file="sparc/t-sp86x sparc/t-crtfm" extra_parts="crtbegin.o crtend.o" use_fixproto=yes --- 2124,2136 ---- tmake_file=sparc/t-sparclite ;; sparclite-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-gld.h sparc/elf.h sparc/liteelf.h" tmake_file="sparc/t-sparclite sparc/t-crtfm" extra_parts="crtbegin.o crtend.o" use_fixproto=yes ;; sparc86x-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-gld.h sparc/elf.h sparc/sp86x-elf.h" tmake_file="sparc/t-sp86x sparc/t-crtfm" extra_parts="crtbegin.o crtend.o" use_fixproto=yes *************** sparc64-*-aout*) *** 2122,2128 **** use_fixproto=yes ;; sparc64-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sp64-elf.h" tmake_file="${tmake_file} sparc/t-crtfm" extra_parts="crtbegin.o crtend.o" use_fixproto=yes --- 2140,2146 ---- use_fixproto=yes ;; sparc64-*-elf*) ! tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-gld.h sparc/sp64-elf.h" tmake_file="${tmake_file} sparc/t-crtfm" extra_parts="crtbegin.o crtend.o" use_fixproto=yes *************** if test x$with_cpu = x ; then *** 2398,2421 **** esac fi ! # Similarly for --with-schedule. ! if test x$with_schedule = x; then ! case ${target} in ! hppa1* | parisc1*) ! # Override default PA8000 scheduling model. ! with_schedule=7100LC ! ;; ! esac ! fi ! # Validate and mark as valid any --with options supported ! # by this target. In order to use a particular --with option ! # you must list it in supported_defaults; validating the value ! # is optional. This case statement should set nothing besides ! # supported_defaults. ! supported_defaults= ! case "${target}" in alpha*-*-*) supported_defaults="cpu tune" for which in cpu tune; do --- 2416,2439 ---- esac fi ! # Similarly for --with-schedule. ! if test x$with_schedule = x; then ! case ${target} in ! hppa1* | parisc1*) ! # Override default PA8000 scheduling model. ! with_schedule=7100LC ! ;; ! esac ! fi ! # Validate and mark as valid any --with options supported ! # by this target. In order to use a particular --with option ! # you must list it in supported_defaults; validating the value ! # is optional. This case statement should set nothing besides ! # supported_defaults. ! supported_defaults= ! case "${target}" in alpha*-*-*) supported_defaults="cpu tune" for which in cpu tune; do *************** fi *** 2569,2576 **** eval $with_which= ;; "" | common \ ! | power | power2 | power3 | power4 \ ! | powerpc | powerpc64 \ | rios | rios1 | rios2 | rsc | rsc1 | rs64a \ | 401 | 403 | 405 | 405fp | 440 | 440fp | 505 \ | 601 | 602 | 603 | 603e | ec603e | 604 \ --- 2587,2593 ---- eval $with_which= ;; "" | common \ ! | power | power[2345] | powerpc | powerpc64 \ | rios | rios1 | rios2 | rsc | rsc1 | rs64a \ | 401 | 403 | 405 | 405fp | 440 | 440fp | 505 \ | 601 | 602 | 603 | 603e | ec603e | 604 \ *************** fi *** 2655,2665 **** ;; esac ;; ! esac ! # Set some miscellaneous flags for particular targets. ! target_cpu_default2= ! case ${target} in alpha*-*-*) if test x$gas = xyes then --- 2672,2682 ---- ;; esac ;; ! esac ! # Set some miscellaneous flags for particular targets. ! target_cpu_default2= ! case ${target} in alpha*-*-*) if test x$gas = xyes then *************** fi *** 2771,2814 **** ;; esac ;; ! esac ! t= ! all_defaults="abi cpu arch tune schedule float mode" ! for option in $all_defaults ! do ! eval "val=\$with_$option" ! if test -n "$val"; then ! case " $supported_defaults " in ! *" $option "*) ! ;; ! *) ! echo "This target does not support --with-$option." 2>&1 ! exit 1 ! ;; ! esac ! if test "x$t" = x ! then ! t="{ \"$option\", \"$val\" }" ! else ! t="${t}, { \"$option\", \"$val\" }" ! fi fi - done - if test "x$t" = x - then - configure_default_options="{ { NULL, NULL} }" - else - configure_default_options="{ ${t} }" fi ! if test "$target_cpu_default2" != "" then ! if test "$target_cpu_default" != "" ! then ! target_cpu_default="(${target_cpu_default}|${target_cpu_default2})" ! else ! target_cpu_default=$target_cpu_default2 ! fi fi --- 2788,2832 ---- ;; esac ;; ! esac ! t= ! all_defaults="abi cpu arch tune schedule float mode" ! for option in $all_defaults ! do ! eval "val=\$with_$option" ! if test -n "$val"; then ! case " $supported_defaults " in ! *" $option "*) ! ;; ! *) ! echo "This target does not support --with-$option." 2>&1 ! exit 1 ! ;; ! esac ! if test "x$t" = x ! then ! t="{ \"$option\", \"$val\" }" ! else ! t="${t}, { \"$option\", \"$val\" }" fi fi + done ! if test "x$t" = x ! then ! configure_default_options="{ { NULL, NULL} }" ! else ! configure_default_options="{ ${t} }" ! fi ! ! if test "$target_cpu_default2" != "" ! then ! if test "$target_cpu_default" != "" then ! target_cpu_default="(${target_cpu_default}|${target_cpu_default2})" ! else ! target_cpu_default=$target_cpu_default2 fi + fi diff -Nrc3pad gcc-3.4.3/gcc/config.in gcc-3.4.4/gcc/config.in *** gcc-3.4.3/gcc/config.in Fri Nov 5 04:14:05 2004 --- gcc-3.4.4/gcc/config.in Thu May 19 09:58:00 2005 *************** *** 262,267 **** --- 262,270 ---- skip when using the GAS .p2align command. */ #undef HAVE_GAS_MAX_SKIP_P2ALIGN + /* Define if your assembler supports .nsubspa comdat option. */ + #undef HAVE_GAS_NSUBSPA_COMDAT + /* Define 0/1 if your assembler supports marking sections with SHF_MERGE flag. */ #undef HAVE_GAS_SHF_MERGE *************** *** 319,324 **** --- 322,330 ---- a read-write section. */ #undef HAVE_LD_RO_RW_SECTION_MIXING + /* Define if your linker supports -Bstatic/-Bdynamic option. */ + #undef HAVE_LD_STATIC_DYNAMIC + /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H *************** *** 546,554 **** /* Define to `int' if doesn't define. */ #undef gid_t ! /* Define as `__inline' if that's what the C compiler calls it, or to nothing ! if it is not supported. */ #undef inline /* Define to `int' if does not define. */ #undef pid_t --- 552,562 ---- /* Define to `int' if doesn't define. */ #undef gid_t ! /* Define to `__inline__' or `__inline' if that's what the C compiler ! calls it, or to nothing if 'inline' is not supported under any name. */ ! #ifndef __cplusplus #undef inline + #endif /* Define to `int' if does not define. */ #undef pid_t diff -Nrc3pad gcc-3.4.3/gcc/configure gcc-3.4.4/gcc/configure *** gcc-3.4.3/gcc/configure Fri Nov 5 04:14:05 2004 --- gcc-3.4.4/gcc/configure Sat Jan 8 01:20:19 2005 *************** _ACEOF *** 10397,10402 **** --- 10397,10440 ---- fi + echo "$as_me:$LINENO: checking assembler for .nsubspa comdat" >&5 + echo $ECHO_N "checking assembler for .nsubspa comdat... $ECHO_C" >&6 + if test "${gcc_cv_as_nsubspa_comdat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + gcc_cv_as_nsubspa_comdat=no + if test $in_tree_gas = yes; then + if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 15 \) \* 1000 + 91` + then gcc_cv_as_nsubspa_comdat=yes + fi + elif test x$gcc_cv_as != x; then + echo ' .SPACE $TEXT$ + .NSUBSPA $CODE$,COMDAT' > conftest.s + if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } + then + gcc_cv_as_nsubspa_comdat=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + echo "$as_me:$LINENO: result: $gcc_cv_as_nsubspa_comdat" >&5 + echo "${ECHO_T}$gcc_cv_as_nsubspa_comdat" >&6 + if test $gcc_cv_as_nsubspa_comdat = yes; then + + cat >>confdefs.h <<\_ACEOF + #define HAVE_GAS_NSUBSPA_COMDAT 1 + _ACEOF + + fi + # .hidden needs to be supported in both the assembler and the linker, # because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN. # This is irritatingly difficult to feature test for; we have to check the *************** else *** 11277,11283 **** if test x$gcc_cv_objdump != x \ && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \ | grep ' 82106000 82106000' > /dev/null 2>&1; then ! gcc_cv_as_offsetable_lo10=yes fi else echo "configure: failed program was" >&5 --- 11315,11321 ---- if test x$gcc_cv_objdump != x \ && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \ | grep ' 82106000 82106000' > /dev/null 2>&1; then ! gcc_cv_as_sparc_offsetable_lo10=yes fi else echo "configure: failed program was" >&5 *************** fi *** 11818,11823 **** --- 11856,11885 ---- echo "$as_me:$LINENO: result: $gcc_cv_ld_pie" >&5 echo "${ECHO_T}$gcc_cv_ld_pie" >&6 + echo "$as_me:$LINENO: checking linker -Bstatic/-Bdynamic option" >&5 + echo $ECHO_N "checking linker -Bstatic/-Bdynamic option... $ECHO_C" >&6 + gcc_cv_ld_static_dynamic=no + if test $in_tree_ld = yes ; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then + gcc_cv_ld_static_dynamic=yes + fi + elif test x$gcc_cv_ld != x; then + # Check if linker supports -Bstatic/-Bdynamic option + if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \ + && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then + gcc_cv_ld_static_dynamic=yes + fi + fi + if test x"$gcc_cv_ld_static_dynamic" = xyes; then + + cat >>confdefs.h <<\_ACEOF + #define HAVE_LD_STATIC_DYNAMIC 1 + _ACEOF + + fi + echo "$as_me:$LINENO: result: $gcc_cv_ld_static_dynamic" >&5 + echo "${ECHO_T}$gcc_cv_ld_static_dynamic" >&6 + case "$target" in *-*-linux*) echo "$as_me:$LINENO: checking linker --as-needed support" >&5 diff -Nrc3pad gcc-3.4.3/gcc/configure.ac gcc-3.4.4/gcc/configure.ac *** gcc-3.4.3/gcc/configure.ac Fri Sep 24 00:43:53 2004 --- gcc-3.4.4/gcc/configure.ac Sat Jan 8 01:20:19 2005 *************** gcc_GAS_CHECK_FEATURE([.weak], gcc_cv_as *** 1855,1860 **** --- 1855,1866 ---- [ .weak foobar],, [AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])]) + gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat, + [2,15,91],, + [ .SPACE $TEXT$ + .NSUBSPA $CODE$,COMDAT],, + [AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])]) + # .hidden needs to be supported in both the assembler and the linker, # because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN. # This is irritatingly difficult to feature test for; we have to check the *************** foo: *** 2397,2403 **** [if test x$gcc_cv_objdump != x \ && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \ | grep ' 82106000 82106000' > /dev/null 2>&1; then ! gcc_cv_as_offsetable_lo10=yes fi], [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1, [Define if your assembler supports offsetable %lo().])]) --- 2403,2409 ---- [if test x$gcc_cv_objdump != x \ && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \ | grep ' 82106000 82106000' > /dev/null 2>&1; then ! gcc_cv_as_sparc_offsetable_lo10=yes fi], [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1, [Define if your assembler supports offsetable %lo().])]) *************** if test x"$gcc_cv_ld_pie" = xyes; then *** 2617,2622 **** --- 2623,2647 ---- fi AC_MSG_RESULT($gcc_cv_ld_pie) + AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option) + gcc_cv_ld_static_dynamic=no + if test $in_tree_ld = yes ; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then + gcc_cv_ld_static_dynamic=yes + fi + elif test x$gcc_cv_ld != x; then + # Check if linker supports -Bstatic/-Bdynamic option + if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \ + && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then + gcc_cv_ld_static_dynamic=yes + fi + fi + if test x"$gcc_cv_ld_static_dynamic" = xyes; then + AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1, + [Define if your linker supports -Bstatic/-Bdynamic option.]) + fi + AC_MSG_RESULT($gcc_cv_ld_static_dynamic) + case "$target" in *-*-linux*) AC_CACHE_CHECK(linker --as-needed support, diff -Nrc3pad gcc-3.4.3/gcc/cppfiles.c gcc-3.4.4/gcc/cppfiles.c *** gcc-3.4.3/gcc/cppfiles.c Fri Jul 16 17:16:43 2004 --- gcc-3.4.4/gcc/cppfiles.c Wed Dec 15 13:41:17 2004 *************** static void open_file_failed (cpp_reader *** 168,173 **** --- 168,174 ---- static struct file_hash_entry *search_cache (struct file_hash_entry *head, const cpp_dir *start_dir); static _cpp_file *make_cpp_file (cpp_reader *, cpp_dir *, const char *fname); + static void destroy_cpp_file (_cpp_file *); static cpp_dir *make_cpp_dir (cpp_reader *, const char *dir_name, int sysp); static void allocate_file_hash_entries (cpp_reader *pfile); static struct file_hash_entry *new_file_hash_entry (cpp_reader *pfile); *************** should_stack_file (cpp_reader *pfile, _c *** 598,609 **** if ((import || f->once_only) && f->err_no == 0 && f->st.st_mtime == file->st.st_mtime ! && f->st.st_size == file->st.st_size ! && read_file (pfile, f) ! /* Size might have changed in read_file(). */ ! && f->st.st_size == file->st.st_size ! && !memcmp (f->buffer, file->buffer, f->st.st_size)) ! break; } return f == NULL; --- 599,636 ---- if ((import || f->once_only) && f->err_no == 0 && f->st.st_mtime == file->st.st_mtime ! && f->st.st_size == file->st.st_size) ! { ! _cpp_file *ref_file; ! bool same_file_p = false; ! ! if (f->buffer && !f->buffer_valid) ! { ! /* We already have a buffer but it is not valid, because ! the file is still stacked. Make a new one. */ ! ref_file = make_cpp_file (pfile, f->dir, f->name); ! ref_file->path = f->path; ! } ! else ! /* The file is not stacked anymore. We can reuse it. */ ! ref_file = f; ! ! same_file_p = read_file (pfile, ref_file) ! /* Size might have changed in read_file(). */ ! && ref_file->st.st_size == file->st.st_size ! && !memcmp (ref_file->buffer, ! file->buffer, ! file->st.st_size); ! ! if (f->buffer && !f->buffer_valid) ! { ! ref_file->path = 0; ! destroy_cpp_file (ref_file); ! } ! ! if (same_file_p) ! break; ! } } return f == NULL; *************** make_cpp_file (cpp_reader *pfile, cpp_di *** 781,786 **** --- 808,823 ---- return file; } + /* Release a _cpp_file structure. */ + static void + destroy_cpp_file (_cpp_file *file) + { + if (file->buffer) + free ((void *) file->buffer); + free ((void *) file->name); + free (file); + } + /* A hash of directory names. The directory names are the path names of files which contain a #include "", the included file name is appended to this directories. diff -Nrc3pad gcc-3.4.3/gcc/cpplib.c gcc-3.4.4/gcc/cpplib.c *** gcc-3.4.3/gcc/cpplib.c Wed Mar 24 03:19:01 2004 --- gcc-3.4.4/gcc/cpplib.c Thu Dec 2 02:32:17 2004 *************** do_include_common (cpp_reader *pfile, en *** 680,685 **** --- 680,693 ---- if (!fname) return; + if (!*fname) + { + cpp_error (pfile, CPP_DL_ERROR, "empty filename in #%s", + pfile->directive->name); + free ((void *) fname); + return; + } + /* Prevent #include recursion. */ if (pfile->line_maps.depth >= CPP_STACK_MAX) cpp_error (pfile, CPP_DL_ERROR, "#include nested too deeply"); diff -Nrc3pad gcc-3.4.3/gcc/cppmacro.c gcc-3.4.4/gcc/cppmacro.c *** gcc-3.4.3/gcc/cppmacro.c Wed Feb 18 22:10:13 2004 --- gcc-3.4.4/gcc/cppmacro.c Wed Feb 16 23:07:32 2005 *************** cpp_macro_definition (cpp_reader *pfile, *** 1626,1631 **** --- 1626,1632 ---- len += NODE_LEN (macro->params[i]) + 1; /* "," */ } + /* This should match below where we fill in the buffer. */ if (CPP_OPTION (pfile, traditional)) len += _cpp_replacement_text_len (macro); else *************** cpp_macro_definition (cpp_reader *pfile, *** 1637,1647 **** if (token->type == CPP_MACRO_ARG) len += NODE_LEN (macro->params[token->val.arg_no - 1]); else ! len += cpp_token_len (token) + 1; /* Includes room for ' '. */ if (token->flags & STRINGIFY_ARG) len++; /* "#" */ if (token->flags & PASTE_LEFT) len += 3; /* " ##" */ } } --- 1638,1651 ---- if (token->type == CPP_MACRO_ARG) len += NODE_LEN (macro->params[token->val.arg_no - 1]); else ! len += cpp_token_len (token); ! if (token->flags & STRINGIFY_ARG) len++; /* "#" */ if (token->flags & PASTE_LEFT) len += 3; /* " ##" */ + if (token->flags & PREV_WHITE) + len++; /* " " */ } } *************** cpp_macro_definition (cpp_reader *pfile, *** 1701,1710 **** if (token->type == CPP_MACRO_ARG) { - len = NODE_LEN (macro->params[token->val.arg_no - 1]); memcpy (buffer, ! NODE_NAME (macro->params[token->val.arg_no - 1]), len); ! buffer += len; } else buffer = cpp_spell_token (pfile, token, buffer); --- 1705,1714 ---- if (token->type == CPP_MACRO_ARG) { memcpy (buffer, ! NODE_NAME (macro->params[token->val.arg_no - 1]), ! NODE_LEN (macro->params[token->val.arg_no - 1])); ! buffer += NODE_LEN (macro->params[token->val.arg_no - 1]); } else buffer = cpp_spell_token (pfile, token, buffer); diff -Nrc3pad gcc-3.4.3/gcc/dbxout.c gcc-3.4.4/gcc/dbxout.c *** gcc-3.4.3/gcc/dbxout.c Wed Aug 4 07:32:19 2004 --- gcc-3.4.4/gcc/dbxout.c Thu Jan 27 02:01:54 2005 *************** dbxout_symbol_location (tree decl, tree *** 2447,2452 **** --- 2447,2483 ---- letter = decl_function_context (decl) ? 'V' : 'S'; + /* Some ports can transform a symbol ref into a label ref, + because the symbol ref is too far away and has to be + dumped into a constant pool. Alternatively, the symbol + in the constant pool might be referenced by a different + symbol. */ + if (GET_CODE (current_sym_addr) == SYMBOL_REF + && CONSTANT_POOL_ADDRESS_P (current_sym_addr)) + { + bool marked; + rtx tmp = get_pool_constant_mark (current_sym_addr, &marked); + + if (GET_CODE (tmp) == SYMBOL_REF) + { + current_sym_addr = tmp; + if (CONSTANT_POOL_ADDRESS_P (current_sym_addr)) + get_pool_constant_mark (current_sym_addr, &marked); + else + marked = true; + } + else if (GET_CODE (tmp) == LABEL_REF) + { + current_sym_addr = tmp; + marked = true; + } + + /* If all references to the constant pool were optimized + out, we just ignore the symbol. */ + if (!marked) + return 0; + } + /* This should be the same condition as in assemble_variable, but we don't have access to dont_output_data here. So, instead, we rely on the fact that error_mark_node initializers always *************** dbxout_symbol_location (tree decl, tree *** 2461,2497 **** current_sym_code = DBX_STATIC_CONST_VAR_CODE; else { - /* Some ports can transform a symbol ref into a label ref, - because the symbol ref is too far away and has to be - dumped into a constant pool. Alternatively, the symbol - in the constant pool might be referenced by a different - symbol. */ - if (GET_CODE (current_sym_addr) == SYMBOL_REF - && CONSTANT_POOL_ADDRESS_P (current_sym_addr)) - { - bool marked; - rtx tmp = get_pool_constant_mark (current_sym_addr, &marked); - - if (GET_CODE (tmp) == SYMBOL_REF) - { - current_sym_addr = tmp; - if (CONSTANT_POOL_ADDRESS_P (current_sym_addr)) - get_pool_constant_mark (current_sym_addr, &marked); - else - marked = true; - } - else if (GET_CODE (tmp) == LABEL_REF) - { - current_sym_addr = tmp; - marked = true; - } - - /* If all references to the constant pool were optimized - out, we just ignore the symbol. */ - if (!marked) - return 0; - } - /* Ultrix `as' seems to need this. */ #ifdef DBX_STATIC_STAB_DATA_SECTION data_section (); --- 2492,2497 ---- diff -Nrc3pad gcc-3.4.3/gcc/defaults.h gcc-3.4.4/gcc/defaults.h *** gcc-3.4.3/gcc/defaults.h Fri Jan 23 23:35:56 2004 --- gcc-3.4.4/gcc/defaults.h Sun Jan 16 16:01:18 2005 *************** do { fputs (integer_asm_op (POINTER_SIZE *** 139,144 **** --- 139,150 ---- #endif #endif + /* Decide whether to defer emitting the assembler output for an equate + of two values. The default is to not defer output. */ + #ifndef TARGET_DEFERRED_OUTPUT_DEFS + #define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) false + #endif + /* This is how to output the definition of a user-level label named NAME, such as the label on a static function or variable NAME. */ diff -Nrc3pad gcc-3.4.3/gcc/doc/cpp.1 gcc-3.4.4/gcc/doc/cpp.1 *** gcc-3.4.3/gcc/doc/cpp.1 Fri Nov 5 04:19:20 2004 --- gcc-3.4.4/gcc/doc/cpp.1 Thu May 19 10:02:15 2005 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2004-11-05" "gcc-3.4.3" "GNU" .SH "NAME" cpp \- The C Preprocessor .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2005-05-19" "gcc-3.4.4" "GNU" .SH "NAME" cpp \- The C Preprocessor .SH "SYNOPSIS" diff -Nrc3pad gcc-3.4.3/gcc/doc/cpp.info gcc-3.4.4/gcc/doc/cpp.info *** gcc-3.4.3/gcc/doc/cpp.info Fri Nov 5 04:19:18 2004 --- gcc-3.4.4/gcc/doc/cpp.info Thu May 19 10:02:13 2005 *************** *** 1,7 **** ! This is doc/cpp.info, produced by makeinfo version 4.7 from ! /home/mitchell/scratch/gcc-3.4.3/gcc-3.4.3/gcc/doc/cpp.texi. ! Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document --- 1,7 ---- ! This is doc/cpp.info, produced by makeinfo version 4.2 from ! /scratch/mitchell/gcc-releases/gcc-3.4.4/gcc-3.4.4/gcc/doc/cpp.texi. ! Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document *************** are (a) (see below), and the Back-Cover *** 21,28 **** You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development. man end ! INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * Cpp: (cpp). The GNU C preprocessor. --- 21,27 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development. INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * Cpp: (cpp). The GNU C preprocessor. *************** END-INFO-DIR-ENTRY *** 31,40 ****  File: cpp.info, Node: Top, Next: Overview, Up: (dir) - The C Preprocessor - ****************** ! The C preprocessor implements the macro language used to transform C, C++, and Objective-C programs before they are compiled. It can also be useful on its own. --- 30,38 ----  File: cpp.info, Node: Top, Next: Overview, Up: (dir) ! ! The C preprocessor implements the macro language used to transform C, C++, and Objective-C programs before they are compiled. It can also be useful on its own. *************** Obsolete Features *** 133,139 **** * Assertions:: * Obsolete once-only headers:: ! Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document --- 131,137 ---- * Assertions:: * Obsolete once-only headers:: ! Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document *************** are (a) (see below), and the Back-Cover *** 153,168 **** You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development. man end !  File: cpp.info, Node: Overview, Next: Header Files, Prev: Top, Up: Top ! 1 Overview ! ********** ! The C preprocessor, often known as "cpp", is a "macro processor" that ! is used automatically by the C compiler to transform your program before compilation. It is called a macro processor because it allows you to define "macros", which are brief abbreviations for longer constructs. --- 151,165 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise ! funds for GNU development.  File: cpp.info, Node: Overview, Next: Header Files, Prev: Top, Up: Top ! Overview ! ******** ! The C preprocessor, often known as "cpp", is a "macro processor" ! that is used automatically by the C compiler to transform your program before compilation. It is called a macro processor because it allows you to define "macros", which are brief abbreviations for longer constructs. *************** manual refer to GNU CPP. *** 218,227 ****  File: cpp.info, Node: Character sets, Next: Initial processing, Up: Overview ! 1.1 Character sets ! ================== ! Source code character set processing in C and related languages is rather complicated. The C standard discusses two character sets, but there are really at least four. --- 215,224 ----  File: cpp.info, Node: Character sets, Next: Initial processing, Up: Overview ! Character sets ! ============== ! Source code character set processing in C and related languages is rather complicated. The C standard discusses two character sets, but there are really at least four. *************** some system ABIs so we cannot fix this. *** 272,281 ****  File: cpp.info, Node: Initial processing, Next: Tokenization, Prev: Character sets, Up: Overview ! 1.2 Initial processing ! ====================== ! The preprocessor performs a series of textual transformations on its input. These happen before all other processing. Conceptually, they happen in a rigid order, and the entire file is run through each transformation before the next one begins. CPP actually does them all --- 269,278 ----  File: cpp.info, Node: Initial processing, Next: Tokenization, Prev: Character sets, Up: Overview ! Initial processing ! ================== ! The preprocessor performs a series of textual transformations on its input. These happen before all other processing. Conceptually, they happen in a rigid order, and the entire file is run through each transformation before the next one begins. CPP actually does them all *************** standard. *** 366,372 **** // contains line comment yet more comment */ outside comment ! // line comment /* contains block comment */ But beware of commenting out one end of a block comment with a line --- 363,369 ---- // contains line comment yet more comment */ outside comment ! // line comment /* contains block comment */ But beware of commenting out one end of a block comment with a line *************** correct program, however. *** 406,415 ****  File: cpp.info, Node: Tokenization, Next: The preprocessing language, Prev: Initial processing, Up: Overview ! 1.3 Tokenization ! ================ ! After the textual transformations are finished, the input file is converted into a sequence of "preprocessing tokens". These mostly correspond to the syntactic tokens used by the C compiler, but there are a few differences. White space separates tokens; it is not itself a --- 403,412 ----  File: cpp.info, Node: Tokenization, Next: The preprocessing language, Prev: Initial processing, Up: Overview ! Tokenization ! ============ ! After the textual transformations are finished, the input file is converted into a sequence of "preprocessing tokens". These mostly correspond to the syntactic tokens used by the C compiler, but there are a few differences. White space separates tokens; it is not itself a *************** what we are calling "string constants". *** 554,567 ****  File: cpp.info, Node: The preprocessing language, Prev: Tokenization, Up: Overview ! 1.4 The preprocessing language ! ============================== ! After tokenization, the stream of tokens may simply be passed straight ! to the compiler's parser. However, if it contains any operations in the ! "preprocessing language", it will be transformed first. This stage ! corresponds roughly to the standard's "translation phase 4" and is what ! most people think of as the preprocessor's job. The preprocessing language consists of "directives" to be executed and "macros" to be expanded. Its primary capabilities are: --- 551,564 ----  File: cpp.info, Node: The preprocessing language, Prev: Tokenization, Up: Overview ! The preprocessing language ! ========================== ! After tokenization, the stream of tokens may simply be passed ! straight to the compiler's parser. However, if it contains any ! operations in the "preprocessing language", it will be transformed ! first. This stage corresponds roughly to the standard's "translation ! phase 4" and is what most people think of as the preprocessor's job. The preprocessing language consists of "directives" to be executed and "macros" to be expanded. Its primary capabilities are: *************** the first line to make one long line. *** 617,629 ****  File: cpp.info, Node: Header Files, Next: Macros, Prev: Overview, Up: Top ! 2 Header Files ! ************** ! A header file is a file containing C declarations and macro definitions ! (*note Macros::) to be shared between several source files. You request ! the use of a header file in your program by "including" it, with the C ! preprocessing directive `#include'. Header files serve two purposes. --- 614,626 ----  File: cpp.info, Node: Header Files, Next: Macros, Prev: Overview, Up: Top ! Header Files ! ************ ! A header file is a file containing C declarations and macro ! definitions (*note Macros::) to be shared between several source files. ! You request the use of a header file in your program by "including" ! it, with the C preprocessing directive `#include'. Header files serve two purposes. *************** underscores in header file names, and at *** 665,675 ****  File: cpp.info, Node: Include Syntax, Next: Include Operation, Up: Header Files ! 2.1 Include Syntax ! ================== ! Both user and system header files are included using the preprocessing ! directive `#include'. It has two variants: `#include ' This variant is used for system header files. It searches for a --- 662,672 ----  File: cpp.info, Node: Include Syntax, Next: Include Operation, Up: Header Files ! Include Syntax ! ============== ! Both user and system header files are included using the ! preprocessing directive `#include'. It has two variants: `#include ' This variant is used for system header files. It searches for a *************** after the file name. *** 701,711 ****  File: cpp.info, Node: Include Operation, Next: Search Path, Prev: Include Syntax, Up: Header Files ! 2.2 Include Operation ! ===================== ! The `#include' directive works by directing the C preprocessor to scan ! the specified file as input before continuing with the rest of the current file. The output from the preprocessor contains the output already generated, followed by the output resulting from the included file, followed by the output that comes from the text after the --- 698,708 ----  File: cpp.info, Node: Include Operation, Next: Search Path, Prev: Include Syntax, Up: Header Files ! Include Operation ! ================= ! The `#include' directive works by directing the C preprocessor to ! scan the specified file as input before continuing with the rest of the current file. The output from the preprocessor contains the output already generated, followed by the output resulting from the included file, followed by the output that comes from the text after the *************** this, *** 719,725 **** int x; #include "header.h" ! int main (void) { --- 716,722 ---- int x; #include "header.h" ! int main (void) { *************** read *** 731,737 **** int x; char *test (void); ! int main (void) { --- 728,734 ---- int x; char *test (void); ! int main (void) { *************** final newline. *** 759,768 ****  File: cpp.info, Node: Search Path, Next: Once-Only Headers, Prev: Include Operation, Up: Header Files ! 2.3 Search Path ! =============== ! GCC looks in several different places for headers. On a normal Unix system, if you do not instruct it otherwise, it will look for headers requested with `#include ' in: --- 756,765 ----  File: cpp.info, Node: Search Path, Next: Once-Only Headers, Prev: Include Operation, Up: Header Files ! Search Path ! =========== ! GCC looks in several different places for headers. On a normal Unix system, if you do not instruct it otherwise, it will look for headers requested with `#include ' in: *************** are generally less useful. *Note Invoca *** 827,839 ****  File: cpp.info, Node: Once-Only Headers, Next: Computed Includes, Prev: Search Path, Up: Header Files ! 2.4 Once-Only Headers ! ===================== ! If a header file happens to be included twice, the compiler will process ! its contents twice. This is very likely to cause an error, e.g. when ! the compiler sees the same structure definition twice. Even if it does ! not, it will certainly waste time. The standard way to prevent this is to enclose the entire real contents of the file in a conditional, like this: --- 824,836 ----  File: cpp.info, Node: Once-Only Headers, Next: Computed Includes, Prev: Search Path, Up: Header Files ! Once-Only Headers ! ================= ! If a header file happens to be included twice, the compiler will ! process its contents twice. This is very likely to cause an error, ! e.g. when the compiler sees the same structure definition twice. Even ! if it does not, it will certainly waste time. The standard way to prevent this is to enclose the entire real contents of the file in a conditional, like this: *************** contents of the file in a conditional, l *** 841,849 **** /* File foo. */ #ifndef FILE_FOO_SEEN #define FILE_FOO_SEEN ! THE ENTIRE FILE ! #endif /* !FILE_FOO_SEEN */ This construct is commonly known as a "wrapper #ifndef". When the --- 838,846 ---- /* File foo. */ #ifndef FILE_FOO_SEEN #define FILE_FOO_SEEN ! THE ENTIRE FILE ! #endif /* !FILE_FOO_SEEN */ This construct is commonly known as a "wrapper #ifndef". When the *************** avoid conflicts with other header files. *** 869,878 ****  File: cpp.info, Node: Computed Includes, Next: Wrapper Headers, Prev: Once-Only Headers, Up: Header Files ! 2.5 Computed Includes ! ===================== ! Sometimes it is necessary to select one of several different header files to be included into your program. They might specify configuration parameters to be used on different sorts of operating systems, for instance. You could do this with a series of conditionals, --- 866,875 ----  File: cpp.info, Node: Computed Includes, Next: Wrapper Headers, Prev: Once-Only Headers, Up: Header Files ! Computed Includes ! ================= ! Sometimes it is necessary to select one of several different header files to be included into your program. They might specify configuration parameters to be used on different sorts of operating systems, for instance. You could do this with a series of conditionals, *************** minimize confusion for people reading yo *** 943,952 ****  File: cpp.info, Node: Wrapper Headers, Next: System Headers, Prev: Computed Includes, Up: Header Files ! 2.6 Wrapper Headers ! =================== ! Sometimes it is necessary to adjust the contents of a system-provided header file without editing it directly. GCC's `fixincludes' operation does this, for example. One way to do that would be to create a new header file with the same name and insert it in the search path before --- 940,949 ----  File: cpp.info, Node: Wrapper Headers, Next: System Headers, Prev: Computed Includes, Up: Header Files ! Wrapper Headers ! =============== ! Sometimes it is necessary to adjust the contents of a system-provided header file without editing it directly. GCC's `fixincludes' operation does this, for example. One way to do that would be to create a new header file with the same name and insert it in the search path before *************** Headers::), it will recurse infinitely a *** 961,968 **** You could include the old header with an absolute pathname: #include "/usr/include/old-header.h" ! This works, but is not clean; should the system headers ever move, ! you would have to edit the new headers to match. There is no way to solve this problem within the C standard, but you can use the GNU extension `#include_next'. It means, "Include the --- 958,966 ---- You could include the old header with an absolute pathname: #include "/usr/include/old-header.h" ! ! This works, but is not clean; should the system headers ever move, you ! would have to edit the new headers to match. There is no way to solve this problem within the C standard, but you can use the GNU extension `#include_next'. It means, "Include the *************** lines of `fixincludes'. *** 993,1002 ****  File: cpp.info, Node: System Headers, Prev: Wrapper Headers, Up: Header Files ! 2.7 System Headers ! ================== ! The header files declaring interfaces to the operating system and runtime libraries often cannot be written in strictly conforming C. Therefore, GCC gives code found in "system headers" special treatment. All warnings, other than those generated by `#warning' (*note --- 991,1000 ----  File: cpp.info, Node: System Headers, Prev: Wrapper Headers, Up: Header Files ! System Headers ! ============== ! The header files declaring interfaces to the operating system and runtime libraries often cannot be written in strictly conforming C. Therefore, GCC gives code found in "system headers" special treatment. All warnings, other than those generated by `#warning' (*note *************** from the command line. *** 1036,1049 ****  File: cpp.info, Node: Macros, Next: Conditionals, Prev: Header Files, Up: Top ! 3 Macros ! ******** ! A "macro" is a fragment of code which has been given a name. Whenever ! the name is used, it is replaced by the contents of the macro. There ! are two kinds of macros. They differ mostly in what they look like ! when they are used. "Object-like" macros resemble data objects when ! used, "function-like" macros resemble function calls. You may define any valid identifier as a macro, even if it is a C keyword. The preprocessor does not know anything about keywords. This --- 1034,1047 ----  File: cpp.info, Node: Macros, Next: Conditionals, Prev: Header Files, Up: Top ! Macros ! ****** ! A "macro" is a fragment of code which has been given a name. ! Whenever the name is used, it is replaced by the contents of the macro. ! There are two kinds of macros. They differ mostly in what they look ! like when they are used. "Object-like" macros resemble data objects ! when used, "function-like" macros resemble function calls. You may define any valid identifier as a macro, even if it is a C keyword. The preprocessor does not know anything about keywords. This *************** macros when you are compiling C++. *** 1069,1080 ****  File: cpp.info, Node: Object-like Macros, Next: Function-like Macros, Up: Macros ! 3.1 Object-like Macros ! ====================== ! An "object-like macro" is a simple identifier which will be replaced by ! a code fragment. It is called object-like because it looks like a data ! object in code that uses it. They are most commonly used to give symbolic names to numeric constants. You create macros with the `#define' directive. `#define' is --- 1067,1078 ----  File: cpp.info, Node: Object-like Macros, Next: Function-like Macros, Up: Macros ! Object-like Macros ! ================== ! An "object-like macro" is a simple identifier which will be replaced ! by a code fragment. It is called object-like because it looks like a ! data object in code that uses it. They are most commonly used to give symbolic names to numeric constants. You create macros with the `#define' directive. `#define' is *************** Self-Referential Macros::, for the preci *** 1171,1183 ****  File: cpp.info, Node: Function-like Macros, Next: Macro Arguments, Prev: Object-like Macros, Up: Macros ! 3.2 Function-like Macros ! ======================== ! You can also define macros whose use looks like a function call. These ! are called "function-like macros". To define a function-like macro, ! you use the same `#define' directive, but you put a pair of parentheses ! immediately after the macro name. For example, #define lang_init() c_init() lang_init() --- 1169,1181 ----  File: cpp.info, Node: Function-like Macros, Next: Macro Arguments, Prev: Object-like Macros, Up: Macros ! Function-like Macros ! ==================== ! You can also define macros whose use looks like a function call. ! These are called "function-like macros". To define a function-like ! macro, you use the same `#define' directive, but you put a pair of ! parentheses immediately after the macro name. For example, #define lang_init() c_init() lang_init() *************** consume those parentheses. *** 1215,1224 ****  File: cpp.info, Node: Macro Arguments, Next: Stringification, Prev: Function-like Macros, Up: Macros ! 3.3 Macro Arguments ! =================== ! Function-like macros can take "arguments", just like true functions. To define a macro that uses arguments, you insert "parameters" between the pair of parentheses in the macro definition that make the macro function-like. The parameters must be valid C identifiers, separated --- 1213,1222 ----  File: cpp.info, Node: Macro Arguments, Next: Stringification, Prev: Function-like Macros, Up: Macros ! Macro Arguments ! =============== ! Function-like macros can take "arguments", just like true functions. To define a macro that uses arguments, you insert "parameters" between the pair of parentheses in the macro definition that make the macro function-like. The parameters must be valid C identifiers, separated *************** Here are some silly examples using `min' *** 1288,1294 **** min(a, ) ==> ((a ) < ( ) ? (a ) : ( )) min(,) ==> (( ) < ( ) ? ( ) : ( )) min((,),) ==> (((,)) < ( ) ? ((,)) : ( )) ! min() error--> macro "min" requires 2 arguments, but only 1 given min(,,) error--> macro "min" passed 3 arguments, but takes just 2 --- 1286,1292 ---- min(a, ) ==> ((a ) < ( ) ? (a ) : ( )) min(,) ==> (( ) < ( ) ? ( ) : ( )) min((,),) ==> (((,)) < ( ) ? ((,)) : ( )) ! min() error--> macro "min" requires 2 arguments, but only 1 given min(,,) error--> macro "min" passed 3 arguments, but takes just 2 *************** their corresponding actual arguments. *** 1308,1317 ****  File: cpp.info, Node: Stringification, Next: Concatenation, Prev: Macro Arguments, Up: Macros ! 3.4 Stringification ! =================== ! Sometimes you may want to convert a macro argument into a string constant. Parameters are not replaced inside string constants, but you can use the `#' preprocessing operator instead. When a macro parameter is used with a leading `#', the preprocessor replaces it with the --- 1306,1315 ----  File: cpp.info, Node: Stringification, Next: Concatenation, Prev: Macro Arguments, Up: Macros ! Stringification ! =============== ! Sometimes you may want to convert a macro argument into a string constant. Parameters are not replaced inside string constants, but you can use the `#' preprocessing operator instead. When a macro parameter is used with a leading `#', the preprocessor replaces it with the *************** argument, it has already been macro-expa *** 1386,1397 ****  File: cpp.info, Node: Concatenation, Next: Variadic Macros, Prev: Stringification, Up: Macros ! 3.5 Concatenation ! ================= ! It is often useful to merge two tokens into one while expanding macros. ! This is called "token pasting" or "token concatenation". The `##' ! preprocessing operator performs token pasting. When a macro is expanded, the two tokens on either side of each `##' operator are combined into a single token, which then replaces the `##' and the two original tokens in the macro expansion. Usually both will be --- 1384,1395 ----  File: cpp.info, Node: Concatenation, Next: Variadic Macros, Prev: Stringification, Up: Macros ! Concatenation ! ============= ! It is often useful to merge two tokens into one while expanding ! macros. This is called "token pasting" or "token concatenation". The ! `##' preprocessing operator performs token pasting. When a macro is expanded, the two tokens on either side of each `##' operator are combined into a single token, which then replaces the `##' and the two original tokens in the macro expansion. Usually both will be *************** as follows: *** 1433,1439 **** char *name; void (*function) (void); }; ! struct command commands[] = { { "quit", quit_command }, --- 1431,1437 ---- char *name; void (*function) (void); }; ! struct command commands[] = { { "quit", quit_command }, *************** and the function name by concatenating t *** 1449,1455 **** Here is how it is done: #define COMMAND(NAME) { #NAME, NAME ## _command } ! struct command commands[] = { COMMAND (quit), --- 1447,1453 ---- Here is how it is done: #define COMMAND(NAME) { #NAME, NAME ## _command } ! struct command commands[] = { COMMAND (quit), *************** Here is how it is done: *** 1460,1471 ****  File: cpp.info, Node: Variadic Macros, Next: Predefined Macros, Prev: Concatenation, Up: Macros ! 3.6 Variadic Macros ! =================== ! A macro can be declared to accept a variable number of arguments much as ! a function can. The syntax for defining the macro is similar to that of ! a function. Here is an example: #define eprintf(...) fprintf (stderr, __VA_ARGS__) --- 1458,1469 ----  File: cpp.info, Node: Variadic Macros, Next: Predefined Macros, Prev: Concatenation, Up: Macros ! Variadic Macros ! =============== ! A macro can be declared to accept a variable number of arguments ! much as a function can. The syntax for defining the macro is similar ! to that of a function. Here is an example: #define eprintf(...) fprintf (stderr, __VA_ARGS__) *************** comes immediately before it: *** 1565,1574 ****  File: cpp.info, Node: Predefined Macros, Next: Undefining and Redefining Macros, Prev: Variadic Macros, Up: Macros ! 3.7 Predefined Macros ! ===================== ! Several object-like macros are predefined; you use them without supplying their definitions. They fall into three classes: standard, common, and system-specific. --- 1563,1572 ----  File: cpp.info, Node: Predefined Macros, Next: Undefining and Redefining Macros, Prev: Variadic Macros, Up: Macros ! Predefined Macros ! ================= ! Several object-like macros are predefined; you use them without supplying their definitions. They fall into three classes: standard, common, and system-specific. *************** like predefined macros, but you cannot u *** 1585,1597 ****  File: cpp.info, Node: Standard Predefined Macros, Next: Common Predefined Macros, Up: Predefined Macros ! 3.7.1 Standard Predefined Macros ! -------------------------------- ! The standard predefined macros are specified by the relevant language ! standards, so they are available with all compilers that implement ! those standards. Older compilers may not provide all of them. Their ! names all start with double underscores. `__FILE__' This macro expands to the name of the current input file, in the --- 1583,1595 ----  File: cpp.info, Node: Standard Predefined Macros, Next: Common Predefined Macros, Up: Predefined Macros ! Standard Predefined Macros ! -------------------------- ! The standard predefined macros are specified by the relevant ! language standards, so they are available with all compilers that ! implement those standards. Older compilers may not provide all of ! them. Their names all start with double underscores. `__FILE__' This macro expands to the name of the current input file, in the *************** with `__FILE__' and `__LINE__', though. *** 1712,1727 **** This macro is defined with value 1 when preprocessing assembly language. -  File: cpp.info, Node: Common Predefined Macros, Next: System-specific Predefined Macros, Prev: Standard Predefined Macros, Up: Predefined Macros ! 3.7.2 Common Predefined Macros ! ------------------------------ ! The common predefined macros are GNU C extensions. They are available ! with the same meanings regardless of the machine or operating system on ! which you are using GNU C. Their names all start with double underscores. `__GNUC__' --- 1710,1724 ---- This macro is defined with value 1 when preprocessing assembly language.  File: cpp.info, Node: Common Predefined Macros, Next: System-specific Predefined Macros, Prev: Standard Predefined Macros, Up: Predefined Macros ! Common Predefined Macros ! ------------------------ ! The common predefined macros are GNU C extensions. They are ! available with the same meanings regardless of the machine or operating ! system on which you are using GNU C. Their names all start with double underscores. `__GNUC__' *************** underscores. *** 1895,1908 ****  File: cpp.info, Node: System-specific Predefined Macros, Next: C++ Named Operators, Prev: Common Predefined Macros, Up: Predefined Macros ! 3.7.3 System-specific Predefined Macros ! --------------------------------------- ! The C preprocessor normally predefines several macros that indicate what ! type of system and machine is in use. They are obviously different on ! each target supported by GCC. This manual, being for all systems and ! machines, cannot tell you what their names are, but you can use `cpp ! -dM' to see them all. *Note Invocation::. All system-specific predefined macros expand to the constant 1, so you can test them with either `#ifdef' or `#if'. --- 1892,1905 ----  File: cpp.info, Node: System-specific Predefined Macros, Next: C++ Named Operators, Prev: Common Predefined Macros, Up: Predefined Macros ! System-specific Predefined Macros ! --------------------------------- ! The C preprocessor normally predefines several macros that indicate ! what type of system and machine is in use. They are obviously ! different on each target supported by GCC. This manual, being for all ! systems and machines, cannot tell you what their names are, but you can ! use `cpp -dM' to see them all. *Note Invocation::. All system-specific predefined macros expand to the constant 1, so you can test them with either `#ifdef' or `#if'. *************** check specifically for features you need *** 1933,1948 ****  File: cpp.info, Node: C++ Named Operators, Prev: System-specific Predefined Macros, Up: Predefined Macros ! 3.7.4 C++ Named Operators ! ------------------------- ! In C++, there are eleven keywords which are simply alternate spellings ! of operators normally written with punctuation. These keywords are ! treated as such even in the preprocessor. They function as operators in ! `#if', and they cannot be defined as macros or poisoned. In C, you can ! request that those keywords take their C++ meaning by including ! `iso646.h'. That header defines each one as a normal object-like macro ! expanding to the appropriate punctuator. These are the named operators and their corresponding punctuators: --- 1930,1945 ----  File: cpp.info, Node: C++ Named Operators, Prev: System-specific Predefined Macros, Up: Predefined Macros ! C++ Named Operators ! ------------------- ! In C++, there are eleven keywords which are simply alternate ! spellings of operators normally written with punctuation. These ! keywords are treated as such even in the preprocessor. They function ! as operators in `#if', and they cannot be defined as macros or ! poisoned. In C, you can request that those keywords take their C++ ! meaning by including `iso646.h'. That header defines each one as a ! normal object-like macro expanding to the appropriate punctuator. These are the named operators and their corresponding punctuators: *************** Named Operator Punctuator *** 1962,1973 ****  File: cpp.info, Node: Undefining and Redefining Macros, Next: Directives Within Macro Arguments, Prev: Predefined Macros, Up: Macros ! 3.8 Undefining and Redefining Macros ! ==================================== ! If a macro ceases to be useful, it may be "undefined" with the `#undef' ! directive. `#undef' takes a single argument, the name of the macro to ! undefine. You use the bare macro name, even if the macro is function-like. It is an error if anything appears on the line after the macro name. `#undef' has no effect if the name is not a macro. --- 1959,1970 ----  File: cpp.info, Node: Undefining and Redefining Macros, Next: Directives Within Macro Arguments, Prev: Predefined Macros, Up: Macros ! Undefining and Redefining Macros ! ================================ ! If a macro ceases to be useful, it may be "undefined" with the ! `#undef' directive. `#undef' takes a single argument, the name of the ! macro to undefine. You use the bare macro name, even if the macro is function-like. It is an error if anything appears on the line after the macro name. `#undef' has no effect if the name is not a macro. *************** These definitions are effectively the sa *** 1997,2003 **** #define FOUR (2 + 2) #define FOUR (2 + 2) #define FOUR (2 /* two */ + 2) ! but these are not: #define FOUR (2 + 2) #define FOUR ( 2+2 ) #define FOUR (2 * 2) --- 1994,2001 ---- #define FOUR (2 + 2) #define FOUR (2 + 2) #define FOUR (2 /* two */ + 2) ! ! but these are not: #define FOUR (2 + 2) #define FOUR ( 2+2 ) #define FOUR (2 * 2) *************** preprocessor will only complain if the d *** 2013,2024 ****  File: cpp.info, Node: Directives Within Macro Arguments, Next: Macro Pitfalls, Prev: Undefining and Redefining Macros, Up: Macros ! 3.9 Directives Within Macro Arguments ! ===================================== ! Occasionally it is convenient to use preprocessor directives within the ! arguments of a macro. The C and C++ standards declare that behavior in ! these cases is undefined. Versions of CPP prior to 3.2 would reject such constructs with an error message. This was the only syntactic difference between normal --- 2011,2022 ----  File: cpp.info, Node: Directives Within Macro Arguments, Next: Macro Pitfalls, Prev: Undefining and Redefining Macros, Up: Macros ! Directives Within Macro Arguments ! ================================= ! Occasionally it is convenient to use preprocessor directives within ! the arguments of a macro. The C and C++ standards declare that ! behavior in these cases is undefined. Versions of CPP prior to 3.2 would reject such constructs with an error message. This was the only syntactic difference between normal *************** with the semantics described above. *** 2053,2063 ****  File: cpp.info, Node: Macro Pitfalls, Prev: Directives Within Macro Arguments, Up: Macros ! 3.10 Macro Pitfalls ! =================== ! In this section we describe some special rules that apply to macros and ! macro expansion, and point out certain cases in which the rules have counter-intuitive consequences that you must watch out for. * Menu: --- 2051,2061 ----  File: cpp.info, Node: Macro Pitfalls, Prev: Directives Within Macro Arguments, Up: Macros ! Macro Pitfalls ! ============== ! In this section we describe some special rules that apply to macros ! and macro expansion, and point out certain cases in which the rules have counter-intuitive consequences that you must watch out for. * Menu: *************** counter-intuitive consequences that you *** 2073,2082 ****  File: cpp.info, Node: Misnesting, Next: Operator Precedence Problems, Up: Macro Pitfalls ! 3.10.1 Misnesting ! ----------------- ! When a macro is called with arguments, the arguments are substituted into the macro body and the result is checked, together with the rest of the input file, for more macro calls. It is possible to piece together a macro call coming partially from the macro body and partially from the --- 2071,2080 ----  File: cpp.info, Node: Misnesting, Next: Operator Precedence Problems, Up: Macro Pitfalls ! Misnesting ! ---------- ! When a macro is called with arguments, the arguments are substituted into the macro body and the result is checked, together with the rest of the input file, for more macro calls. It is possible to piece together a macro call coming partially from the macro body and partially from the *************** and should be avoided. *** 2105,2118 ****  File: cpp.info, Node: Operator Precedence Problems, Next: Swallowing the Semicolon, Prev: Misnesting, Up: Macro Pitfalls ! 3.10.2 Operator Precedence Problems ! ----------------------------------- ! You may have noticed that in most of the macro definition examples shown ! above, each occurrence of a macro argument name had parentheses around ! it. In addition, another pair of parentheses usually surround the ! entire macro definition. Here is why it is best to write macros that ! way. Suppose you define a macro as follows, --- 2103,2116 ----  File: cpp.info, Node: Operator Precedence Problems, Next: Swallowing the Semicolon, Prev: Misnesting, Up: Macro Pitfalls ! Operator Precedence Problems ! ---------------------------- ! You may have noticed that in most of the macro definition examples ! shown above, each occurrence of a macro argument name had parentheses ! around it. In addition, another pair of parentheses usually surround ! the entire macro definition. Here is why it is best to write macros ! that way. Suppose you define a macro as follows, *************** Here, then, is the recommended way to de *** 2159,2168 ****  File: cpp.info, Node: Swallowing the Semicolon, Next: Duplication of Side Effects, Prev: Operator Precedence Problems, Up: Macro Pitfalls ! 3.10.3 Swallowing the Semicolon ! ------------------------------- ! Often it is desirable to define a macro that expands into a compound statement. Consider, for example, the following macro, that advances a pointer (the argument `p' says where to find it) across whitespace characters: --- 2157,2166 ----  File: cpp.info, Node: Swallowing the Semicolon, Next: Duplication of Side Effects, Prev: Operator Precedence Problems, Up: Macro Pitfalls ! Swallowing the Semicolon ! ------------------------ ! Often it is desirable to define a macro that expands into a compound statement. Consider, for example, the following macro, that advances a pointer (the argument `p' says where to find it) across whitespace characters: *************** generate no extra code for it. *** 2215,2224 ****  File: cpp.info, Node: Duplication of Side Effects, Next: Self-Referential Macros, Prev: Swallowing the Semicolon, Up: Macro Pitfalls ! 3.10.4 Duplication of Side Effects ! ---------------------------------- ! Many C programs define a macro `min', for "minimum", like this: #define min(X, Y) ((X) < (Y) ? (X) : (Y)) --- 2213,2222 ----  File: cpp.info, Node: Duplication of Side Effects, Next: Self-Referential Macros, Prev: Swallowing the Semicolon, Up: Macro Pitfalls ! Duplication of Side Effects ! --------------------------- ! Many C programs define a macro `min', for "minimum", like this: #define min(X, Y) ((X) < (Y) ? (X) : (Y)) *************** variable in `min': *** 2274,2288 ****  File: cpp.info, Node: Self-Referential Macros, Next: Argument Prescan, Prev: Duplication of Side Effects, Up: Macro Pitfalls ! 3.10.5 Self-Referential Macros ! ------------------------------ ! A "self-referential" macro is one whose name appears in its definition. ! Recall that all macro definitions are rescanned for more macros to ! replace. If the self-reference were considered a use of the macro, it ! would produce an infinitely large expansion. To prevent this, the ! self-reference is not considered a macro call. It is passed into the ! preprocessor output unchanged. Consider an example: #define foo (4 + foo) --- 2272,2286 ----  File: cpp.info, Node: Self-Referential Macros, Next: Argument Prescan, Prev: Duplication of Side Effects, Up: Macro Pitfalls ! Self-Referential Macros ! ----------------------- ! A "self-referential" macro is one whose name appears in its ! definition. Recall that all macro definitions are rescanned for more ! macros to replace. If the self-reference were considered a use of the ! macro, it would produce an infinitely large expansion. To prevent this, ! the self-reference is not considered a macro call. It is passed into ! the preprocessor output unchanged. Consider an example: #define foo (4 + foo) *************** then `x' and `y' expand as follows: *** 2325,2331 **** x ==> (4 + y) ==> (4 + (2 * x)) ! y ==> (2 * x) ==> (2 * (4 + y)) --- 2323,2329 ---- x ==> (4 + y) ==> (4 + (2 * x)) ! y ==> (2 * x) ==> (2 * (4 + y)) *************** macro, but not when it indirectly appear *** 2335,2344 ****  File: cpp.info, Node: Argument Prescan, Next: Newlines in Arguments, Prev: Self-Referential Macros, Up: Macro Pitfalls ! 3.10.6 Argument Prescan ! ----------------------- ! Macro arguments are completely macro-expanded before they are substituted into a macro body, unless they are stringified or pasted with other tokens. After substitution, the entire macro body, including the substituted arguments, is scanned again for macros to be expanded. --- 2333,2342 ----  File: cpp.info, Node: Argument Prescan, Next: Newlines in Arguments, Prev: Self-Referential Macros, Up: Macro Pitfalls ! Argument Prescan ! ---------------- ! Macro arguments are completely macro-expanded before they are substituted into a macro body, unless they are stringified or pasted with other tokens. After substitution, the entire macro body, including the substituted arguments, is scanned again for macros to be expanded. *************** cases: *** 2422,2431 ****  File: cpp.info, Node: Newlines in Arguments, Prev: Argument Prescan, Up: Macro Pitfalls ! 3.10.7 Newlines in Arguments ! ---------------------------- ! The invocation of a function-like macro can extend over many logical lines. However, in the present implementation, the entire expansion comes out on one line. Thus line numbers emitted by the compiler or debugger refer to the line the invocation started on, which might be --- 2420,2429 ----  File: cpp.info, Node: Newlines in Arguments, Prev: Argument Prescan, Up: Macro Pitfalls ! Newlines in Arguments ! --------------------- ! The invocation of a function-like macro can extend over many logical lines. However, in the present implementation, the entire expansion comes out on one line. Thus line numbers emitted by the compiler or debugger refer to the line the invocation started on, which might be *************** different to the line containing the arg *** 2434,2440 **** Here is an example illustrating this: #define ignore_second_arg(a,b,c) a; c ! ignore_second_arg (foo (), ignored (), syntax error); --- 2432,2438 ---- Here is an example illustrating this: #define ignore_second_arg(a,b,c) a; c ! ignore_second_arg (foo (), ignored (), syntax error); *************** though the problematic code comes from l *** 2448,2457 ****  File: cpp.info, Node: Conditionals, Next: Diagnostics, Prev: Macros, Up: Top ! 4 Conditionals ! ************** ! A "conditional" is a directive that instructs the preprocessor to select whether or not to include a chunk of code in the final token stream passed to the compiler. Preprocessor conditionals can test arithmetic expressions, or whether a name is defined as a macro, or both --- 2446,2455 ----  File: cpp.info, Node: Conditionals, Next: Diagnostics, Prev: Macros, Up: Top ! Conditionals ! ************ ! A "conditional" is a directive that instructs the preprocessor to select whether or not to include a chunk of code in the final token stream passed to the compiler. Preprocessor conditionals can test arithmetic expressions, or whether a name is defined as a macro, or both *************** not optimizing. Older versions did it o *** 2489,2498 ****  File: cpp.info, Node: Conditional Uses, Next: Conditional Syntax, Up: Conditionals ! 4.1 Conditional Uses ! ==================== ! There are three general reasons to use a conditional. * A program may need to use different code depending on the machine or operating system it is to run on. In some cases the code for --- 2487,2496 ----  File: cpp.info, Node: Conditional Uses, Next: Conditional Syntax, Up: Conditionals ! Conditional Uses ! ================ ! There are three general reasons to use a conditional. * A program may need to use different code depending on the machine or operating system it is to run on. In some cases the code for *************** conditionals. *** 2520,2529 ****  File: cpp.info, Node: Conditional Syntax, Next: Deleted Code, Prev: Conditional Uses, Up: Conditionals ! 4.2 Conditional Syntax ! ====================== ! A conditional in the C preprocessor begins with a "conditional directive": `#if', `#ifdef' or `#ifndef'. * Menu: --- 2518,2527 ----  File: cpp.info, Node: Conditional Syntax, Next: Deleted Code, Prev: Conditional Uses, Up: Conditionals ! Conditional Syntax ! ================== ! A conditional in the C preprocessor begins with a "conditional directive": `#if', `#ifdef' or `#ifndef'. * Menu: *************** directive": `#if', `#ifdef' or `#ifndef' *** 2537,2551 ****  File: cpp.info, Node: Ifdef, Next: If, Up: Conditional Syntax ! 4.2.1 Ifdef ! ----------- ! The simplest sort of conditional is #ifdef MACRO ! CONTROLLED TEXT ! #endif /* MACRO */ This block is called a "conditional group". CONTROLLED TEXT will be --- 2535,2549 ----  File: cpp.info, Node: Ifdef, Next: If, Up: Conditional Syntax ! Ifdef ! ----- ! The simplest sort of conditional is #ifdef MACRO ! CONTROLLED TEXT ! #endif /* MACRO */ This block is called a "conditional group". CONTROLLED TEXT will be *************** Here are some samples. *** 2609,2624 ****  File: cpp.info, Node: If, Next: Defined, Prev: Ifdef, Up: Conditional Syntax ! 4.2.2 If ! -------- ! The `#if' directive allows you to test the value of an arithmetic expression, rather than the mere existence of one macro. Its syntax is #if EXPRESSION ! CONTROLLED TEXT ! #endif /* EXPRESSION */ EXPRESSION is a C expression of integer type, subject to stringent --- 2607,2622 ----  File: cpp.info, Node: If, Next: Defined, Prev: Ifdef, Up: Conditional Syntax ! If ! -- ! The `#if' directive allows you to test the value of an arithmetic expression, rather than the mere existence of one macro. Its syntax is #if EXPRESSION ! CONTROLLED TEXT ! #endif /* EXPRESSION */ EXPRESSION is a C expression of integer type, subject to stringent *************** included; otherwise it is skipped. *** 2667,2680 ****  File: cpp.info, Node: Defined, Next: Else, Prev: If, Up: Conditional Syntax ! 4.2.3 Defined ! ------------- ! The special operator `defined' is used in `#if' and `#elif' expressions ! to test whether a certain name is defined as a macro. `defined NAME' ! and `defined (NAME)' are both expressions whose value is 1 if NAME is ! defined as a macro at the current point in the program, and 0 ! otherwise. Thus, `#if defined MACRO' is precisely equivalent to `#ifdef MACRO'. `defined' is useful when you wish to test more than one macro for --- 2665,2678 ----  File: cpp.info, Node: Defined, Next: Else, Prev: If, Up: Conditional Syntax ! Defined ! ------- ! The special operator `defined' is used in `#if' and `#elif' ! expressions to test whether a certain name is defined as a macro. ! `defined NAME' and `defined (NAME)' are both expressions whose value is ! 1 if NAME is defined as a macro at the current point in the program, ! and 0 otherwise. Thus, `#if defined MACRO' is precisely equivalent to `#ifdef MACRO'. `defined' is useful when you wish to test more than one macro for *************** wherever your code uses this feature if *** 2702,2711 ****  File: cpp.info, Node: Else, Next: Elif, Prev: Defined, Up: Conditional Syntax ! 4.2.4 Else ! ---------- ! The `#else' directive can be added to a conditional to provide alternative text to be used if the condition fails. This is what it looks like: --- 2700,2709 ----  File: cpp.info, Node: Else, Next: Elif, Prev: Defined, Up: Conditional Syntax ! Else ! ---- ! The `#else' directive can be added to a conditional to provide alternative text to be used if the condition fails. This is what it looks like: *************** TEXT-IF-FALSE is skipped. If EXPRESSION *** 2723,2733 ****  File: cpp.info, Node: Elif, Prev: Else, Up: Conditional Syntax ! 4.2.5 Elif ! ---------- ! One common case of nested conditionals is used to check for more than ! two possible alternatives. For example, you might have #if X == 1 ... --- 2721,2731 ----  File: cpp.info, Node: Elif, Prev: Else, Up: Conditional Syntax ! Elif ! ---- ! One common case of nested conditionals is used to check for more ! than two possible alternatives. For example, you might have #if X == 1 ... *************** within it have failed. *** 2768,2778 ****  File: cpp.info, Node: Deleted Code, Prev: Conditional Syntax, Up: Conditionals ! 4.3 Deleted Code ! ================ ! If you replace or delete a part of the program but want to keep the old ! code around for future reference, you often cannot simply comment it out. Block comments do not nest, so the first comment inside the old code will end the commenting-out. The probable result is a flood of syntax errors. --- 2766,2776 ----  File: cpp.info, Node: Deleted Code, Prev: Conditional Syntax, Up: Conditionals ! Deleted Code ! ============ ! If you replace or delete a part of the program but want to keep the ! old code around for future reference, you often cannot simply comment it out. Block comments do not nest, so the first comment inside the old code will end the commenting-out. The probable result is a flood of syntax errors. *************** apostrophes). These confuse `#if 0'. T *** 2796,2807 ****  File: cpp.info, Node: Diagnostics, Next: Line Control, Prev: Conditionals, Up: Top ! 5 Diagnostics ! ************* ! The directive `#error' causes the preprocessor to report a fatal error. ! The tokens forming the rest of the line following `#error' are used as ! the error message. You would use `#error' inside of a conditional that detects a combination of parameters which you know the program does not properly --- 2794,2805 ----  File: cpp.info, Node: Diagnostics, Next: Line Control, Prev: Conditionals, Up: Top ! Diagnostics ! *********** ! The directive `#error' causes the preprocessor to report a fatal ! error. The tokens forming the rest of the line following `#error' are ! used as the error message. You would use `#error' inside of a conditional that detects a combination of parameters which you know the program does not properly *************** problems with apostrophes and the like. *** 2836,2849 ****  File: cpp.info, Node: Line Control, Next: Pragmas, Prev: Diagnostics, Up: Top ! 6 Line Control ! ************** ! The C preprocessor informs the C compiler of the location in your source ! code where each token came from. Presently, this is just the file name ! and line number. All the tokens resulting from macro expansion are ! reported as having appeared on the line of the source file where the ! outermost macro was used. We intend to be more accurate in the future. If you write a program which generates source code, such as the `bison' parser generator, you may want to adjust the preprocessor's --- 2834,2848 ----  File: cpp.info, Node: Line Control, Next: Pragmas, Prev: Diagnostics, Up: Top ! Line Control ! ************ ! The C preprocessor informs the C compiler of the location in your ! source code where each token came from. Presently, this is just the ! file name and line number. All the tokens resulting from macro ! expansion are reported as having appeared on the line of the source ! file where the outermost macro was used. We intend to be more accurate ! in the future. If you write a program which generates source code, such as the `bison' parser generator, you may want to adjust the preprocessor's *************** files, which is difficult and error-pron *** 2914,2924 ****  File: cpp.info, Node: Pragmas, Next: Other Directives, Prev: Line Control, Up: Top ! 7 Pragmas ! ********* ! The `#pragma' directive is the method specified by the C standard for ! providing additional information to the compiler, beyond what is conveyed in the language itself. Three forms of this directive (commonly known as "pragmas") are specified by the 1999 C standard. A C compiler is free to attach any meaning it likes to other pragmas. --- 2913,2923 ----  File: cpp.info, Node: Pragmas, Next: Other Directives, Prev: Line Control, Up: Top ! Pragmas ! ******* ! The `#pragma' directive is the method specified by the C standard ! for providing additional information to the compiler, beyond what is conveyed in the language itself. Three forms of this directive (commonly known as "pragmas") are specified by the 1999 C standard. A C compiler is free to attach any meaning it likes to other pragmas. *************** compilers. They are documented in the G *** 3008,3023 **** the current file to be treated as if it came from a system header. *Note System Headers::. -  File: cpp.info, Node: Other Directives, Next: Preprocessor Output, Prev: Pragmas, Up: Top ! 8 Other Directives ! ****************** ! The `#ident' directive takes one argument, a string constant. On some ! systems, that string constant is copied into a special segment of the ! object file. On other systems, the directive is ignored. This directive is not part of the C standard, but it is not an official GNU extension either. We believe it came from System V. --- 3007,3021 ---- the current file to be treated as if it came from a system header. *Note System Headers::.  File: cpp.info, Node: Other Directives, Next: Preprocessor Output, Prev: Pragmas, Up: Top ! Other Directives ! **************** ! The `#ident' directive takes one argument, a string constant. On ! some systems, that string constant is copied into a special segment of ! the object file. On other systems, the directive is ignored. This directive is not part of the C standard, but it is not an official GNU extension either. We believe it came from System V. *************** Supposedly some old C programs contain s *** 3038,3047 ****  File: cpp.info, Node: Preprocessor Output, Next: Traditional Mode, Prev: Other Directives, Up: Top ! 9 Preprocessor Output ! ********************* ! When the C preprocessor is used with the C, C++, or Objective-C compilers, it is integrated into the compiler and communicates a stream of binary tokens directly to the compiler's parser. However, it can also be used in the more conventional standalone mode, where it produces --- 3036,3045 ----  File: cpp.info, Node: Preprocessor Output, Next: Traditional Mode, Prev: Other Directives, Up: Top ! Preprocessor Output ! ******************* ! When the C preprocessor is used with the C, C++, or Objective-C compilers, it is integrated into the compiler and communicates a stream of binary tokens directly to the compiler's parser. However, it can also be used in the more conventional standalone mode, where it produces *************** be inserted between the `#' and the dire *** 3111,3121 ****  File: cpp.info, Node: Traditional Mode, Next: Implementation Details, Prev: Preprocessor Output, Up: Top ! 10 Traditional Mode ! ******************* ! Traditional (pre-standard) C preprocessing is rather different from the ! preprocessing specified by the standard. When GCC is given the `-traditional-cpp' option, it attempts to emulate a traditional preprocessor. --- 3109,3119 ----  File: cpp.info, Node: Traditional Mode, Next: Implementation Details, Prev: Preprocessor Output, Up: Top ! Traditional Mode ! **************** ! Traditional (pre-standard) C preprocessing is rather different from ! the preprocessing specified by the standard. When GCC is given the `-traditional-cpp' option, it attempts to emulate a traditional preprocessor. *************** that actually matter. *** 3140,3149 ****  File: cpp.info, Node: Traditional lexical analysis, Next: Traditional macros, Up: Traditional Mode ! 10.1 Traditional lexical analysis ! ================================= ! The traditional preprocessor does not decompose its input into tokens the same way a standards-conforming preprocessor does. The input is simply treated as a stream of text with minimal internal form. --- 3138,3147 ----  File: cpp.info, Node: Traditional lexical analysis, Next: Traditional macros, Up: Traditional Mode ! Traditional lexical analysis ! ============================ ! The traditional preprocessor does not decompose its input into tokens the same way a standards-conforming preprocessor does. The input is simply treated as a stream of text with minimal internal form. *************** be escaped with a backslash to prevent t *** 3202,3211 ****  File: cpp.info, Node: Traditional macros, Next: Traditional miscellany, Prev: Traditional lexical analysis, Up: Traditional Mode ! 10.2 Traditional macros ! ======================= ! The major difference between traditional and ISO macros is that the former expand to text rather than to a token sequence. CPP removes all leading and trailing horizontal whitespace from a macro's replacement text before storing it, but preserves the form of internal whitespace. --- 3200,3209 ----  File: cpp.info, Node: Traditional macros, Next: Traditional miscellany, Prev: Traditional lexical analysis, Up: Traditional Mode ! Traditional macros ! ================== ! The major difference between traditional and ISO macros is that the former expand to text rather than to a token sequence. CPP removes all leading and trailing horizontal whitespace from a macro's replacement text before storing it, but preserves the form of internal whitespace. *************** pasting. *** 3288,3297 ****  File: cpp.info, Node: Traditional miscellany, Next: Traditional warnings, Prev: Traditional macros, Up: Traditional Mode ! 10.3 Traditional miscellany ! =========================== ! Here are some things to be aware of when using the traditional preprocessor. * Preprocessing directives are recognized only when their leading --- 3286,3295 ----  File: cpp.info, Node: Traditional miscellany, Next: Traditional warnings, Prev: Traditional macros, Up: Traditional Mode ! Traditional miscellany ! ====================== ! Here are some things to be aware of when using the traditional preprocessor. * Preprocessing directives are recognized only when their leading *************** preprocessor. *** 3316,3325 ****  File: cpp.info, Node: Traditional warnings, Prev: Traditional miscellany, Up: Traditional Mode ! 10.4 Traditional warnings ! ========================= ! You can request warnings about features that did not exist, or worked differently, in traditional C with the `-Wtraditional' option. GCC does not warn about features of ISO C which you must use when you are using a conforming compiler, such as the `#' and `##' operators. --- 3314,3323 ----  File: cpp.info, Node: Traditional warnings, Prev: Traditional miscellany, Up: Traditional Mode ! Traditional warnings ! ==================== ! You can request warnings about features that did not exist, or worked differently, in traditional C with the `-Wtraditional' option. GCC does not warn about features of ISO C which you must use when you are using a conforming compiler, such as the `#' and `##' operators. *************** using a conforming compiler, such as the *** 3362,3371 ****  File: cpp.info, Node: Implementation Details, Next: Invocation, Prev: Traditional Mode, Up: Top ! 11 Implementation Details ! ************************* ! Here we document details of how the preprocessor's implementation affects its user-visible behavior. You should try to avoid undue reliance on behavior described here, as it is possible that it will change subtly in future implementations. --- 3360,3369 ----  File: cpp.info, Node: Implementation Details, Next: Invocation, Prev: Traditional Mode, Up: Top ! Implementation Details ! ********************** ! Here we document details of how the preprocessor's implementation affects its user-visible behavior. You should try to avoid undue reliance on behavior described here, as it is possible that it will change subtly in future implementations. *************** versions of CPP. *** 3383,3395 ****  File: cpp.info, Node: Implementation-defined behavior, Next: Implementation limits, Up: Implementation Details ! 11.1 Implementation-defined behavior ! ==================================== ! This is how CPP behaves in all the cases which the C standard describes ! as "implementation-defined". This term means that the implementation ! is free to do what it likes, but must document its choice and stick to ! it. * The mapping of physical source file multi-byte characters to the execution character set. --- 3381,3393 ----  File: cpp.info, Node: Implementation-defined behavior, Next: Implementation limits, Up: Implementation Details ! Implementation-defined behavior ! =============================== ! This is how CPP behaves in all the cases which the C standard ! describes as "implementation-defined". This term means that the ! implementation is free to do what it likes, but must document its choice ! and stick to it. * The mapping of physical source file multi-byte characters to the execution character set. *************** it. *** 3472,3481 ****  File: cpp.info, Node: Implementation limits, Next: Obsolete Features, Prev: Implementation-defined behavior, Up: Implementation Details ! 11.2 Implementation limits ! ========================== ! CPP has a small number of internal limits. This section lists the limits which the C standard requires to be no lower than some minimum, and all the others known. It is intended that there should be as few limits as possible. If you encounter an undocumented or inconvenient --- 3470,3479 ----  File: cpp.info, Node: Implementation limits, Next: Obsolete Features, Prev: Implementation-defined behavior, Up: Implementation Details ! Implementation limits ! ===================== ! CPP has a small number of internal limits. This section lists the limits which the C standard requires to be no lower than some minimum, and all the others known. It is intended that there should be as few limits as possible. If you encounter an undocumented or inconvenient *************** consumed by other processes on the same *** 3538,3549 ****  File: cpp.info, Node: Obsolete Features, Next: Differences from previous versions, Prev: Implementation limits, Up: Implementation Details ! 11.3 Obsolete Features ! ====================== ! CPP has a number of features which are present mainly for compatibility ! with older programs. We discourage their use in new code. In some ! cases, we plan to remove the feature in a future version of GCC. * Menu: --- 3536,3547 ----  File: cpp.info, Node: Obsolete Features, Next: Differences from previous versions, Prev: Implementation limits, Up: Implementation Details ! Obsolete Features ! ================= ! CPP has a number of features which are present mainly for ! compatibility with older programs. We discourage their use in new code. ! In some cases, we plan to remove the feature in a future version of GCC. * Menu: *************** cases, we plan to remove the feature in *** 3553,3562 ****  File: cpp.info, Node: Assertions, Next: Obsolete once-only headers, Up: Obsolete Features ! 11.3.1 Assertions ! ----------------- ! "Assertions" are a deprecated alternative to macros in writing conditionals to test what sort of computer or system the compiled program will run on. Assertions are usually predefined, but you can define them with preprocessing directives or command-line options. --- 3551,3560 ----  File: cpp.info, Node: Assertions, Next: Obsolete once-only headers, Up: Obsolete Features ! Assertions ! ---------- ! "Assertions" are a deprecated alternative to macros in writing conditionals to test what sort of computer or system the compiled program will run on. Assertions are usually predefined, but you can define them with preprocessing directives or command-line options. *************** effect. *** 3619,3628 ****  File: cpp.info, Node: Obsolete once-only headers, Prev: Assertions, Up: Obsolete Features ! 11.3.2 Obsolete once-only headers ! --------------------------------- ! CPP supports two more ways of indicating that a header file should be read only once. Neither one is as portable as a wrapper `#ifndef', and we recommend you do not use them in new programs. --- 3617,3626 ----  File: cpp.info, Node: Obsolete once-only headers, Prev: Assertions, Up: Obsolete Features ! Obsolete once-only headers ! -------------------------- ! CPP supports two more ways of indicating that a header file should be read only once. Neither one is as portable as a wrapper `#ifndef', and we recommend you do not use them in new programs. *************** a portable program. *** 3657,3668 ****  File: cpp.info, Node: Differences from previous versions, Prev: Obsolete Features, Up: Implementation Details ! 11.4 Differences from previous versions ! ======================================= ! This section details behavior which has changed from previous versions ! of CPP. We do not plan to change it again in the near future, but we ! do not promise not to, either. The "previous versions" discussed here are 2.95 and before. The behavior of GCC 3.0 is mostly the same as the behavior of the widely --- 3655,3666 ----  File: cpp.info, Node: Differences from previous versions, Prev: Obsolete Features, Up: Implementation Details ! Differences from previous versions ! ================================== ! This section details behavior which has changed from previous ! versions of CPP. We do not plan to change it again in the near future, ! but we do not promise not to, either. The "previous versions" discussed here are 2.95 and before. The behavior of GCC 3.0 is mostly the same as the behavior of the widely *************** they generally represent bugs in the sna *** 3744,3758 ****  File: cpp.info, Node: Invocation, Next: Environment Variables, Prev: Implementation Details, Up: Top ! 12 Invocation ! ************* ! Most often when you use the C preprocessor you will not have to invoke ! it explicitly: the C compiler will do so automatically. However, the ! preprocessor is sometimes useful on its own. All the options listed ! here are also acceptable to the C compiler and have the same meaning, ! except that the C compiler has different rules for specifying the output ! file. *Note:* Whether you use the preprocessor by way of `gcc' or `cpp', the "compiler driver" is run first. This program's purpose is to --- 3742,3756 ----  File: cpp.info, Node: Invocation, Next: Environment Variables, Prev: Implementation Details, Up: Top ! Invocation ! ********** ! Most often when you use the C preprocessor you will not have to ! invoke it explicitly: the C compiler will do so automatically. ! However, the preprocessor is sometimes useful on its own. All the ! options listed here are also acceptable to the C compiler and have the ! same meaning, except that the C compiler has different rules for ! specifying the output file. *Note:* Whether you use the preprocessor by way of `gcc' or `cpp', the "compiler driver" is run first. This program's purpose is to *************** single-letter options may _not_ be group *** 3984,3990 **** This is typical output: test.o: test.c test.h ! test.h: `-MT TARGET' --- 3982,3988 ---- This is typical output: test.o: test.c test.h ! test.h: `-MT TARGET' *************** single-letter options may _not_ be group *** 4325,4334 ****  File: cpp.info, Node: Environment Variables, Next: GNU Free Documentation License, Prev: Invocation, Up: Top ! 13 Environment Variables ! ************************ ! This section describes the environment variables that affect how CPP operates. You can use them to specify directories or prefixes to use when searching for include files, or to control dependency output. --- 4323,4332 ----  File: cpp.info, Node: Environment Variables, Next: GNU Free Documentation License, Prev: Invocation, Up: Top ! Environment Variables ! ********************* ! This section describes the environment variables that affect how CPP operates. You can use them to specify directories or prefixes to use when searching for include files, or to control dependency output. *************** GNU Free Documentation License *** 4395,4404 **** ****************************** Version 1.2, November 2002 - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. --- 4393,4401 ---- ****************************** Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. *************** GNU Free Documentation License *** 4792,4798 **** ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: --- 4789,4795 ---- ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: *************** File: cpp.info, Node: Index of Directiv *** 4826,4858 **** Index of Directives ******************* - [index] * Menu: ! * #assert: Assertions. (line 41) ! * #define: Object-like Macros. (line 11) ! * #elif: Elif. (line 6) ! * #else: Else. (line 6) ! * #endif: Ifdef. (line 6) ! * #error: Diagnostics. (line 6) ! * #ident: Other Directives. (line 6) ! * #if: Conditional Syntax. (line 6) ! * #ifdef: Ifdef. (line 6) ! * #ifndef: Ifdef. (line 40) * #import: Obsolete once-only headers. ! (line 10) ! * #include: Include Syntax. (line 6) ! * #include_next: Wrapper Headers. (line 6) ! * #line: Line Control. (line 20) ! * #pragma GCC dependency: Pragmas. (line 53) ! * #pragma GCC poison: Pragmas. (line 65) ! * #pragma GCC system_header <1>: Pragmas. (line 92) ! * #pragma GCC system_header: System Headers. (line 31) ! * #sccs: Other Directives. (line 13) ! * #unassert: Assertions. (line 52) * #undef: Undefining and Redefining Macros. ! (line 6) ! * #warning: Diagnostics. (line 27)  File: cpp.info, Node: Option Index, Next: Concept Index, Prev: Index of Directives, Up: Top --- 4823,4852 ---- Index of Directives ******************* * Menu: ! * #assert: Assertions. ! * #define: Object-like Macros. ! * #elif: Elif. ! * #else: Else. ! * #endif: Ifdef. ! * #error: Diagnostics. ! * #ident: Other Directives. ! * #if: Conditional Syntax. ! * #ifdef: Ifdef. ! * #ifndef: Ifdef. * #import: Obsolete once-only headers. ! * #include: Include Syntax. ! * #include_next: Wrapper Headers. ! * #line: Line Control. ! * #pragma GCC dependency: Pragmas. ! * #pragma GCC poison: Pragmas. ! * #pragma GCC system_header <1>: Pragmas. ! * #pragma GCC system_header: System Headers. ! * #sccs: Other Directives. ! * #unassert: Assertions. * #undef: Undefining and Redefining Macros. ! * #warning: Diagnostics.  File: cpp.info, Node: Option Index, Next: Concept Index, Prev: Index of Directives, Up: Top *************** Option Index *** 4863,4948 **** CPP's command line options and environment variables are indexed here without any initial `-' or `--'. - [index] * Menu: ! * A: Invocation. (line 476) ! * ansi: Invocation. (line 308) ! * C: Invocation. (line 524) * C_INCLUDE_PATH: Environment Variables. - (line 16) * CPATH: Environment Variables. - (line 15) * CPLUS_INCLUDE_PATH: Environment Variables. ! (line 17) ! * D: Invocation. (line 39) ! * dD: Invocation. (line 504) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 44) ! * dI: Invocation. (line 513) ! * dM: Invocation. (line 492) ! * dN: Invocation. (line 510) ! * fdollars-in-identifiers: Invocation. (line 411) ! * fexec-charset: Invocation. (line 433) ! * finput-charset: Invocation. (line 446) ! * fno-show-column: Invocation. (line 471) ! * fno-working-directory: Invocation. (line 456) ! * fpreprocessed: Invocation. (line 414) ! * ftabstop: Invocation. (line 427) ! * fwide-exec-charset: Invocation. (line 438) ! * fworking-directory: Invocation. (line 456) ! * H: Invocation. (line 569) ! * help: Invocation. (line 561) ! * I: Invocation. (line 72) ! * I-: Invocation. (line 345) ! * idirafter: Invocation. (line 387) ! * imacros: Invocation. (line 378) ! * include: Invocation. (line 367) ! * iprefix: Invocation. (line 392) ! * isystem: Invocation. (line 404) ! * iwithprefix: Invocation. (line 398) ! * iwithprefixbefore: Invocation. (line 398) ! * M: Invocation. (line 182) ! * MD: Invocation. (line 270) ! * MF: Invocation. (line 216) ! * MG: Invocation. (line 225) ! * MM: Invocation. (line 206) ! * MMD: Invocation. (line 285) ! * MP: Invocation. (line 235) ! * MQ: Invocation. (line 261) ! * MT: Invocation. (line 247) ! * nostdinc: Invocation. (line 357) ! * nostdinc++: Invocation. (line 362) ! * o: Invocation. (line 81) * OBJC_INCLUDE_PATH: Environment Variables. ! (line 18) ! * P: Invocation. (line 517) ! * pedantic: Invocation. (line 172) ! * pedantic-errors: Invocation. (line 177) ! * remap: Invocation. (line 556) ! * std=: Invocation. (line 308) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 60) ! * target-help: Invocation. (line 561) ! * traditional-cpp: Invocation. (line 549) ! * trigraphs: Invocation. (line 553) ! * U: Invocation. (line 63) ! * undef: Invocation. (line 67) ! * v: Invocation. (line 565) ! * version: Invocation. (line 578) ! * w: Invocation. (line 168) ! * Wall: Invocation. (line 87) ! * Wcomment: Invocation. (line 95) ! * Wcomments: Invocation. (line 95) ! * Wendif-labels: Invocation. (line 145) ! * Werror: Invocation. (line 158) ! * Wimport: Invocation. (line 118) ! * Wsystem-headers: Invocation. (line 162) ! * Wtraditional: Invocation. (line 112) ! * Wtrigraphs: Invocation. (line 100) ! * Wundef: Invocation. (line 121) ! * Wunused-macros: Invocation. (line 126) ! * x: Invocation. (line 292)  File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top --- 4857,4935 ---- CPP's command line options and environment variables are indexed here without any initial `-' or `--'. * Menu: ! * A: Invocation. ! * ansi: Invocation. ! * C: Invocation. * C_INCLUDE_PATH: Environment Variables. * CPATH: Environment Variables. * CPLUS_INCLUDE_PATH: Environment Variables. ! * D: Invocation. ! * dD: Invocation. * DEPENDENCIES_OUTPUT: Environment Variables. ! * dI: Invocation. ! * dM: Invocation. ! * dN: Invocation. ! * fdollars-in-identifiers: Invocation. ! * fexec-charset: Invocation. ! * finput-charset: Invocation. ! * fno-show-column: Invocation. ! * fno-working-directory: Invocation. ! * fpreprocessed: Invocation. ! * ftabstop: Invocation. ! * fwide-exec-charset: Invocation. ! * fworking-directory: Invocation. ! * H: Invocation. ! * help: Invocation. ! * I: Invocation. ! * I-: Invocation. ! * idirafter: Invocation. ! * imacros: Invocation. ! * include: Invocation. ! * iprefix: Invocation. ! * isystem: Invocation. ! * iwithprefix: Invocation. ! * iwithprefixbefore: Invocation. ! * M: Invocation. ! * MD: Invocation. ! * MF: Invocation. ! * MG: Invocation. ! * MM: Invocation. ! * MMD: Invocation. ! * MP: Invocation. ! * MQ: Invocation. ! * MT: Invocation. ! * nostdinc: Invocation. ! * nostdinc++: Invocation. ! * o: Invocation. * OBJC_INCLUDE_PATH: Environment Variables. ! * P: Invocation. ! * pedantic: Invocation. ! * pedantic-errors: Invocation. ! * remap: Invocation. ! * std=: Invocation. * SUNPRO_DEPENDENCIES: Environment Variables. ! * target-help: Invocation. ! * traditional-cpp: Invocation. ! * trigraphs: Invocation. ! * U: Invocation. ! * undef: Invocation. ! * v: Invocation. ! * version: Invocation. ! * w: Invocation. ! * Wall: Invocation. ! * Wcomment: Invocation. ! * Wcomments: Invocation. ! * Wendif-labels: Invocation. ! * Werror: Invocation. ! * Wimport: Invocation. ! * Wsystem-headers: Invocation. ! * Wtraditional: Invocation. ! * Wtrigraphs: Invocation. ! * Wundef: Invocation. ! * Wunused-macros: Invocation. ! * x: Invocation.  File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top *************** File: cpp.info, Node: Concept Index, P *** 4950,5166 **** Concept Index ************* - [index] * Menu: ! * # operator: Stringification. (line 6) ! * ## operator: Concatenation. (line 6) ! * _Pragma: Pragmas. (line 25) ! * alternative tokens: Tokenization. (line 105) ! * arguments: Macro Arguments. (line 6) ! * arguments in macro definitions: Macro Arguments. (line 6) ! * assertions: Assertions. (line 6) ! * assertions, canceling: Assertions. (line 52) ! * backslash-newline: Initial processing. (line 61) ! * block comments: Initial processing. (line 77) ! * C++ named operators: C++ Named Operators. (line 6) ! * character constants: Tokenization. (line 84) ! * command line: Invocation. (line 6) ! * commenting out code: Deleted Code. (line 6) ! * comments: Initial processing. (line 77) * common predefined macros: Common Predefined Macros. ! (line 6) ! * computed includes: Computed Includes. (line 6) ! * concatenation: Concatenation. (line 6) ! * conditional group: Ifdef. (line 14) ! * conditionals: Conditionals. (line 6) ! * continued lines: Initial processing. (line 61) ! * controlling macro: Once-Only Headers. (line 35) ! * defined: Defined. (line 6) * dependencies for make as output: Environment Variables. ! (line 45) ! * dependencies, make: Invocation. (line 182) ! * diagnostic: Diagnostics. (line 6) * differences from previous versions: Differences from previous versions. ! (line 6) ! * digraphs: Tokenization. (line 105) * directive line: The preprocessing language. - (line 6) * directive name: The preprocessing language. - (line 6) * directives: The preprocessing language. ! (line 6) ! * empty macro arguments: Macro Arguments. (line 66) * environment variables: Environment Variables. ! (line 6) ! * expansion of arguments: Argument Prescan. (line 6) * FDL, GNU Free Documentation License: GNU Free Documentation License. - (line 6) * function-like macros: Function-like Macros. ! (line 6) ! * grouping options: Invocation. (line 34) ! * guard macro: Once-Only Headers. (line 35) ! * header file: Header Files. (line 6) ! * header file names: Tokenization. (line 84) ! * identifiers: Tokenization. (line 34) * implementation limits: Implementation limits. - (line 6) * implementation-defined behavior: Implementation-defined behavior. ! (line 6) ! * including just once: Once-Only Headers. (line 6) ! * invocation: Invocation. (line 6) ! * iso646.h: C++ Named Operators. (line 6) ! * line comments: Initial processing. (line 77) ! * line control: Line Control. (line 6) ! * line endings: Initial processing. (line 14) ! * linemarkers: Preprocessor Output. (line 28) ! * macro argument expansion: Argument Prescan. (line 6) * macro arguments and directives: Directives Within Macro Arguments. ! (line 6) ! * macros in include: Computed Includes. (line 6) ! * macros with arguments: Macro Arguments. (line 6) ! * macros with variable arguments: Variadic Macros. (line 6) ! * make: Invocation. (line 182) ! * manifest constants: Object-like Macros. (line 6) ! * named operators: C++ Named Operators. (line 6) * newlines in macro arguments: Newlines in Arguments. ! (line 6) ! * null directive: Other Directives. (line 18) ! * numbers: Tokenization. (line 60) ! * object-like macro: Object-like Macros. (line 6) ! * options: Invocation. (line 38) ! * options, grouping: Invocation. (line 34) ! * other tokens: Tokenization. (line 119) ! * output format: Preprocessor Output. (line 12) ! * overriding a header file: Wrapper Headers. (line 6) * parentheses in macro bodies: Operator Precedence Problems. ! (line 6) ! * pitfalls of macros: Macro Pitfalls. (line 6) ! * predefined macros: Predefined Macros. (line 6) * predefined macros, system-specific: System-specific Predefined Macros. ! (line 6) ! * predicates: Assertions. (line 19) * preprocessing directives: The preprocessing language. ! (line 6) ! * preprocessing numbers: Tokenization. (line 60) ! * preprocessing tokens: Tokenization. (line 6) ! * prescan of macro arguments: Argument Prescan. (line 6) ! * problems with macros: Macro Pitfalls. (line 6) ! * punctuators: Tokenization. (line 105) * redefining macros: Undefining and Redefining Macros. ! (line 6) ! * repeated inclusion: Once-Only Headers. (line 6) ! * reporting errors: Diagnostics. (line 6) ! * reporting warnings: Diagnostics. (line 6) * reserved namespace: System-specific Predefined Macros. - (line 6) * self-reference: Self-Referential Macros. - (line 6) * semicolons (after macro calls): Swallowing the Semicolon. - (line 6) * side effects (in macro arguments): Duplication of Side Effects. - (line 6) * standard predefined macros.: Standard Predefined Macros. ! (line 6) ! * string constants: Tokenization. (line 84) ! * string literals: Tokenization. (line 84) ! * stringification: Stringification. (line 6) ! * symbolic constants: Object-like Macros. (line 6) ! * system header files <1>: System Headers. (line 6) ! * system header files: Header Files. (line 13) * system-specific predefined macros: System-specific Predefined Macros. ! (line 6) ! * testing predicates: Assertions. (line 30) ! * token concatenation: Concatenation. (line 6) ! * token pasting: Concatenation. (line 6) ! * tokens: Tokenization. (line 6) ! * trigraphs: Initial processing. (line 32) * undefining macros: Undefining and Redefining Macros. - (line 6) * unsafe macros: Duplication of Side Effects. ! (line 6) ! * variable number of arguments: Variadic Macros. (line 6) ! * variadic macros: Variadic Macros. (line 6) ! * wrapper #ifndef: Once-Only Headers. (line 6) ! * wrapper headers: Wrapper Headers. (line 6)  Tag Table: ! Node: Top1080 ! Node: Overview3767 ! Node: Character sets6588 ! Ref: Character sets-Footnote-19047 ! Node: Initial processing9228 ! Ref: trigraphs10787 ! Node: Tokenization14989 ! Ref: Tokenization-Footnote-122043 ! Node: The preprocessing language22154 ! Node: Header Files25032 ! Node: Include Syntax26912 ! Node: Include Operation28419 ! Node: Search Path30267 ! Node: Once-Only Headers33343 ! Node: Computed Includes34988 ! Node: Wrapper Headers38132 ! Node: System Headers40558 ! Node: Macros42608 ! Node: Object-like Macros43749 ! Node: Function-like Macros47339 ! Node: Macro Arguments48955 ! Node: Stringification53100 ! Node: Concatenation56306 ! Node: Variadic Macros59414 ! Node: Predefined Macros64201 ! Node: Standard Predefined Macros64789 ! Node: Common Predefined Macros70725 ! Node: System-specific Predefined Macros78569 ! Node: C++ Named Operators80590 ! Node: Undefining and Redefining Macros81554 ! Node: Directives Within Macro Arguments83658 ! Node: Macro Pitfalls85206 ! Node: Misnesting85739 ! Node: Operator Precedence Problems86851 ! Node: Swallowing the Semicolon88717 ! Node: Duplication of Side Effects90740 ! Node: Self-Referential Macros92923 ! Node: Argument Prescan95332 ! Node: Newlines in Arguments99086 ! Node: Conditionals100037 ! Node: Conditional Uses101867 ! Node: Conditional Syntax103225 ! Node: Ifdef103545 ! Node: If106706 ! Node: Defined109010 ! Node: Else110293 ! Node: Elif110863 ! Node: Deleted Code112152 ! Node: Diagnostics113399 ! Node: Line Control115016 ! Node: Pragmas118820 ! Node: Other Directives123090 ! Node: Preprocessor Output124283 ! Node: Traditional Mode127484 ! Node: Traditional lexical analysis128542 ! Node: Traditional macros131045 ! Node: Traditional miscellany134846 ! Node: Traditional warnings135843 ! Node: Implementation Details138040 ! Node: Implementation-defined behavior138661 ! Ref: Identifier characters139398 ! Node: Implementation limits142311 ! Node: Obsolete Features144985 ! Node: Assertions145440 ! Node: Obsolete once-only headers147981 ! Node: Differences from previous versions149716 ! Node: Invocation153795 ! Ref: Wtrigraphs158187 ! Ref: dashMF162971 ! Ref: fdollars-in-identifiers170444 ! Node: Environment Variables177901 ! Node: GNU Free Documentation License180867 ! Node: Index of Directives203290 ! Node: Option Index205219 ! Node: Concept Index211038  End Tag Table --- 4937,5127 ---- Concept Index ************* * Menu: ! * # operator: Stringification. ! * ## operator: Concatenation. ! * _Pragma: Pragmas. ! * alternative tokens: Tokenization. ! * arguments: Macro Arguments. ! * arguments in macro definitions: Macro Arguments. ! * assertions: Assertions. ! * assertions, canceling: Assertions. ! * backslash-newline: Initial processing. ! * block comments: Initial processing. ! * C++ named operators: C++ Named Operators. ! * character constants: Tokenization. ! * command line: Invocation. ! * commenting out code: Deleted Code. ! * comments: Initial processing. * common predefined macros: Common Predefined Macros. ! * computed includes: Computed Includes. ! * concatenation: Concatenation. ! * conditional group: Ifdef. ! * conditionals: Conditionals. ! * continued lines: Initial processing. ! * controlling macro: Once-Only Headers. ! * defined: Defined. * dependencies for make as output: Environment Variables. ! * dependencies, make: Invocation. ! * diagnostic: Diagnostics. * differences from previous versions: Differences from previous versions. ! * digraphs: Tokenization. * directive line: The preprocessing language. * directive name: The preprocessing language. * directives: The preprocessing language. ! * empty macro arguments: Macro Arguments. * environment variables: Environment Variables. ! * expansion of arguments: Argument Prescan. * FDL, GNU Free Documentation License: GNU Free Documentation License. * function-like macros: Function-like Macros. ! * grouping options: Invocation. ! * guard macro: Once-Only Headers. ! * header file: Header Files. ! * header file names: Tokenization. ! * identifiers: Tokenization. * implementation limits: Implementation limits. * implementation-defined behavior: Implementation-defined behavior. ! * including just once: Once-Only Headers. ! * invocation: Invocation. ! * iso646.h: C++ Named Operators. ! * line comments: Initial processing. ! * line control: Line Control. ! * line endings: Initial processing. ! * linemarkers: Preprocessor Output. ! * macro argument expansion: Argument Prescan. * macro arguments and directives: Directives Within Macro Arguments. ! * macros in include: Computed Includes. ! * macros with arguments: Macro Arguments. ! * macros with variable arguments: Variadic Macros. ! * make: Invocation. ! * manifest constants: Object-like Macros. ! * named operators: C++ Named Operators. * newlines in macro arguments: Newlines in Arguments. ! * null directive: Other Directives. ! * numbers: Tokenization. ! * object-like macro: Object-like Macros. ! * options: Invocation. ! * options, grouping: Invocation. ! * other tokens: Tokenization. ! * output format: Preprocessor Output. ! * overriding a header file: Wrapper Headers. * parentheses in macro bodies: Operator Precedence Problems. ! * pitfalls of macros: Macro Pitfalls. ! * predefined macros: Predefined Macros. * predefined macros, system-specific: System-specific Predefined Macros. ! * predicates: Assertions. * preprocessing directives: The preprocessing language. ! * preprocessing numbers: Tokenization. ! * preprocessing tokens: Tokenization. ! * prescan of macro arguments: Argument Prescan. ! * problems with macros: Macro Pitfalls. ! * punctuators: Tokenization. * redefining macros: Undefining and Redefining Macros. ! * repeated inclusion: Once-Only Headers. ! * reporting errors: Diagnostics. ! * reporting warnings: Diagnostics. * reserved namespace: System-specific Predefined Macros. * self-reference: Self-Referential Macros. * semicolons (after macro calls): Swallowing the Semicolon. * side effects (in macro arguments): Duplication of Side Effects. * standard predefined macros.: Standard Predefined Macros. ! * string constants: Tokenization. ! * string literals: Tokenization. ! * stringification: Stringification. ! * symbolic constants: Object-like Macros. ! * system header files <1>: System Headers. ! * system header files: Header Files. * system-specific predefined macros: System-specific Predefined Macros. ! * testing predicates: Assertions. ! * token concatenation: Concatenation. ! * token pasting: Concatenation. ! * tokens: Tokenization. ! * trigraphs: Initial processing. * undefining macros: Undefining and Redefining Macros. * unsafe macros: Duplication of Side Effects. ! * variable number of arguments: Variadic Macros. ! * variadic macros: Variadic Macros. ! * wrapper #ifndef: Once-Only Headers. ! * wrapper headers: Wrapper Headers.  Tag Table: ! Node: Top1077 ! Node: Overview2888 ! Node: Character sets6539 ! Ref: Character sets-Footnote-18993 ! Node: Initial processing9174 ! Ref: trigraphs10728 ! Node: Tokenization14935 ! Ref: Tokenization-Footnote-121984 ! Node: The preprocessing language22095 ! Node: Header Files24968 ! Node: Include Syntax26846 ! Node: Include Operation28348 ! Node: Search Path30201 ! Node: Once-Only Headers33272 ! Node: Computed Includes34922 ! Node: Wrapper Headers38061 ! Node: System Headers40480 ! Node: Macros42525 ! Node: Object-like Macros43663 ! Node: Function-like Macros47248 ! Node: Macro Arguments48858 ! Node: Stringification53003 ! Node: Concatenation56204 ! Node: Variadic Macros59318 ! Node: Predefined Macros64100 ! Node: Standard Predefined Macros64683 ! Node: Common Predefined Macros70609 ! Node: System-specific Predefined Macros78444 ! Node: C++ Named Operators80456 ! Node: Undefining and Redefining Macros81411 ! Node: Directives Within Macro Arguments83508 ! Node: Macro Pitfalls85051 ! Node: Misnesting85577 ! Node: Operator Precedence Problems86678 ! Node: Swallowing the Semicolon88533 ! Node: Duplication of Side Effects90545 ! Node: Self-Referential Macros92717 ! Node: Argument Prescan95121 ! Node: Newlines in Arguments98864 ! Node: Conditionals99809 ! Node: Conditional Uses101638 ! Node: Conditional Syntax102991 ! Node: Ifdef103306 ! Node: If106468 ! Node: Defined108773 ! Node: Else110046 ! Node: Elif110607 ! Node: Deleted Code111887 ! Node: Diagnostics113129 ! Node: Line Control114746 ! Node: Pragmas118549 ! Node: Other Directives122817 ! Node: Preprocessor Output124009 ! Node: Traditional Mode127209 ! Node: Traditional lexical analysis128264 ! Node: Traditional macros130760 ! Node: Traditional miscellany134554 ! Node: Traditional warnings135544 ! Node: Implementation Details137734 ! Node: Implementation-defined behavior138352 ! Ref: Identifier characters139082 ! Node: Implementation limits141995 ! Node: Obsolete Features144662 ! Node: Assertions145109 ! Node: Obsolete once-only headers147639 ! Node: Differences from previous versions149363 ! Node: Invocation153435 ! Ref: Wtrigraphs157823 ! Ref: dashMF162607 ! Ref: fdollars-in-identifiers170090 ! Node: Environment Variables177547 ! Node: GNU Free Documentation License180510 ! Node: Index of Directives202940 ! Node: Option Index204320 ! Node: Concept Index208389  End Tag Table diff -Nrc3pad gcc-3.4.3/gcc/doc/cppinternals.info gcc-3.4.4/gcc/doc/cppinternals.info *** gcc-3.4.3/gcc/doc/cppinternals.info Fri Nov 5 04:19:19 2004 --- gcc-3.4.4/gcc/doc/cppinternals.info Thu May 19 10:02:14 2005 *************** *** 1,5 **** ! This is doc/cppinternals.info, produced by makeinfo version 4.7 from ! /home/mitchell/scratch/gcc-3.4.3/gcc-3.4.3/gcc/doc/cppinternals.texi. INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY --- 1,5 ---- ! This is doc/cppinternals.info, produced by makeinfo version 4.2 from ! /scratch/mitchell/gcc-releases/gcc-3.4.4/gcc-3.4.4/gcc/doc/cppinternals.texi. INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY *************** versions. *** 26,39 ****  File: cppinternals.info, Node: Top, Next: Conventions, Up: (dir) - The GNU C Preprocessor Internals - ******************************** - 1 Cpplib--the GNU C Preprocessor - ******************************** ! The GNU C preprocessor in GCC 3.x has been completely rewritten. It is ! now implemented as a library, "cpplib", so it can be easily shared between a stand-alone preprocessor, and a preprocessor integrated with the C, C++ and Objective-C front ends. It is also available for use by other programs, though this is not recommended as its exposed interface --- 26,38 ----  File: cppinternals.info, Node: Top, Next: Conventions, Up: (dir) ! Cpplib--the GNU C Preprocessor ! ****************************** ! ! The GNU C preprocessor in GCC 3.x has been completely rewritten. It ! is now implemented as a library, "cpplib", so it can be easily shared between a stand-alone preprocessor, and a preprocessor integrated with the C, C++ and Objective-C front ends. It is also available for use by other programs, though this is not recommended as its exposed interface *************** File: cppinternals.info, Node: Conventi *** 69,75 **** Conventions *********** ! cpplib has two interfaces--one is exposed internally only, and the other is for both internal and external use. The convention is that functions and types that are exposed to --- 68,74 ---- Conventions *********** ! cpplib has two interfaces--one is exposed internally only, and the other is for both internal and external use. The convention is that functions and types that are exposed to *************** The Lexer *** 95,101 **** Overview ======== ! The lexer is contained in the file `cpplex.c'. It is a hand-coded lexer, and not implemented as a state machine. It can understand C, C++ and Objective-C source code, and has been extended to allow reasonably successful preprocessing of assembly language. The lexer does not make --- 94,100 ---- Overview ======== ! The lexer is contained in the file `cpplex.c'. It is a hand-coded lexer, and not implemented as a state machine. It can understand C, C++ and Objective-C source code, and has been extended to allow reasonably successful preprocessing of assembly language. The lexer does not make *************** generating diagnostics, and for emitting *** 114,123 **** Lexing a token ============== ! Lexing of an individual token is handled by `_cpp_lex_direct' and its ! subroutines. In its current form the code is quite complicated, with ! read ahead characters and such-like, since it strives to not step back ! in the character stream in preparation for handling non-ASCII file encodings. The current plan is to convert any such files to UTF-8 before processing them. This complexity is therefore unnecessary and will be removed, so I'll not discuss it further here. --- 113,122 ---- Lexing a token ============== ! Lexing of an individual token is handled by `_cpp_lex_direct' and ! its subroutines. In its current form the code is quite complicated, ! with read ahead characters and such-like, since it strives to not step ! back in the character stream in preparation for handling non-ASCII file encodings. The current plan is to convert any such files to UTF-8 before processing them. This complexity is therefore unnecessary and will be removed, so I'll not discuss it further here. *************** program calls cpp_destroy, probably at t *** 278,284 **** Lexing a line ============= ! When the preprocessor was changed to return pointers to tokens, one feature I wanted was some sort of guarantee regarding how long a returned pointer remains valid. This is important to the stand-alone preprocessor, the future direction of the C family front ends, and even --- 277,283 ---- Lexing a line ============= ! When the preprocessor was changed to return pointers to tokens, one feature I wanted was some sort of guarantee regarding how long a returned pointer remains valid. This is important to the stand-alone preprocessor, the future direction of the C family front ends, and even *************** File: cppinternals.info, Node: Hash Nod *** 366,377 **** Hash Nodes ********** ! When cpplib encounters an "identifier", it generates a hash code for it ! and stores it in the hash table. By "identifier" we mean tokens with ! type `CPP_NAME'; this includes identifiers in the usual C sense, as ! well as keywords, directive names, macro names and so on. For example, ! all of `pragma', `int', `foo' and `__GNUC__' are identifiers and hashed ! when lexed. Each node in the hash table contain various information about the identifier it represents. For example, its length and type. At any one --- 365,376 ---- Hash Nodes ********** ! When cpplib encounters an "identifier", it generates a hash code for ! it and stores it in the hash table. By "identifier" we mean tokens ! with type `CPP_NAME'; this includes identifiers in the usual C sense, ! as well as keywords, directive names, macro names and so on. For ! example, all of `pragma', `int', `foo' and `__GNUC__' are identifiers ! and hashed when lexed. Each node in the hash table contain various information about the identifier it represents. For example, its length and type. At any one *************** File: cppinternals.info, Node: Macro Ex *** 427,435 **** Macro Expansion Algorithm ************************* ! Macro expansion is a tricky operation, fraught with nasty corner cases ! and situations that render what you thought was a nifty way to optimize ! the preprocessor's expansion algorithm wrong in quite subtle ways. I strongly recommend you have a good grasp of how the C and C++ standards require macros to be expanded before diving into this --- 426,435 ---- Macro Expansion Algorithm ************************* ! Macro expansion is a tricky operation, fraught with nasty corner ! cases and situations that render what you thought was a nifty way to ! optimize the preprocessor's expansion algorithm wrong in quite subtle ! ways. I strongly recommend you have a good grasp of how the C and C++ standards require macros to be expanded before diving into this *************** pasting are supposed to work, damage to *** 440,447 **** Internal representation of macros ================================= ! The preprocessor stores macro expansions in tokenized form. This saves ! repeated lexing passes during expansion, at the cost of a small increase in memory consumption on average. The tokens are stored contiguously in memory, so a pointer to the first one and a token count is all you need to get the replacement list of a macro. --- 440,447 ---- Internal representation of macros ================================= ! The preprocessor stores macro expansions in tokenized form. This ! saves repeated lexing passes during expansion, at the cost of a small increase in memory consumption on average. The tokens are stored contiguously in memory, so a pointer to the first one and a token count is all you need to get the replacement list of a macro. *************** changed. *** 461,469 **** Macro expansion overview ======================== ! The preprocessor maintains a "context stack", implemented as a linked ! list of `cpp_context' structures, which together represent the macro ! expansion state at any one time. The `struct cpp_reader' member variable `context' points to the current top of this stack. The top normally holds the unexpanded replacement list of the innermost macro under expansion, except when cpplib is about to pre-expand an argument, --- 461,469 ---- Macro expansion overview ======================== ! The preprocessor maintains a "context stack", implemented as a ! linked list of `cpp_context' structures, which together represent the ! macro expansion state at any one time. The `struct cpp_reader' member variable `context' points to the current top of this stack. The top normally holds the unexpanded replacement list of the innermost macro under expansion, except when cpplib is about to pre-expand an argument, *************** being expanded. *** 506,512 **** Scanning the replacement list for macros to expand ================================================== ! The C standard states that, after any parameters have been replaced with their possibly-expanded arguments, the replacement list is scanned for nested macros. Further, any identifiers in the replacement list that are not expanded during this scan are never again eligible for --- 506,512 ---- Scanning the replacement list for macros to expand ================================================== ! The C standard states that, after any parameters have been replaced with their possibly-expanded arguments, the replacement list is scanned for nested macros. Further, any identifiers in the replacement list that are not expanded during this scan are never again eligible for *************** it a second time. *** 556,562 **** Looking for a function-like macro's opening parenthesis ======================================================= ! Function-like macros only expand when immediately followed by a parenthesis. To do this cpplib needs to temporarily disable macros and read the next token. Unfortunately, because of spacing issues (*note Token Spacing::), there can be fake padding tokens in-between, and if --- 556,562 ---- Looking for a function-like macro's opening parenthesis ======================================================= ! Function-like macros only expand when immediately followed by a parenthesis. To do this cpplib needs to temporarily disable macros and read the next token. Unfortunately, because of spacing issues (*note Token Spacing::), there can be fake padding tokens in-between, and if *************** context just containing the padding info *** 576,582 **** Marking tokens ineligible for future expansion ============================================== ! As discussed above, cpplib needs a way of marking tokens as unexpandable. Since the tokens cpplib handles are read-only once they have been lexed, it instead makes a copy of the token and adds the flag `NO_EXPAND' to the copy. --- 576,582 ---- Marking tokens ineligible for future expansion ============================================== ! As discussed above, cpplib needs a way of marking tokens as unexpandable. Since the tokens cpplib handles are read-only once they have been lexed, it instead makes a copy of the token and adds the flag `NO_EXPAND' to the copy. *************** File: cppinternals.info, Node: Token Sp *** 599,605 **** Token Spacing ************* ! First, consider an issue that only concerns the stand-alone preprocessor: there needs to be a guarantee that re-reading its preprocessed output results in an identical token stream. Without taking special measures, this might not be the case because of macro --- 599,605 ---- Token Spacing ************* ! First, consider an issue that only concerns the stand-alone preprocessor: there needs to be a guarantee that re-reading its preprocessed output results in an identical token stream. Without taking special measures, this might not be the case because of macro *************** Line numbering *** 730,737 **** Just which line number anyway? ============================== ! There are three reasonable requirements a cpplib client might have for ! the line number of a token passed to it: * The source line it was lexed on. --- 730,737 ---- Just which line number anyway? ============================== ! There are three reasonable requirements a cpplib client might have ! for the line number of a token passed to it: * The source line it was lexed on. *************** produce correct output. *** 786,795 **** Representation of line numbers ============================== ! As mentioned above, cpplib stores with each token the line number that ! it was lexed on. In fact, this number is not the number of the line in ! the source file, but instead bears more resemblance to the number of the ! line in the translation unit. The preprocessor maintains a monotonic increasing line count, which is incremented at every new line character (and also at the end of any --- 786,795 ---- Representation of line numbers ============================== ! As mentioned above, cpplib stores with each token the line number ! that it was lexed on. In fact, this number is not the number of the ! line in the source file, but instead bears more resemblance to the ! number of the line in the translation unit. The preprocessor maintains a monotonic increasing line count, which is incremented at every new line character (and also at the end of any *************** File: cppinternals.info, Node: Guard Ma *** 817,823 **** The Multiple-Include Optimization ********************************* ! Header files are often of the form #ifndef FOO #define FOO --- 817,823 ---- The Multiple-Include Optimization ********************************* ! Header files are often of the form #ifndef FOO #define FOO *************** File: cppinternals.info, Node: Files, *** 923,932 **** File Handling ************* ! Fairly obviously, the file handling code of cpplib resides in the file ! `cppfiles.c'. It takes care of the details of file searching, opening, ! reading and caching, for both the main source file and all the headers ! it recursively includes. The basic strategy is to minimize the number of system calls. On many systems, the basic `open ()' and `fstat ()' system calls can be --- 923,932 ---- File Handling ************* ! Fairly obviously, the file handling code of cpplib resides in the ! file `cppfiles.c'. It takes care of the details of file searching, ! opening, reading and caching, for both the main source file and all the ! headers it recursively includes. The basic strategy is to minimize the number of system calls. On many systems, the basic `open ()' and `fstat ()' system calls can be *************** File: cppinternals.info, Node: Index, *** 991,1035 **** Index ***** - [index] * Menu: ! * assertions: Hash Nodes. (line 6) ! * controlling macros: Guard Macros. (line 6) ! * escaped newlines: Lexer. (line 6) ! * files: Files. (line 6) ! * guard macros: Guard Macros. (line 6) ! * hash table: Hash Nodes. (line 6) ! * header files: Conventions. (line 6) ! * identifiers: Hash Nodes. (line 6) ! * interface: Conventions. (line 6) ! * lexer: Lexer. (line 6) ! * line numbers: Line Numbering. (line 6) ! * macro expansion: Macro Expansion. (line 6) ! * macro representation (internal): Macro Expansion. (line 19) ! * macros: Hash Nodes. (line 6) ! * multiple-include optimization: Guard Macros. (line 6) ! * named operators: Hash Nodes. (line 6) ! * newlines: Lexer. (line 6) ! * paste avoidance: Token Spacing. (line 6) ! * spacing: Token Spacing. (line 6) ! * token run: Lexer. (line 192) ! * token spacing: Token Spacing. (line 6)  Tag Table: ! Node: Top963 ! Node: Conventions2698 ! Node: Lexer3639 ! Ref: Invalid identifiers11555 ! Ref: Lexing a line13504 ! Node: Hash Nodes18277 ! Node: Macro Expansion21156 ! Node: Token Spacing30103 ! Node: Line Numbering35963 ! Node: Guard Macros40048 ! Node: Files44843 ! Node: Index48304  End Tag Table --- 991,1034 ---- Index ***** * Menu: ! * assertions: Hash Nodes. ! * controlling macros: Guard Macros. ! * escaped newlines: Lexer. ! * files: Files. ! * guard macros: Guard Macros. ! * hash table: Hash Nodes. ! * header files: Conventions. ! * identifiers: Hash Nodes. ! * interface: Conventions. ! * lexer: Lexer. ! * line numbers: Line Numbering. ! * macro expansion: Macro Expansion. ! * macro representation (internal): Macro Expansion. ! * macros: Hash Nodes. ! * multiple-include optimization: Guard Macros. ! * named operators: Hash Nodes. ! * newlines: Lexer. ! * paste avoidance: Token Spacing. ! * spacing: Token Spacing. ! * token run: Lexer. ! * token spacing: Token Spacing.  Tag Table: ! Node: Top971 ! Node: Conventions2640 ! Node: Lexer3584 ! Ref: Invalid identifiers11506 ! Ref: Lexing a line13455 ! Node: Hash Nodes18231 ! Node: Macro Expansion21113 ! Node: Token Spacing30078 ! Node: Line Numbering35941 ! Node: Guard Macros40032 ! Node: Files44830 ! Node: Index48294  End Tag Table diff -Nrc3pad gcc-3.4.3/gcc/doc/extend.texi gcc-3.4.4/gcc/doc/extend.texi *** gcc-3.4.3/gcc/doc/extend.texi Mon Aug 23 18:02:58 2004 --- gcc-3.4.4/gcc/doc/extend.texi Sat Feb 26 22:17:26 2005 *************** typedef void voidfn (); *** 2048,2053 **** --- 2048,2055 ---- volatile voidfn fatal; @end smallexample + This approach does not work in GNU C++. + @cindex @code{noinline} function attribute @item noinline This function attribute prevents a function from being considered for diff -Nrc3pad gcc-3.4.3/gcc/doc/fsf-funding.7 gcc-3.4.4/gcc/doc/fsf-funding.7 *** gcc-3.4.3/gcc/doc/fsf-funding.7 Fri Nov 5 04:19:25 2004 --- gcc-3.4.4/gcc/doc/fsf-funding.7 Thu May 19 10:02:19 2005 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2004-11-05" "gcc-3.4.3" "GNU" .SH "NAME" fsf\-funding \- Funding Free Software .SH "DESCRIPTION" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2005-05-19" "gcc-3.4.4" "GNU" .SH "NAME" fsf\-funding \- Funding Free Software .SH "DESCRIPTION" diff -Nrc3pad gcc-3.4.3/gcc/doc/g++.1 gcc-3.4.4/gcc/doc/g++.1 *** gcc-3.4.3/gcc/doc/g++.1 Fri Nov 5 04:19:25 2004 --- gcc-3.4.4/gcc/doc/g++.1 Thu May 19 10:02:19 2005 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2004-11-05" "gcc-3.4.3" "GNU" .SH "NAME" gcc \- GNU project C and C++ compiler .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2005-05-19" "gcc-3.4.4" "GNU" .SH "NAME" gcc \- GNU project C and C++ compiler .SH "SYNOPSIS" *************** in the following sections. *** 217,223 **** \&\-Weffc++ \-Wno\-deprecated \&\-Wno\-non\-template\-friend \-Wold\-style\-cast \&\-Woverloaded\-virtual \-Wno\-pmf\-conversions ! \&\-Wsign\-promo \-Wsynth\fR .IP "\fIObjective-C Language Options\fR" 4 .IX Item "Objective-C Language Options" \&\fB\-fconstant\-string\-class=\fR\fIclass-name\fR --- 217,223 ---- \&\-Weffc++ \-Wno\-deprecated \&\-Wno\-non\-template\-friend \-Wold\-style\-cast \&\-Woverloaded\-virtual \-Wno\-pmf\-conversions ! \&\-Wsign\-promo\fR .IP "\fIObjective-C Language Options\fR" 4 .IX Item "Objective-C Language Options" \&\fB\-fconstant\-string\-class=\fR\fIclass-name\fR *************** in the following sections. *** 436,442 **** \&\-mpowerpc\-gfxopt \-mno\-powerpc\-gfxopt \&\-mnew\-mnemonics \-mold\-mnemonics \&\-mfull\-toc \-mminimal\-toc \-mno\-fp\-in\-toc \-mno\-sum\-in\-toc ! \&\-m64 \-m32 \-mxl\-call \-mno\-xl\-call \-mpe \&\-malign\-power \-malign\-natural \&\-msoft\-float \-mhard\-float \-mmultiple \-mno\-multiple \&\-mstring \-mno\-string \-mupdate \-mno\-update --- 436,442 ---- \&\-mpowerpc\-gfxopt \-mno\-powerpc\-gfxopt \&\-mnew\-mnemonics \-mold\-mnemonics \&\-mfull\-toc \-mminimal\-toc \-mno\-fp\-in\-toc \-mno\-sum\-in\-toc ! \&\-m64 \-m32 \-mxl\-compat \-mno\-xl\-compat \-mpe \&\-malign\-power \-malign\-natural \&\-msoft\-float \-mhard\-float \-mmultiple \-mno\-multiple \&\-mstring \-mno\-string \-mupdate \-mno\-update *************** in the following sections. *** 620,627 **** \&\-mconstant\-gp \-mauto\-pic \-minline\-float\-divide\-min\-latency \&\-minline\-float\-divide\-max\-throughput \&\-minline\-int\-divide\-min\-latency ! \&\-minline\-int\-divide\-max\-throughput \-mno\-dwarf2\-asm ! \&\-mfixed\-range=\fR\fIregister-range\fR .Sp \&\fID30V Options\fR \&\fB\-mextmem \-mextmemory \-monchip \-mno\-asm\-optimize --- 620,630 ---- \&\-mconstant\-gp \-mauto\-pic \-minline\-float\-divide\-min\-latency \&\-minline\-float\-divide\-max\-throughput \&\-minline\-int\-divide\-min\-latency ! \&\-minline\-int\-divide\-max\-throughput ! \&\-minline\-sqrt\-min\-latency \-minline\-sqrt\-max\-throughput ! \&\-mno\-dwarf2\-asm \-mearly\-stop\-bits ! \&\-mfixed\-range=\fR\fIregister-range\fR \fB\-mtls\-size=\fR\fItls-size\fR ! \&\fB\-mtune=\fR\fIcpu-type\fR \fB\-mt \-pthread \-milp32 \-mlp64\fR .Sp \&\fID30V Options\fR \&\fB\-mextmem \-mextmemory \-monchip \-mno\-asm\-optimize *************** Warn when overload resolution chooses a *** 1578,1587 **** enumerated type to a signed type, over a conversion to an unsigned type of the same size. Previous versions of G++ would try to preserve unsignedness, but the standard mandates the current behavior. - .IP "\fB\-Wsynth\fR (\*(C+ only)" 4 - .IX Item "-Wsynth ( only)" - Warn when G++'s synthesis behavior does not match that of cfront. For - instance: .Sp .Vb 4 \& struct A { --- 1581,1586 ---- *************** order to make tracer effective. *** 4424,4429 **** --- 4423,4433 ---- .IP "\fBmax-cse-path-length\fR" 4 .IX Item "max-cse-path-length" Maximum number of basic blocks on path that cse considers. + .IP "\fBmax-last-value-rtl\fR" 4 + .IX Item "max-last-value-rtl" + The maximum size measured as number of RTLs that can be recorded in an + expression in combiner for a pseudo register as last known value of that + register. The default is 10000. .IP "\fBggc-min-expand\fR" 4 .IX Item "ggc-min-expand" \&\s-1GCC\s0 uses a garbage collector to manage its own memory allocation. This *************** These \fB\-m\fR options are supported on *** 5744,5750 **** .PD Specify \fB\-mapp\-regs\fR to generate output using the global registers 2 through 4, which the \s-1SPARC\s0 \s-1SVR4\s0 \s-1ABI\s0 reserves for applications. This ! is the default. .Sp To be fully \s-1SVR4\s0 \s-1ABI\s0 compliant at the cost of some performance loss, specify \fB\-mno\-app\-regs\fR. You should compile libraries and system --- 5748,5754 ---- .PD Specify \fB\-mapp\-regs\fR to generate output using the global registers 2 through 4, which the \s-1SPARC\s0 \s-1SVR4\s0 \s-1ABI\s0 reserves for applications. This ! is the default, except on Solaris. .Sp To be fully \s-1SVR4\s0 \s-1ABI\s0 compliant at the cost of some performance loss, specify \fB\-mno\-app\-regs\fR. You should compile libraries and system *************** on \s-1SPARC\-V9\s0 processors in 64\-bi *** 5968,5974 **** .IP "\fB\-mlittle\-endian\fR" 4 .IX Item "-mlittle-endian" Generate code for a processor running in little-endian mode. It is only ! available for a few configurations and most notably not on Solaris. .IP "\fB\-m32\fR" 4 .IX Item "-m32" .PD 0 --- 5972,5978 ---- .IP "\fB\-mlittle\-endian\fR" 4 .IX Item "-mlittle-endian" Generate code for a processor running in little-endian mode. It is only ! available for a few configurations and most notably not on Solaris and Linux. .IP "\fB\-m32\fR" 4 .IX Item "-m32" .PD 0 *************** Supported values for \fIcpu_type\fR are *** 6532,6538 **** \&\fB601\fR, \fB602\fR, \fB603\fR, \fB603e\fR, \fB604\fR, \&\fB604e\fR, \fB620\fR, \fB630\fR, \fB740\fR, \fB7400\fR, \&\fB7450\fR, \fB750\fR, \fB801\fR, \fB821\fR, \fB823\fR, ! \&\fB860\fR, \fB970\fR, \fBcommon\fR, \fBec603e\fR, \fBG3\fR, \&\fBG4\fR, \fBG5\fR, \fBpower\fR, \fBpower2\fR, \fBpower3\fR, \&\fBpower4\fR, \fBpower5\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBrios\fR, \fBrios1\fR, \fBrios2\fR, \fBrsc\fR, and \fBrs64a\fR. --- 6536,6542 ---- \&\fB601\fR, \fB602\fR, \fB603\fR, \fB603e\fR, \fB604\fR, \&\fB604e\fR, \fB620\fR, \fB630\fR, \fB740\fR, \fB7400\fR, \&\fB7450\fR, \fB750\fR, \fB801\fR, \fB821\fR, \fB823\fR, ! \&\fB860\fR, \fB970\fR, \fB8540\fR, \fBcommon\fR, \fBec603e\fR, \fBG3\fR, \&\fBG4\fR, \fBG5\fR, \fBpower\fR, \fBpower2\fR, \fBpower3\fR, \&\fBpower4\fR, \fBpower5\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBrios\fR, \fBrios1\fR, \fBrios2\fR, \fBrsc\fR, and \fBrs64a\fR. *************** Enable 64\-bit \s-1AIX\s0 \s-1ABI\s0 and *** 6665,6679 **** Specifying \fB\-maix64\fR implies \fB\-mpowerpc64\fR and \&\fB\-mpowerpc\fR, while \fB\-maix32\fR disables the 64\-bit \s-1ABI\s0 and implies \fB\-mno\-powerpc64\fR. \s-1GCC\s0 defaults to \fB\-maix32\fR. ! .IP "\fB\-mxl\-call\fR" 4 ! .IX Item "-mxl-call" .PD 0 ! .IP "\fB\-mno\-xl\-call\fR" 4 ! .IX Item "-mno-xl-call" .PD ! On \s-1AIX\s0, pass floating-point arguments to prototyped functions beyond the ! register save area (\s-1RSA\s0) on the stack in addition to argument FPRs. The ! \&\s-1AIX\s0 calling convention was extended but not initially documented to handle an obscure K&R C case of calling a function that takes the address of its arguments with fewer arguments than declared. \s-1AIX\s0 \s-1XL\s0 compilers access floating point arguments which do not fit in the --- 6669,6687 ---- Specifying \fB\-maix64\fR implies \fB\-mpowerpc64\fR and \&\fB\-mpowerpc\fR, while \fB\-maix32\fR disables the 64\-bit \s-1ABI\s0 and implies \fB\-mno\-powerpc64\fR. \s-1GCC\s0 defaults to \fB\-maix32\fR. ! .IP "\fB\-mxl\-compat\fR" 4 ! .IX Item "-mxl-compat" .PD 0 ! .IP "\fB\-mno\-xl\-compat\fR" 4 ! .IX Item "-mno-xl-compat" .PD ! Produce code that conforms more closely to \s-1IBM\s0 \s-1XLC\s0 semantics when using ! AIX-compatible \s-1ABI\s0. Pass floating-point arguments to prototyped ! functions beyond the register save area (\s-1RSA\s0) on the stack in addition ! to argument FPRs. Do not assume that most significant double in 128 ! bit long double value is properly rounded when comparing values. ! .Sp ! The \s-1AIX\s0 calling convention was extended but not initially documented to handle an obscure K&R C case of calling a function that takes the address of its arguments with fewer arguments than declared. \s-1AIX\s0 \s-1XL\s0 compilers access floating point arguments which do not fit in the *************** using the minimum latency algorithm. *** 9391,9396 **** --- 9399,9412 ---- .IX Item "-minline-int-divide-max-throughput" Generate code for inline divides of integer values using the maximum throughput algorithm. + .IP "\fB\-minline\-sqrt\-min\-latency\fR" 4 + .IX Item "-minline-sqrt-min-latency" + Generate code for inline square roots + using the minimum latency algorithm. + .IP "\fB\-minline\-sqrt\-max\-throughput\fR" 4 + .IX Item "-minline-sqrt-max-throughput" + Generate code for inline square roots + using the maximum throughput algorithm. .IP "\fB\-mno\-dwarf2\-asm\fR" 4 .IX Item "-mno-dwarf2-asm" .PD 0 *************** using the maximum throughput algorithm. *** 9399,9411 **** .PD Don't (or do) generate assembler code for the \s-1DWARF2\s0 line number debugging info. This may be useful when not using the \s-1GNU\s0 assembler. - .IP "\fB\-mfixed\-range=\fR\fIregister-range\fR" 4 - .IX Item "-mfixed-range=register-range" - Generate code treating the given register range as fixed registers. - A fixed register is one that the register allocator can not use. This is - useful when compiling kernel code. A register range is specified as - two registers separated by a dash. Multiple register ranges can be - specified separated by a comma. .IP "\fB\-mearly\-stop\-bits\fR" 4 .IX Item "-mearly-stop-bits" .PD 0 --- 9415,9420 ---- *************** specified separated by a comma. *** 9415,9420 **** --- 9424,9464 ---- Allow stop bits to be placed earlier than immediately preceding the instruction that triggered the stop bit. This can improve instruction scheduling, but does not always do so. + .IP "\fB\-mfixed\-range=\fR\fIregister-range\fR" 4 + .IX Item "-mfixed-range=register-range" + Generate code treating the given register range as fixed registers. + A fixed register is one that the register allocator can not use. This is + useful when compiling kernel code. A register range is specified as + two registers separated by a dash. Multiple register ranges can be + specified separated by a comma. + .IP "\fB\-mtls\-size=\fR\fItls-size\fR" 4 + .IX Item "-mtls-size=tls-size" + Specify bit size of immediate \s-1TLS\s0 offsets. Valid values are 14, 22, and + 64. + .IP "\fB\-mtune\-arch=\fR\fIcpu-type\fR" 4 + .IX Item "-mtune-arch=cpu-type" + Tune the instruction scheduling for a particular \s-1CPU\s0, Valid values are + itanium, itanium1, merced, itanium2, and mckinley. + .IP "\fB\-mt\fR" 4 + .IX Item "-mt" + .PD 0 + .IP "\fB\-pthread\fR" 4 + .IX Item "-pthread" + .PD + Add support for multithreading using the \s-1POSIX\s0 threads library. This + option sets flags for both the preprocessor and linker. It does + not affect the thread safety of object code produced by the compiler or + that of libraries supplied with it. These are HP-UX specific flags. + .IP "\fB\-milp32\fR" 4 + .IX Item "-milp32" + .PD 0 + .IP "\fB\-mlp64\fR" 4 + .IX Item "-mlp64" + .PD + Generate code for a 32\-bit or 64\-bit environment. + The 32\-bit environment sets int, long and pointer to 32 bits. + The 64\-bit environment sets int to 32 bits and long and pointer + to 64 bits. These are HP-UX specific flags. .PP \fID30V Options\fR .IX Subsection "D30V Options" *************** for contributors to \s-1GCC\s0. *** 10654,10660 **** .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, ! 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 or --- 10698,10704 ---- .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, ! 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 or diff -Nrc3pad gcc-3.4.3/gcc/doc/g77.1 gcc-3.4.4/gcc/doc/g77.1 *** gcc-3.4.3/gcc/doc/g77.1 Fri Nov 5 04:19:25 2004 --- gcc-3.4.4/gcc/doc/g77.1 Thu May 19 10:02:20 2005 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "2004-11-05" "gcc-3.4.3" "GNU" .SH "NAME" g77 \- GNU project Fortran 77 compiler .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "2005-05-19" "gcc-3.4.4" "GNU" .SH "NAME" g77 \- GNU project Fortran 77 compiler .SH "SYNOPSIS" diff -Nrc3pad gcc-3.4.3/gcc/doc/g77.info gcc-3.4.4/gcc/doc/g77.info *** gcc-3.4.3/gcc/doc/g77.info Fri Nov 5 04:19:20 2004 --- gcc-3.4.4/gcc/doc/g77.info Thu May 19 10:02:14 2005 *************** *** 1,7 **** ! This is doc/g77.info, produced by makeinfo version 4.7 from ! /home/mitchell/scratch/gcc-3.4.3/gcc-3.4.3/gcc/f/g77.texi. ! Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document --- 1,7 ---- ! This is doc/g77.info, produced by makeinfo version 4.2 from ! /scratch/mitchell/gcc-releases/gcc-3.4.4/gcc-3.4.4/gcc/f/g77.texi. ! Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document *************** included in the section entitled "GNU Fr *** 21,38 **** You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. - INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * g77: (g77). The GNU Fortran compiler. END-INFO-DIR-ENTRY This file documents the use and the internals of the GNU Fortran ! (`g77') compiler. It corresponds to the GCC-3.4.3 version of `g77'. Published by the Free Software Foundation 59 Temple Place - Suite 330 Boston, MA 02111-1307 USA ! Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document --- 21,37 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * g77: (g77). The GNU Fortran compiler. END-INFO-DIR-ENTRY This file documents the use and the internals of the GNU Fortran ! (`g77') compiler. It corresponds to the GCC-3.4.4 version of `g77'. Published by the Free Software Foundation 59 Temple Place - Suite 330 Boston, MA 02111-1307 USA ! Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document *************** included in the section entitled "GNU Fr *** 52,58 **** You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. - Contributed by James Craig Burley (). Inspired by a first pass at translating `g77-0.5.16/f/DOC' that was contributed to Craig by David Ronis (). --- 51,56 ---- *************** File: g77.info, Node: Top, Next: Copyi *** 63,71 **** Introduction ************ ! This manual documents how to run, install and port `g77', as well as its new features and incompatibilities, and how to report bugs. It ! corresponds to the GCC-3.4.3 version of `g77'. * Menu: --- 61,69 ---- Introduction ************ ! This manual documents how to run, install and port `g77', as well as its new features and incompatibilities, and how to report bugs. It ! corresponds to the GCC-3.4.4 version of `g77'. * Menu: *************** GNU GENERAL PUBLIC LICENSE *** 110,128 **** ************************** Version 2, June 1991 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble ======== ! The licenses for most software are designed to take away your freedom ! to share and change it. By contrast, the GNU General Public License is ! intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to --- 108,125 ---- ************************** Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble ======== ! The licenses for most software are designed to take away your ! freedom to share and change it. By contrast, the GNU General Public ! License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to *************** modification follow. *** 375,380 **** --- 372,378 ---- and reuse of software generally. NO WARRANTY + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT *************** modification follow. *** 398,407 **** ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. --- 396,406 ---- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS + How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. *************** the "copyright" line and a pointer to wh *** 413,429 **** ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR ! This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ! This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --- 412,428 ---- ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR ! This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ! This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *************** if necessary. Here is a sample; alter t *** 452,458 **** Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. ! SIGNATURE OF TY COON, 1 April 1989 Ty Coon, President of Vice --- 451,457 ---- Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. ! SIGNATURE OF TY COON, 1 April 1989 Ty Coon, President of Vice *************** GNU Free Documentation License *** 469,478 **** ****************************** Version 1.2, November 2002 - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. --- 468,476 ---- ****************************** Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. *************** GNU Free Documentation License *** 866,872 **** ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: --- 864,870 ---- ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: *************** File: g77.info, Node: Contributors, Ne *** 900,907 **** Contributors to GNU Fortran *************************** ! In addition to James Craig Burley, who wrote the front end, many people ! have helped create and improve GNU Fortran. * The packaging and compiler portions of GNU Fortran are based largely on the GCC compiler. *Note Contributors to GCC: --- 898,905 ---- Contributors to GNU Fortran *************************** ! In addition to James Craig Burley, who wrote the front end, many ! people have helped create and improve GNU Fortran. * The packaging and compiler portions of GNU Fortran are based largely on the GCC compiler. *Note Contributors to GCC: *************** File: g77.info, Node: Funding, Next: F *** 996,1002 **** Funding Free Software ********************* ! If you want to have more free software a few years from now, it makes sense for you to help encourage people to contribute funds for its development. The most effective approach known is to encourage commercial redistributors to donate. --- 994,1000 ---- Funding Free Software ********************* ! If you want to have more free software a few years from now, it makes sense for you to help encourage people to contribute funds for its development. The most effective approach known is to encourage commercial redistributors to donate. *************** assure a steady flow of resources into m *** 1043,1053 ****  File: g77.info, Node: Funding GNU Fortran, Next: Getting Started, Prev: Funding, Up: Top ! 1 Funding GNU Fortran ! ********************* ! James Craig Burley (), the original author of `g77', ! stopped working on it in September 1999 (He has a web page at `http://world.std.com/%7Eburley/'.) GNU Fortran is currently maintained by Toon Moene --- 1041,1051 ----  File: g77.info, Node: Funding GNU Fortran, Next: Getting Started, Prev: Funding, Up: Top ! Funding GNU Fortran ! ******************* ! James Craig Burley (), the original author of ! `g77', stopped working on it in September 1999 (He has a web page at `http://world.std.com/%7Eburley/'.) GNU Fortran is currently maintained by Toon Moene *************** of `g77'. Work on this compiler has sto *** 1077,1086 ****  File: g77.info, Node: Getting Started, Next: What is GNU Fortran?, Prev: Funding GNU Fortran, Up: Top ! 2 Getting Started ! ***************** ! If you don't need help getting started reading the portions of this manual that are most important to you, you should skip this portion of the manual. --- 1075,1084 ----  File: g77.info, Node: Getting Started, Next: What is GNU Fortran?, Prev: Funding GNU Fortran, Up: Top ! Getting Started ! *************** ! If you don't need help getting started reading the portions of this manual that are most important to you, you should skip this portion of the manual. *************** you might be able to answer, see *Note O *** 1130,1140 ****  File: g77.info, Node: What is GNU Fortran?, Next: G77 and GCC, Prev: Getting Started, Up: Top ! 3 What is GNU Fortran? ! ********************** ! GNU Fortran, or `g77', is designed initially as a free replacement for, ! or alternative to, the UNIX `f77' command. (Similarly, `gcc' is designed as a replacement for the UNIX `cc' command.) `g77' also is designed to fit in well with the other fine GNU --- 1128,1138 ----  File: g77.info, Node: What is GNU Fortran?, Next: G77 and GCC, Prev: Getting Started, Up: Top ! What is GNU Fortran? ! ******************** ! GNU Fortran, or `g77', is designed initially as a free replacement ! for, or alternative to, the UNIX `f77' command. (Similarly, `gcc' is designed as a replacement for the UNIX `cc' command.) `g77' also is designed to fit in well with the other fine GNU *************** the shared GBE). *** 1323,1332 ****  File: g77.info, Node: G77 and GCC, Next: Invoking G77, Prev: What is GNU Fortran?, Up: Top ! 4 Compile Fortran, C, or Other Programs ! *************************************** ! A GNU Fortran installation includes a modified version of the `gcc' command. In a non-Fortran installation, `gcc' recognizes C, C++, and --- 1321,1330 ----  File: g77.info, Node: G77 and GCC, Next: Invoking G77, Prev: What is GNU Fortran?, Up: Top ! Compile Fortran, C, or Other Programs ! ************************************* ! A GNU Fortran installation includes a modified version of the `gcc' command. In a non-Fortran installation, `gcc' recognizes C, C++, and *************** line of output is the invocation of the *** 1353,1362 ****  File: g77.info, Node: Invoking G77, Next: News, Prev: G77 and GCC, Up: Top ! 5 GNU Fortran Command Options ! ***************************** ! The `g77' command supports all the options supported by the `gcc' command. *Note GCC Command Options: (gcc)Invoking GCC, for information on the non-Fortran-specific aspects of the `gcc' command (and, therefore, the `g77' command). --- 1351,1360 ----  File: g77.info, Node: Invoking G77, Next: News, Prev: G77 and GCC, Up: Top ! GNU Fortran Command Options ! *************************** ! The `g77' command supports all the options supported by the `gcc' command. *Note GCC Command Options: (gcc)Invoking GCC, for information on the non-Fortran-specific aspects of the `gcc' command (and, therefore, the `g77' command). *************** only one of these two forms, whichever o *** 1394,1403 ****  File: g77.info, Node: Option Summary, Next: Overall Options, Up: Invoking G77 ! 5.1 Option Summary ! ================== ! Here is a summary of all the options specific to GNU Fortran, grouped by type. Explanations are in the following sections. _Overall Options_ --- 1392,1401 ----  File: g77.info, Node: Option Summary, Next: Overall Options, Up: Invoking G77 ! Option Summary ! ============== ! Here is a summary of all the options specific to GNU Fortran, grouped by type. Explanations are in the following sections. _Overall Options_ *************** _Shorthand Options_ *** 1410,1451 **** _Fortran Language Options_ *Note Options Controlling Fortran Dialect: Fortran Dialect Options. ! -ffree-form -fno-fixed-form -ff90 ! -fvxt -fdollar-ok -fno-backslash ! -fno-ugly-args -fno-ugly-assign -fno-ugly-assumed ! -fugly-comma -fugly-complex -fugly-init -fugly-logint ! -fonetrip -ftypeless-boz ! -fintrin-case-initcap -fintrin-case-upper ! -fintrin-case-lower -fintrin-case-any ! -fmatch-case-initcap -fmatch-case-upper ! -fmatch-case-lower -fmatch-case-any ! -fsource-case-upper -fsource-case-lower ! -fsource-case-preserve ! -fsymbol-case-initcap -fsymbol-case-upper ! -fsymbol-case-lower -fsymbol-case-any ! -fcase-strict-upper -fcase-strict-lower ! -fcase-initcap -fcase-upper -fcase-lower -fcase-preserve ! -ff2c-intrinsics-delete -ff2c-intrinsics-hide ! -ff2c-intrinsics-disable -ff2c-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 -fmil-intrinsics-enable ! -funix-intrinsics-delete -funix-intrinsics-hide ! -funix-intrinsics-disable -funix-intrinsics-enable ! -fvxt-intrinsics-delete -fvxt-intrinsics-hide ! -fvxt-intrinsics-disable -fvxt-intrinsics-enable -ffixed-line-length-N -ffixed-line-length-none _Warning Options_ *Note Options to Request or Suppress Warnings: Warning Options. ! -fsyntax-only -pedantic -pedantic-errors -fpedantic ! -w -Wno-globals -Wimplicit -Wunused -Wuninitialized ! -Wall -Wsurprising -Werror -W _Debugging Options_ --- 1408,1449 ---- _Fortran Language Options_ *Note Options Controlling Fortran Dialect: Fortran Dialect Options. ! -ffree-form -fno-fixed-form -ff90 ! -fvxt -fdollar-ok -fno-backslash ! -fno-ugly-args -fno-ugly-assign -fno-ugly-assumed ! -fugly-comma -fugly-complex -fugly-init -fugly-logint ! -fonetrip -ftypeless-boz ! -fintrin-case-initcap -fintrin-case-upper ! -fintrin-case-lower -fintrin-case-any ! -fmatch-case-initcap -fmatch-case-upper ! -fmatch-case-lower -fmatch-case-any ! -fsource-case-upper -fsource-case-lower ! -fsource-case-preserve ! -fsymbol-case-initcap -fsymbol-case-upper ! -fsymbol-case-lower -fsymbol-case-any ! -fcase-strict-upper -fcase-strict-lower ! -fcase-initcap -fcase-upper -fcase-lower -fcase-preserve ! -ff2c-intrinsics-delete -ff2c-intrinsics-hide ! -ff2c-intrinsics-disable -ff2c-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 -fmil-intrinsics-enable ! -funix-intrinsics-delete -funix-intrinsics-hide ! -funix-intrinsics-disable -funix-intrinsics-enable ! -fvxt-intrinsics-delete -fvxt-intrinsics-hide ! -fvxt-intrinsics-disable -fvxt-intrinsics-enable -ffixed-line-length-N -ffixed-line-length-none _Warning Options_ *Note Options to Request or Suppress Warnings: Warning Options. ! -fsyntax-only -pedantic -pedantic-errors -fpedantic ! -w -Wno-globals -Wimplicit -Wunused -Wuninitialized ! -Wall -Wsurprising -Werror -W _Debugging Options_ *************** _Debugging Options_ *** 1454,1467 **** _Optimization Options_ *Note Options that Control Optimization: Optimize Options. ! -malign-double ! -ffloat-store -fforce-mem -fforce-addr -fno-inline ! -ffast-math -fstrength-reduce -frerun-cse-after-loop ! -funsafe-math-optimizations -ffinite-math-only -fno-trapping-math ! -fexpensive-optimizations -fdelayed-branch ! -fschedule-insns -fschedule-insn2 -fcaller-saves ! -funroll-loops -funroll-all-loops ! -fno-move-all-movables -fno-reduce-all-givs -fno-rerun-loop-opt _Directory Options_ --- 1452,1465 ---- _Optimization Options_ *Note Options that Control Optimization: Optimize Options. ! -malign-double ! -ffloat-store -fforce-mem -fforce-addr -fno-inline ! -ffast-math -fstrength-reduce -frerun-cse-after-loop ! -funsafe-math-optimizations -ffinite-math-only -fno-trapping-math ! -fexpensive-optimizations -fdelayed-branch ! -fschedule-insns -fschedule-insn2 -fcaller-saves ! -funroll-loops -funroll-all-loops ! -fno-move-all-movables -fno-reduce-all-givs -fno-rerun-loop-opt _Directory Options_ *************** _Directory Options_ *** 1470,1487 **** _Code Generation Options_ *Note Options for Code Generation Conventions: Code Gen Options. ! -fno-automatic -finit-local-zero -fno-f2c ! -ff2c-library -fno-underscoring -fno-ident ! -fpcc-struct-return -freg-struct-return ! -fshort-double -fno-common -fpack-struct ! -fzeros -fno-second-underscore ! -femulate-complex ! -falias-check -fargument-alias ! -fargument-noalias -fno-argument-noalias-global ! -fno-globals -fflatten-arrays -fbounds-check -ffortran-bounds-check - * Menu: * Overall Options:: Controlling the kind of output: --- 1468,1484 ---- _Code Generation Options_ *Note Options for Code Generation Conventions: Code Gen Options. ! -fno-automatic -finit-local-zero -fno-f2c ! -ff2c-library -fno-underscoring -fno-ident ! -fpcc-struct-return -freg-struct-return ! -fshort-double -fno-common -fpack-struct ! -fzeros -fno-second-underscore ! -femulate-complex ! -falias-check -fargument-alias ! -fargument-noalias -fno-argument-noalias-global ! -fno-globals -fflatten-arrays -fbounds-check -ffortran-bounds-check * Menu: * Overall Options:: Controlling the kind of output: *************** _Code Generation Options_ *** 1503,1512 ****  File: g77.info, Node: Overall Options, Next: Shorthand Options, Prev: Option Summary, Up: Invoking G77 ! 5.2 Options Controlling the Kind of Output ! ========================================== ! Compilation can involve as many as four stages: preprocessing, code generation (often what is really meant by the term "compilation"), assembly, and linking, always in that order. The first three stages apply to an individual source file, and end by producing an object --- 1500,1509 ----  File: g77.info, Node: Overall Options, Next: Shorthand Options, Prev: Option Summary, Up: Invoking G77 ! Options Controlling the Kind of Output ! ====================================== ! Compilation can involve as many as four stages: preprocessing, code generation (often what is really meant by the term "compilation"), assembly, and linking, always in that order. The first three stages apply to an individual source file, and end by producing an object *************** the `gcc' command (and, by extension, th *** 1646,1656 ****  File: g77.info, Node: Shorthand Options, Next: Fortran Dialect Options, Prev: Overall Options, Up: Invoking G77 ! 5.3 Shorthand Options ! ===================== ! The following options serve as "shorthand" for other options accepted ! by the compiler: `-fugly' _Note:_ This option is no longer supported. The information, --- 1643,1653 ----  File: g77.info, Node: Shorthand Options, Next: Fortran Dialect Options, Prev: Overall Options, Up: Invoking G77 ! Shorthand Options ! ================= ! The following options serve as "shorthand" for other options ! accepted by the compiler: `-fugly' _Note:_ This option is no longer supported. The information, *************** by the compiler: *** 1710,1720 ****  File: g77.info, Node: Fortran Dialect Options, Next: Warning Options, Prev: Shorthand Options, Up: Invoking G77 ! 5.4 Options Controlling Fortran Dialect ! ======================================= ! The following options control the dialect of Fortran that the compiler ! accepts: `-ffree-form' --- 1707,1717 ----  File: g77.info, Node: Fortran Dialect Options, Next: Warning Options, Prev: Shorthand Options, Up: Invoking G77 ! Options Controlling Fortran Dialect ! =================================== ! The following options control the dialect of Fortran that the ! compiler accepts: `-ffree-form' *************** accepts: *** 2043,2052 ****  File: g77.info, Node: Warning Options, Next: Debugging Options, Prev: Fortran Dialect Options, Up: Invoking G77 ! 5.5 Options to Request or Suppress Warnings ! =========================================== ! Warnings are diagnostic messages that report constructions which are not inherently erroneous but which are risky or suggest there might have been an error. --- 2040,2049 ----  File: g77.info, Node: Warning Options, Next: Debugging Options, Prev: Fortran Dialect Options, Up: Invoking G77 ! Options to Request or Suppress Warnings ! ======================================= ! Warnings are diagnostic messages that report constructions which are not inherently erroneous but which are risky or suggest there might have been an error. *************** Fortran: *** 2276,2285 ****  File: g77.info, Node: Debugging Options, Next: Optimize Options, Prev: Warning Options, Up: Invoking G77 ! 5.6 Options for Debugging Your Program or GNU Fortran ! ===================================================== ! GNU Fortran has various special options that are used for debugging either your program or `g77' `-g' --- 2273,2282 ----  File: g77.info, Node: Debugging Options, Next: Optimize Options, Prev: Warning Options, Up: Invoking G77 ! Options for Debugging Your Program or GNU Fortran ! ================================================= ! GNU Fortran has various special options that are used for debugging either your program or `g77' `-g' *************** Options, for more information on debuggi *** 2323,2333 ****  File: g77.info, Node: Optimize Options, Next: Preprocessor Options, Prev: Debugging Options, Up: Invoking G77 ! 5.7 Options That Control Optimization ! ===================================== ! Most Fortran users will want to use no optimization when developing and ! testing programs, and use `-O' or `-O2' when compiling programs for late-cycle testing and for production use. However, note that certain diagnostics--such as for uninitialized variables--depend on the flow analysis done by `-O', i.e. you must use `-O' or `-O2' to get such --- 2320,2330 ----  File: g77.info, Node: Optimize Options, Next: Preprocessor Options, Prev: Debugging Options, Up: Invoking G77 ! Options That Control Optimization ! ================================= ! Most Fortran users will want to use no optimization when developing ! and testing programs, and use `-O' or `-O2' when compiling programs for late-cycle testing and for production use. However, note that certain diagnostics--such as for uninitialized variables--depend on the flow analysis done by `-O', i.e. you must use `-O' or `-O2' to get such *************** than otherwise. *** 2495,2505 ****  File: g77.info, Node: Preprocessor Options, Next: Directory Options, Prev: Optimize Options, Up: Invoking G77 ! 5.8 Options Controlling the Preprocessor ! ======================================== ! These options control the C preprocessor, which is run on each C source ! file before actual compilation. *Note Options Controlling the Preprocessor: (gcc)Preprocessor Options, for information on C preprocessor options. --- 2492,2502 ----  File: g77.info, Node: Preprocessor Options, Next: Directory Options, Prev: Optimize Options, Up: Invoking G77 ! Options Controlling the Preprocessor ! ==================================== ! These options control the C preprocessor, which is run on each C ! source file before actual compilation. *Note Options Controlling the Preprocessor: (gcc)Preprocessor Options, for information on C preprocessor options. *************** included by a file that itself contains *** 2522,2531 ****  File: g77.info, Node: Directory Options, Next: Code Gen Options, Prev: Preprocessor Options, Up: Invoking G77 ! 5.9 Options for Directory Search ! ================================ ! These options affect how the `cpp' preprocessor searches for files specified via the `#include' directive. Therefore, when compiling Fortran programs, they are meaningful when the preprocessor is used. --- 2519,2528 ----  File: g77.info, Node: Directory Options, Next: Code Gen Options, Prev: Preprocessor Options, Up: Invoking G77 ! Options for Directory Search ! ============================ ! These options affect how the `cpp' preprocessor searches for files specified via the `#include' directive. Therefore, when compiling Fortran programs, they are meaningful when the preprocessor is used. *************** directive are not, themselves, preproces *** 2553,2562 ****  File: g77.info, Node: Code Gen Options, Next: Environment Variables, Prev: Directory Options, Up: Invoking G77 ! 5.10 Options for Code Generation Conventions ! ============================================ ! These machine-independent options control the interface conventions used in code generation. Most of them have both positive and negative forms; the negative form --- 2550,2559 ----  File: g77.info, Node: Code Gen Options, Next: Environment Variables, Prev: Directory Options, Up: Invoking G77 ! Options for Code Generation Conventions ! ======================================= ! These machine-independent options control the interface conventions used in code generation. Most of them have both positive and negative forms; the negative form *************** Fortran: *** 2893,2904 ****  File: g77.info, Node: Environment Variables, Prev: Code Gen Options, Up: Invoking G77 ! 5.11 Environment Variables Affecting GNU Fortran ! ================================================ ! GNU Fortran currently does not make use of any environment variables to ! control its operation above and beyond those that affect the operation ! of `gcc'. *Note Environment Variables Affecting GCC: (gcc)Environment Variables, for information on environment variables. --- 2890,2901 ----  File: g77.info, Node: Environment Variables, Prev: Code Gen Options, Up: Invoking G77 ! Environment Variables Affecting GNU Fortran ! =========================================== ! GNU Fortran currently does not make use of any environment variables ! to control its operation above and beyond those that affect the ! operation of `gcc'. *Note Environment Variables Affecting GCC: (gcc)Environment Variables, for information on environment variables. *************** Variables, for information on environmen *** 2906,2916 ****  File: g77.info, Node: News, Next: Changes, Prev: Invoking G77, Up: Top ! 6 News About GNU Fortran ! ************************ _`GCC' 3.4.x is the last edition of `GCC' to contain `g77' - from ! `GCC' 3.5 onwards, use `gfortran'_ Changes made to recent versions of GNU Fortran are listed below, with the most recent version first. --- 2903,2913 ----  File: g77.info, Node: News, Next: Changes, Prev: Invoking G77, Up: Top ! News About GNU Fortran ! ********************** _`GCC' 3.4.x is the last edition of `GCC' to contain `g77' - from ! `GCC' 4.0 onwards, use `gfortran'_ Changes made to recent versions of GNU Fortran are listed below, with the most recent version first. *************** clarify how they differ from other versi *** 2946,2955 **** getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.4.3 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2004-06-17: In `GCC' 3.4 versus `GCC' 3.3: ============================== --- 2943,2952 ---- getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.4.4 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2004-12-29: In `GCC' 3.4 versus `GCC' 3.3: ============================== *************** In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versu *** 3303,3310 **** In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 is ! the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. --- 3300,3307 ---- In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 ! is the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. *************** In 0.5.20: *** 4250,4265 **** In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  File: g77.info, Node: Changes, Next: Language, Prev: News, Up: Top ! 7 User-visible Changes ! ********************** ! This chapter describes changes to `g77' that are visible to the programmers who actually write and maintain Fortran code they compile with `g77'. Information on changes to installation procedures, changes to the documentation, and bug fixes is not provided here, unless it is --- 4247,4262 ---- In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  File: g77.info, Node: Changes, Next: Language, Prev: News, Up: Top ! User-visible Changes ! ******************** ! This chapter describes changes to `g77' that are visible to the programmers who actually write and maintain Fortran code they compile with `g77'. Information on changes to installation procedures, changes to the documentation, and bug fixes is not provided here, unless it is *************** clarify how they differ from other versi *** 4277,4286 **** getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.4.3 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2004-06-17: In `GCC' 3.4 versus `GCC' 3.3: ============================== --- 4274,4283 ---- getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.4.4 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2004-12-29: In `GCC' 3.4 versus `GCC' 3.3: ============================== *************** In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versu *** 4547,4554 **** In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 is ! the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. --- 4544,4551 ---- In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 ! is the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. *************** In 0.5.20: *** 4986,5003 **** In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  File: g77.info, Node: Language, Next: Compiler, Prev: Changes, Up: Top ! 8 The GNU Fortran Language ! ************************** ! GNU Fortran supports a variety of extensions to, and dialects of, the ! Fortran language. Its primary base is the ANSI FORTRAN 77 standard, ! currently available on the network at `http://www.fortran.com/fortran/F77_std/rjcnf0001.html' or as monolithic text at `http://www.fortran.com/fortran/F77_std/f77_std.html'. It offers some --- 4983,5000 ---- In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  File: g77.info, Node: Language, Next: Compiler, Prev: Changes, Up: Top ! The GNU Fortran Language ! ************************ ! GNU Fortran supports a variety of extensions to, and dialects of, ! the Fortran language. Its primary base is the ANSI FORTRAN 77 ! standard, currently available on the network at `http://www.fortran.com/fortran/F77_std/rjcnf0001.html' or as monolithic text at `http://www.fortran.com/fortran/F77_std/f77_std.html'. It offers some *************** Extensions to the ANSI FORTRAN 77 standa *** 5051,5061 ****  File: g77.info, Node: Direction of Language Development, Next: Standard Support, Up: Language ! 8.1 Direction of Language Development ! ===================================== ! The purpose of the following description of the GNU Fortran language is ! to promote wide portability of GNU Fortran programs. GNU Fortran is an evolving language, due to the fact that `g77' itself is in beta test. Some current features of the language might --- 5048,5058 ----  File: g77.info, Node: Direction of Language Development, Next: Standard Support, Up: Language ! Direction of Language Development ! ================================= ! The purpose of the following description of the GNU Fortran language ! is to promote wide portability of GNU Fortran programs. GNU Fortran is an evolving language, due to the fact that `g77' itself is in beta test. Some current features of the language might *************** versions of `g77'). *** 5177,5186 ****  File: g77.info, Node: Standard Support, Next: Conformance, Prev: Direction of Language Development, Up: Language ! 8.2 ANSI FORTRAN 77 Standard Support ! ==================================== ! GNU Fortran supports ANSI FORTRAN 77 with the following caveats. In summary, the only ANSI FORTRAN 77 features `g77' doesn't support are those that are probably rarely used in actual code, some of which are explicitly disallowed by the Fortran 90 standard. --- 5174,5183 ----  File: g77.info, Node: Standard Support, Next: Conformance, Prev: Direction of Language Development, Up: Language ! ANSI FORTRAN 77 Standard Support ! ================================ ! GNU Fortran supports ANSI FORTRAN 77 with the following caveats. In summary, the only ANSI FORTRAN 77 features `g77' doesn't support are those that are probably rarely used in actual code, some of which are explicitly disallowed by the Fortran 90 standard. *************** explicitly disallowed by the Fortran 90 *** 5195,5205 ****  File: g77.info, Node: No Passing External Assumed-length, Next: No Passing Dummy Assumed-length, Up: Standard Support ! 8.2.1 No Passing External Assumed-length ! ---------------------------------------- ! `g77' disallows passing of an external procedure as an actual argument ! if the procedure's type is declared `CHARACTER*(*)'. For example: CHARACTER*(*) CFUNC EXTERNAL CFUNC --- 5192,5203 ----  File: g77.info, Node: No Passing External Assumed-length, Next: No Passing Dummy Assumed-length, Up: Standard Support ! No Passing External Assumed-length ! ---------------------------------- ! `g77' disallows passing of an external procedure as an actual ! argument if the procedure's type is declared `CHARACTER*(*)'. For ! example: CHARACTER*(*) CFUNC EXTERNAL CFUNC *************** It isn't clear whether the standard cons *** 5211,5221 ****  File: g77.info, Node: No Passing Dummy Assumed-length, Next: No Pathological Implied-DO, Prev: No Passing External Assumed-length, Up: Standard Support ! 8.2.2 No Passing Dummy Assumed-length ! ------------------------------------- ! `g77' disallows passing of a dummy procedure as an actual argument if ! the procedure's type is declared `CHARACTER*(*)'. SUBROUTINE BAR(CFUNC) CHARACTER*(*) CFUNC --- 5209,5219 ----  File: g77.info, Node: No Passing Dummy Assumed-length, Next: No Pathological Implied-DO, Prev: No Passing External Assumed-length, Up: Standard Support ! No Passing Dummy Assumed-length ! ------------------------------- ! `g77' disallows passing of a dummy procedure as an actual argument ! if the procedure's type is declared `CHARACTER*(*)'. SUBROUTINE BAR(CFUNC) CHARACTER*(*) CFUNC *************** It isn't clear whether the standard cons *** 5228,5239 ****  File: g77.info, Node: No Pathological Implied-DO, Next: No Useless Implied-DO, Prev: No Passing Dummy Assumed-length, Up: Standard Support ! 8.2.3 No Pathological Implied-DO ! -------------------------------- ! The `DO' variable for an implied-`DO' construct in a `DATA' statement ! may not be used as the `DO' variable for an outer implied-`DO' ! construct. For example, this fragment is disallowed by `g77': DATA ((A(I, I), I= 1, 10), I= 1, 10) /.../ --- 5226,5238 ----  File: g77.info, Node: No Pathological Implied-DO, Next: No Useless Implied-DO, Prev: No Passing Dummy Assumed-length, Up: Standard Support ! No Pathological Implied-DO ! -------------------------- ! The `DO' variable for an implied-`DO' construct in a `DATA' ! statement may not be used as the `DO' variable for an outer ! implied-`DO' construct. For example, this fragment is disallowed by ! `g77': DATA ((A(I, I), I= 1, 10), I= 1, 10) /.../ *************** tries to use this unsupported construct. *** 5246,5258 ****  File: g77.info, Node: No Useless Implied-DO, Prev: No Pathological Implied-DO, Up: Standard Support ! 8.2.4 No Useless Implied-DO ! --------------------------- ! An array element initializer in an implied-`DO' construct in a `DATA' ! statement must contain at least one reference to the `DO' variables of ! each outer implied-`DO' construct. For example, this fragment is ! disallowed by `g77': DATA (A, I= 1, 1) /1./ --- 5245,5257 ----  File: g77.info, Node: No Useless Implied-DO, Prev: No Pathological Implied-DO, Up: Standard Support ! No Useless Implied-DO ! --------------------- ! An array element initializer in an implied-`DO' construct in a ! `DATA' statement must contain at least one reference to the `DO' ! variables of each outer implied-`DO' construct. For example, this ! fragment is disallowed by `g77': DATA (A, I= 1, 1) /1./ *************** tries to use this unsupported construct. *** 5266,5275 ****  File: g77.info, Node: Conformance, Next: Notation Used, Prev: Standard Support, Up: Language ! 8.3 Conformance ! =============== ! (The following information augments or overrides the information in Section 1.4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5265,5274 ----  File: g77.info, Node: Conformance, Next: Notation Used, Prev: Standard Support, Up: Language ! Conformance ! =========== ! (The following information augments or overrides the information in Section 1.4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** predictable way". *** 5318,5327 ****  File: g77.info, Node: Notation Used, Next: Terms and Concepts, Prev: Conformance, Up: Language ! 8.4 Notation Used in This Chapter ! ================================= ! (The following information augments or overrides the information in Section 1.5 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5317,5326 ----  File: g77.info, Node: Notation Used, Next: Terms and Concepts, Prev: Conformance, Up: Language ! Notation Used in This Chapter ! ============================= ! (The following information augments or overrides the information in Section 1.5 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** explain or illustrate the language. *** 5334,5346 **** For example: ! "The `FROBNITZ' statement must precede all executable statements in a program unit, and may not specify any dummy arguments. It may specify local or common variables and arrays. Its use should be limited to portions of the program designed to be non-portable and system-specific, because it might cause the containing program unit to behave quite differently on different ! systems." Insofar as the GNU Fortran language is specified, the requirements and permissions denoted by the above sample statement are limited to --- 5333,5345 ---- For example: ! ``The `FROBNITZ' statement must precede all executable statements in a program unit, and may not specify any dummy arguments. It may specify local or common variables and arrays. Its use should be limited to portions of the program designed to be non-portable and system-specific, because it might cause the containing program unit to behave quite differently on different ! systems.'' Insofar as the GNU Fortran language is specified, the requirements and permissions denoted by the above sample statement are limited to *************** notation is used as follows: *** 5412,5421 ****  File: g77.info, Node: Terms and Concepts, Next: Characters Lines Sequence, Prev: Notation Used, Up: Language ! 8.5 Fortran Terms and Concepts ! ============================== ! (The following information augments or overrides the information in Chapter 2 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 2 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5411,5420 ----  File: g77.info, Node: Terms and Concepts, Next: Characters Lines Sequence, Prev: Notation Used, Up: Language ! Fortran Terms and Concepts ! ========================== ! (The following information augments or overrides the information in Chapter 2 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 2 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** the relevant aspects of GNU Fortran.) *** 5429,5438 ****  File: g77.info, Node: Syntactic Items, Next: Statements Comments Lines, Up: Terms and Concepts ! 8.5.1 Syntactic Items ! --------------------- ! (Corresponds to Section 2.2 of ANSI X3.9-1978 FORTRAN 77.) In GNU Fortran, a symbolic name is at least one character long, and has no arbitrary upper limit on length. However, names of entities --- 5428,5437 ----  File: g77.info, Node: Syntactic Items, Next: Statements Comments Lines, Up: Terms and Concepts ! Syntactic Items ! --------------- ! (Corresponds to Section 2.2 of ANSI X3.9-1978 FORTRAN 77.) In GNU Fortran, a symbolic name is at least one character long, and has no arbitrary upper limit on length. However, names of entities *************** character (which must be a letter). *** 5447,5456 ****  File: g77.info, Node: Statements Comments Lines, Next: Scope of Names and Labels, Prev: Syntactic Items, Up: Terms and Concepts ! 8.5.2 Statements, Comments, and Lines ! ------------------------------------- ! (Corresponds to Section 2.3 of ANSI X3.9-1978 FORTRAN 77.) Use of an exclamation point (`!') to begin a trailing comment (a comment that extends to the end of the same source line) is permitted --- 5446,5455 ----  File: g77.info, Node: Statements Comments Lines, Next: Scope of Names and Labels, Prev: Syntactic Items, Up: Terms and Concepts ! Statements, Comments, and Lines ! ------------------------------- ! (Corresponds to Section 2.3 of ANSI X3.9-1978 FORTRAN 77.) Use of an exclamation point (`!') to begin a trailing comment (a comment that extends to the end of the same source line) is permitted *************** the following conditions: *** 5496,5505 ****  File: g77.info, Node: Scope of Names and Labels, Prev: Statements Comments Lines, Up: Terms and Concepts ! 8.5.3 Scope of Symbolic Names and Statement Labels ! -------------------------------------------------- ! (Corresponds to Section 2.9 of ANSI X3.9-1978 FORTRAN 77.) Included in the list of entities that have a scope of a program unit are construct names (a Fortran 90 feature). *Note Construct Names::, --- 5495,5504 ----  File: g77.info, Node: Scope of Names and Labels, Prev: Statements Comments Lines, Up: Terms and Concepts ! Scope of Symbolic Names and Statement Labels ! -------------------------------------------- ! (Corresponds to Section 2.9 of ANSI X3.9-1978 FORTRAN 77.) Included in the list of entities that have a scope of a program unit are construct names (a Fortran 90 feature). *Note Construct Names::, *************** for more information. *** 5508,5517 ****  File: g77.info, Node: Characters Lines Sequence, Next: Data Types and Constants, Prev: Terms and Concepts, Up: Language ! 8.6 Characters, Lines, and Execution Sequence ! ============================================= ! (The following information augments or overrides the information in Chapter 3 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 3 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5507,5516 ----  File: g77.info, Node: Characters Lines Sequence, Next: Data Types and Constants, Prev: Terms and Concepts, Up: Language ! Characters, Lines, and Execution Sequence ! ========================================= ! (The following information augments or overrides the information in Chapter 3 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 3 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** the relevant aspects of GNU Fortran.) *** 5530,5539 ****  File: g77.info, Node: Character Set, Next: Lines, Up: Characters Lines Sequence ! 8.6.1 GNU Fortran Character Set ! ------------------------------- ! (Corresponds to Section 3.1 of ANSI X3.9-1978 FORTRAN 77.) Letters include uppercase letters (the twenty-six characters of the English alphabet) and lowercase letters (their lowercase equivalent). --- 5529,5538 ----  File: g77.info, Node: Character Set, Next: Lines, Up: Characters Lines Sequence ! GNU Fortran Character Set ! ------------------------- ! (Corresponds to Section 3.1 of ANSI X3.9-1978 FORTRAN 77.) Letters include uppercase letters (the twenty-six characters of the English alphabet) and lowercase letters (their lowercase equivalent). *************** FORTRAN 77 refers to it as "blank". *** 5573,5582 ****  File: g77.info, Node: Lines, Next: Continuation Line, Prev: Character Set, Up: Characters Lines Sequence ! 8.6.2 Lines ! ----------- ! (Corresponds to Section 3.2 of ANSI X3.9-1978 FORTRAN 77.) The way a Fortran compiler views source files depends entirely on the implementation choices made for the compiler, since those choices are --- 5572,5581 ----  File: g77.info, Node: Lines, Next: Continuation Line, Prev: Character Set, Up: Characters Lines Sequence ! Lines ! ----- ! (Corresponds to Section 3.2 of ANSI X3.9-1978 FORTRAN 77.) The way a Fortran compiler views source files depends entirely on the implementation choices made for the compiler, since those choices are *************** containing 72 spaces. *** 5633,5642 ****  File: g77.info, Node: Continuation Line, Next: Statements, Prev: Lines, Up: Characters Lines Sequence ! 8.6.3 Continuation Line ! ----------------------- ! (Corresponds to Section 3.2.3 of ANSI X3.9-1978 FORTRAN 77.) A continuation line is any line that both --- 5632,5641 ----  File: g77.info, Node: Continuation Line, Next: Statements, Prev: Lines, Up: Characters Lines Sequence ! Continuation Line ! ----------------- ! (Corresponds to Section 3.2.3 of ANSI X3.9-1978 FORTRAN 77.) A continuation line is any line that both *************** on, but no GNU Fortran system may impose *** 5660,5669 ****  File: g77.info, Node: Statements, Next: Statement Labels, Prev: Continuation Line, Up: Characters Lines Sequence ! 8.6.4 Statements ! ---------------- ! (Corresponds to Section 3.3 of ANSI X3.9-1978 FORTRAN 77.) Statements may be written using an arbitrary number of continuation lines. --- 5659,5668 ----  File: g77.info, Node: Statements, Next: Statement Labels, Prev: Continuation Line, Up: Characters Lines Sequence ! Statements ! ---------- ! (Corresponds to Section 3.3 of ANSI X3.9-1978 FORTRAN 77.) Statements may be written using an arbitrary number of continuation lines. *************** not be written as: *** 5688,5697 ****  File: g77.info, Node: Statement Labels, Next: Order, Prev: Statements, Up: Characters Lines Sequence ! 8.6.5 Statement Labels ! ---------------------- ! (Corresponds to Section 3.4 of ANSI X3.9-1978 FORTRAN 77.) A statement separated from its predecessor via a semicolon may be labeled as follows: --- 5687,5696 ----  File: g77.info, Node: Statement Labels, Next: Order, Prev: Statements, Up: Characters Lines Sequence ! Statement Labels ! ---------------- ! (Corresponds to Section 3.4 of ANSI X3.9-1978 FORTRAN 77.) A statement separated from its predecessor via a semicolon may be labeled as follows: *************** labeled as follows: *** 5710,5719 ****  File: g77.info, Node: Order, Next: INCLUDE, Prev: Statement Labels, Up: Characters Lines Sequence ! 8.6.6 Order of Statements and Lines ! ----------------------------------- ! (Corresponds to Section 3.5 of ANSI X3.9-1978 FORTRAN 77.) Generally, `DATA' statements may precede executable statements. However, specification statements pertaining to any entities --- 5709,5718 ----  File: g77.info, Node: Order, Next: INCLUDE, Prev: Statement Labels, Up: Characters Lines Sequence ! Order of Statements and Lines ! ----------------------------- ! (Corresponds to Section 3.5 of ANSI X3.9-1978 FORTRAN 77.) Generally, `DATA' statements may precede executable statements. However, specification statements pertaining to any entities *************** For example, after `DATA I/1/', `INTEGER *** 5734,5744 ****  File: g77.info, Node: INCLUDE, Next: Cpp-style directives, Prev: Order, Up: Characters Lines Sequence ! 8.6.7 Including Source Text ! --------------------------- ! Additional source text may be included in the processing of the source ! file via the `INCLUDE' directive: INCLUDE FILENAME --- 5733,5743 ----  File: g77.info, Node: INCLUDE, Next: Cpp-style directives, Prev: Order, Up: Characters Lines Sequence ! Including Source Text ! --------------------- ! Additional source text may be included in the processing of the ! source file via the `INCLUDE' directive: INCLUDE FILENAME *************** it were a statement. This permits long *** 5803,5824 ****  File: g77.info, Node: Cpp-style directives, Prev: INCLUDE, Up: Characters Lines Sequence ! 8.6.8 Cpp-style directives ! -------------------------- ! `cpp' output-style `#' directives (*note C Preprocessor Output: (cpp)C ! Preprocessor Output.) are recognized by the compiler even when the ! preprocessor isn't run on the input (as it is when compiling `.F' files). (Note the distinction between these `cpp' `#' _output_ directives and `#line' _input_ directives.)  File: g77.info, Node: Data Types and Constants, Next: Expressions, Prev: Characters Lines Sequence, Up: Language ! 8.7 Data Types and Constants ! ============================ ! (The following information augments or overrides the information in Chapter 4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 4 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5802,5823 ----  File: g77.info, Node: Cpp-style directives, Prev: INCLUDE, Up: Characters Lines Sequence ! Cpp-style directives ! -------------------- ! `cpp' output-style `#' directives (*note C Preprocessor Output: ! (cpp)C Preprocessor Output.) are recognized by the compiler even when ! the preprocessor isn't run on the input (as it is when compiling `.F' files). (Note the distinction between these `cpp' `#' _output_ directives and `#line' _input_ directives.)  File: g77.info, Node: Data Types and Constants, Next: Expressions, Prev: Characters Lines Sequence, Up: Language ! Data Types and Constants ! ======================== ! (The following information augments or overrides the information in Chapter 4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 4 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** provided below. *** 5893,5902 ****  File: g77.info, Node: Types, Next: Constants, Up: Data Types and Constants ! 8.7.1 Data Types ! ---------------- ! (Corresponds to Section 4.1 of ANSI X3.9-1978 FORTRAN 77.) GNU Fortran supports these types: --- 5892,5901 ----  File: g77.info, Node: Types, Next: Constants, Up: Data Types and Constants ! Data Types ! ---------- ! (Corresponds to Section 4.1 of ANSI X3.9-1978 FORTRAN 77.) GNU Fortran supports these types: *************** kind of a generic type. *** 5935,5945 ****  File: g77.info, Node: Double Notation, Next: Star Notation, Up: Types ! 8.7.1.1 Double Notation ! ....................... ! The GNU Fortran language supports two uses of the keyword `DOUBLE' to ! specify a specific kind of type: * `DOUBLE PRECISION', equivalent to `REAL(KIND=2)' --- 5934,5944 ----  File: g77.info, Node: Double Notation, Next: Star Notation, Up: Types ! Double Notation ! ............... ! The GNU Fortran language supports two uses of the keyword `DOUBLE' ! to specify a specific kind of type: * `DOUBLE PRECISION', equivalent to `REAL(KIND=2)' *************** the benefit of those readers who are acc *** 5964,5973 ****  File: g77.info, Node: Star Notation, Next: Kind Notation, Prev: Double Notation, Up: Types ! 8.7.1.2 Star Notation ! ..................... ! The following notation specifies the storage size for a type: GENERIC-TYPE*N --- 5963,5972 ----  File: g77.info, Node: Star Notation, Next: Kind Notation, Prev: Double Notation, Up: Types ! Star Notation ! ............. ! The following notation specifies the storage size for a type: GENERIC-TYPE*N *************** the benefit of those readers who are acc *** 6030,6039 ****  File: g77.info, Node: Kind Notation, Prev: Star Notation, Up: Types ! 8.7.1.3 Kind Notation ! ..................... ! The following notation specifies the kind-type selector of a type: GENERIC-TYPE(KIND=N) --- 6029,6038 ----  File: g77.info, Node: Kind Notation, Prev: Star Notation, Up: Types ! Kind Notation ! ............. ! The following notation specifies the kind-type selector of a type: GENERIC-TYPE(KIND=N) *************** United States Department of Defense. *** 6235,6244 ****  File: g77.info, Node: Constants, Next: Integer Type, Prev: Types, Up: Data Types and Constants ! 8.7.2 Constants ! --------------- ! (Corresponds to Section 4.2 of ANSI X3.9-1978 FORTRAN 77.) A "typeless constant" has one of the following forms: --- 6234,6243 ----  File: g77.info, Node: Constants, Next: Integer Type, Prev: Types, Up: Data Types and Constants ! Constants ! --------- ! (Corresponds to Section 4.2 of ANSI X3.9-1978 FORTRAN 77.) A "typeless constant" has one of the following forms: *************** type `REAL(KIND=2)', and `1D0' is always *** 6274,6283 ****  File: g77.info, Node: Integer Type, Next: Character Type, Prev: Constants, Up: Data Types and Constants ! 8.7.3 Integer Type ! ------------------ ! (Corresponds to Section 4.3 of ANSI X3.9-1978 FORTRAN 77.) An integer constant also may have one of the following forms: --- 6273,6282 ----  File: g77.info, Node: Integer Type, Next: Character Type, Prev: Constants, Up: Data Types and Constants ! Integer Type ! ------------ ! (Corresponds to Section 4.3 of ANSI X3.9-1978 FORTRAN 77.) An integer constant also may have one of the following forms: *************** is 10, for `B' and `b' is 11, and so on. *** 6294,6303 ****  File: g77.info, Node: Character Type, Prev: Integer Type, Up: Data Types and Constants ! 8.7.4 Character Type ! -------------------- ! (Corresponds to Section 4.8 of ANSI X3.9-1978 FORTRAN 77.) A character constant may be delimited by a pair of double quotes (`"') instead of apostrophes. In this case, an apostrophe within the --- 6293,6302 ----  File: g77.info, Node: Character Type, Prev: Integer Type, Up: Data Types and Constants ! Character Type ! -------------- ! (Corresponds to Section 4.8 of ANSI X3.9-1978 FORTRAN 77.) A character constant may be delimited by a pair of double quotes (`"') instead of apostrophes. In this case, an apostrophe within the *************** the value of `'hello'(3:5)' is the same *** 6314,6323 ****  File: g77.info, Node: Expressions, Next: Specification Statements, Prev: Data Types and Constants, Up: Language ! 8.8 Expressions ! =============== ! (The following information augments or overrides the information in Chapter 6 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 6 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6313,6322 ----  File: g77.info, Node: Expressions, Next: Specification Statements, Prev: Data Types and Constants, Up: Language ! Expressions ! =========== ! (The following information augments or overrides the information in Chapter 6 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 6 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** the relevant aspects of GNU Fortran.) *** 6329,6336 ****  File: g77.info, Node: %LOC(), Up: Expressions ! 8.8.1 The `%LOC()' Construct ! ---------------------------- %LOC(ARG) --- 6328,6335 ----  File: g77.info, Node: %LOC(), Up: Expressions ! The `%LOC()' Construct ! ---------------------- %LOC(ARG) *************** this particular version of `g77' impleme *** 6385,6394 ****  File: g77.info, Node: Specification Statements, Next: Control Statements, Prev: Expressions, Up: Language ! 8.9 Specification Statements ! ============================ ! (The following information augments or overrides the information in Chapter 8 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 8 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6384,6393 ----  File: g77.info, Node: Specification Statements, Next: Control Statements, Prev: Expressions, Up: Language ! Specification Statements ! ======================== ! (The following information augments or overrides the information in Chapter 8 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 8 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** the relevant aspects of GNU Fortran.) *** 6401,6411 ****  File: g77.info, Node: NAMELIST, Next: DOUBLE COMPLEX, Up: Specification Statements ! 8.9.1 `NAMELIST' Statement ! -------------------------- ! The `NAMELIST' statement, and related I/O constructs, are supported by ! the GNU Fortran language in essentially the same way as they are by `f2c'. This follows Fortran 90 with the restriction that on `NAMELIST' --- 6400,6410 ----  File: g77.info, Node: NAMELIST, Next: DOUBLE COMPLEX, Up: Specification Statements ! `NAMELIST' Statement ! -------------------- ! The `NAMELIST' statement, and related I/O constructs, are supported ! by the GNU Fortran language in essentially the same way as they are by `f2c'. This follows Fortran 90 with the restriction that on `NAMELIST' *************** in place of `&' and `/' in `NAMELIST' in *** 6424,6442 ****  File: g77.info, Node: DOUBLE COMPLEX, Prev: NAMELIST, Up: Specification Statements ! 8.9.2 `DOUBLE COMPLEX' Statement ! -------------------------------- ! `DOUBLE COMPLEX' is a type-statement (and type) that specifies the type ! `COMPLEX(KIND=2)' in GNU Fortran.  File: g77.info, Node: Control Statements, Next: Functions and Subroutines, Prev: Specification Statements, Up: Language ! 8.10 Control Statements ! ======================= ! (The following information augments or overrides the information in Chapter 11 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 11 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6423,6441 ----  File: g77.info, Node: DOUBLE COMPLEX, Prev: NAMELIST, Up: Specification Statements ! `DOUBLE COMPLEX' Statement ! -------------------------- ! `DOUBLE COMPLEX' is a type-statement (and type) that specifies the ! type `COMPLEX(KIND=2)' in GNU Fortran.  File: g77.info, Node: Control Statements, Next: Functions and Subroutines, Prev: Specification Statements, Up: Language ! Control Statements ! ================== ! (The following information augments or overrides the information in Chapter 11 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 11 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** for the relevant aspects of GNU Fortran. *** 6451,6460 ****  File: g77.info, Node: DO WHILE, Next: END DO, Up: Control Statements ! 8.10.1 DO WHILE ! --------------- ! The `DO WHILE' statement, a feature of both the MIL-STD 1753 and Fortran 90 standards, is provided by the GNU Fortran language. The Fortran 90 "do forever" statement comprising just `DO' is also supported. --- 6450,6459 ----  File: g77.info, Node: DO WHILE, Next: END DO, Up: Control Statements ! DO WHILE ! -------- ! The `DO WHILE' statement, a feature of both the MIL-STD 1753 and Fortran 90 standards, is provided by the GNU Fortran language. The Fortran 90 "do forever" statement comprising just `DO' is also supported. *************** supported. *** 6462,6471 ****  File: g77.info, Node: END DO, Next: Construct Names, Prev: DO WHILE, Up: Control Statements ! 8.10.2 END DO ! ------------- ! The `END DO' statement is provided by the GNU Fortran language. This statement is used in one of two ways: --- 6461,6470 ----  File: g77.info, Node: END DO, Next: Construct Names, Prev: DO WHILE, Up: Control Statements ! END DO ! ------ ! The `END DO' statement is provided by the GNU Fortran language. This statement is used in one of two ways: *************** The `END DO' statement is provided by th *** 6489,6498 ****  File: g77.info, Node: Construct Names, Next: CYCLE and EXIT, Prev: END DO, Up: Control Statements ! 8.10.3 Construct Names ! ---------------------- ! The GNU Fortran language supports construct names as defined by the Fortran 90 standard. These names are local to the program unit and are defined as follows: --- 6488,6497 ----  File: g77.info, Node: Construct Names, Next: CYCLE and EXIT, Prev: END DO, Up: Control Statements ! Construct Names ! --------------- ! The GNU Fortran language supports construct names as defined by the Fortran 90 standard. These names are local to the program unit and are defined as follows: *************** Here, BLOCK must be `IF', `DO', or `SELE *** 6512,6523 ****  File: g77.info, Node: CYCLE and EXIT, Prev: Construct Names, Up: Control Statements ! 8.10.4 The `CYCLE' and `EXIT' Statements ! ---------------------------------------- ! The `CYCLE' and `EXIT' statements specify that the remaining statements ! in the current iteration of a particular active (enclosing) `DO' loop ! are to be skipped. `CYCLE' specifies that these statements are skipped, but the `END DO' statement that marks the end of the `DO' loop be executed--that is, --- 6511,6522 ----  File: g77.info, Node: CYCLE and EXIT, Prev: Construct Names, Up: Control Statements ! The `CYCLE' and `EXIT' Statements ! --------------------------------- ! The `CYCLE' and `EXIT' statements specify that the remaining ! statements in the current iteration of a particular active (enclosing) ! `DO' loop are to be skipped. `CYCLE' specifies that these statements are skipped, but the `END DO' statement that marks the end of the `DO' loop be executed--that is, *************** outermost loop. *** 6594,6603 ****  File: g77.info, Node: Functions and Subroutines, Next: Scope and Classes of Names, Prev: Control Statements, Up: Language ! 8.11 Functions and Subroutines ! ============================== ! (The following information augments or overrides the information in Chapter 15 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 15 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6593,6602 ----  File: g77.info, Node: Functions and Subroutines, Next: Scope and Classes of Names, Prev: Control Statements, Up: Language ! Functions and Subroutines ! ========================= ! (The following information augments or overrides the information in Chapter 15 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 15 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** for the relevant aspects of GNU Fortran. *** 6617,6624 ****  File: g77.info, Node: %VAL(), Next: %REF(), Up: Functions and Subroutines ! 8.11.1 The `%VAL()' Construct ! ----------------------------- %VAL(ARG) --- 6616,6623 ----  File: g77.info, Node: %VAL(), Next: %REF(), Up: Functions and Subroutines ! The `%VAL()' Construct ! ---------------------- %VAL(ARG) *************** procedures. *** 6651,6658 ****  File: g77.info, Node: %REF(), Next: %DESCR(), Prev: %VAL(), Up: Functions and Subroutines ! 8.11.2 The `%REF()' Construct ! ----------------------------- %REF(ARG) --- 6650,6657 ----  File: g77.info, Node: %REF(), Next: %DESCR(), Prev: %VAL(), Up: Functions and Subroutines ! The `%REF()' Construct ! ---------------------- %REF(ARG) *************** procedures. *** 6693,6700 ****  File: g77.info, Node: %DESCR(), Next: Generics and Specifics, Prev: %REF(), Up: Functions and Subroutines ! 8.11.3 The `%DESCR()' Construct ! ------------------------------- %DESCR(ARG) --- 6692,6699 ----  File: g77.info, Node: %DESCR(), Next: Generics and Specifics, Prev: %REF(), Up: Functions and Subroutines ! The `%DESCR()' Construct ! ------------------------ %DESCR(ARG) *************** procedures. *** 6739,6748 ****  File: g77.info, Node: Generics and Specifics, Next: REAL() and AIMAG() of Complex, Prev: %DESCR(), Up: Functions and Subroutines ! 8.11.4 Generics and Specifics ! ----------------------------- ! The ANSI FORTRAN 77 language defines generic and specific intrinsics. In short, the distinctions are: * _Specific_ intrinsics have specific types for their arguments and --- 6738,6747 ----  File: g77.info, Node: Generics and Specifics, Next: REAL() and AIMAG() of Complex, Prev: %DESCR(), Up: Functions and Subroutines ! Generics and Specifics ! ---------------------- ! The ANSI FORTRAN 77 language defines generic and specific intrinsics. In short, the distinctions are: * _Specific_ intrinsics have specific types for their arguments and *************** product, version, machine, results, and *** 6932,6941 ****  File: g77.info, Node: REAL() and AIMAG() of Complex, Next: CMPLX() of DOUBLE PRECISION, Prev: Generics and Specifics, Up: Functions and Subroutines ! 8.11.5 `REAL()' and `AIMAG()' of Complex ! ---------------------------------------- ! The GNU Fortran language disallows `REAL(EXPR)' and `AIMAG(EXPR)', where EXPR is any `COMPLEX' type other than `COMPLEX(KIND=1)', except when they are used in the following way: --- 6931,6940 ----  File: g77.info, Node: REAL() and AIMAG() of Complex, Next: CMPLX() of DOUBLE PRECISION, Prev: Generics and Specifics, Up: Functions and Subroutines ! `REAL()' and `AIMAG()' of Complex ! --------------------------------- ! The GNU Fortran language disallows `REAL(EXPR)' and `AIMAG(EXPR)', where EXPR is any `COMPLEX' type other than `COMPLEX(KIND=1)', except when they are used in the following way: *************** EXPR is of type `COMPLEX', as `REALPART( *** 6978,6987 ****  File: g77.info, Node: CMPLX() of DOUBLE PRECISION, Next: MIL-STD 1753, Prev: REAL() and AIMAG() of Complex, Up: Functions and Subroutines ! 8.11.6 `CMPLX()' of `DOUBLE PRECISION' ! -------------------------------------- ! In accordance with Fortran 90 and at least some (perhaps all) other compilers, the GNU Fortran language defines `CMPLX()' as always returning a result that is type `COMPLEX(KIND=1)'. --- 6977,6986 ----  File: g77.info, Node: CMPLX() of DOUBLE PRECISION, Next: MIL-STD 1753, Prev: REAL() and AIMAG() of Complex, Up: Functions and Subroutines ! `CMPLX()' of `DOUBLE PRECISION' ! ------------------------------- ! In accordance with Fortran 90 and at least some (perhaps all) other compilers, the GNU Fortran language defines `CMPLX()' as always returning a result that is type `COMPLEX(KIND=1)'. *************** of the same (complex version of real) ty *** 7021,7042 ****  File: g77.info, Node: MIL-STD 1753, Next: f77/f2c Intrinsics, Prev: CMPLX() of DOUBLE PRECISION, Up: Functions and Subroutines ! 8.11.7 MIL-STD 1753 Support ! --------------------------- ! The GNU Fortran language includes the MIL-STD 1753 intrinsics `BTEST', ! `IAND', `IBCLR', `IBITS', `IBSET', `IEOR', `IOR', `ISHFT', `ISHFTC', ! `MVBITS', and `NOT'.  File: g77.info, Node: f77/f2c Intrinsics, Next: Table of Intrinsic Functions, Prev: MIL-STD 1753, Up: Functions and Subroutines ! 8.11.8 `f77'/`f2c' Intrinsics ! ----------------------------- ! The bit-manipulation intrinsics supported by traditional `f77' and by ! `f2c' are available in the GNU Fortran language. These include `AND', ! `LSHIFT', `OR', `RSHIFT', and `XOR'. Also supported are the intrinsics `CDABS', `CDCOS', `CDEXP', `CDLOG', `CDSIN', `CDSQRT', `DCMPLX', `DCONJG', `DFLOAT', `DIMAG', --- 7020,7041 ----  File: g77.info, Node: MIL-STD 1753, Next: f77/f2c Intrinsics, Prev: CMPLX() of DOUBLE PRECISION, Up: Functions and Subroutines ! MIL-STD 1753 Support ! -------------------- ! The GNU Fortran language includes the MIL-STD 1753 intrinsics ! `BTEST', `IAND', `IBCLR', `IBITS', `IBSET', `IEOR', `IOR', `ISHFT', ! `ISHFTC', `MVBITS', and `NOT'.  File: g77.info, Node: f77/f2c Intrinsics, Next: Table of Intrinsic Functions, Prev: MIL-STD 1753, Up: Functions and Subroutines ! `f77'/`f2c' Intrinsics ! ---------------------- ! The bit-manipulation intrinsics supported by traditional `f77' and ! by `f2c' are available in the GNU Fortran language. These include ! `AND', `LSHIFT', `OR', `RSHIFT', and `XOR'. Also supported are the intrinsics `CDABS', `CDCOS', `CDEXP', `CDLOG', `CDSIN', `CDSQRT', `DCMPLX', `DCONJG', `DFLOAT', `DIMAG', *************** The bit-manipulation intrinsics supporte *** 7046,7055 ****  File: g77.info, Node: Table of Intrinsic Functions, Prev: f77/f2c Intrinsics, Up: Functions and Subroutines ! 8.11.9 Table of Intrinsic Functions ! ----------------------------------- ! (Corresponds to Section 15.10 of ANSI X3.9-1978 FORTRAN 77.) The GNU Fortran language adds various functions, subroutines, types, and arguments to the set of intrinsic functions in ANSI FORTRAN 77. --- 7045,7054 ----  File: g77.info, Node: Table of Intrinsic Functions, Prev: f77/f2c Intrinsics, Up: Functions and Subroutines ! Table of Intrinsic Functions ! ---------------------------- ! (Corresponds to Section 15.10 of ANSI X3.9-1978 FORTRAN 77.) The GNU Fortran language adds various functions, subroutines, types, and arguments to the set of intrinsic functions in ANSI FORTRAN 77. *************** worse shape!) *** 7536,7544 ****  File: g77.info, Node: Abort Intrinsic, Next: Abs Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.1 Abort Intrinsic ! ........................ ! CALL Abort() --- 7535,7542 ----  File: g77.info, Node: Abort Intrinsic, Next: Abs Intrinsic, Up: Table of Intrinsic Functions ! Abort Intrinsic ! ............... CALL Abort() *************** Description: *** 7551,7559 ****  File: g77.info, Node: Abs Intrinsic, Next: Access Intrinsic, Prev: Abort Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.2 Abs Intrinsic ! ...................... ! Abs(A) --- 7549,7556 ----  File: g77.info, Node: Abs Intrinsic, Next: Access Intrinsic, Prev: Abort Intrinsic, Up: Table of Intrinsic Functions ! Abs Intrinsic ! ............. Abs(A) *************** or negative form of the absolute value o *** 7583,7591 ****  File: g77.info, Node: Access Intrinsic, Next: AChar Intrinsic, Prev: Abs Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.3 Access Intrinsic ! ......................... ! Access(NAME, MODE) --- 7580,7587 ----  File: g77.info, Node: Access Intrinsic, Next: AChar Intrinsic, Prev: Abs Intrinsic, Up: Table of Intrinsic Functions ! Access Intrinsic ! ................ Access(NAME, MODE) *************** concatenation of any of the following ch *** 7621,7629 ****  File: g77.info, Node: AChar Intrinsic, Next: ACos Intrinsic, Prev: Access Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.4 AChar Intrinsic ! ........................ ! AChar(I) --- 7617,7624 ----  File: g77.info, Node: AChar Intrinsic, Next: ACos Intrinsic, Prev: Access Intrinsic, Up: Table of Intrinsic Functions ! AChar Intrinsic ! ............... AChar(I) *************** system's native character set. *** 7645,7653 ****  File: g77.info, Node: ACos Intrinsic, Next: AdjustL Intrinsic, Prev: AChar Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.5 ACos Intrinsic ! ....................... ! ACos(X) --- 7640,7647 ----  File: g77.info, Node: ACos Intrinsic, Next: AdjustL Intrinsic, Prev: AChar Intrinsic, Up: Table of Intrinsic Functions ! ACos Intrinsic ! .............. ACos(X) *************** Description: *** 7667,7695 ****  File: g77.info, Node: AdjustL Intrinsic, Next: AdjustR Intrinsic, Prev: ACos Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.6 AdjustL Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AdjustL' to use this name for an ! external procedure.  File: g77.info, Node: AdjustR Intrinsic, Next: AImag Intrinsic, Prev: AdjustL Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.7 AdjustR Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AdjustR' to use this name for an ! external procedure.  File: g77.info, Node: AImag Intrinsic, Next: AInt Intrinsic, Prev: AdjustR Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.8 AImag Intrinsic ! ........................ ! AImag(Z) --- 7661,7688 ----  File: g77.info, Node: AdjustL Intrinsic, Next: AdjustR Intrinsic, Prev: ACos Intrinsic, Up: Table of Intrinsic Functions ! AdjustL Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AdjustL' to use this name for ! an external procedure.  File: g77.info, Node: AdjustR Intrinsic, Next: AImag Intrinsic, Prev: AdjustL Intrinsic, Up: Table of Intrinsic Functions ! AdjustR Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AdjustR' to use this name for ! an external procedure.  File: g77.info, Node: AImag Intrinsic, Next: AInt Intrinsic, Prev: AdjustR Intrinsic, Up: Table of Intrinsic Functions ! AImag Intrinsic ! ............... AImag(Z) *************** This expression converts the imaginary p *** 7717,7725 ****  File: g77.info, Node: AInt Intrinsic, Next: Alarm Intrinsic, Prev: AImag Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.9 AInt Intrinsic ! ....................... ! AInt(A) --- 7710,7717 ----  File: g77.info, Node: AInt Intrinsic, Next: Alarm Intrinsic, Prev: AImag Intrinsic, Up: Table of Intrinsic Functions ! AInt Intrinsic ! .............. AInt(A) *************** to `INTEGER'. *** 7743,7751 ****  File: g77.info, Node: Alarm Intrinsic, Next: All Intrinsic, Prev: AInt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.10 Alarm Intrinsic ! ......................... ! CALL Alarm(SECONDS, HANDLER, STATUS) --- 7735,7742 ----  File: g77.info, Node: Alarm Intrinsic, Next: All Intrinsic, Prev: AInt Intrinsic, Up: Table of Intrinsic Functions ! Alarm Intrinsic ! ............... CALL Alarm(SECONDS, HANDLER, STATUS) *************** due to be delivered, or zero if there wa *** 7770,7798 ****  File: g77.info, Node: All Intrinsic, Next: Allocated Intrinsic, Prev: Alarm Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.11 All Intrinsic ! ....................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL All' to use this name for an external ! procedure.  File: g77.info, Node: Allocated Intrinsic, Next: ALog Intrinsic, Prev: All Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.12 Allocated Intrinsic ! ............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Allocated' to use this name for an ! external procedure.  File: g77.info, Node: ALog Intrinsic, Next: ALog10 Intrinsic, Prev: Allocated Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.13 ALog Intrinsic ! ........................ ! ALog(X) --- 7761,7788 ----  File: g77.info, Node: All Intrinsic, Next: Allocated Intrinsic, Prev: Alarm Intrinsic, Up: Table of Intrinsic Functions ! All Intrinsic ! ............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL All' to use this name for an ! external procedure.  File: g77.info, Node: Allocated Intrinsic, Next: ALog Intrinsic, Prev: All Intrinsic, Up: Table of Intrinsic Functions ! Allocated Intrinsic ! ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Allocated' to use this name ! for an external procedure.  File: g77.info, Node: ALog Intrinsic, Next: ALog10 Intrinsic, Prev: Allocated Intrinsic, Up: Table of Intrinsic Functions ! ALog Intrinsic ! .............. ALog(X) *************** Log Intrinsic::. *** 7810,7818 ****  File: g77.info, Node: ALog10 Intrinsic, Next: AMax0 Intrinsic, Prev: ALog Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.14 ALog10 Intrinsic ! .......................... ! ALog10(X) --- 7800,7807 ----  File: g77.info, Node: ALog10 Intrinsic, Next: AMax0 Intrinsic, Prev: ALog Intrinsic, Up: Table of Intrinsic Functions ! ALog10 Intrinsic ! ................ ALog10(X) *************** Log10 Intrinsic::. *** 7830,7838 ****  File: g77.info, Node: AMax0 Intrinsic, Next: AMax1 Intrinsic, Prev: ALog10 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.15 AMax0 Intrinsic ! ......................... ! AMax0(A-1, A-2, ..., A-n) --- 7819,7826 ----  File: g77.info, Node: AMax0 Intrinsic, Next: AMax1 Intrinsic, Prev: ALog10 Intrinsic, Up: Table of Intrinsic Functions ! AMax0 Intrinsic ! ............... AMax0(A-1, A-2, ..., A-n) *************** different return type. *Note Max Intrin *** 7851,7859 ****  File: g77.info, Node: AMax1 Intrinsic, Next: AMin0 Intrinsic, Prev: AMax0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.16 AMax1 Intrinsic ! ......................... ! AMax1(A-1, A-2, ..., A-n) --- 7839,7846 ----  File: g77.info, Node: AMax1 Intrinsic, Next: AMin0 Intrinsic, Prev: AMax0 Intrinsic, Up: Table of Intrinsic Functions ! AMax1 Intrinsic ! ............... AMax1(A-1, A-2, ..., A-n) *************** Max Intrinsic::. *** 7872,7880 ****  File: g77.info, Node: AMin0 Intrinsic, Next: AMin1 Intrinsic, Prev: AMax1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.17 AMin0 Intrinsic ! ......................... ! AMin0(A-1, A-2, ..., A-n) --- 7859,7866 ----  File: g77.info, Node: AMin0 Intrinsic, Next: AMin1 Intrinsic, Prev: AMax1 Intrinsic, Up: Table of Intrinsic Functions ! AMin0 Intrinsic ! ............... AMin0(A-1, A-2, ..., A-n) *************** different return type. *Note Min Intrin *** 7893,7901 ****  File: g77.info, Node: AMin1 Intrinsic, Next: AMod Intrinsic, Prev: AMin0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.18 AMin1 Intrinsic ! ......................... ! AMin1(A-1, A-2, ..., A-n) --- 7879,7886 ----  File: g77.info, Node: AMin1 Intrinsic, Next: AMod Intrinsic, Prev: AMin0 Intrinsic, Up: Table of Intrinsic Functions ! AMin1 Intrinsic ! ............... AMin1(A-1, A-2, ..., A-n) *************** Min Intrinsic::. *** 7914,7922 ****  File: g77.info, Node: AMod Intrinsic, Next: And Intrinsic, Prev: AMin1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.19 AMod Intrinsic ! ........................ ! AMod(A, P) --- 7899,7906 ----  File: g77.info, Node: AMod Intrinsic, Next: And Intrinsic, Prev: AMin1 Intrinsic, Up: Table of Intrinsic Functions ! AMod Intrinsic ! .............. AMod(A, P) *************** Mod Intrinsic::. *** 7936,7944 ****  File: g77.info, Node: And Intrinsic, Next: ANInt Intrinsic, Prev: AMod Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.20 And Intrinsic ! ....................... ! And(I, J) --- 7920,7927 ----  File: g77.info, Node: And Intrinsic, Next: ANInt Intrinsic, Prev: AMod Intrinsic, Up: Table of Intrinsic Functions ! And Intrinsic ! ............. And(I, J) *************** I and J. *** 7959,7967 ****  File: g77.info, Node: ANInt Intrinsic, Next: Any Intrinsic, Prev: And Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.21 ANInt Intrinsic ! ......................... ! ANInt(A) --- 7942,7949 ----  File: g77.info, Node: ANInt Intrinsic, Next: Any Intrinsic, Prev: And Intrinsic, Up: Table of Intrinsic Functions ! ANInt Intrinsic ! ............... ANInt(A) *************** number that is larger in magnitude. (Al *** 7988,8006 ****  File: g77.info, Node: Any Intrinsic, Next: ASin Intrinsic, Prev: ANInt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.22 Any Intrinsic ! ....................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Any' to use this name for an external ! procedure.  File: g77.info, Node: ASin Intrinsic, Next: Associated Intrinsic, Prev: Any Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.23 ASin Intrinsic ! ........................ ! ASin(X) --- 7970,7987 ----  File: g77.info, Node: Any Intrinsic, Next: ASin Intrinsic, Prev: ANInt Intrinsic, Up: Table of Intrinsic Functions ! Any Intrinsic ! ............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Any' to use this name for an ! external procedure.  File: g77.info, Node: ASin Intrinsic, Next: Associated Intrinsic, Prev: Any Intrinsic, Up: Table of Intrinsic Functions ! ASin Intrinsic ! .............. ASin(X) *************** Description: *** 8020,8038 ****  File: g77.info, Node: Associated Intrinsic, Next: ATan Intrinsic, Prev: ASin Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.24 Associated Intrinsic ! .............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Associated' to use this name for an ! external procedure.  File: g77.info, Node: ATan Intrinsic, Next: ATan2 Intrinsic, Prev: Associated Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.25 ATan Intrinsic ! ........................ ! ATan(X) --- 8001,8018 ----  File: g77.info, Node: Associated Intrinsic, Next: ATan Intrinsic, Prev: ASin Intrinsic, Up: Table of Intrinsic Functions ! Associated Intrinsic ! .................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Associated' to use this name ! for an external procedure.  File: g77.info, Node: ATan Intrinsic, Next: ATan2 Intrinsic, Prev: Associated Intrinsic, Up: Table of Intrinsic Functions ! ATan Intrinsic ! .............. ATan(X) *************** Description: *** 8052,8060 ****  File: g77.info, Node: ATan2 Intrinsic, Next: BesJ0 Intrinsic, Prev: ATan Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.26 ATan2 Intrinsic ! ......................... ! ATan2(Y, X) --- 8032,8039 ----  File: g77.info, Node: ATan2 Intrinsic, Next: BesJ0 Intrinsic, Prev: ATan Intrinsic, Up: Table of Intrinsic Functions ! ATan2 Intrinsic ! ............... ATan2(Y, X) *************** X) in radians. *** 8077,8085 ****  File: g77.info, Node: BesJ0 Intrinsic, Next: BesJ1 Intrinsic, Prev: ATan2 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.27 BesJ0 Intrinsic ! ......................... ! BesJ0(X) --- 8056,8063 ----  File: g77.info, Node: BesJ0 Intrinsic, Next: BesJ1 Intrinsic, Prev: ATan2 Intrinsic, Up: Table of Intrinsic Functions ! BesJ0 Intrinsic ! ............... BesJ0(X) *************** See `bessel(3m)', on whose implementatio *** 8098,8106 ****  File: g77.info, Node: BesJ1 Intrinsic, Next: BesJN Intrinsic, Prev: BesJ0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.28 BesJ1 Intrinsic ! ......................... ! BesJ1(X) --- 8076,8083 ----  File: g77.info, Node: BesJ1 Intrinsic, Next: BesJN Intrinsic, Prev: BesJ0 Intrinsic, Up: Table of Intrinsic Functions ! BesJ1 Intrinsic ! ............... BesJ1(X) *************** See `bessel(3m)', on whose implementatio *** 8119,8127 ****  File: g77.info, Node: BesJN Intrinsic, Next: BesY0 Intrinsic, Prev: BesJ1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.29 BesJN Intrinsic ! ......................... ! BesJN(N, X) --- 8096,8103 ----  File: g77.info, Node: BesJN Intrinsic, Next: BesY0 Intrinsic, Prev: BesJ1 Intrinsic, Up: Table of Intrinsic Functions ! BesJN Intrinsic ! ............... BesJN(N, X) *************** See `bessel(3m)', on whose implementatio *** 8142,8150 ****  File: g77.info, Node: BesY0 Intrinsic, Next: BesY1 Intrinsic, Prev: BesJN Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.30 BesY0 Intrinsic ! ......................... ! BesY0(X) --- 8118,8125 ----  File: g77.info, Node: BesY0 Intrinsic, Next: BesY1 Intrinsic, Prev: BesJN Intrinsic, Up: Table of Intrinsic Functions ! BesY0 Intrinsic ! ............... BesY0(X) *************** See `bessel(3m)', on whose implementatio *** 8163,8171 ****  File: g77.info, Node: BesY1 Intrinsic, Next: BesYN Intrinsic, Prev: BesY0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.31 BesY1 Intrinsic ! ......................... ! BesY1(X) --- 8138,8145 ----  File: g77.info, Node: BesY1 Intrinsic, Next: BesYN Intrinsic, Prev: BesY0 Intrinsic, Up: Table of Intrinsic Functions ! BesY1 Intrinsic ! ............... BesY1(X) *************** See `bessel(3m)', on whose implementatio *** 8184,8192 ****  File: g77.info, Node: BesYN Intrinsic, Next: Bit_Size Intrinsic, Prev: BesY1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.32 BesYN Intrinsic ! ......................... ! BesYN(N, X) --- 8158,8165 ----  File: g77.info, Node: BesYN Intrinsic, Next: Bit_Size Intrinsic, Prev: BesY1 Intrinsic, Up: Table of Intrinsic Functions ! BesYN Intrinsic ! ............... BesYN(N, X) *************** See `bessel(3m)', on whose implementatio *** 8207,8215 ****  File: g77.info, Node: Bit_Size Intrinsic, Next: BTest Intrinsic, Prev: BesYN Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.33 Bit_Size Intrinsic ! ............................ ! Bit_Size(I) --- 8180,8187 ----  File: g77.info, Node: Bit_Size Intrinsic, Next: BTest Intrinsic, Prev: BesYN Intrinsic, Up: Table of Intrinsic Functions ! Bit_Size Intrinsic ! .................. Bit_Size(I) *************** variable or array. *** 8235,8243 ****  File: g77.info, Node: BTest Intrinsic, Next: CAbs Intrinsic, Prev: Bit_Size Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.34 BTest Intrinsic ! ......................... ! BTest(I, POS) --- 8207,8214 ----  File: g77.info, Node: BTest Intrinsic, Next: CAbs Intrinsic, Prev: Bit_Size Intrinsic, Up: Table of Intrinsic Functions ! BTest Intrinsic ! ............... BTest(I, POS) *************** a type. The leftmost bit of I is `BIT_S *** 8263,8271 ****  File: g77.info, Node: CAbs Intrinsic, Next: CCos Intrinsic, Prev: BTest Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.35 CAbs Intrinsic ! ........................ ! CAbs(A) --- 8234,8241 ----  File: g77.info, Node: CAbs Intrinsic, Next: CCos Intrinsic, Prev: BTest Intrinsic, Up: Table of Intrinsic Functions ! CAbs Intrinsic ! .............. CAbs(A) *************** Abs Intrinsic::. *** 8283,8291 ****  File: g77.info, Node: CCos Intrinsic, Next: Ceiling Intrinsic, Prev: CAbs Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.36 CCos Intrinsic ! ........................ ! CCos(X) --- 8253,8260 ----  File: g77.info, Node: CCos Intrinsic, Next: Ceiling Intrinsic, Prev: CAbs Intrinsic, Up: Table of Intrinsic Functions ! CCos Intrinsic ! .............. CCos(X) *************** Cos Intrinsic::. *** 8303,8321 ****  File: g77.info, Node: Ceiling Intrinsic, Next: CExp Intrinsic, Prev: CCos Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.37 Ceiling Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Ceiling' to use this name for an ! external procedure.  File: g77.info, Node: CExp Intrinsic, Next: Char Intrinsic, Prev: Ceiling Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.38 CExp Intrinsic ! ........................ ! CExp(X) --- 8272,8289 ----  File: g77.info, Node: Ceiling Intrinsic, Next: CExp Intrinsic, Prev: CCos Intrinsic, Up: Table of Intrinsic Functions ! Ceiling Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Ceiling' to use this name for ! an external procedure.  File: g77.info, Node: CExp Intrinsic, Next: Char Intrinsic, Prev: Ceiling Intrinsic, Up: Table of Intrinsic Functions ! CExp Intrinsic ! .............. CExp(X) *************** Exp Intrinsic::. *** 8333,8341 ****  File: g77.info, Node: Char Intrinsic, Next: ChDir Intrinsic (subroutine), Prev: CExp Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.39 Char Intrinsic ! ........................ ! Char(I) --- 8301,8308 ----  File: g77.info, Node: Char Intrinsic, Next: ChDir Intrinsic (subroutine), Prev: CExp Intrinsic, Up: Table of Intrinsic Functions ! Char Intrinsic ! .............. Char(I) *************** character set. *** 8381,8389 ****  File: g77.info, Node: ChDir Intrinsic (subroutine), Next: ChMod Intrinsic (subroutine), Prev: Char Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.40 ChDir Intrinsic (subroutine) ! ...................................... ! CALL ChDir(DIR, STATUS) --- 8348,8355 ----  File: g77.info, Node: ChDir Intrinsic (subroutine), Next: ChMod Intrinsic (subroutine), Prev: Char Intrinsic, Up: Table of Intrinsic Functions ! ChDir Intrinsic (subroutine) ! ............................ CALL ChDir(DIR, STATUS) *************** Intrinsic (function)::. *** 8413,8421 ****  File: g77.info, Node: ChMod Intrinsic (subroutine), Next: CLog Intrinsic, Prev: ChDir Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.41 ChMod Intrinsic (subroutine) ! ...................................... ! CALL ChMod(NAME, MODE, STATUS) --- 8379,8386 ----  File: g77.info, Node: ChMod Intrinsic (subroutine), Next: CLog Intrinsic, Prev: ChDir Intrinsic (subroutine), Up: Table of Intrinsic Functions ! ChMod Intrinsic (subroutine) ! ............................ CALL ChMod(NAME, MODE, STATUS) *************** Intrinsic (function)::. *** 8452,8460 ****  File: g77.info, Node: CLog Intrinsic, Next: Cmplx Intrinsic, Prev: ChMod Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.42 CLog Intrinsic ! ........................ ! CLog(X) --- 8417,8424 ----  File: g77.info, Node: CLog Intrinsic, Next: Cmplx Intrinsic, Prev: ChMod Intrinsic (subroutine), Up: Table of Intrinsic Functions ! CLog Intrinsic ! .............. CLog(X) *************** Log Intrinsic::. *** 8472,8480 ****  File: g77.info, Node: Cmplx Intrinsic, Next: Complex Intrinsic, Prev: CLog Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.43 Cmplx Intrinsic ! ......................... ! Cmplx(X, Y) --- 8436,8443 ----  File: g77.info, Node: Cmplx Intrinsic, Next: Complex Intrinsic, Prev: CLog Intrinsic, Up: Table of Intrinsic Functions ! Cmplx Intrinsic ! ............... Cmplx(X, Y) *************** Y, respectively. If Y is omitted, `0.' *** 8501,8509 ****  File: g77.info, Node: Complex Intrinsic, Next: Conjg Intrinsic, Prev: Cmplx Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.44 Complex Intrinsic ! ........................... ! Complex(REAL, IMAG) --- 8464,8471 ----  File: g77.info, Node: Complex Intrinsic, Next: Conjg Intrinsic, Prev: Cmplx Intrinsic, Up: Table of Intrinsic Functions ! Complex Intrinsic ! ................. Complex(REAL, IMAG) *************** a `COMPLEX(KIND=1)' result even if `D1' *** 8542,8550 ****  File: g77.info, Node: Conjg Intrinsic, Next: Cos Intrinsic, Prev: Complex Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.45 Conjg Intrinsic ! ......................... ! Conjg(Z) --- 8504,8511 ----  File: g77.info, Node: Conjg Intrinsic, Next: Cos Intrinsic, Prev: Complex Intrinsic, Up: Table of Intrinsic Functions ! Conjg Intrinsic ! ............... Conjg(Z) *************** Description: *** 8564,8572 ****  File: g77.info, Node: Cos Intrinsic, Next: CosH Intrinsic, Prev: Conjg Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.46 Cos Intrinsic ! ....................... ! Cos(X) --- 8525,8532 ----  File: g77.info, Node: Cos Intrinsic, Next: CosH Intrinsic, Prev: Conjg Intrinsic, Up: Table of Intrinsic Functions ! Cos Intrinsic ! ............. Cos(X) *************** Description: *** 8586,8594 ****  File: g77.info, Node: CosH Intrinsic, Next: Count Intrinsic, Prev: Cos Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.47 CosH Intrinsic ! ........................ ! CosH(X) --- 8546,8553 ----  File: g77.info, Node: CosH Intrinsic, Next: Count Intrinsic, Prev: Cos Intrinsic, Up: Table of Intrinsic Functions ! CosH Intrinsic ! .............. CosH(X) *************** Description: *** 8606,8624 ****  File: g77.info, Node: Count Intrinsic, Next: CPU_Time Intrinsic, Prev: CosH Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.48 Count Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Count' to use this name for an external ! procedure.  File: g77.info, Node: CPU_Time Intrinsic, Next: CShift Intrinsic, Prev: Count Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.49 CPU_Time Intrinsic ! ............................ ! CALL CPU_Time(SECONDS) --- 8565,8582 ----  File: g77.info, Node: Count Intrinsic, Next: CPU_Time Intrinsic, Prev: CosH Intrinsic, Up: Table of Intrinsic Functions ! Count Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Count' to use this name for an ! external procedure.  File: g77.info, Node: CPU_Time Intrinsic, Next: CShift Intrinsic, Prev: Count Intrinsic, Up: Table of Intrinsic Functions ! CPU_Time Intrinsic ! .................. CALL CPU_Time(SECONDS) *************** previous values, during a single run of *** 8641,8659 ****  File: g77.info, Node: CShift Intrinsic, Next: CSin Intrinsic, Prev: CPU_Time Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.50 CShift Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL CShift' to use this name for an external procedure.  File: g77.info, Node: CSin Intrinsic, Next: CSqRt Intrinsic, Prev: CShift Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.51 CSin Intrinsic ! ........................ ! CSin(X) --- 8599,8616 ----  File: g77.info, Node: CShift Intrinsic, Next: CSin Intrinsic, Prev: CPU_Time Intrinsic, Up: Table of Intrinsic Functions ! CShift Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL CShift' to use this name for an external procedure.  File: g77.info, Node: CSin Intrinsic, Next: CSqRt Intrinsic, Prev: CShift Intrinsic, Up: Table of Intrinsic Functions ! CSin Intrinsic ! .............. CSin(X) *************** Sin Intrinsic::. *** 8671,8679 ****  File: g77.info, Node: CSqRt Intrinsic, Next: CTime Intrinsic (subroutine), Prev: CSin Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.52 CSqRt Intrinsic ! ......................... ! CSqRt(X) --- 8628,8635 ----  File: g77.info, Node: CSqRt Intrinsic, Next: CTime Intrinsic (subroutine), Prev: CSin Intrinsic, Up: Table of Intrinsic Functions ! CSqRt Intrinsic ! ............... CSqRt(X) *************** SqRt Intrinsic::. *** 8691,8699 ****  File: g77.info, Node: CTime Intrinsic (subroutine), Next: CTime Intrinsic (function), Prev: CSqRt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.53 CTime Intrinsic (subroutine) ! ...................................... ! CALL CTime(STIME, RESULT) --- 8647,8654 ----  File: g77.info, Node: CTime Intrinsic (subroutine), Next: CTime Intrinsic (function), Prev: CSqRt Intrinsic, Up: Table of Intrinsic Functions ! CTime Intrinsic (subroutine) ! ............................ CALL CTime(STIME, RESULT) *************** Intrinsic (function)::. *** 8720,8728 ****  File: g77.info, Node: CTime Intrinsic (function), Next: DAbs Intrinsic, Prev: CTime Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.54 CTime Intrinsic (function) ! .................................... ! CTime(STIME) --- 8675,8682 ----  File: g77.info, Node: CTime Intrinsic (function), Next: DAbs Intrinsic, Prev: CTime Intrinsic (subroutine), Up: Table of Intrinsic Functions ! CTime Intrinsic (function) ! .......................... CTime(STIME) *************** Intrinsic (subroutine)::. *** 8746,8754 ****  File: g77.info, Node: DAbs Intrinsic, Next: DACos Intrinsic, Prev: CTime Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.55 DAbs Intrinsic ! ........................ ! DAbs(A) --- 8700,8707 ----  File: g77.info, Node: DAbs Intrinsic, Next: DACos Intrinsic, Prev: CTime Intrinsic (function), Up: Table of Intrinsic Functions ! DAbs Intrinsic ! .............. DAbs(A) *************** Abs Intrinsic::. *** 8766,8774 ****  File: g77.info, Node: DACos Intrinsic, Next: DASin Intrinsic, Prev: DAbs Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.56 DACos Intrinsic ! ......................... ! DACos(X) --- 8719,8726 ----  File: g77.info, Node: DACos Intrinsic, Next: DASin Intrinsic, Prev: DAbs Intrinsic, Up: Table of Intrinsic Functions ! DACos Intrinsic ! ............... DACos(X) *************** ACos Intrinsic::. *** 8786,8794 ****  File: g77.info, Node: DASin Intrinsic, Next: DATan Intrinsic, Prev: DACos Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.57 DASin Intrinsic ! ......................... ! DASin(X) --- 8738,8745 ----  File: g77.info, Node: DASin Intrinsic, Next: DATan Intrinsic, Prev: DACos Intrinsic, Up: Table of Intrinsic Functions ! DASin Intrinsic ! ............... DASin(X) *************** ASin Intrinsic::. *** 8806,8814 ****  File: g77.info, Node: DATan Intrinsic, Next: DATan2 Intrinsic, Prev: DASin Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.58 DATan Intrinsic ! ......................... ! DATan(X) --- 8757,8764 ----  File: g77.info, Node: DATan Intrinsic, Next: DATan2 Intrinsic, Prev: DASin Intrinsic, Up: Table of Intrinsic Functions ! DATan Intrinsic ! ............... DATan(X) *************** ATan Intrinsic::. *** 8826,8834 ****  File: g77.info, Node: DATan2 Intrinsic, Next: Date_and_Time Intrinsic, Prev: DATan Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.59 DATan2 Intrinsic ! .......................... ! DATan2(Y, X) --- 8776,8783 ----  File: g77.info, Node: DATan2 Intrinsic, Next: Date_and_Time Intrinsic, Prev: DATan Intrinsic, Up: Table of Intrinsic Functions ! DATan2 Intrinsic ! ................ DATan2(Y, X) *************** Description: *** 8848,8856 ****  File: g77.info, Node: Date_and_Time Intrinsic, Next: DbesJ0 Intrinsic, Prev: DATan2 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.60 Date_and_Time Intrinsic ! ................................. ! CALL Date_and_Time(DATE, TIME, ZONE, VALUES) --- 8797,8804 ----  File: g77.info, Node: Date_and_Time Intrinsic, Next: DbesJ0 Intrinsic, Prev: DATan2 Intrinsic, Up: Table of Intrinsic Functions ! Date_and_Time Intrinsic ! ....................... CALL Date_and_Time(DATE, TIME, ZONE, VALUES) *************** value is returned as zero. *** 8895,8903 ****  File: g77.info, Node: DbesJ0 Intrinsic, Next: DbesJ1 Intrinsic, Prev: Date_and_Time Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.61 DbesJ0 Intrinsic ! .......................... ! DbesJ0(X) --- 8843,8850 ----  File: g77.info, Node: DbesJ0 Intrinsic, Next: DbesJ1 Intrinsic, Prev: Date_and_Time Intrinsic, Up: Table of Intrinsic Functions ! DbesJ0 Intrinsic ! ................ DbesJ0(X) *************** BesJ0 Intrinsic::. *** 8915,8923 ****  File: g77.info, Node: DbesJ1 Intrinsic, Next: DbesJN Intrinsic, Prev: DbesJ0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.62 DbesJ1 Intrinsic ! .......................... ! DbesJ1(X) --- 8862,8869 ----  File: g77.info, Node: DbesJ1 Intrinsic, Next: DbesJN Intrinsic, Prev: DbesJ0 Intrinsic, Up: Table of Intrinsic Functions ! DbesJ1 Intrinsic ! ................ DbesJ1(X) *************** BesJ1 Intrinsic::. *** 8935,8943 ****  File: g77.info, Node: DbesJN Intrinsic, Next: DbesY0 Intrinsic, Prev: DbesJ1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.63 DbesJN Intrinsic ! .......................... ! DbesJN(N, X) --- 8881,8888 ----  File: g77.info, Node: DbesJN Intrinsic, Next: DbesY0 Intrinsic, Prev: DbesJ1 Intrinsic, Up: Table of Intrinsic Functions ! DbesJN Intrinsic ! ................ DbesJN(N, X) *************** BesJN Intrinsic::. *** 8957,8965 ****  File: g77.info, Node: DbesY0 Intrinsic, Next: DbesY1 Intrinsic, Prev: DbesJN Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.64 DbesY0 Intrinsic ! .......................... ! DbesY0(X) --- 8902,8909 ----  File: g77.info, Node: DbesY0 Intrinsic, Next: DbesY1 Intrinsic, Prev: DbesJN Intrinsic, Up: Table of Intrinsic Functions ! DbesY0 Intrinsic ! ................ DbesY0(X) *************** BesY0 Intrinsic::. *** 8977,8985 ****  File: g77.info, Node: DbesY1 Intrinsic, Next: DbesYN Intrinsic, Prev: DbesY0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.65 DbesY1 Intrinsic ! .......................... ! DbesY1(X) --- 8921,8928 ----  File: g77.info, Node: DbesY1 Intrinsic, Next: DbesYN Intrinsic, Prev: DbesY0 Intrinsic, Up: Table of Intrinsic Functions ! DbesY1 Intrinsic ! ................ DbesY1(X) *************** BesY1 Intrinsic::. *** 8997,9005 ****  File: g77.info, Node: DbesYN Intrinsic, Next: Dble Intrinsic, Prev: DbesY1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.66 DbesYN Intrinsic ! .......................... ! DbesYN(N, X) --- 8940,8947 ----  File: g77.info, Node: DbesYN Intrinsic, Next: Dble Intrinsic, Prev: DbesY1 Intrinsic, Up: Table of Intrinsic Functions ! DbesYN Intrinsic ! ................ DbesYN(N, X) *************** BesYN Intrinsic::. *** 9019,9027 ****  File: g77.info, Node: Dble Intrinsic, Next: DCos Intrinsic, Prev: DbesYN Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.67 Dble Intrinsic ! ........................ ! Dble(A) --- 8961,8968 ----  File: g77.info, Node: Dble Intrinsic, Next: DCos Intrinsic, Prev: DbesYN Intrinsic, Up: Table of Intrinsic Functions ! Dble Intrinsic ! .............. Dble(A) *************** precision. *** 9048,9056 ****  File: g77.info, Node: DCos Intrinsic, Next: DCosH Intrinsic, Prev: Dble Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.68 DCos Intrinsic ! ........................ ! DCos(X) --- 8989,8996 ----  File: g77.info, Node: DCos Intrinsic, Next: DCosH Intrinsic, Prev: Dble Intrinsic, Up: Table of Intrinsic Functions ! DCos Intrinsic ! .............. DCos(X) *************** Cos Intrinsic::. *** 9068,9076 ****  File: g77.info, Node: DCosH Intrinsic, Next: DDiM Intrinsic, Prev: DCos Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.69 DCosH Intrinsic ! ......................... ! DCosH(X) --- 9008,9015 ----  File: g77.info, Node: DCosH Intrinsic, Next: DDiM Intrinsic, Prev: DCos Intrinsic, Up: Table of Intrinsic Functions ! DCosH Intrinsic ! ............... DCosH(X) *************** CosH Intrinsic::. *** 9088,9096 ****  File: g77.info, Node: DDiM Intrinsic, Next: DErF Intrinsic, Prev: DCosH Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.70 DDiM Intrinsic ! ........................ ! DDiM(X, Y) --- 9027,9034 ----  File: g77.info, Node: DDiM Intrinsic, Next: DErF Intrinsic, Prev: DCosH Intrinsic, Up: Table of Intrinsic Functions ! DDiM Intrinsic ! .............. DDiM(X, Y) *************** Description: *** 9110,9118 ****  File: g77.info, Node: DErF Intrinsic, Next: DErFC Intrinsic, Prev: DDiM Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.71 DErF Intrinsic ! ........................ ! DErF(X) --- 9048,9055 ----  File: g77.info, Node: DErF Intrinsic, Next: DErFC Intrinsic, Prev: DDiM Intrinsic, Up: Table of Intrinsic Functions ! DErF Intrinsic ! .............. DErF(X) *************** ErF Intrinsic::. *** 9130,9138 ****  File: g77.info, Node: DErFC Intrinsic, Next: DExp Intrinsic, Prev: DErF Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.72 DErFC Intrinsic ! ......................... ! DErFC(X) --- 9067,9074 ----  File: g77.info, Node: DErFC Intrinsic, Next: DExp Intrinsic, Prev: DErF Intrinsic, Up: Table of Intrinsic Functions ! DErFC Intrinsic ! ............... DErFC(X) *************** ErFC Intrinsic::. *** 9150,9158 ****  File: g77.info, Node: DExp Intrinsic, Next: Digits Intrinsic, Prev: DErFC Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.73 DExp Intrinsic ! ........................ ! DExp(X) --- 9086,9093 ----  File: g77.info, Node: DExp Intrinsic, Next: Digits Intrinsic, Prev: DErFC Intrinsic, Up: Table of Intrinsic Functions ! DExp Intrinsic ! .............. DExp(X) *************** Exp Intrinsic::. *** 9170,9188 ****  File: g77.info, Node: Digits Intrinsic, Next: DiM Intrinsic, Prev: DExp Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.74 Digits Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Digits' to use this name for an external procedure.  File: g77.info, Node: DiM Intrinsic, Next: DInt Intrinsic, Prev: Digits Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.75 DiM Intrinsic ! ....................... ! DiM(X, Y) --- 9105,9122 ----  File: g77.info, Node: Digits Intrinsic, Next: DiM Intrinsic, Prev: DExp Intrinsic, Up: Table of Intrinsic Functions ! Digits Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Digits' to use this name for an external procedure.  File: g77.info, Node: DiM Intrinsic, Next: DInt Intrinsic, Prev: Digits Intrinsic, Up: Table of Intrinsic Functions ! DiM Intrinsic ! ............. DiM(X, Y) *************** Description: *** 9202,9210 ****  File: g77.info, Node: DInt Intrinsic, Next: DLog Intrinsic, Prev: DiM Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.76 DInt Intrinsic ! ........................ ! DInt(A) --- 9136,9143 ----  File: g77.info, Node: DInt Intrinsic, Next: DLog Intrinsic, Prev: DiM Intrinsic, Up: Table of Intrinsic Functions ! DInt Intrinsic ! .............. DInt(A) *************** AInt Intrinsic::. *** 9222,9230 ****  File: g77.info, Node: DLog Intrinsic, Next: DLog10 Intrinsic, Prev: DInt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.77 DLog Intrinsic ! ........................ ! DLog(X) --- 9155,9162 ----  File: g77.info, Node: DLog Intrinsic, Next: DLog10 Intrinsic, Prev: DInt Intrinsic, Up: Table of Intrinsic Functions ! DLog Intrinsic ! .............. DLog(X) *************** Log Intrinsic::. *** 9242,9250 ****  File: g77.info, Node: DLog10 Intrinsic, Next: DMax1 Intrinsic, Prev: DLog Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.78 DLog10 Intrinsic ! .......................... ! DLog10(X) --- 9174,9181 ----  File: g77.info, Node: DLog10 Intrinsic, Next: DMax1 Intrinsic, Prev: DLog Intrinsic, Up: Table of Intrinsic Functions ! DLog10 Intrinsic ! ................ DLog10(X) *************** Log10 Intrinsic::. *** 9262,9270 ****  File: g77.info, Node: DMax1 Intrinsic, Next: DMin1 Intrinsic, Prev: DLog10 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.79 DMax1 Intrinsic ! ......................... ! DMax1(A-1, A-2, ..., A-n) --- 9193,9200 ----  File: g77.info, Node: DMax1 Intrinsic, Next: DMin1 Intrinsic, Prev: DLog10 Intrinsic, Up: Table of Intrinsic Functions ! DMax1 Intrinsic ! ............... DMax1(A-1, A-2, ..., A-n) *************** Max Intrinsic::. *** 9283,9291 ****  File: g77.info, Node: DMin1 Intrinsic, Next: DMod Intrinsic, Prev: DMax1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.80 DMin1 Intrinsic ! ......................... ! DMin1(A-1, A-2, ..., A-n) --- 9213,9220 ----  File: g77.info, Node: DMin1 Intrinsic, Next: DMod Intrinsic, Prev: DMax1 Intrinsic, Up: Table of Intrinsic Functions ! DMin1 Intrinsic ! ............... DMin1(A-1, A-2, ..., A-n) *************** Min Intrinsic::. *** 9304,9312 ****  File: g77.info, Node: DMod Intrinsic, Next: DNInt Intrinsic, Prev: DMin1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.81 DMod Intrinsic ! ........................ ! DMod(A, P) --- 9233,9240 ----  File: g77.info, Node: DMod Intrinsic, Next: DNInt Intrinsic, Prev: DMin1 Intrinsic, Up: Table of Intrinsic Functions ! DMod Intrinsic ! .............. DMod(A, P) *************** Mod Intrinsic::. *** 9326,9334 ****  File: g77.info, Node: DNInt Intrinsic, Next: Dot_Product Intrinsic, Prev: DMod Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.82 DNInt Intrinsic ! ......................... ! DNInt(A) --- 9254,9261 ----  File: g77.info, Node: DNInt Intrinsic, Next: Dot_Product Intrinsic, Prev: DMod Intrinsic, Up: Table of Intrinsic Functions ! DNInt Intrinsic ! ............... DNInt(A) *************** ANInt Intrinsic::. *** 9346,9364 ****  File: g77.info, Node: Dot_Product Intrinsic, Next: DProd Intrinsic, Prev: DNInt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.83 Dot_Product Intrinsic ! ............................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Dot_Product' to use this name for an ! external procedure.  File: g77.info, Node: DProd Intrinsic, Next: DSign Intrinsic, Prev: Dot_Product Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.84 DProd Intrinsic ! ......................... ! DProd(X, Y) --- 9273,9290 ----  File: g77.info, Node: Dot_Product Intrinsic, Next: DProd Intrinsic, Prev: DNInt Intrinsic, Up: Table of Intrinsic Functions ! Dot_Product Intrinsic ! ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Dot_Product' to use this name ! for an external procedure.  File: g77.info, Node: DProd Intrinsic, Next: DSign Intrinsic, Prev: Dot_Product Intrinsic, Up: Table of Intrinsic Functions ! DProd Intrinsic ! ............... DProd(X, Y) *************** Description: *** 9377,9385 ****  File: g77.info, Node: DSign Intrinsic, Next: DSin Intrinsic, Prev: DProd Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.85 DSign Intrinsic ! ......................... ! DSign(A, B) --- 9303,9310 ----  File: g77.info, Node: DSign Intrinsic, Next: DSin Intrinsic, Prev: DProd Intrinsic, Up: Table of Intrinsic Functions ! DSign Intrinsic ! ............... DSign(A, B) *************** Description: *** 9399,9407 ****  File: g77.info, Node: DSin Intrinsic, Next: DSinH Intrinsic, Prev: DSign Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.86 DSin Intrinsic ! ........................ ! DSin(X) --- 9324,9331 ----  File: g77.info, Node: DSin Intrinsic, Next: DSinH Intrinsic, Prev: DSign Intrinsic, Up: Table of Intrinsic Functions ! DSin Intrinsic ! .............. DSin(X) *************** Sin Intrinsic::. *** 9419,9427 ****  File: g77.info, Node: DSinH Intrinsic, Next: DSqRt Intrinsic, Prev: DSin Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.87 DSinH Intrinsic ! ......................... ! DSinH(X) --- 9343,9350 ----  File: g77.info, Node: DSinH Intrinsic, Next: DSqRt Intrinsic, Prev: DSin Intrinsic, Up: Table of Intrinsic Functions ! DSinH Intrinsic ! ............... DSinH(X) *************** SinH Intrinsic::. *** 9439,9447 ****  File: g77.info, Node: DSqRt Intrinsic, Next: DTan Intrinsic, Prev: DSinH Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.88 DSqRt Intrinsic ! ......................... ! DSqRt(X) --- 9362,9369 ----  File: g77.info, Node: DSqRt Intrinsic, Next: DTan Intrinsic, Prev: DSinH Intrinsic, Up: Table of Intrinsic Functions ! DSqRt Intrinsic ! ............... DSqRt(X) *************** SqRt Intrinsic::. *** 9459,9467 ****  File: g77.info, Node: DTan Intrinsic, Next: DTanH Intrinsic, Prev: DSqRt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.89 DTan Intrinsic ! ........................ ! DTan(X) --- 9381,9388 ----  File: g77.info, Node: DTan Intrinsic, Next: DTanH Intrinsic, Prev: DSqRt Intrinsic, Up: Table of Intrinsic Functions ! DTan Intrinsic ! .............. DTan(X) *************** Tan Intrinsic::. *** 9479,9487 ****  File: g77.info, Node: DTanH Intrinsic, Next: DTime Intrinsic (subroutine), Prev: DTan Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.90 DTanH Intrinsic ! ......................... ! DTanH(X) --- 9400,9407 ----  File: g77.info, Node: DTanH Intrinsic, Next: DTime Intrinsic (subroutine), Prev: DTan Intrinsic, Up: Table of Intrinsic Functions ! DTanH Intrinsic ! ............... DTanH(X) *************** TanH Intrinsic::. *** 9499,9507 ****  File: g77.info, Node: DTime Intrinsic (subroutine), Next: EOShift Intrinsic, Prev: DTanH Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.91 DTime Intrinsic (subroutine) ! ...................................... ! CALL DTime(TARRAY, RESULT) --- 9419,9426 ----  File: g77.info, Node: DTime Intrinsic (subroutine), Next: EOShift Intrinsic, Prev: DTanH Intrinsic, Up: Table of Intrinsic Functions ! DTime Intrinsic (subroutine) ! ............................ CALL DTime(TARRAY, RESULT) *************** Intrinsic (function)::. *** 9536,9564 ****  File: g77.info, Node: EOShift Intrinsic, Next: Epsilon Intrinsic, Prev: DTime Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.92 EOShift Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL EOShift' to use this name for an ! external procedure.  File: g77.info, Node: Epsilon Intrinsic, Next: ErF Intrinsic, Prev: EOShift Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.93 Epsilon Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Epsilon' to use this name for an ! external procedure.  File: g77.info, Node: ErF Intrinsic, Next: ErFC Intrinsic, Prev: Epsilon Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.94 ErF Intrinsic ! ....................... ! ErF(X) --- 9455,9482 ----  File: g77.info, Node: EOShift Intrinsic, Next: Epsilon Intrinsic, Prev: DTime Intrinsic (subroutine), Up: Table of Intrinsic Functions ! EOShift Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL EOShift' to use this name for ! an external procedure.  File: g77.info, Node: Epsilon Intrinsic, Next: ErF Intrinsic, Prev: EOShift Intrinsic, Up: Table of Intrinsic Functions ! Epsilon Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Epsilon' to use this name for ! an external procedure.  File: g77.info, Node: ErF Intrinsic, Next: ErFC Intrinsic, Prev: Epsilon Intrinsic, Up: Table of Intrinsic Functions ! ErF Intrinsic ! ............. ErF(X) *************** implementation. *** 9577,9585 ****  File: g77.info, Node: ErFC Intrinsic, Next: ETime Intrinsic (subroutine), Prev: ErF Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.95 ErFC Intrinsic ! ........................ ! ErFC(X) --- 9495,9502 ----  File: g77.info, Node: ErFC Intrinsic, Next: ETime Intrinsic (subroutine), Prev: ErF Intrinsic, Up: Table of Intrinsic Functions ! ErFC Intrinsic ! .............. ErFC(X) *************** the implementation. *** 9600,9608 ****  File: g77.info, Node: ETime Intrinsic (subroutine), Next: ETime Intrinsic (function), Prev: ErFC Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.96 ETime Intrinsic (subroutine) ! ...................................... ! CALL ETime(TARRAY, RESULT) --- 9517,9524 ----  File: g77.info, Node: ETime Intrinsic (subroutine), Next: ETime Intrinsic (function), Prev: ErFC Intrinsic, Up: Table of Intrinsic Functions ! ETime Intrinsic (subroutine) ! ............................ CALL ETime(TARRAY, RESULT) *************** Intrinsic (function)::. *** 9634,9642 ****  File: g77.info, Node: ETime Intrinsic (function), Next: Exit Intrinsic, Prev: ETime Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.97 ETime Intrinsic (function) ! .................................... ! ETime(TARRAY) --- 9550,9557 ----  File: g77.info, Node: ETime Intrinsic (function), Next: Exit Intrinsic, Prev: ETime Intrinsic (subroutine), Up: Table of Intrinsic Functions ! ETime Intrinsic (function) ! .......................... ETime(TARRAY) *************** Intrinsic (subroutine)::. *** 9665,9673 ****  File: g77.info, Node: Exit Intrinsic, Next: Exp Intrinsic, Prev: ETime Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.98 Exit Intrinsic ! ........................ ! CALL Exit(STATUS) --- 9580,9587 ----  File: g77.info, Node: Exit Intrinsic, Next: Exp Intrinsic, Prev: ETime Intrinsic (function), Up: Table of Intrinsic Functions ! Exit Intrinsic ! .............. CALL Exit(STATUS) *************** canonical `success' value will be return *** 9685,9693 ****  File: g77.info, Node: Exp Intrinsic, Next: Exponent Intrinsic, Prev: Exit Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.99 Exp Intrinsic ! ....................... ! Exp(X) --- 9599,9606 ----  File: g77.info, Node: Exp Intrinsic, Next: Exponent Intrinsic, Prev: Exit Intrinsic, Up: Table of Intrinsic Functions ! Exp Intrinsic ! ............. Exp(X) *************** Description: *** 9707,9725 ****  File: g77.info, Node: Exponent Intrinsic, Next: FDate Intrinsic (subroutine), Prev: Exp Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.100 Exponent Intrinsic ! ............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Exponent' to use this name for an ! external procedure.  File: g77.info, Node: FDate Intrinsic (subroutine), Next: FDate Intrinsic (function), Prev: Exponent Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.101 FDate Intrinsic (subroutine) ! ....................................... ! CALL FDate(DATE) --- 9620,9637 ----  File: g77.info, Node: Exponent Intrinsic, Next: FDate Intrinsic (subroutine), Prev: Exp Intrinsic, Up: Table of Intrinsic Functions ! Exponent Intrinsic ! .................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Exponent' to use this name for ! an external procedure.  File: g77.info, Node: FDate Intrinsic (subroutine), Next: FDate Intrinsic (function), Prev: Exponent Intrinsic, Up: Table of Intrinsic Functions ! FDate Intrinsic (subroutine) ! ............................ CALL FDate(DATE) *************** Intrinsic (function)::. *** 9752,9760 ****  File: g77.info, Node: FDate Intrinsic (function), Next: FGet Intrinsic (subroutine), Prev: FDate Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.102 FDate Intrinsic (function) ! ..................................... ! FDate() --- 9664,9671 ----  File: g77.info, Node: FDate Intrinsic (function), Next: FGet Intrinsic (subroutine), Prev: FDate Intrinsic (subroutine), Up: Table of Intrinsic Functions ! FDate Intrinsic (function) ! .......................... FDate() *************** Intrinsic (subroutine)::. *** 9783,9791 ****  File: g77.info, Node: FGet Intrinsic (subroutine), Next: FGetC Intrinsic (subroutine), Prev: FDate Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.103 FGet Intrinsic (subroutine) ! ...................................... ! CALL FGet(C, STATUS) --- 9694,9701 ----  File: g77.info, Node: FGet Intrinsic (subroutine), Next: FGetC Intrinsic (subroutine), Prev: FDate Intrinsic (function), Up: Table of Intrinsic Functions ! FGet Intrinsic (subroutine) ! ........................... CALL FGet(C, STATUS) *************** Intrinsic (function)::. *** 9812,9820 ****  File: g77.info, Node: FGetC Intrinsic (subroutine), Next: Float Intrinsic, Prev: FGet Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.104 FGetC Intrinsic (subroutine) ! ....................................... ! CALL FGetC(UNIT, C, STATUS) --- 9722,9729 ----  File: g77.info, Node: FGetC Intrinsic (subroutine), Next: Float Intrinsic, Prev: FGet Intrinsic (subroutine), Up: Table of Intrinsic Functions ! FGetC Intrinsic (subroutine) ! ............................ CALL FGetC(UNIT, C, STATUS) *************** Intrinsic (function)::. *** 9843,9851 ****  File: g77.info, Node: Float Intrinsic, Next: Floor Intrinsic, Prev: FGetC Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.105 Float Intrinsic ! .......................... ! Float(A) --- 9752,9759 ----  File: g77.info, Node: Float Intrinsic, Next: Floor Intrinsic, Prev: FGetC Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Float Intrinsic ! ............... Float(A) *************** Real Intrinsic::. *** 9863,9881 ****  File: g77.info, Node: Floor Intrinsic, Next: Flush Intrinsic, Prev: Float Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.106 Floor Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Floor' to use this name for an external ! procedure.  File: g77.info, Node: Flush Intrinsic, Next: FNum Intrinsic, Prev: Floor Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.107 Flush Intrinsic ! .......................... ! CALL Flush(UNIT) --- 9771,9788 ----  File: g77.info, Node: Floor Intrinsic, Next: Flush Intrinsic, Prev: Float Intrinsic, Up: Table of Intrinsic Functions ! Floor Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Floor' to use this name for an ! external procedure.  File: g77.info, Node: Flush Intrinsic, Next: FNum Intrinsic, Prev: Floor Intrinsic, Up: Table of Intrinsic Functions ! Flush Intrinsic ! ............... CALL Flush(UNIT) *************** argument. *** 9896,9904 ****  File: g77.info, Node: FNum Intrinsic, Next: FPut Intrinsic (subroutine), Prev: Flush Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.108 FNum Intrinsic ! ......................... ! FNum(UNIT) --- 9803,9810 ----  File: g77.info, Node: FNum Intrinsic, Next: FPut Intrinsic (subroutine), Prev: Flush Intrinsic, Up: Table of Intrinsic Functions ! FNum Intrinsic ! .............. FNum(UNIT) *************** routines. *** 9917,9925 ****  File: g77.info, Node: FPut Intrinsic (subroutine), Next: FPutC Intrinsic (subroutine), Prev: FNum Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.109 FPut Intrinsic (subroutine) ! ...................................... ! CALL FPut(C, STATUS) --- 9823,9830 ----  File: g77.info, Node: FPut Intrinsic (subroutine), Next: FPutC Intrinsic (subroutine), Prev: FNum Intrinsic, Up: Table of Intrinsic Functions ! FPut Intrinsic (subroutine) ! ........................... CALL FPut(C, STATUS) *************** Intrinsic (function)::. *** 9945,9953 ****  File: g77.info, Node: FPutC Intrinsic (subroutine), Next: Fraction Intrinsic, Prev: FPut Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.110 FPutC Intrinsic (subroutine) ! ....................................... ! CALL FPutC(UNIT, C, STATUS) --- 9850,9857 ----  File: g77.info, Node: FPutC Intrinsic (subroutine), Next: Fraction Intrinsic, Prev: FPut Intrinsic (subroutine), Up: Table of Intrinsic Functions ! FPutC Intrinsic (subroutine) ! ............................ CALL FPutC(UNIT, C, STATUS) *************** Intrinsic (function)::. *** 9975,9993 ****  File: g77.info, Node: Fraction Intrinsic, Next: FSeek Intrinsic, Prev: FPutC Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.111 Fraction Intrinsic ! ............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Fraction' to use this name for an ! external procedure.  File: g77.info, Node: FSeek Intrinsic, Next: FStat Intrinsic (subroutine), Prev: Fraction Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.112 FSeek Intrinsic ! .......................... ! CALL FSeek(UNIT, OFFSET, WHENCE, ERRLAB) --- 9879,9896 ----  File: g77.info, Node: Fraction Intrinsic, Next: FSeek Intrinsic, Prev: FPutC Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Fraction Intrinsic ! .................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Fraction' to use this name for ! an external procedure.  File: g77.info, Node: FSeek Intrinsic, Next: FStat Intrinsic (subroutine), Prev: Fraction Intrinsic, Up: Table of Intrinsic Functions ! FSeek Intrinsic ! ............... CALL FSeek(UNIT, OFFSET, WHENCE, ERRLAB) *************** ERRLAB if UNIT is not open or if the cal *** 10012,10020 ****  File: g77.info, Node: FStat Intrinsic (subroutine), Next: FStat Intrinsic (function), Prev: FSeek Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.113 FStat Intrinsic (subroutine) ! ....................................... ! CALL FStat(UNIT, SARRAY, STATUS) --- 9915,9922 ----  File: g77.info, Node: FStat Intrinsic (subroutine), Next: FStat Intrinsic (function), Prev: FSeek Intrinsic, Up: Table of Intrinsic Functions ! FStat Intrinsic (subroutine) ! ............................ CALL FStat(UNIT, SARRAY, STATUS) *************** Intrinsic (function)::. *** 10075,10083 ****  File: g77.info, Node: FStat Intrinsic (function), Next: FTell Intrinsic (subroutine), Prev: FStat Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.114 FStat Intrinsic (function) ! ..................................... ! FStat(UNIT, SARRAY) --- 9977,9984 ----  File: g77.info, Node: FStat Intrinsic (function), Next: FTell Intrinsic (subroutine), Prev: FStat Intrinsic (subroutine), Up: Table of Intrinsic Functions ! FStat Intrinsic (function) ! .......................... FStat(UNIT, SARRAY) *************** Intrinsic (subroutine)::. *** 10133,10141 ****  File: g77.info, Node: FTell Intrinsic (subroutine), Next: FTell Intrinsic (function), Prev: FStat Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.115 FTell Intrinsic (subroutine) ! ....................................... ! CALL FTell(UNIT, OFFSET) --- 10034,10041 ----  File: g77.info, Node: FTell Intrinsic (subroutine), Next: FTell Intrinsic (function), Prev: FStat Intrinsic (function), Up: Table of Intrinsic Functions ! FTell Intrinsic (subroutine) ! ............................ CALL FTell(UNIT, OFFSET) *************** Intrinsic (function)::. *** 10159,10167 ****  File: g77.info, Node: FTell Intrinsic (function), Next: GError Intrinsic, Prev: FTell Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.116 FTell Intrinsic (function) ! ..................................... ! FTell(UNIT) --- 10059,10066 ----  File: g77.info, Node: FTell Intrinsic (function), Next: GError Intrinsic, Prev: FTell Intrinsic (subroutine), Up: Table of Intrinsic Functions ! FTell Intrinsic (function) ! .......................... FTell(UNIT) *************** Intrinsic (subroutine)::. *** 10182,10190 ****  File: g77.info, Node: GError Intrinsic, Next: GetArg Intrinsic, Prev: FTell Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.117 GError Intrinsic ! ........................... ! CALL GError(MESSAGE) --- 10081,10088 ----  File: g77.info, Node: GError Intrinsic, Next: GetArg Intrinsic, Prev: FTell Intrinsic (function), Up: Table of Intrinsic Functions ! GError Intrinsic ! ................ CALL GError(MESSAGE) *************** error (C `errno'). *** 10200,10208 ****  File: g77.info, Node: GetArg Intrinsic, Next: GetCWD Intrinsic (subroutine), Prev: GError Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.118 GetArg Intrinsic ! ........................... ! CALL GetArg(POS, VALUE) --- 10098,10105 ----  File: g77.info, Node: GetArg Intrinsic, Next: GetCWD Intrinsic (subroutine), Prev: GError Intrinsic, Up: Table of Intrinsic Functions ! GetArg Intrinsic ! ................ CALL GetArg(POS, VALUE) *************** arguments. *** 10225,10233 ****  File: g77.info, Node: GetCWD Intrinsic (subroutine), Next: GetCWD Intrinsic (function), Prev: GetArg Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.119 GetCWD Intrinsic (subroutine) ! ........................................ ! CALL GetCWD(NAME, STATUS) --- 10122,10129 ----  File: g77.info, Node: GetCWD Intrinsic (subroutine), Next: GetCWD Intrinsic (function), Prev: GetArg Intrinsic, Up: Table of Intrinsic Functions ! GetCWD Intrinsic (subroutine) ! ............................. CALL GetCWD(NAME, STATUS) *************** Intrinsic (function)::. *** 10254,10262 ****  File: g77.info, Node: GetCWD Intrinsic (function), Next: GetEnv Intrinsic, Prev: GetCWD Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.120 GetCWD Intrinsic (function) ! ...................................... ! GetCWD(NAME) --- 10150,10157 ----  File: g77.info, Node: GetCWD Intrinsic (function), Next: GetEnv Intrinsic, Prev: GetCWD Intrinsic (subroutine), Up: Table of Intrinsic Functions ! GetCWD Intrinsic (function) ! ........................... GetCWD(NAME) *************** Intrinsic (subroutine)::. *** 10278,10286 ****  File: g77.info, Node: GetEnv Intrinsic, Next: GetGId Intrinsic, Prev: GetCWD Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.121 GetEnv Intrinsic ! ........................... ! CALL GetEnv(NAME, VALUE) --- 10173,10180 ----  File: g77.info, Node: GetEnv Intrinsic, Next: GetGId Intrinsic, Prev: GetCWD Intrinsic (function), Up: Table of Intrinsic Functions ! GetEnv Intrinsic ! ................ CALL GetEnv(NAME, VALUE) *************** NAME--otherwise, trailing blanks in NAME *** 10300,10308 ****  File: g77.info, Node: GetGId Intrinsic, Next: GetLog Intrinsic, Prev: GetEnv Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.122 GetGId Intrinsic ! ........................... ! GetGId() --- 10194,10201 ----  File: g77.info, Node: GetGId Intrinsic, Next: GetLog Intrinsic, Prev: GetEnv Intrinsic, Up: Table of Intrinsic Functions ! GetGId Intrinsic ! ................ GetGId() *************** Description: *** 10317,10325 ****  File: g77.info, Node: GetLog Intrinsic, Next: GetPId Intrinsic, Prev: GetGId Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.123 GetLog Intrinsic ! ........................... ! CALL GetLog(LOGIN) --- 10210,10217 ----  File: g77.info, Node: GetLog Intrinsic, Next: GetPId Intrinsic, Prev: GetGId Intrinsic, Up: Table of Intrinsic Functions ! GetLog Intrinsic ! ................ CALL GetLog(LOGIN) *************** LOGIN. *** 10339,10347 ****  File: g77.info, Node: GetPId Intrinsic, Next: GetUId Intrinsic, Prev: GetLog Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.124 GetPId Intrinsic ! ........................... ! GetPId() --- 10231,10238 ----  File: g77.info, Node: GetPId Intrinsic, Next: GetUId Intrinsic, Prev: GetLog Intrinsic, Up: Table of Intrinsic Functions ! GetPId Intrinsic ! ................ GetPId() *************** Description: *** 10356,10364 ****  File: g77.info, Node: GetUId Intrinsic, Next: GMTime Intrinsic, Prev: GetPId Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.125 GetUId Intrinsic ! ........................... ! GetUId() --- 10247,10254 ----  File: g77.info, Node: GetUId Intrinsic, Next: GMTime Intrinsic, Prev: GetPId Intrinsic, Up: Table of Intrinsic Functions ! GetUId Intrinsic ! ................ GetUId() *************** Description: *** 10373,10381 ****  File: g77.info, Node: GMTime Intrinsic, Next: HostNm Intrinsic (subroutine), Prev: GetUId Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.126 GMTime Intrinsic ! ........................... ! CALL GMTime(STIME, TARRAY) --- 10263,10270 ----  File: g77.info, Node: GMTime Intrinsic, Next: HostNm Intrinsic (subroutine), Prev: GetUId Intrinsic, Up: Table of Intrinsic Functions ! GMTime Intrinsic ! ................ CALL GMTime(STIME, TARRAY) *************** from it appropriate to the GMT time zone *** 10416,10424 ****  File: g77.info, Node: HostNm Intrinsic (subroutine), Next: HostNm Intrinsic (function), Prev: GMTime Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.127 HostNm Intrinsic (subroutine) ! ........................................ ! CALL HostNm(NAME, STATUS) --- 10305,10312 ----  File: g77.info, Node: HostNm Intrinsic (subroutine), Next: HostNm Intrinsic (function), Prev: GMTime Intrinsic, Up: Table of Intrinsic Functions ! HostNm Intrinsic (subroutine) ! ............................. CALL HostNm(NAME, STATUS) *************** Intrinsic (function)::. *** 10449,10457 ****  File: g77.info, Node: HostNm Intrinsic (function), Next: Huge Intrinsic, Prev: HostNm Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.128 HostNm Intrinsic (function) ! ...................................... ! HostNm(NAME) --- 10337,10344 ----  File: g77.info, Node: HostNm Intrinsic (function), Next: Huge Intrinsic, Prev: HostNm Intrinsic (subroutine), Up: Table of Intrinsic Functions ! HostNm Intrinsic (function) ! ........................... HostNm(NAME) *************** Intrinsic (subroutine)::. *** 10477,10495 ****  File: g77.info, Node: Huge Intrinsic, Next: IAbs Intrinsic, Prev: HostNm Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.129 Huge Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Huge' to use this name for an external ! procedure.  File: g77.info, Node: IAbs Intrinsic, Next: IAChar Intrinsic, Prev: Huge Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.130 IAbs Intrinsic ! ......................... ! IAbs(A) --- 10364,10381 ----  File: g77.info, Node: Huge Intrinsic, Next: IAbs Intrinsic, Prev: HostNm Intrinsic (function), Up: Table of Intrinsic Functions ! Huge Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Huge' to use this name for an ! external procedure.  File: g77.info, Node: IAbs Intrinsic, Next: IAChar Intrinsic, Prev: Huge Intrinsic, Up: Table of Intrinsic Functions ! IAbs Intrinsic ! .............. IAbs(A) *************** Abs Intrinsic::. *** 10507,10515 ****  File: g77.info, Node: IAChar Intrinsic, Next: IAnd Intrinsic, Prev: IAbs Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.131 IAChar Intrinsic ! ........................... ! IAChar(C) --- 10393,10400 ----  File: g77.info, Node: IAChar Intrinsic, Next: IAnd Intrinsic, Prev: IAbs Intrinsic, Up: Table of Intrinsic Functions ! IAChar Intrinsic ! ................ IAChar(C) *************** system's native character set. *** 10532,10540 ****  File: g77.info, Node: IAnd Intrinsic, Next: IArgC Intrinsic, Prev: IAChar Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.132 IAnd Intrinsic ! ......................... ! IAnd(I, J) --- 10417,10424 ----  File: g77.info, Node: IAnd Intrinsic, Next: IArgC Intrinsic, Prev: IAChar Intrinsic, Up: Table of Intrinsic Functions ! IAnd Intrinsic ! .............. IAnd(I, J) *************** I and J. *** 10555,10563 ****  File: g77.info, Node: IArgC Intrinsic, Next: IBClr Intrinsic, Prev: IAnd Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.133 IArgC Intrinsic ! .......................... ! IArgC() --- 10439,10446 ----  File: g77.info, Node: IArgC Intrinsic, Next: IBClr Intrinsic, Prev: IAnd Intrinsic, Up: Table of Intrinsic Functions ! IArgC Intrinsic ! ............... IArgC() *************** itself. *** 10575,10583 ****  File: g77.info, Node: IBClr Intrinsic, Next: IBits Intrinsic, Prev: IArgC Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.134 IBClr Intrinsic ! .......................... ! IBClr(I, POS) --- 10458,10465 ----  File: g77.info, Node: IBClr Intrinsic, Next: IBits Intrinsic, Prev: IArgC Intrinsic, Up: Table of Intrinsic Functions ! IBClr Intrinsic ! ............... IBClr(I, POS) *************** BTest Intrinsic::, for information on bi *** 10598,10606 ****  File: g77.info, Node: IBits Intrinsic, Next: IBSet Intrinsic, Prev: IBClr Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.135 IBits Intrinsic ! .......................... ! IBits(I, POS, LEN) --- 10480,10487 ----  File: g77.info, Node: IBits Intrinsic, Next: IBSet Intrinsic, Prev: IBClr Intrinsic, Up: Table of Intrinsic Functions ! IBits Intrinsic ! ............... IBits(I, POS, LEN) *************** than or equal to the value `BIT_SIZE(I)' *** 10625,10633 ****  File: g77.info, Node: IBSet Intrinsic, Next: IChar Intrinsic, Prev: IBits Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.136 IBSet Intrinsic ! .......................... ! IBSet(I, POS) --- 10506,10513 ----  File: g77.info, Node: IBSet Intrinsic, Next: IChar Intrinsic, Prev: IBits Intrinsic, Up: Table of Intrinsic Functions ! IBSet Intrinsic ! ............... IBSet(I, POS) *************** Intrinsic::, for information on bit posi *** 10648,10656 ****  File: g77.info, Node: IChar Intrinsic, Next: IDate Intrinsic (UNIX), Prev: IBSet Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.137 IChar Intrinsic ! .......................... ! IChar(C) --- 10528,10535 ----  File: g77.info, Node: IChar Intrinsic, Next: IDate Intrinsic (UNIX), Prev: IBSet Intrinsic, Up: Table of Intrinsic Functions ! IChar Intrinsic ! ............... IChar(C) *************** ASCII character set. *** 10696,10704 ****  File: g77.info, Node: IDate Intrinsic (UNIX), Next: IDiM Intrinsic, Prev: IChar Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.138 IDate Intrinsic (UNIX) ! ................................. ! CALL IDate(TARRAY) --- 10575,10582 ----  File: g77.info, Node: IDate Intrinsic (UNIX), Next: IDiM Intrinsic, Prev: IChar Intrinsic, Up: Table of Intrinsic Functions ! IDate Intrinsic (UNIX) ! ...................... CALL IDate(TARRAY) *************** Intrinsic (VXT)::. *** 10724,10732 ****  File: g77.info, Node: IDiM Intrinsic, Next: IDInt Intrinsic, Prev: IDate Intrinsic (UNIX), Up: Table of Intrinsic Functions ! 8.11.9.139 IDiM Intrinsic ! ......................... ! IDiM(X, Y) --- 10602,10609 ----  File: g77.info, Node: IDiM Intrinsic, Next: IDInt Intrinsic, Prev: IDate Intrinsic (UNIX), Up: Table of Intrinsic Functions ! IDiM Intrinsic ! .............. IDiM(X, Y) *************** Description: *** 10746,10754 ****  File: g77.info, Node: IDInt Intrinsic, Next: IDNInt Intrinsic, Prev: IDiM Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.140 IDInt Intrinsic ! .......................... ! IDInt(A) --- 10623,10630 ----  File: g77.info, Node: IDInt Intrinsic, Next: IDNInt Intrinsic, Prev: IDiM Intrinsic, Up: Table of Intrinsic Functions ! IDInt Intrinsic ! ............... IDInt(A) *************** Int Intrinsic::. *** 10766,10774 ****  File: g77.info, Node: IDNInt Intrinsic, Next: IEOr Intrinsic, Prev: IDInt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.141 IDNInt Intrinsic ! ........................... ! IDNInt(A) --- 10642,10649 ----  File: g77.info, Node: IDNInt Intrinsic, Next: IEOr Intrinsic, Prev: IDInt Intrinsic, Up: Table of Intrinsic Functions ! IDNInt Intrinsic ! ................ IDNInt(A) *************** NInt Intrinsic::. *** 10786,10794 ****  File: g77.info, Node: IEOr Intrinsic, Next: IErrNo Intrinsic, Prev: IDNInt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.142 IEOr Intrinsic ! ......................... ! IEOr(I, J) --- 10661,10668 ----  File: g77.info, Node: IEOr Intrinsic, Next: IErrNo Intrinsic, Prev: IDNInt Intrinsic, Up: Table of Intrinsic Functions ! IEOr Intrinsic ! .............. IEOr(I, J) *************** each of I and J. *** 10809,10817 ****  File: g77.info, Node: IErrNo Intrinsic, Next: IFix Intrinsic, Prev: IEOr Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.143 IErrNo Intrinsic ! ........................... ! IErrNo() --- 10683,10690 ----  File: g77.info, Node: IErrNo Intrinsic, Next: IFix Intrinsic, Prev: IEOr Intrinsic, Up: Table of Intrinsic Functions ! IErrNo Intrinsic ! ................ IErrNo() *************** Description: *** 10827,10835 ****  File: g77.info, Node: IFix Intrinsic, Next: Imag Intrinsic, Prev: IErrNo Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.144 IFix Intrinsic ! ......................... ! IFix(A) --- 10700,10707 ----  File: g77.info, Node: IFix Intrinsic, Next: Imag Intrinsic, Prev: IErrNo Intrinsic, Up: Table of Intrinsic Functions ! IFix Intrinsic ! .............. IFix(A) *************** Int Intrinsic::. *** 10847,10855 ****  File: g77.info, Node: Imag Intrinsic, Next: ImagPart Intrinsic, Prev: IFix Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.145 Imag Intrinsic ! ......................... ! Imag(Z) --- 10719,10726 ----  File: g77.info, Node: Imag Intrinsic, Next: ImagPart Intrinsic, Prev: IFix Intrinsic, Up: Table of Intrinsic Functions ! Imag Intrinsic ! .............. Imag(Z) *************** code. *** 10880,10888 ****  File: g77.info, Node: ImagPart Intrinsic, Next: Index Intrinsic, Prev: Imag Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.146 ImagPart Intrinsic ! ............................. ! ImagPart(Z) --- 10751,10758 ----  File: g77.info, Node: ImagPart Intrinsic, Next: Index Intrinsic, Prev: Imag Intrinsic, Up: Table of Intrinsic Functions ! ImagPart Intrinsic ! .................. ImagPart(Z) *************** code. *** 10913,10921 ****  File: g77.info, Node: Index Intrinsic, Next: Int Intrinsic, Prev: ImagPart Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.147 Index Intrinsic ! .......................... ! Index(STRING, SUBSTRING) --- 10783,10790 ----  File: g77.info, Node: Index Intrinsic, Next: Int Intrinsic, Prev: ImagPart Intrinsic, Up: Table of Intrinsic Functions ! Index Intrinsic ! ............... Index(STRING, SUBSTRING) *************** doesn't occur in STRING, zero is returne *** 10936,10944 ****  File: g77.info, Node: Int Intrinsic, Next: Int2 Intrinsic, Prev: Index Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.148 Int Intrinsic ! ........................ ! Int(A) --- 10805,10812 ----  File: g77.info, Node: Int Intrinsic, Next: Int2 Intrinsic, Prev: Index Intrinsic, Up: Table of Intrinsic Functions ! Int Intrinsic ! ............. Int(A) *************** converting. *** 10965,10973 ****  File: g77.info, Node: Int2 Intrinsic, Next: Int8 Intrinsic, Prev: Int Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.149 Int2 Intrinsic ! ......................... ! Int2(A) --- 10833,10840 ----  File: g77.info, Node: Int2 Intrinsic, Next: Int8 Intrinsic, Prev: Int Intrinsic, Up: Table of Intrinsic Functions ! Int2 Intrinsic ! .............. Int2(A) *************** used. *** 10994,11002 ****  File: g77.info, Node: Int8 Intrinsic, Next: IOr Intrinsic, Prev: Int2 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.150 Int8 Intrinsic ! ......................... ! Int8(A) --- 10861,10868 ----  File: g77.info, Node: Int8 Intrinsic, Next: IOr Intrinsic, Prev: Int2 Intrinsic, Up: Table of Intrinsic Functions ! Int8 Intrinsic ! .............. Int8(A) *************** used. *** 11023,11031 ****  File: g77.info, Node: IOr Intrinsic, Next: IRand Intrinsic, Prev: Int8 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.151 IOr Intrinsic ! ........................ ! IOr(I, J) --- 10889,10896 ----  File: g77.info, Node: IOr Intrinsic, Next: IRand Intrinsic, Prev: Int8 Intrinsic, Up: Table of Intrinsic Functions ! IOr Intrinsic ! ............. IOr(I, J) *************** and J. *** 11046,11054 ****  File: g77.info, Node: IRand Intrinsic, Next: IsaTty Intrinsic, Prev: IOr Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.152 IRand Intrinsic ! .......................... ! IRand(FLAG) --- 10911,10918 ----  File: g77.info, Node: IRand Intrinsic, Next: IsaTty Intrinsic, Prev: IOr Intrinsic, Up: Table of Intrinsic Functions ! IRand Intrinsic ! ............... IRand(FLAG) *************** use something better. *** 11076,11084 ****  File: g77.info, Node: IsaTty Intrinsic, Next: IShft Intrinsic, Prev: IRand Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.153 IsaTty Intrinsic ! ........................... ! IsaTty(UNIT) --- 10940,10947 ----  File: g77.info, Node: IsaTty Intrinsic, Next: IShft Intrinsic, Prev: IRand Intrinsic, Up: Table of Intrinsic Functions ! IsaTty Intrinsic ! ................ IsaTty(UNIT) *************** UNIT is connected to a terminal device. *** 11096,11104 ****  File: g77.info, Node: IShft Intrinsic, Next: IShftC Intrinsic, Prev: IsaTty Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.154 IShft Intrinsic ! .......................... ! IShft(I, SHIFT) --- 10959,10966 ----  File: g77.info, Node: IShft Intrinsic, Next: IShftC Intrinsic, Prev: IsaTty Intrinsic, Up: Table of Intrinsic Functions ! IShft Intrinsic ! ............... IShft(I, SHIFT) *************** are shifted in from the opposite end. *** 11125,11133 ****  File: g77.info, Node: IShftC Intrinsic, Next: ISign Intrinsic, Prev: IShft Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.155 IShftC Intrinsic ! ........................... ! IShftC(I, SHIFT, SIZE) --- 10987,10994 ----  File: g77.info, Node: IShftC Intrinsic, Next: ISign Intrinsic, Prev: IShft Intrinsic, Up: Table of Intrinsic Functions ! IShftC Intrinsic ! ................ IShftC(I, SHIFT, SIZE) *************** must be greater than or equal to one and *** 11157,11165 ****  File: g77.info, Node: ISign Intrinsic, Next: ITime Intrinsic, Prev: IShftC Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.156 ISign Intrinsic ! .......................... ! ISign(A, B) --- 11018,11025 ----  File: g77.info, Node: ISign Intrinsic, Next: ITime Intrinsic, Prev: IShftC Intrinsic, Up: Table of Intrinsic Functions ! ISign Intrinsic ! ............... ISign(A, B) *************** Description: *** 11179,11187 ****  File: g77.info, Node: ITime Intrinsic, Next: Kill Intrinsic (subroutine), Prev: ISign Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.157 ITime Intrinsic ! .......................... ! CALL ITime(TARRAY) --- 11039,11046 ----  File: g77.info, Node: ITime Intrinsic, Next: Kill Intrinsic (subroutine), Prev: ISign Intrinsic, Up: Table of Intrinsic Functions ! ITime Intrinsic ! ............... CALL ITime(TARRAY) *************** Description: *** 11197,11205 ****  File: g77.info, Node: Kill Intrinsic (subroutine), Next: Kind Intrinsic, Prev: ITime Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.158 Kill Intrinsic (subroutine) ! ...................................... ! CALL Kill(PID, SIGNAL, STATUS) --- 11056,11063 ----  File: g77.info, Node: Kill Intrinsic (subroutine), Next: Kind Intrinsic, Prev: ITime Intrinsic, Up: Table of Intrinsic Functions ! Kill Intrinsic (subroutine) ! ........................... CALL Kill(PID, SIGNAL, STATUS) *************** Intrinsic (function)::. *** 11227,11255 ****  File: g77.info, Node: Kind Intrinsic, Next: LBound Intrinsic, Prev: Kill Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.159 Kind Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Kind' to use this name for an external ! procedure.  File: g77.info, Node: LBound Intrinsic, Next: Len Intrinsic, Prev: Kind Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.160 LBound Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL LBound' to use this name for an external procedure.  File: g77.info, Node: Len Intrinsic, Next: Len_Trim Intrinsic, Prev: LBound Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.161 Len Intrinsic ! ........................ ! Len(STRING) --- 11085,11112 ----  File: g77.info, Node: Kind Intrinsic, Next: LBound Intrinsic, Prev: Kill Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Kind Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Kind' to use this name for an ! external procedure.  File: g77.info, Node: LBound Intrinsic, Next: Len Intrinsic, Prev: Kind Intrinsic, Up: Table of Intrinsic Functions ! LBound Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL LBound' to use this name for an external procedure.  File: g77.info, Node: Len Intrinsic, Next: Len_Trim Intrinsic, Prev: LBound Intrinsic, Up: Table of Intrinsic Functions ! Len Intrinsic ! ............. Len(STRING) *************** size of its argument in bits. *** 11275,11283 ****  File: g77.info, Node: Len_Trim Intrinsic, Next: LGe Intrinsic, Prev: Len Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.162 Len_Trim Intrinsic ! ............................. ! Len_Trim(STRING) --- 11132,11139 ----  File: g77.info, Node: Len_Trim Intrinsic, Next: LGe Intrinsic, Prev: Len Intrinsic, Up: Table of Intrinsic Functions ! Len_Trim Intrinsic ! .................. Len_Trim(STRING) *************** Description: *** 11295,11303 ****  File: g77.info, Node: LGe Intrinsic, Next: LGt Intrinsic, Prev: Len_Trim Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.163 LGe Intrinsic ! ........................ ! LGe(STRING_A, STRING_B) --- 11151,11158 ----  File: g77.info, Node: LGe Intrinsic, Next: LGt Intrinsic, Prev: Len_Trim Intrinsic, Up: Table of Intrinsic Functions ! LGe Intrinsic ! ............. LGe(STRING_A, STRING_B) *************** and `.LE.'; and between `LLt' and `.LT.' *** 11343,11351 ****  File: g77.info, Node: LGt Intrinsic, Next: Link Intrinsic (subroutine), Prev: LGe Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.164 LGt Intrinsic ! ........................ ! LGt(STRING_A, STRING_B) --- 11198,11205 ----  File: g77.info, Node: LGt Intrinsic, Next: Link Intrinsic (subroutine), Prev: LGe Intrinsic, Up: Table of Intrinsic Functions ! LGt Intrinsic ! ............. LGt(STRING_A, STRING_B) *************** the `LGT' intrinsic and the `.GT.' opera *** 11374,11382 ****  File: g77.info, Node: Link Intrinsic (subroutine), Next: LLe Intrinsic, Prev: LGt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.165 Link Intrinsic (subroutine) ! ...................................... ! CALL Link(PATH1, PATH2, STATUS) --- 11228,11235 ----  File: g77.info, Node: Link Intrinsic (subroutine), Next: LLe Intrinsic, Prev: LGt Intrinsic, Up: Table of Intrinsic Functions ! Link Intrinsic (subroutine) ! ........................... CALL Link(PATH1, PATH2, STATUS) *************** Intrinsic (function)::. *** 11406,11414 ****  File: g77.info, Node: LLe Intrinsic, Next: LLt Intrinsic, Prev: Link Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.166 LLe Intrinsic ! ........................ ! LLe(STRING_A, STRING_B) --- 11259,11266 ----  File: g77.info, Node: LLe Intrinsic, Next: LLt Intrinsic, Prev: Link Intrinsic (subroutine), Up: Table of Intrinsic Functions ! LLe Intrinsic ! ............. LLe(STRING_A, STRING_B) *************** the `LLE' intrinsic and the `.LE.' opera *** 11437,11445 ****  File: g77.info, Node: LLt Intrinsic, Next: LnBlnk Intrinsic, Prev: LLe Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.167 LLt Intrinsic ! ........................ ! LLt(STRING_A, STRING_B) --- 11289,11296 ----  File: g77.info, Node: LLt Intrinsic, Next: LnBlnk Intrinsic, Prev: LLe Intrinsic, Up: Table of Intrinsic Functions ! LLt Intrinsic ! ............. LLt(STRING_A, STRING_B) *************** the `LLT' intrinsic and the `.LT.' opera *** 11468,11476 ****  File: g77.info, Node: LnBlnk Intrinsic, Next: Loc Intrinsic, Prev: LLt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.168 LnBlnk Intrinsic ! ........................... ! LnBlnk(STRING) --- 11319,11326 ----  File: g77.info, Node: LnBlnk Intrinsic, Next: Loc Intrinsic, Prev: LLt Intrinsic, Up: Table of Intrinsic Functions ! LnBlnk Intrinsic ! ................ LnBlnk(STRING) *************** Description: *** 11488,11496 ****  File: g77.info, Node: Loc Intrinsic, Next: Log Intrinsic, Prev: LnBlnk Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.169 Loc Intrinsic ! ........................ ! Loc(ENTITY) --- 11338,11345 ----  File: g77.info, Node: Loc Intrinsic, Next: Log Intrinsic, Prev: LnBlnk Intrinsic, Up: Table of Intrinsic Functions ! Loc Intrinsic ! ............. Loc(ENTITY) *************** Description: *** 11508,11516 ****  File: g77.info, Node: Log Intrinsic, Next: Log10 Intrinsic, Prev: Loc Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.170 Log Intrinsic ! ........................ ! Log(X) --- 11357,11364 ----  File: g77.info, Node: Log Intrinsic, Next: Log10 Intrinsic, Prev: Loc Intrinsic, Up: Table of Intrinsic Functions ! Log Intrinsic ! ............. Log(X) *************** function. *** 11534,11542 ****  File: g77.info, Node: Log10 Intrinsic, Next: Logical Intrinsic, Prev: Log Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.171 Log10 Intrinsic ! .......................... ! Log10(X) --- 11382,11389 ----  File: g77.info, Node: Log10 Intrinsic, Next: Logical Intrinsic, Prev: Log Intrinsic, Up: Table of Intrinsic Functions ! Log10 Intrinsic ! ............... Log10(X) *************** than zero. *** 11559,11577 ****  File: g77.info, Node: Logical Intrinsic, Next: Long Intrinsic, Prev: Log10 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.172 Logical Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Logical' to use this name for an ! external procedure.  File: g77.info, Node: Long Intrinsic, Next: LShift Intrinsic, Prev: Logical Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.173 Long Intrinsic ! ......................... ! Long(A) --- 11406,11423 ----  File: g77.info, Node: Logical Intrinsic, Next: Long Intrinsic, Prev: Log10 Intrinsic, Up: Table of Intrinsic Functions ! Logical Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Logical' to use this name for ! an external procedure.  File: g77.info, Node: Long Intrinsic, Next: LShift Intrinsic, Prev: Logical Intrinsic, Up: Table of Intrinsic Functions ! Long Intrinsic ! .............. Long(A) *************** used. *** 11593,11601 ****  File: g77.info, Node: LShift Intrinsic, Next: LStat Intrinsic (subroutine), Prev: Long Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.174 LShift Intrinsic ! ........................... ! LShift(I, SHIFT) --- 11439,11446 ----  File: g77.info, Node: LShift Intrinsic, Next: LStat Intrinsic (subroutine), Prev: Long Intrinsic, Up: Table of Intrinsic Functions ! LShift Intrinsic ! ................ LShift(I, SHIFT) *************** left-shifting intrinsic that is also mor *** 11629,11637 ****  File: g77.info, Node: LStat Intrinsic (subroutine), Next: LStat Intrinsic (function), Prev: LShift Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.175 LStat Intrinsic (subroutine) ! ....................................... ! CALL LStat(FILE, SARRAY, STATUS) --- 11474,11481 ----  File: g77.info, Node: LStat Intrinsic (subroutine), Next: LStat Intrinsic (function), Prev: LShift Intrinsic, Up: Table of Intrinsic Functions ! LStat Intrinsic (subroutine) ! ............................ CALL LStat(FILE, SARRAY, STATUS) *************** Intrinsic (function)::. *** 11697,11705 ****  File: g77.info, Node: LStat Intrinsic (function), Next: LTime Intrinsic, Prev: LStat Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.176 LStat Intrinsic (function) ! ..................................... ! LStat(FILE, SARRAY) --- 11541,11548 ----  File: g77.info, Node: LStat Intrinsic (function), Next: LTime Intrinsic, Prev: LStat Intrinsic (subroutine), Up: Table of Intrinsic Functions ! LStat Intrinsic (function) ! .......................... LStat(FILE, SARRAY) *************** Intrinsic (subroutine)::. *** 11760,11768 ****  File: g77.info, Node: LTime Intrinsic, Next: MatMul Intrinsic, Prev: LStat Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.177 LTime Intrinsic ! .......................... ! CALL LTime(STIME, TARRAY) --- 11603,11610 ----  File: g77.info, Node: LTime Intrinsic, Next: MatMul Intrinsic, Prev: LStat Intrinsic (function), Up: Table of Intrinsic Functions ! LTime Intrinsic ! ............... CALL LTime(STIME, TARRAY) *************** from it appropriate to the GMT time zone *** 11803,11821 ****  File: g77.info, Node: MatMul Intrinsic, Next: Max Intrinsic, Prev: LTime Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.178 MatMul Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MatMul' to use this name for an external procedure.  File: g77.info, Node: Max Intrinsic, Next: Max0 Intrinsic, Prev: MatMul Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.179 Max Intrinsic ! ........................ ! Max(A-1, A-2, ..., A-n) --- 11645,11662 ----  File: g77.info, Node: MatMul Intrinsic, Next: Max Intrinsic, Prev: LTime Intrinsic, Up: Table of Intrinsic Functions ! MatMul Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MatMul' to use this name for an external procedure.  File: g77.info, Node: Max Intrinsic, Next: Max0 Intrinsic, Prev: MatMul Intrinsic, Up: Table of Intrinsic Functions ! Max Intrinsic ! ............. Max(A-1, A-2, ..., A-n) *************** Description: *** 11836,11844 ****  File: g77.info, Node: Max0 Intrinsic, Next: Max1 Intrinsic, Prev: Max Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.180 Max0 Intrinsic ! ......................... ! Max0(A-1, A-2, ..., A-n) --- 11677,11684 ----  File: g77.info, Node: Max0 Intrinsic, Next: Max1 Intrinsic, Prev: Max Intrinsic, Up: Table of Intrinsic Functions ! Max0 Intrinsic ! .............. Max0(A-1, A-2, ..., A-n) *************** Max Intrinsic::. *** 11857,11865 ****  File: g77.info, Node: Max1 Intrinsic, Next: MaxExponent Intrinsic, Prev: Max0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.181 Max1 Intrinsic ! ......................... ! Max1(A-1, A-2, ..., A-n) --- 11697,11704 ----  File: g77.info, Node: Max1 Intrinsic, Next: MaxExponent Intrinsic, Prev: Max0 Intrinsic, Up: Table of Intrinsic Functions ! Max1 Intrinsic ! .............. Max1(A-1, A-2, ..., A-n) *************** different return type. *Note Max Intrin *** 11878,11916 ****  File: g77.info, Node: MaxExponent Intrinsic, Next: MaxLoc Intrinsic, Prev: Max1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.182 MaxExponent Intrinsic ! ................................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MaxExponent' to use this name for an ! external procedure.  File: g77.info, Node: MaxLoc Intrinsic, Next: MaxVal Intrinsic, Prev: MaxExponent Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.183 MaxLoc Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MaxLoc' to use this name for an external procedure.  File: g77.info, Node: MaxVal Intrinsic, Next: MClock Intrinsic, Prev: MaxLoc Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.184 MaxVal Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MaxVal' to use this name for an external procedure.  File: g77.info, Node: MClock Intrinsic, Next: MClock8 Intrinsic, Prev: MaxVal Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.185 MClock Intrinsic ! ........................... ! MClock() --- 11717,11754 ----  File: g77.info, Node: MaxExponent Intrinsic, Next: MaxLoc Intrinsic, Prev: Max1 Intrinsic, Up: Table of Intrinsic Functions ! MaxExponent Intrinsic ! ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MaxExponent' to use this name ! for an external procedure.  File: g77.info, Node: MaxLoc Intrinsic, Next: MaxVal Intrinsic, Prev: MaxExponent Intrinsic, Up: Table of Intrinsic Functions ! MaxLoc Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MaxLoc' to use this name for an external procedure.  File: g77.info, Node: MaxVal Intrinsic, Next: MClock Intrinsic, Prev: MaxLoc Intrinsic, Up: Table of Intrinsic Functions ! MaxVal Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MaxVal' to use this name for an external procedure.  File: g77.info, Node: MClock Intrinsic, Next: MClock8 Intrinsic, Prev: MaxVal Intrinsic, Up: Table of Intrinsic Functions ! MClock Intrinsic ! ................ MClock() *************** fewer Fortran compilers. *** 11938,11946 ****  File: g77.info, Node: MClock8 Intrinsic, Next: Merge Intrinsic, Prev: MClock Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.186 MClock8 Intrinsic ! ............................ ! MClock8() --- 11776,11783 ----  File: g77.info, Node: MClock8 Intrinsic, Next: Merge Intrinsic, Prev: MClock Intrinsic, Up: Table of Intrinsic Functions ! MClock8 Intrinsic ! ................. MClock8() *************** implementations. *** 11972,11990 ****  File: g77.info, Node: Merge Intrinsic, Next: Min Intrinsic, Prev: MClock8 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.187 Merge Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Merge' to use this name for an external ! procedure.  File: g77.info, Node: Min Intrinsic, Next: Min0 Intrinsic, Prev: Merge Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.188 Min Intrinsic ! ........................ ! Min(A-1, A-2, ..., A-n) --- 11809,11826 ----  File: g77.info, Node: Merge Intrinsic, Next: Min Intrinsic, Prev: MClock8 Intrinsic, Up: Table of Intrinsic Functions ! Merge Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Merge' to use this name for an ! external procedure.  File: g77.info, Node: Min Intrinsic, Next: Min0 Intrinsic, Prev: Merge Intrinsic, Up: Table of Intrinsic Functions ! Min Intrinsic ! ............. Min(A-1, A-2, ..., A-n) *************** Description: *** 12005,12013 ****  File: g77.info, Node: Min0 Intrinsic, Next: Min1 Intrinsic, Prev: Min Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.189 Min0 Intrinsic ! ......................... ! Min0(A-1, A-2, ..., A-n) --- 11841,11848 ----  File: g77.info, Node: Min0 Intrinsic, Next: Min1 Intrinsic, Prev: Min Intrinsic, Up: Table of Intrinsic Functions ! Min0 Intrinsic ! .............. Min0(A-1, A-2, ..., A-n) *************** Min Intrinsic::. *** 12026,12034 ****  File: g77.info, Node: Min1 Intrinsic, Next: MinExponent Intrinsic, Prev: Min0 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.190 Min1 Intrinsic ! ......................... ! Min1(A-1, A-2, ..., A-n) --- 11861,11868 ----  File: g77.info, Node: Min1 Intrinsic, Next: MinExponent Intrinsic, Prev: Min0 Intrinsic, Up: Table of Intrinsic Functions ! Min1 Intrinsic ! .............. Min1(A-1, A-2, ..., A-n) *************** different return type. *Note Min Intrin *** 12047,12085 ****  File: g77.info, Node: MinExponent Intrinsic, Next: MinLoc Intrinsic, Prev: Min1 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.191 MinExponent Intrinsic ! ................................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MinExponent' to use this name for an ! external procedure.  File: g77.info, Node: MinLoc Intrinsic, Next: MinVal Intrinsic, Prev: MinExponent Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.192 MinLoc Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MinLoc' to use this name for an external procedure.  File: g77.info, Node: MinVal Intrinsic, Next: Mod Intrinsic, Prev: MinLoc Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.193 MinVal Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MinVal' to use this name for an external procedure.  File: g77.info, Node: Mod Intrinsic, Next: Modulo Intrinsic, Prev: MinVal Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.194 Mod Intrinsic ! ........................ ! Mod(A, P) --- 11881,11918 ----  File: g77.info, Node: MinExponent Intrinsic, Next: MinLoc Intrinsic, Prev: Min1 Intrinsic, Up: Table of Intrinsic Functions ! MinExponent Intrinsic ! ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MinExponent' to use this name ! for an external procedure.  File: g77.info, Node: MinLoc Intrinsic, Next: MinVal Intrinsic, Prev: MinExponent Intrinsic, Up: Table of Intrinsic Functions ! MinLoc Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MinLoc' to use this name for an external procedure.  File: g77.info, Node: MinVal Intrinsic, Next: Mod Intrinsic, Prev: MinLoc Intrinsic, Up: Table of Intrinsic Functions ! MinVal Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MinVal' to use this name for an external procedure.  File: g77.info, Node: Mod Intrinsic, Next: Modulo Intrinsic, Prev: MinVal Intrinsic, Up: Table of Intrinsic Functions ! Mod Intrinsic ! ............. Mod(A, P) *************** Description: *** 12103,12121 ****  File: g77.info, Node: Modulo Intrinsic, Next: MvBits Intrinsic, Prev: Mod Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.195 Modulo Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Modulo' to use this name for an external procedure.  File: g77.info, Node: MvBits Intrinsic, Next: Nearest Intrinsic, Prev: Modulo Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.196 MvBits Intrinsic ! ........................... ! CALL MvBits(FROM, FROMPOS, LEN, TO, TOPOS) --- 11936,11953 ----  File: g77.info, Node: Modulo Intrinsic, Next: MvBits Intrinsic, Prev: Mod Intrinsic, Up: Table of Intrinsic Functions ! Modulo Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Modulo' to use this name for an external procedure.  File: g77.info, Node: MvBits Intrinsic, Next: Nearest Intrinsic, Prev: Modulo Intrinsic, Up: Table of Intrinsic Functions ! MvBits Intrinsic ! ................ CALL MvBits(FROM, FROMPOS, LEN, TO, TOPOS) *************** equal to `BIT_SIZE(FROM)'. *** 12144,12162 ****  File: g77.info, Node: Nearest Intrinsic, Next: NInt Intrinsic, Prev: MvBits Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.197 Nearest Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Nearest' to use this name for an ! external procedure.  File: g77.info, Node: NInt Intrinsic, Next: Not Intrinsic, Prev: Nearest Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.198 NInt Intrinsic ! ......................... ! NInt(A) --- 11976,11993 ----  File: g77.info, Node: Nearest Intrinsic, Next: NInt Intrinsic, Prev: MvBits Intrinsic, Up: Table of Intrinsic Functions ! Nearest Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Nearest' to use this name for ! an external procedure.  File: g77.info, Node: NInt Intrinsic, Next: Not Intrinsic, Prev: Nearest Intrinsic, Up: Table of Intrinsic Functions ! NInt Intrinsic ! .............. NInt(A) *************** without converting. *** 12185,12193 ****  File: g77.info, Node: Not Intrinsic, Next: Or Intrinsic, Prev: NInt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.199 Not Intrinsic ! ........................ ! Not(I) --- 12016,12023 ----  File: g77.info, Node: Not Intrinsic, Next: Or Intrinsic, Prev: NInt Intrinsic, Up: Table of Intrinsic Functions ! Not Intrinsic ! ............. Not(I) *************** Description: *** 12205,12213 ****  File: g77.info, Node: Or Intrinsic, Next: Pack Intrinsic, Prev: Not Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.200 Or Intrinsic ! ....................... ! Or(I, J) --- 12035,12042 ----  File: g77.info, Node: Or Intrinsic, Next: Pack Intrinsic, Prev: Not Intrinsic, Up: Table of Intrinsic Functions ! Or Intrinsic ! ............ Or(I, J) *************** and J. *** 12228,12246 ****  File: g77.info, Node: Pack Intrinsic, Next: PError Intrinsic, Prev: Or Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.201 Pack Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Pack' to use this name for an external ! procedure.  File: g77.info, Node: PError Intrinsic, Next: Precision Intrinsic, Prev: Pack Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.202 PError Intrinsic ! ........................... ! CALL PError(STRING) --- 12057,12074 ----  File: g77.info, Node: Pack Intrinsic, Next: PError Intrinsic, Prev: Or Intrinsic, Up: Table of Intrinsic Functions ! Pack Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Pack' to use this name for an ! external procedure.  File: g77.info, Node: PError Intrinsic, Next: Precision Intrinsic, Prev: Pack Intrinsic, Up: Table of Intrinsic Functions ! PError Intrinsic ! ................ CALL PError(STRING) *************** colon and a space. See `perror(3)'. *** 12257,12305 ****  File: g77.info, Node: Precision Intrinsic, Next: Present Intrinsic, Prev: PError Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.203 Precision Intrinsic ! .............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Precision' to use this name for an ! external procedure.  File: g77.info, Node: Present Intrinsic, Next: Product Intrinsic, Prev: Precision Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.204 Present Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Present' to use this name for an ! external procedure.  File: g77.info, Node: Product Intrinsic, Next: Radix Intrinsic, Prev: Present Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.205 Product Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Product' to use this name for an ! external procedure.  File: g77.info, Node: Radix Intrinsic, Next: Rand Intrinsic, Prev: Product Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.206 Radix Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Radix' to use this name for an external ! procedure.  File: g77.info, Node: Rand Intrinsic, Next: Random_Number Intrinsic, Prev: Radix Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.207 Rand Intrinsic ! ......................... ! Rand(FLAG) --- 12085,12132 ----  File: g77.info, Node: Precision Intrinsic, Next: Present Intrinsic, Prev: PError Intrinsic, Up: Table of Intrinsic Functions ! Precision Intrinsic ! ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Precision' to use this name ! for an external procedure.  File: g77.info, Node: Present Intrinsic, Next: Product Intrinsic, Prev: Precision Intrinsic, Up: Table of Intrinsic Functions ! Present Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Present' to use this name for ! an external procedure.  File: g77.info, Node: Product Intrinsic, Next: Radix Intrinsic, Prev: Present Intrinsic, Up: Table of Intrinsic Functions ! Product Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Product' to use this name for ! an external procedure.  File: g77.info, Node: Radix Intrinsic, Next: Rand Intrinsic, Prev: Product Intrinsic, Up: Table of Intrinsic Functions ! Radix Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Radix' to use this name for an ! external procedure.  File: g77.info, Node: Rand Intrinsic, Next: Random_Number Intrinsic, Prev: Radix Intrinsic, Up: Table of Intrinsic Functions ! Rand Intrinsic ! .............. Rand(FLAG) *************** use something better. *** 12327,12365 ****  File: g77.info, Node: Random_Number Intrinsic, Next: Random_Seed Intrinsic, Prev: Rand Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.208 Random_Number Intrinsic ! .................................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Random_Number' to use this name for an ! external procedure.  File: g77.info, Node: Random_Seed Intrinsic, Next: Range Intrinsic, Prev: Random_Number Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.209 Random_Seed Intrinsic ! ................................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Random_Seed' to use this name for an ! external procedure.  File: g77.info, Node: Range Intrinsic, Next: Real Intrinsic, Prev: Random_Seed Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.210 Range Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Range' to use this name for an external ! procedure.  File: g77.info, Node: Real Intrinsic, Next: RealPart Intrinsic, Prev: Range Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.211 Real Intrinsic ! ......................... ! Real(A) --- 12154,12191 ----  File: g77.info, Node: Random_Number Intrinsic, Next: Random_Seed Intrinsic, Prev: Rand Intrinsic, Up: Table of Intrinsic Functions ! Random_Number Intrinsic ! ....................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Random_Number' to use this ! name for an external procedure.  File: g77.info, Node: Random_Seed Intrinsic, Next: Range Intrinsic, Prev: Random_Number Intrinsic, Up: Table of Intrinsic Functions ! Random_Seed Intrinsic ! ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Random_Seed' to use this name ! for an external procedure.  File: g77.info, Node: Range Intrinsic, Next: Real Intrinsic, Prev: Random_Seed Intrinsic, Up: Table of Intrinsic Functions ! Range Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Range' to use this name for an ! external procedure.  File: g77.info, Node: Real Intrinsic, Next: RealPart Intrinsic, Prev: Range Intrinsic, Up: Table of Intrinsic Functions ! Real Intrinsic ! .............. Real(A) *************** intrinsic that extracts the real part of *** 12392,12400 ****  File: g77.info, Node: RealPart Intrinsic, Next: Rename Intrinsic (subroutine), Prev: Real Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.212 RealPart Intrinsic ! ............................. ! RealPart(Z) --- 12218,12225 ----  File: g77.info, Node: RealPart Intrinsic, Next: Rename Intrinsic (subroutine), Prev: Real Intrinsic, Up: Table of Intrinsic Functions ! RealPart Intrinsic ! .................. RealPart(Z) *************** doesn't support it to produce a diagnost *** 12424,12432 ****  File: g77.info, Node: Rename Intrinsic (subroutine), Next: Repeat Intrinsic, Prev: RealPart Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.213 Rename Intrinsic (subroutine) ! ........................................ ! CALL Rename(PATH1, PATH2, STATUS) --- 12249,12256 ----  File: g77.info, Node: Rename Intrinsic (subroutine), Next: Repeat Intrinsic, Prev: RealPart Intrinsic, Up: Table of Intrinsic Functions ! Rename Intrinsic (subroutine) ! ............................. CALL Rename(PATH1, PATH2, STATUS) *************** Intrinsic (function)::. *** 12456,12494 ****  File: g77.info, Node: Repeat Intrinsic, Next: Reshape Intrinsic, Prev: Rename Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.214 Repeat Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Repeat' to use this name for an external procedure.  File: g77.info, Node: Reshape Intrinsic, Next: RRSpacing Intrinsic, Prev: Repeat Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.215 Reshape Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Reshape' to use this name for an ! external procedure.  File: g77.info, Node: RRSpacing Intrinsic, Next: RShift Intrinsic, Prev: Reshape Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.216 RRSpacing Intrinsic ! .............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL RRSpacing' to use this name for an ! external procedure.  File: g77.info, Node: RShift Intrinsic, Next: Scale Intrinsic, Prev: RRSpacing Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.217 RShift Intrinsic ! ........................... ! RShift(I, SHIFT) --- 12280,12317 ----  File: g77.info, Node: Repeat Intrinsic, Next: Reshape Intrinsic, Prev: Rename Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Repeat Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Repeat' to use this name for an external procedure.  File: g77.info, Node: Reshape Intrinsic, Next: RRSpacing Intrinsic, Prev: Repeat Intrinsic, Up: Table of Intrinsic Functions ! Reshape Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Reshape' to use this name for ! an external procedure.  File: g77.info, Node: RRSpacing Intrinsic, Next: RShift Intrinsic, Prev: Reshape Intrinsic, Up: Table of Intrinsic Functions ! RRSpacing Intrinsic ! ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL RRSpacing' to use this name ! for an external procedure.  File: g77.info, Node: RShift Intrinsic, Next: Scale Intrinsic, Prev: RRSpacing Intrinsic, Up: Table of Intrinsic Functions ! RShift Intrinsic ! ................ RShift(I, SHIFT) *************** right-shifting intrinsic that is also mo *** 12522,12550 ****  File: g77.info, Node: Scale Intrinsic, Next: Scan Intrinsic, Prev: RShift Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.218 Scale Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Scale' to use this name for an external ! procedure.  File: g77.info, Node: Scan Intrinsic, Next: Second Intrinsic (function), Prev: Scale Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.219 Scan Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Scan' to use this name for an external ! procedure.  File: g77.info, Node: Second Intrinsic (function), Next: Second Intrinsic (subroutine), Prev: Scan Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.220 Second Intrinsic (function) ! ...................................... ! Second() --- 12345,12372 ----  File: g77.info, Node: Scale Intrinsic, Next: Scan Intrinsic, Prev: RShift Intrinsic, Up: Table of Intrinsic Functions ! Scale Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Scale' to use this name for an ! external procedure.  File: g77.info, Node: Scan Intrinsic, Next: Second Intrinsic (function), Prev: Scale Intrinsic, Up: Table of Intrinsic Functions ! Scan Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Scan' to use this name for an ! external procedure.  File: g77.info, Node: Second Intrinsic (function), Next: Second Intrinsic (subroutine), Prev: Scan Intrinsic, Up: Table of Intrinsic Functions ! Second Intrinsic (function) ! ........................... Second() *************** Intrinsic (subroutine)::. *** 12569,12577 ****  File: g77.info, Node: Second Intrinsic (subroutine), Next: Selected_Int_Kind Intrinsic, Prev: Second Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.221 Second Intrinsic (subroutine) ! ........................................ ! CALL Second(SECONDS) --- 12391,12398 ----  File: g77.info, Node: Second Intrinsic (subroutine), Next: Selected_Int_Kind Intrinsic, Prev: Second Intrinsic (function), Up: Table of Intrinsic Functions ! Second Intrinsic (subroutine) ! ............................. CALL Second(SECONDS) *************** Intrinsic (function)::. *** 12599,12647 ****  File: g77.info, Node: Selected_Int_Kind Intrinsic, Next: Selected_Real_Kind Intrinsic, Prev: Second Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.222 Selected_Int_Kind Intrinsic ! ...................................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Selected_Int_Kind' to use this name for ! an external procedure.  File: g77.info, Node: Selected_Real_Kind Intrinsic, Next: Set_Exponent Intrinsic, Prev: Selected_Int_Kind Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.223 Selected_Real_Kind Intrinsic ! ....................................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Selected_Real_Kind' to use this name ! for an external procedure.  File: g77.info, Node: Set_Exponent Intrinsic, Next: Shape Intrinsic, Prev: Selected_Real_Kind Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.224 Set_Exponent Intrinsic ! ................................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Set_Exponent' to use this name for an ! external procedure.  File: g77.info, Node: Shape Intrinsic, Next: Short Intrinsic, Prev: Set_Exponent Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.225 Shape Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Shape' to use this name for an external ! procedure.  File: g77.info, Node: Short Intrinsic, Next: Sign Intrinsic, Prev: Shape Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.226 Short Intrinsic ! .......................... ! Short(A) --- 12420,12467 ----  File: g77.info, Node: Selected_Int_Kind Intrinsic, Next: Selected_Real_Kind Intrinsic, Prev: Second Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Selected_Int_Kind Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Selected_Int_Kind' to use this ! name for an external procedure.  File: g77.info, Node: Selected_Real_Kind Intrinsic, Next: Set_Exponent Intrinsic, Prev: Selected_Int_Kind Intrinsic, Up: Table of Intrinsic Functions ! Selected_Real_Kind Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Selected_Real_Kind' to use ! this name for an external procedure.  File: g77.info, Node: Set_Exponent Intrinsic, Next: Shape Intrinsic, Prev: Selected_Real_Kind Intrinsic, Up: Table of Intrinsic Functions ! Set_Exponent Intrinsic ! ...................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Set_Exponent' to use this name ! for an external procedure.  File: g77.info, Node: Shape Intrinsic, Next: Short Intrinsic, Prev: Set_Exponent Intrinsic, Up: Table of Intrinsic Functions ! Shape Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Shape' to use this name for an ! external procedure.  File: g77.info, Node: Short Intrinsic, Next: Sign Intrinsic, Prev: Shape Intrinsic, Up: Table of Intrinsic Functions ! Short Intrinsic ! ............... Short(A) *************** used. *** 12668,12676 ****  File: g77.info, Node: Sign Intrinsic, Next: Signal Intrinsic (subroutine), Prev: Short Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.227 Sign Intrinsic ! ......................... ! Sign(A, B) --- 12488,12495 ----  File: g77.info, Node: Sign Intrinsic, Next: Signal Intrinsic (subroutine), Prev: Short Intrinsic, Up: Table of Intrinsic Functions ! Sign Intrinsic ! .............. Sign(A, B) *************** of a value. *** 12693,12701 ****  File: g77.info, Node: Signal Intrinsic (subroutine), Next: Sin Intrinsic, Prev: Sign Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.228 Signal Intrinsic (subroutine) ! ........................................ ! CALL Signal(NUMBER, HANDLER, STATUS) --- 12512,12519 ----  File: g77.info, Node: Signal Intrinsic (subroutine), Next: Sin Intrinsic, Prev: Sign Intrinsic, Up: Table of Intrinsic Functions ! Signal Intrinsic (subroutine) ! ............................. CALL Signal(NUMBER, HANDLER, STATUS) *************** Intrinsic (function)::. *** 12754,12762 ****  File: g77.info, Node: Sin Intrinsic, Next: SinH Intrinsic, Prev: Signal Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.229 Sin Intrinsic ! ........................ ! Sin(X) --- 12572,12579 ----  File: g77.info, Node: Sin Intrinsic, Next: SinH Intrinsic, Prev: Signal Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Sin Intrinsic ! ............. Sin(X) *************** Description: *** 12776,12784 ****  File: g77.info, Node: SinH Intrinsic, Next: Sleep Intrinsic, Prev: Sin Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.230 SinH Intrinsic ! ......................... ! SinH(X) --- 12593,12600 ----  File: g77.info, Node: SinH Intrinsic, Next: Sleep Intrinsic, Prev: Sin Intrinsic, Up: Table of Intrinsic Functions ! SinH Intrinsic ! .............. SinH(X) *************** Description: *** 12796,12804 ****  File: g77.info, Node: Sleep Intrinsic, Next: Sngl Intrinsic, Prev: SinH Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.231 Sleep Intrinsic ! .......................... ! CALL Sleep(SECONDS) --- 12612,12619 ----  File: g77.info, Node: Sleep Intrinsic, Next: Sngl Intrinsic, Prev: SinH Intrinsic, Up: Table of Intrinsic Functions ! Sleep Intrinsic ! ............... CALL Sleep(SECONDS) *************** Description: *** 12813,12821 ****  File: g77.info, Node: Sngl Intrinsic, Next: Spacing Intrinsic, Prev: Sleep Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.232 Sngl Intrinsic ! ......................... ! Sngl(A) --- 12628,12635 ----  File: g77.info, Node: Sngl Intrinsic, Next: Spacing Intrinsic, Prev: Sleep Intrinsic, Up: Table of Intrinsic Functions ! Sngl Intrinsic ! .............. Sngl(A) *************** Real Intrinsic::. *** 12833,12861 ****  File: g77.info, Node: Spacing Intrinsic, Next: Spread Intrinsic, Prev: Sngl Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.233 Spacing Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Spacing' to use this name for an ! external procedure.  File: g77.info, Node: Spread Intrinsic, Next: SqRt Intrinsic, Prev: Spacing Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.234 Spread Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Spread' to use this name for an external procedure.  File: g77.info, Node: SqRt Intrinsic, Next: SRand Intrinsic, Prev: Spread Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.235 SqRt Intrinsic ! ......................... ! SqRt(X) --- 12647,12674 ----  File: g77.info, Node: Spacing Intrinsic, Next: Spread Intrinsic, Prev: Sngl Intrinsic, Up: Table of Intrinsic Functions ! Spacing Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Spacing' to use this name for ! an external procedure.  File: g77.info, Node: Spread Intrinsic, Next: SqRt Intrinsic, Prev: Spacing Intrinsic, Up: Table of Intrinsic Functions ! Spread Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Spread' to use this name for an external procedure.  File: g77.info, Node: SqRt Intrinsic, Next: SRand Intrinsic, Prev: Spread Intrinsic, Up: Table of Intrinsic Functions ! SqRt Intrinsic ! .............. SqRt(X) *************** complex arithmetic must be used. For ex *** 12878,12886 ****  File: g77.info, Node: SRand Intrinsic, Next: Stat Intrinsic (subroutine), Prev: SqRt Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.236 SRand Intrinsic ! .......................... ! CALL SRand(SEED) --- 12691,12698 ----  File: g77.info, Node: SRand Intrinsic, Next: Stat Intrinsic (subroutine), Prev: SqRt Intrinsic, Up: Table of Intrinsic Functions ! SRand Intrinsic ! ............... CALL SRand(SEED) *************** Intrinsic::. *Note Rand Intrinsic::. *** 12896,12904 ****  File: g77.info, Node: Stat Intrinsic (subroutine), Next: Stat Intrinsic (function), Prev: SRand Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.237 Stat Intrinsic (subroutine) ! ...................................... ! CALL Stat(FILE, SARRAY, STATUS) --- 12708,12715 ----  File: g77.info, Node: Stat Intrinsic (subroutine), Next: Stat Intrinsic (function), Prev: SRand Intrinsic, Up: Table of Intrinsic Functions ! Stat Intrinsic (subroutine) ! ........................... CALL Stat(FILE, SARRAY, STATUS) *************** Intrinsic (function)::. *** 12961,12969 ****  File: g77.info, Node: Stat Intrinsic (function), Next: Sum Intrinsic, Prev: Stat Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.238 Stat Intrinsic (function) ! .................................... ! Stat(FILE, SARRAY) --- 12772,12779 ----  File: g77.info, Node: Stat Intrinsic (function), Next: Sum Intrinsic, Prev: Stat Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Stat Intrinsic (function) ! ......................... Stat(FILE, SARRAY) *************** Intrinsic (subroutine)::. *** 13021,13039 ****  File: g77.info, Node: Sum Intrinsic, Next: SymLnk Intrinsic (subroutine), Prev: Stat Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.239 Sum Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Sum' to use this name for an external ! procedure.  File: g77.info, Node: SymLnk Intrinsic (subroutine), Next: System Intrinsic (subroutine), Prev: Sum Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.240 SymLnk Intrinsic (subroutine) ! ........................................ ! CALL SymLnk(PATH1, PATH2, STATUS) --- 12831,12848 ----  File: g77.info, Node: Sum Intrinsic, Next: SymLnk Intrinsic (subroutine), Prev: Stat Intrinsic (function), Up: Table of Intrinsic Functions ! Sum Intrinsic ! ............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Sum' to use this name for an ! external procedure.  File: g77.info, Node: SymLnk Intrinsic (subroutine), Next: System Intrinsic (subroutine), Prev: Sum Intrinsic, Up: Table of Intrinsic Functions ! SymLnk Intrinsic (subroutine) ! ............................. CALL SymLnk(PATH1, PATH2, STATUS) *************** Intrinsic (function)::. *** 13063,13071 ****  File: g77.info, Node: System Intrinsic (subroutine), Next: System_Clock Intrinsic, Prev: SymLnk Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.241 System Intrinsic (subroutine) ! ........................................ ! CALL System(COMMAND, STATUS) --- 12872,12879 ----  File: g77.info, Node: System Intrinsic (subroutine), Next: System_Clock Intrinsic, Prev: SymLnk Intrinsic (subroutine), Up: Table of Intrinsic Functions ! System Intrinsic (subroutine) ! ............................. CALL System(COMMAND, STATUS) *************** Intrinsic (function)::. *** 13093,13101 ****  File: g77.info, Node: System_Clock Intrinsic, Next: Tan Intrinsic, Prev: System Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.242 System_Clock Intrinsic ! ................................. ! CALL System_Clock(COUNT, RATE, MAX) --- 12901,12908 ----  File: g77.info, Node: System_Clock Intrinsic, Next: Tan Intrinsic, Prev: System Intrinsic (subroutine), Up: Table of Intrinsic Functions ! System_Clock Intrinsic ! ...................... CALL System_Clock(COUNT, RATE, MAX) *************** previous values, during a single run of *** 13124,13132 ****  File: g77.info, Node: Tan Intrinsic, Next: TanH Intrinsic, Prev: System_Clock Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.243 Tan Intrinsic ! ........................ ! Tan(X) --- 12931,12938 ----  File: g77.info, Node: Tan Intrinsic, Next: TanH Intrinsic, Prev: System_Clock Intrinsic, Up: Table of Intrinsic Functions ! Tan Intrinsic ! ............. Tan(X) *************** Description: *** 13146,13154 ****  File: g77.info, Node: TanH Intrinsic, Next: Time Intrinsic (UNIX), Prev: Tan Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.244 TanH Intrinsic ! ......................... ! TanH(X) --- 12952,12959 ----  File: g77.info, Node: TanH Intrinsic, Next: Time Intrinsic (UNIX), Prev: Tan Intrinsic, Up: Table of Intrinsic Functions ! TanH Intrinsic ! .............. TanH(X) *************** Description: *** 13166,13174 ****  File: g77.info, Node: Time Intrinsic (UNIX), Next: Time8 Intrinsic, Prev: TanH Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.245 Time Intrinsic (UNIX) ! ................................ ! Time() --- 12971,12978 ----  File: g77.info, Node: Time Intrinsic (UNIX), Next: Time8 Intrinsic, Prev: TanH Intrinsic, Up: Table of Intrinsic Functions ! Time Intrinsic (UNIX) ! ..................... Time() *************** Intrinsic (VXT)::. *** 13198,13206 ****  File: g77.info, Node: Time8 Intrinsic, Next: Tiny Intrinsic, Prev: Time Intrinsic (UNIX), Up: Table of Intrinsic Functions ! 8.11.9.246 Time8 Intrinsic ! .......................... ! Time8() --- 13002,13009 ----  File: g77.info, Node: Time8 Intrinsic, Next: Tiny Intrinsic, Prev: Time Intrinsic (UNIX), Up: Table of Intrinsic Functions ! Time8 Intrinsic ! ............... Time8() *************** implementations. *** 13231,13279 ****  File: g77.info, Node: Tiny Intrinsic, Next: Transfer Intrinsic, Prev: Time8 Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.247 Tiny Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Tiny' to use this name for an external ! procedure.  File: g77.info, Node: Transfer Intrinsic, Next: Transpose Intrinsic, Prev: Tiny Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.248 Transfer Intrinsic ! ............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Transfer' to use this name for an ! external procedure.  File: g77.info, Node: Transpose Intrinsic, Next: Trim Intrinsic, Prev: Transfer Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.249 Transpose Intrinsic ! .............................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Transpose' to use this name for an ! external procedure.  File: g77.info, Node: Trim Intrinsic, Next: TtyNam Intrinsic (subroutine), Prev: Transpose Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.250 Trim Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Trim' to use this name for an external ! procedure.  File: g77.info, Node: TtyNam Intrinsic (subroutine), Next: TtyNam Intrinsic (function), Prev: Trim Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.251 TtyNam Intrinsic (subroutine) ! ........................................ ! CALL TtyNam(UNIT, NAME) --- 13034,13081 ----  File: g77.info, Node: Tiny Intrinsic, Next: Transfer Intrinsic, Prev: Time8 Intrinsic, Up: Table of Intrinsic Functions ! Tiny Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Tiny' to use this name for an ! external procedure.  File: g77.info, Node: Transfer Intrinsic, Next: Transpose Intrinsic, Prev: Tiny Intrinsic, Up: Table of Intrinsic Functions ! Transfer Intrinsic ! .................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Transfer' to use this name for ! an external procedure.  File: g77.info, Node: Transpose Intrinsic, Next: Trim Intrinsic, Prev: Transfer Intrinsic, Up: Table of Intrinsic Functions ! Transpose Intrinsic ! ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Transpose' to use this name ! for an external procedure.  File: g77.info, Node: Trim Intrinsic, Next: TtyNam Intrinsic (subroutine), Prev: Transpose Intrinsic, Up: Table of Intrinsic Functions ! Trim Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Trim' to use this name for an ! external procedure.  File: g77.info, Node: TtyNam Intrinsic (subroutine), Next: TtyNam Intrinsic (function), Prev: Trim Intrinsic, Up: Table of Intrinsic Functions ! TtyNam Intrinsic (subroutine) ! ............................. CALL TtyNam(UNIT, NAME) *************** Intrinsic (function)::. *** 13297,13305 ****  File: g77.info, Node: TtyNam Intrinsic (function), Next: UBound Intrinsic, Prev: TtyNam Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.252 TtyNam Intrinsic (function) ! ...................................... ! TtyNam(UNIT) --- 13099,13106 ----  File: g77.info, Node: TtyNam Intrinsic (function), Next: UBound Intrinsic, Prev: TtyNam Intrinsic (subroutine), Up: Table of Intrinsic Functions ! TtyNam Intrinsic (function) ! ........................... TtyNam(UNIT) *************** Intrinsic (subroutine)::. *** 13320,13338 ****  File: g77.info, Node: UBound Intrinsic, Next: UMask Intrinsic (subroutine), Prev: TtyNam Intrinsic (function), Up: Table of Intrinsic Functions ! 8.11.9.253 UBound Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL UBound' to use this name for an external procedure.  File: g77.info, Node: UMask Intrinsic (subroutine), Next: Unlink Intrinsic (subroutine), Prev: UBound Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.254 UMask Intrinsic (subroutine) ! ....................................... ! CALL UMask(MASK, OLD) --- 13121,13138 ----  File: g77.info, Node: UBound Intrinsic, Next: UMask Intrinsic (subroutine), Prev: TtyNam Intrinsic (function), Up: Table of Intrinsic Functions ! UBound Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL UBound' to use this name for an external procedure.  File: g77.info, Node: UMask Intrinsic (subroutine), Next: Unlink Intrinsic (subroutine), Prev: UBound Intrinsic, Up: Table of Intrinsic Functions ! UMask Intrinsic (subroutine) ! ............................ CALL UMask(MASK, OLD) *************** Intrinsic (function)::. *** 13356,13364 ****  File: g77.info, Node: Unlink Intrinsic (subroutine), Next: Unpack Intrinsic, Prev: UMask Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.255 Unlink Intrinsic (subroutine) ! ........................................ ! CALL Unlink(FILE, STATUS) --- 13156,13163 ----  File: g77.info, Node: Unlink Intrinsic (subroutine), Next: Unpack Intrinsic, Prev: UMask Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Unlink Intrinsic (subroutine) ! ............................. CALL Unlink(FILE, STATUS) *************** Intrinsic (function)::. *** 13385,13413 ****  File: g77.info, Node: Unpack Intrinsic, Next: Verify Intrinsic, Prev: Unlink Intrinsic (subroutine), Up: Table of Intrinsic Functions ! 8.11.9.256 Unpack Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Unpack' to use this name for an external procedure.  File: g77.info, Node: Verify Intrinsic, Next: XOr Intrinsic, Prev: Unpack Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.257 Verify Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Verify' to use this name for an external procedure.  File: g77.info, Node: XOr Intrinsic, Next: ZAbs Intrinsic, Prev: Verify Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.258 XOr Intrinsic ! ........................ ! XOr(I, J) --- 13184,13211 ----  File: g77.info, Node: Unpack Intrinsic, Next: Verify Intrinsic, Prev: Unlink Intrinsic (subroutine), Up: Table of Intrinsic Functions ! Unpack Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Unpack' to use this name for an external procedure.  File: g77.info, Node: Verify Intrinsic, Next: XOr Intrinsic, Prev: Unpack Intrinsic, Up: Table of Intrinsic Functions ! Verify Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Verify' to use this name for an external procedure.  File: g77.info, Node: XOr Intrinsic, Next: ZAbs Intrinsic, Prev: Verify Intrinsic, Up: Table of Intrinsic Functions ! XOr Intrinsic ! ............. XOr(I, J) *************** each of I and J. *** 13428,13436 ****  File: g77.info, Node: ZAbs Intrinsic, Next: ZCos Intrinsic, Prev: XOr Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.259 ZAbs Intrinsic ! ......................... ! ZAbs(A) --- 13226,13233 ----  File: g77.info, Node: ZAbs Intrinsic, Next: ZCos Intrinsic, Prev: XOr Intrinsic, Up: Table of Intrinsic Functions ! ZAbs Intrinsic ! .............. ZAbs(A) *************** Abs Intrinsic::. *** 13448,13456 ****  File: g77.info, Node: ZCos Intrinsic, Next: ZExp Intrinsic, Prev: ZAbs Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.260 ZCos Intrinsic ! ......................... ! ZCos(X) --- 13245,13252 ----  File: g77.info, Node: ZCos Intrinsic, Next: ZExp Intrinsic, Prev: ZAbs Intrinsic, Up: Table of Intrinsic Functions ! ZCos Intrinsic ! .............. ZCos(X) *************** Cos Intrinsic::. *** 13468,13476 ****  File: g77.info, Node: ZExp Intrinsic, Next: ZLog Intrinsic, Prev: ZCos Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.261 ZExp Intrinsic ! ......................... ! ZExp(X) --- 13264,13271 ----  File: g77.info, Node: ZExp Intrinsic, Next: ZLog Intrinsic, Prev: ZCos Intrinsic, Up: Table of Intrinsic Functions ! ZExp Intrinsic ! .............. ZExp(X) *************** Exp Intrinsic::. *** 13488,13496 ****  File: g77.info, Node: ZLog Intrinsic, Next: ZSin Intrinsic, Prev: ZExp Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.262 ZLog Intrinsic ! ......................... ! ZLog(X) --- 13283,13290 ----  File: g77.info, Node: ZLog Intrinsic, Next: ZSin Intrinsic, Prev: ZExp Intrinsic, Up: Table of Intrinsic Functions ! ZLog Intrinsic ! .............. ZLog(X) *************** Log Intrinsic::. *** 13508,13516 ****  File: g77.info, Node: ZSin Intrinsic, Next: ZSqRt Intrinsic, Prev: ZLog Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.263 ZSin Intrinsic ! ......................... ! ZSin(X) --- 13302,13309 ----  File: g77.info, Node: ZSin Intrinsic, Next: ZSqRt Intrinsic, Prev: ZLog Intrinsic, Up: Table of Intrinsic Functions ! ZSin Intrinsic ! .............. ZSin(X) *************** Sin Intrinsic::. *** 13528,13536 ****  File: g77.info, Node: ZSqRt Intrinsic, Prev: ZSin Intrinsic, Up: Table of Intrinsic Functions ! 8.11.9.264 ZSqRt Intrinsic ! .......................... ! ZSqRt(X) --- 13321,13328 ----  File: g77.info, Node: ZSqRt Intrinsic, Prev: ZSin Intrinsic, Up: Table of Intrinsic Functions ! ZSqRt Intrinsic ! ............... ZSqRt(X) *************** SqRt Intrinsic::. *** 13548,13557 ****  File: g77.info, Node: Scope and Classes of Names, Next: I/O, Prev: Functions and Subroutines, Up: Language ! 8.12 Scope and Classes of Symbolic Names ! ======================================== ! (The following information augments or overrides the information in Chapter 18 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 18 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 13340,13349 ----  File: g77.info, Node: Scope and Classes of Names, Next: I/O, Prev: Functions and Subroutines, Up: Language ! Scope and Classes of Symbolic Names ! =================================== ! (The following information augments or overrides the information in Chapter 18 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 18 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** for the relevant aspects of GNU Fortran. *** 13563,13581 ****  File: g77.info, Node: Underscores in Symbol Names, Up: Scope and Classes of Names ! 8.12.1 Underscores in Symbol Names ! ---------------------------------- ! Underscores (`_') are accepted in symbol names after the first character (which must be a letter).  File: g77.info, Node: I/O, Next: Fortran 90 Features, Prev: Scope and Classes of Names, Up: Language ! 8.13 I/O ! ======== ! A dollar sign at the end of an output format specification suppresses the newline at the end of the output. Edit descriptors in `FORMAT' statements may contain compile-time --- 13355,13373 ----  File: g77.info, Node: Underscores in Symbol Names, Up: Scope and Classes of Names ! Underscores in Symbol Names ! --------------------------- ! Underscores (`_') are accepted in symbol names after the first character (which must be a letter).  File: g77.info, Node: I/O, Next: Fortran 90 Features, Prev: Scope and Classes of Names, Up: Language ! I/O ! === ! A dollar sign at the end of an output format specification suppresses the newline at the end of the output. Edit descriptors in `FORMAT' statements may contain compile-time *************** the newline at the end of the output. *** 13595,13604 ****  File: g77.info, Node: Fortran 90 Features, Prev: I/O, Up: Language ! 8.14 Fortran 90 Features ! ======================== ! For convenience this section collects a list (probably incomplete) of the Fortran 90 features supported by the GNU Fortran language, even if they are documented elsewhere. *Note Characters, Lines, and Execution Sequence: Characters Lines Sequence, for information on additional --- 13387,13396 ----  File: g77.info, Node: Fortran 90 Features, Prev: I/O, Up: Language ! Fortran 90 Features ! =================== ! For convenience this section collects a list (probably incomplete) of the Fortran 90 features supported by the GNU Fortran language, even if they are documented elsewhere. *Note Characters, Lines, and Execution Sequence: Characters Lines Sequence, for information on additional *************** Specification statements *** 13685,13696 ****  File: g77.info, Node: Other Dialects, Next: Other Compilers, Prev: Compiler, Up: Top ! 9 Other Dialects ! **************** ! GNU Fortran supports a variety of features that are not considered part ! of the GNU Fortran language itself, but are representative of various ! dialects of Fortran that `g77' supports in whole or in part. Any of the features listed below might be disallowed by `g77' unless some command-line option is specified. Currently, some of the features --- 13477,13488 ----  File: g77.info, Node: Other Dialects, Next: Other Compilers, Prev: Compiler, Up: Top ! Other Dialects ! ************** ! GNU Fortran supports a variety of features that are not considered ! part of the GNU Fortran language itself, but are representative of ! various dialects of Fortran that `g77' supports in whole or in part. Any of the features listed below might be disallowed by `g77' unless some command-line option is specified. Currently, some of the features *************** work!_ *** 13715,13724 ****  File: g77.info, Node: Source Form, Next: Trailing Comment, Up: Other Dialects ! 9.1 Source Form ! =============== ! GNU Fortran accepts programs written in either fixed form or free form. Fixed form corresponds to ANSI FORTRAN 77 (plus popular extensions, such as allowing tabs) and Fortran 90's fixed form. --- 13507,13517 ----  File: g77.info, Node: Source Form, Next: Trailing Comment, Up: Other Dialects ! Source Form ! =========== ! GNU Fortran accepts programs written in either fixed form or free ! form. Fixed form corresponds to ANSI FORTRAN 77 (plus popular extensions, such as allowing tabs) and Fortran 90's fixed form. *************** popular compilers (`f2c', Digital ("DEC" *** 13747,13767 ****  File: g77.info, Node: Carriage Returns, Next: Tabs, Up: Source Form ! 9.1.1 Carriage Returns ! ---------------------- ! Carriage returns (`\r') in source lines are ignored. This is somewhat ! different from `f2c', which seems to treat them as spaces outside ! character/Hollerith constants, and encodes them as `\r' inside such ! constants.  File: g77.info, Node: Tabs, Next: Short Lines, Prev: Carriage Returns, Up: Source Form ! 9.1.2 Tabs ! ---------- ! A source line with a character anywhere in it is treated as entirely significant--however long it is--instead of ending in column 72 (for fixed-form source) or 132 (for free-form source). This also is different from `f2c', which encodes tabs as `\t' (the ASCII --- 13540,13560 ----  File: g77.info, Node: Carriage Returns, Next: Tabs, Up: Source Form ! Carriage Returns ! ---------------- ! Carriage returns (`\r') in source lines are ignored. This is ! somewhat different from `f2c', which seems to treat them as spaces ! outside character/Hollerith constants, and encodes them as `\r' inside ! such constants.  File: g77.info, Node: Tabs, Next: Short Lines, Prev: Carriage Returns, Up: Source Form ! Tabs ! ---- ! A source line with a character anywhere in it is treated as entirely significant--however long it is--instead of ending in column 72 (for fixed-form source) or 132 (for free-form source). This also is different from `f2c', which encodes tabs as `\t' (the ASCII *************** the length of the line and continued con *** 13778,13789 ****  File: g77.info, Node: Short Lines, Next: Long Lines, Prev: Tabs, Up: Source Form ! 9.1.3 Short Lines ! ----------------- ! Source lines shorter than the applicable fixed-form length are treated ! as if they were padded with spaces to that length. (None of this is ! relevant to source files written in free form.) This affects only continued character and Hollerith constants, and is a different interpretation than provided by some other popular --- 13571,13582 ----  File: g77.info, Node: Short Lines, Next: Long Lines, Prev: Tabs, Up: Source Form ! Short Lines ! ----------- ! Source lines shorter than the applicable fixed-form length are ! treated as if they were padded with spaces to that length. (None of ! this is relevant to source files written in free form.) This affects only continued character and Hollerith constants, and is a different interpretation than provided by some other popular *************** like `-ffixed-line-length-none', for exa *** 13802,13811 ****  File: g77.info, Node: Long Lines, Next: Ampersands, Prev: Short Lines, Up: Source Form ! 9.1.4 Long Lines ! ---------------- ! Source lines longer than the applicable length are truncated to that length. Currently, `g77' does not warn if the truncated characters are not spaces, to accommodate existing code written for systems that treated truncated text as commentary (especially in columns 73 through --- 13595,13604 ----  File: g77.info, Node: Long Lines, Next: Ampersands, Prev: Short Lines, Up: Source Form ! Long Lines ! ---------- ! Source lines longer than the applicable length are truncated to that length. Currently, `g77' does not warn if the truncated characters are not spaces, to accommodate existing code written for systems that treated truncated text as commentary (especially in columns 73 through *************** used to set the line length applicable t *** 13818,13836 ****  File: g77.info, Node: Ampersands, Prev: Long Lines, Up: Source Form ! 9.1.5 Ampersand Continuation Line ! --------------------------------- ! A `&' in column 1 of fixed-form source denotes an arbitrary-length continuation line, imitating the behavior of `f2c'.  File: g77.info, Node: Trailing Comment, Next: Debug Line, Prev: Source Form, Up: Other Dialects ! 9.2 Trailing Comment ! ==================== ! `g77' supports use of `/*' to start a trailing comment. In the GNU Fortran language, `!' is used for this purpose. `/*' is not in the GNU Fortran language because the use of `/*' in a --- 13611,13629 ----  File: g77.info, Node: Ampersands, Prev: Long Lines, Up: Source Form ! Ampersand Continuation Line ! --------------------------- ! A `&' in column 1 of fixed-form source denotes an arbitrary-length continuation line, imitating the behavior of `f2c'.  File: g77.info, Node: Trailing Comment, Next: Debug Line, Prev: Source Form, Up: Other Dialects ! Trailing Comment ! ================ ! `g77' supports use of `/*' to start a trailing comment. In the GNU Fortran language, `!' is used for this purpose. `/*' is not in the GNU Fortran language because the use of `/*' in a *************** that compiles without error (though it w *** 13846,13855 ****  File: g77.info, Node: Debug Line, Next: Dollar Signs, Prev: Trailing Comment, Up: Other Dialects ! 9.3 Debug Line ! ============== ! Use of `D' or `d' as the first character (column 1) of a source line denotes a debug line. In turn, a debug line is treated as either a comment line or a --- 13639,13648 ----  File: g77.info, Node: Debug Line, Next: Dollar Signs, Prev: Trailing Comment, Up: Other Dialects ! Debug Line ! ========== ! Use of `D' or `d' as the first character (column 1) of a source line denotes a debug line. In turn, a debug line is treated as either a comment line or a *************** normal lines.) *** 13866,13888 ****  File: g77.info, Node: Dollar Signs, Next: Case Sensitivity, Prev: Debug Line, Up: Other Dialects ! 9.4 Dollar Signs in Symbol Names ! ================================ ! Dollar signs (`$') are allowed in symbol names (after the first character) when the `-fdollar-ok' option is specified.  File: g77.info, Node: Case Sensitivity, Next: VXT Fortran, Prev: Dollar Signs, Up: Other Dialects ! 9.5 Case Sensitivity ! ==================== ! GNU Fortran offers the programmer way too much flexibility in deciding ! how source files are to be treated vis-a-vis uppercase and lowercase ! characters. There are 66 useful settings that affect case sensitivity, ! plus 10 settings that are nearly useless, with the remaining 116 ! settings being either redundant or useless. None of these settings have any effect on the contents of comments (the text after a `c' or `C' in Column 1, for example) or of character --- 13659,13681 ----  File: g77.info, Node: Dollar Signs, Next: Case Sensitivity, Prev: Debug Line, Up: Other Dialects ! Dollar Signs in Symbol Names ! ============================ ! Dollar signs (`$') are allowed in symbol names (after the first character) when the `-fdollar-ok' option is specified.  File: g77.info, Node: Case Sensitivity, Next: VXT Fortran, Prev: Dollar Signs, Up: Other Dialects ! Case Sensitivity ! ================ ! GNU Fortran offers the programmer way too much flexibility in ! deciding how source files are to be treated vis-a-vis uppercase and ! lowercase characters. There are 66 useful settings that affect case ! sensitivity, plus 10 settings that are nearly useless, with the ! remaining 116 settings being either redundant or useless. None of these settings have any effect on the contents of comments (the text after a `c' or `C' in Column 1, for example) or of character *************** two-letter format specifiers, such as `B *** 13969,13985 **** A0: -fsource-case-preserve A1: -fsource-case-upper A2: -fsource-case-lower ! B0: -fmatch-case-any B1: -fmatch-case-upper B2: -fmatch-case-lower B3: -fmatch-case-initcap ! C0: -fintrin-case-any C1: -fintrin-case-upper C2: -fintrin-case-lower C3: -fintrin-case-initcap ! D0: -fsymbol-case-any D1: -fsymbol-case-upper D2: -fsymbol-case-lower --- 13762,13778 ---- A0: -fsource-case-preserve A1: -fsource-case-upper A2: -fsource-case-lower ! B0: -fmatch-case-any B1: -fmatch-case-upper B2: -fmatch-case-lower B3: -fmatch-case-initcap ! C0: -fintrin-case-any C1: -fintrin-case-upper C2: -fintrin-case-lower C3: -fintrin-case-initcap ! D0: -fsymbol-case-any D1: -fsymbol-case-upper D2: -fsymbol-case-lower *************** something other than comments). *** 14107,14117 ****  File: g77.info, Node: VXT Fortran, Next: Fortran 90, Prev: Case Sensitivity, Up: Other Dialects ! 9.6 VXT Fortran ! =============== ! `g77' supports certain constructs that have different meanings in VXT ! Fortran than they do in the GNU Fortran language. Generally, this manual uses the invented term VXT Fortran to refer VAX FORTRAN (circa v4). That compiler offered many popular features, --- 13900,13910 ----  File: g77.info, Node: VXT Fortran, Next: Fortran 90, Prev: Case Sensitivity, Up: Other Dialects ! VXT Fortran ! =========== ! `g77' supports certain constructs that have different meanings in ! VXT Fortran than they do in the GNU Fortran language. Generally, this manual uses the invented term VXT Fortran to refer VAX FORTRAN (circa v4). That compiler offered many popular features, *************** VXT Fortran), the VXT Fortran meaning is *** 14137,14146 ****  File: g77.info, Node: Double Quote Meaning, Next: Exclamation Point, Up: VXT Fortran ! 9.6.1 Meaning of Double Quote ! ----------------------------- ! `g77' treats double-quote (`"') as beginning an octal constant of `INTEGER(KIND=1)' type when the `-fvxt' option is specified. The form of this octal constant is --- 13930,13939 ----  File: g77.info, Node: Double Quote Meaning, Next: Exclamation Point, Up: VXT Fortran ! Meaning of Double Quote ! ----------------------- ! `g77' treats double-quote (`"') as beginning an octal constant of `INTEGER(KIND=1)' type when the `-fvxt' option is specified. The form of this octal constant is *************** like `PRINT *,"2000 !comment?"' would be *** 14167,14176 ****  File: g77.info, Node: Exclamation Point, Prev: Double Quote Meaning, Up: VXT Fortran ! 9.6.2 Meaning of Exclamation Point in Column 6 ! ---------------------------------------------- ! `g77' treats an exclamation point (`!') in column 6 of a fixed-form source file as a continuation character rather than as the beginning of a comment (as it does in any other column) when the `-fvxt' option is specified. --- 13960,13969 ----  File: g77.info, Node: Exclamation Point, Prev: Double Quote Meaning, Up: VXT Fortran ! Meaning of Exclamation Point in Column 6 ! ---------------------------------------- ! `g77' treats an exclamation point (`!') in column 6 of a fixed-form source file as a continuation character rather than as the beginning of a comment (as it does in any other column) when the `-fvxt' option is specified. *************** as a continuation line when it appears i *** 14194,14204 ****  File: g77.info, Node: Fortran 90, Next: Pedantic Compilation, Prev: VXT Fortran, Up: Other Dialects ! 9.7 Fortran 90 ! ============== ! The GNU Fortran language includes a number of features that are part of ! Fortran 90, even when the `-ff90' option is not specified. The features enabled by `-ff90' are intended to be those that, when `-ff90' is not specified, would have another meaning to `g77'--usually meaning something invalid in the GNU Fortran language. --- 13987,13997 ----  File: g77.info, Node: Fortran 90, Next: Pedantic Compilation, Prev: VXT Fortran, Up: Other Dialects ! Fortran 90 ! ========== ! The GNU Fortran language includes a number of features that are part ! of Fortran 90, even when the `-ff90' option is not specified. The features enabled by `-ff90' are intended to be those that, when `-ff90' is not specified, would have another meaning to `g77'--usually meaning something invalid in the GNU Fortran language. *************** implementation is certainly incomplete a *** 14220,14229 ****  File: g77.info, Node: Pedantic Compilation, Next: Distensions, Prev: Fortran 90, Up: Other Dialects ! 9.8 Pedantic Compilation ! ======================== ! The `-fpedantic' command-line option specifies that `g77' is to warn about code that is not standard-conforming. This is useful for finding some extensions `g77' accepts that other compilers might not accept. (Note that the `-pedantic' and `-pedantic-errors' options always imply --- 14013,14022 ----  File: g77.info, Node: Pedantic Compilation, Next: Distensions, Prev: Fortran 90, Up: Other Dialects ! Pedantic Compilation ! ==================== ! The `-fpedantic' command-line option specifies that `g77' is to warn about code that is not standard-conforming. This is useful for finding some extensions `g77' accepts that other compilers might not accept. (Note that the `-pedantic' and `-pedantic-errors' options always imply *************** constructs result in diagnostics: *** 14342,14356 ****  File: g77.info, Node: Distensions, Prev: Pedantic Compilation, Up: Other Dialects ! 9.9 Distensions ! =============== ! The `-fugly-*' command-line options determine whether certain features ! supported by VAX FORTRAN and other such compilers, but considered too ! ugly to be in code that can be changed to use safer and/or more ! portable constructs, are accepted. These are humorously referred to as ! "distensions", extensions that just plain look ugly in the harsh light ! of day. * Menu: --- 14135,14149 ----  File: g77.info, Node: Distensions, Prev: Pedantic Compilation, Up: Other Dialects ! Distensions ! =========== ! The `-fugly-*' command-line options determine whether certain ! features supported by VAX FORTRAN and other such compilers, but ! considered too ugly to be in code that can be changed to use safer ! and/or more portable constructs, are accepted. These are humorously ! referred to as "distensions", extensions that just plain look ugly in ! the harsh light of day. * Menu: *************** of day. *** 14365,14374 ****  File: g77.info, Node: Ugly Implicit Argument Conversion, Next: Ugly Assumed-Size Arrays, Up: Distensions ! 9.9.1 Implicit Argument Conversion ! ---------------------------------- ! The `-fno-ugly-args' option disables passing typeless and Hollerith constants as actual arguments in procedure invocations. For example: CALL FOO(4HABCD) --- 14158,14167 ----  File: g77.info, Node: Ugly Implicit Argument Conversion, Next: Ugly Assumed-Size Arrays, Up: Distensions ! Implicit Argument Conversion ! ---------------------------- ! The `-fno-ugly-args' option disables passing typeless and Hollerith constants as actual arguments in procedure invocations. For example: CALL FOO(4HABCD) *************** portable. Therefore, they are enabled b *** 14382,14392 ****  File: g77.info, Node: Ugly Assumed-Size Arrays, Next: Ugly Null Arguments, Prev: Ugly Implicit Argument Conversion, Up: Distensions ! 9.9.2 Ugly Assumed-Size Arrays ! ------------------------------ ! The `-fugly-assumed' option enables the treatment of any array with a ! final dimension specified as `1' as an assumed-size array, as if `*' had been specified instead. For example, `DIMENSION X(1)' is treated as if it had read --- 14175,14185 ----  File: g77.info, Node: Ugly Assumed-Size Arrays, Next: Ugly Null Arguments, Prev: Ugly Implicit Argument Conversion, Up: Distensions ! Ugly Assumed-Size Arrays ! ------------------------ ! The `-fugly-assumed' option enables the treatment of any array with ! a final dimension specified as `1' as an assumed-size array, as if `*' had been specified instead. For example, `DIMENSION X(1)' is treated as if it had read *************** statement (presumably in an `ENTRY' stat *** 14425,14434 ****  File: g77.info, Node: Ugly Complex Part Extraction, Next: Ugly Conversion of Initializers, Prev: Ugly Null Arguments, Up: Distensions ! 9.9.3 Ugly Complex Part Extraction ! ---------------------------------- ! The `-fugly-complex' option enables use of the `REAL()' and `AIMAG()' intrinsics with arguments that are `COMPLEX' types other than `COMPLEX(KIND=1)'. --- 14218,14227 ----  File: g77.info, Node: Ugly Complex Part Extraction, Next: Ugly Conversion of Initializers, Prev: Ugly Null Arguments, Up: Distensions ! Ugly Complex Part Extraction ! ---------------------------- ! The `-fugly-complex' option enables use of the `REAL()' and `AIMAG()' intrinsics with arguments that are `COMPLEX' types other than `COMPLEX(KIND=1)'. *************** expression without conversion. *** 14466,14475 ****  File: g77.info, Node: Ugly Null Arguments, Next: Ugly Complex Part Extraction, Prev: Ugly Assumed-Size Arrays, Up: Distensions ! 9.9.4 Ugly Null Arguments ! ------------------------- ! The `-fugly-comma' option enables use of a single trailing comma to mean "pass an extra trailing null argument" in a list of actual arguments to an external procedure, and use of an empty list of arguments to such a procedure to mean "pass a single null argument". --- 14259,14268 ----  File: g77.info, Node: Ugly Null Arguments, Next: Ugly Complex Part Extraction, Prev: Ugly Assumed-Size Arrays, Up: Distensions ! Ugly Null Arguments ! ------------------- ! The `-fugly-comma' option enables use of a single trailing comma to mean "pass an extra trailing null argument" in a list of actual arguments to an external procedure, and use of an empty list of arguments to such a procedure to mean "pass a single null argument". *************** not expect any arguments to be passed. *** 14503,14512 ****  File: g77.info, Node: Ugly Conversion of Initializers, Next: Ugly Integer Conversions, Prev: Ugly Complex Part Extraction, Up: Distensions ! 9.9.5 Ugly Conversion of Initializers ! ------------------------------------- ! The constructs disabled by `-fno-ugly-init' are: * Use of Hollerith and typeless constants in contexts where they set initial (compile-time) values for variables, arrays, and named --- 14296,14305 ----  File: g77.info, Node: Ugly Conversion of Initializers, Next: Ugly Integer Conversions, Prev: Ugly Complex Part Extraction, Up: Distensions ! Ugly Conversion of Initializers ! ------------------------------- ! The constructs disabled by `-fno-ugly-init' are: * Use of Hollerith and typeless constants in contexts where they set initial (compile-time) values for variables, arrays, and named *************** often are quite portable. Therefore, th *** 14550,14559 ****  File: g77.info, Node: Ugly Integer Conversions, Next: Ugly Assigned Labels, Prev: Ugly Conversion of Initializers, Up: Distensions ! 9.9.6 Ugly Integer Conversions ! ------------------------------ ! The constructs enabled via `-fugly-logint' are: * Automatic conversion between `INTEGER' and `LOGICAL' as dictated by context (typically implies nonportable dependencies on how a --- 14343,14352 ----  File: g77.info, Node: Ugly Integer Conversions, Next: Ugly Assigned Labels, Prev: Ugly Conversion of Initializers, Up: Distensions ! Ugly Integer Conversions ! ------------------------ ! The constructs enabled via `-fugly-logint' are: * Automatic conversion between `INTEGER' and `LOGICAL' as dictated by context (typically implies nonportable dependencies on how a *************** using different encodings. *** 14577,14586 ****  File: g77.info, Node: Ugly Assigned Labels, Prev: Ugly Integer Conversions, Up: Distensions ! 9.9.7 Ugly Assigned Labels ! -------------------------- ! The `-fugly-assign' option forces `g77' to use the same storage for assigned labels as it would for a normal assignment to the same variable. --- 14370,14379 ----  File: g77.info, Node: Ugly Assigned Labels, Prev: Ugly Integer Conversions, Up: Distensions ! Ugly Assigned Labels ! -------------------- ! The `-fugly-assign' option forces `g77' to use the same storage for assigned labels as it would for a normal assignment to the same variable. *************** labels. *** 14630,14640 ****  File: g77.info, Node: Compiler, Next: Other Dialects, Prev: Language, Up: Top ! 10 The GNU Fortran Compiler ! *************************** ! The GNU Fortran compiler, `g77', supports programs written in the GNU ! Fortran language and in some other dialects of Fortran. Some aspects of how `g77' works are universal regardless of dialect, and yet are not properly part of the GNU Fortran language itself. --- 14423,14433 ----  File: g77.info, Node: Compiler, Next: Other Dialects, Prev: Language, Up: Top ! The GNU Fortran Compiler ! ************************ ! The GNU Fortran compiler, `g77', supports programs written in the ! GNU Fortran language and in some other dialects of Fortran. Some aspects of how `g77' works are universal regardless of dialect, and yet are not properly part of the GNU Fortran language itself. *************** work!_ *** 14654,14665 ****  File: g77.info, Node: Compiler Limits, Next: Run-time Environment Limits, Up: Compiler ! 10.1 Compiler Limits ! ==================== ! `g77', as with GNU tools in general, imposes few arbitrary restrictions ! on lengths of identifiers, number of continuation lines, number of ! external symbols in a program, and so on. For example, some other Fortran compiler have an option (such as `-NlX') to increase the limit on the number of continuation lines. --- 14447,14458 ----  File: g77.info, Node: Compiler Limits, Next: Run-time Environment Limits, Up: Compiler ! Compiler Limits ! =============== ! `g77', as with GNU tools in general, imposes few arbitrary ! restrictions on lengths of identifiers, number of continuation lines, ! number of external symbols in a program, and so on. For example, some other Fortran compiler have an option (such as `-NlX') to increase the limit on the number of continuation lines. *************** restriction might be lifted in a future *** 14676,14685 ****  File: g77.info, Node: Run-time Environment Limits, Next: Compiler Types, Prev: Compiler Limits, Up: Compiler ! 10.2 Run-time Environment Limits ! ================================ ! As a portable Fortran implementation, `g77' offers its users direct access to, and otherwise depends upon, the underlying facilities of the system used to build `g77', the system on which `g77' itself is used to compile programs, and the system on which the `g77'-compiled program is --- 14469,14478 ----  File: g77.info, Node: Run-time Environment Limits, Next: Compiler Types, Prev: Compiler Limits, Up: Compiler ! Run-time Environment Limits ! =========================== ! As a portable Fortran implementation, `g77' offers its users direct access to, and otherwise depends upon, the underlying facilities of the system used to build `g77', the system on which `g77' itself is used to compile programs, and the system on which the `g77'-compiled program is *************** the known limitations include: *** 14724,14733 ****  File: g77.info, Node: Timer Wraparounds, Next: Year 2000 (Y2K) Problems, Up: Run-time Environment Limits ! 10.2.1 Timer Wraparounds ! ------------------------ ! Intrinsics that return values computed from system timers, whether elapsed (wall-clock) timers, process CPU timers, or other kinds of timers, are prone to experiencing wrap-around errors (or returning wrapped-around values from successive calls) due to insufficient ranges --- 14517,14526 ----  File: g77.info, Node: Timer Wraparounds, Next: Year 2000 (Y2K) Problems, Up: Run-time Environment Limits ! Timer Wraparounds ! ----------------- ! Intrinsics that return values computed from system timers, whether elapsed (wall-clock) timers, process CPU timers, or other kinds of timers, are prone to experiencing wrap-around errors (or returning wrapped-around values from successive calls) due to insufficient ranges *************** Intrinsic::. *** 14751,14760 ****  File: g77.info, Node: Year 2000 (Y2K) Problems, Next: Array Size, Prev: Timer Wraparounds, Up: Run-time Environment Limits ! 10.2.2 Year 2000 (Y2K) Problems ! ------------------------------- ! While the `g77' compiler itself is believed to be Year-2000 (Y2K) compliant, some intrinsics are not, and, potentially, some underlying systems are not, perhaps rendering some Y2K-compliant intrinsics non-compliant when used on those particular systems. --- 14544,14553 ----  File: g77.info, Node: Year 2000 (Y2K) Problems, Next: Array Size, Prev: Timer Wraparounds, Up: Run-time Environment Limits ! Year 2000 (Y2K) Problems ! ------------------------ ! While the `g77' compiler itself is believed to be Year-2000 (Y2K) compliant, some intrinsics are not, and, potentially, some underlying systems are not, perhaps rendering some Y2K-compliant intrinsics non-compliant when used on those particular systems. *************** code to new versions of `g77' and `libg2 *** 14847,14856 ****  File: g77.info, Node: Array Size, Next: Character-variable Length, Prev: Year 2000 (Y2K) Problems, Up: Run-time Environment Limits ! 10.2.3 Array Size ! ----------------- ! Currently, `g77' uses the default `INTEGER' type for array indexes, which limits the sizes of single-dimension arrays on systems offering a larger address space than can be addressed by that type. (That `g77' puts all arrays in memory could be considered another limitation--it --- 14640,14649 ----  File: g77.info, Node: Array Size, Next: Character-variable Length, Prev: Year 2000 (Y2K) Problems, Up: Run-time Environment Limits ! Array Size ! ---------- ! Currently, `g77' uses the default `INTEGER' type for array indexes, which limits the sizes of single-dimension arrays on systems offering a larger address space than can be addressed by that type. (That `g77' puts all arrays in memory could be considered another limitation--it *************** and has not yet been fully investigated. *** 14873,14882 ****  File: g77.info, Node: Character-variable Length, Next: Year 10000 (Y10K) Problems, Prev: Array Size, Up: Run-time Environment Limits ! 10.2.4 Character-variable Length ! -------------------------------- ! Currently, `g77' uses the default `INTEGER' type for the lengths of `CHARACTER' variables and array elements. This means that, for example, a system with a 64-bit address space --- 14666,14675 ----  File: g77.info, Node: Character-variable Length, Next: Year 10000 (Y10K) Problems, Prev: Array Size, Up: Run-time Environment Limits ! Character-variable Length ! ------------------------- ! Currently, `g77' uses the default `INTEGER' type for the lengths of `CHARACTER' variables and array elements. This means that, for example, a system with a 64-bit address space *************** and a 32-bit default `INTEGER' type does *** 14886,14895 ****  File: g77.info, Node: Year 10000 (Y10K) Problems, Prev: Character-variable Length, Up: Run-time Environment Limits ! 10.2.5 Year 10000 (Y10K) Problems ! --------------------------------- ! Most intrinsics returning, or computing values based on, date information are prone to Year-10000 (Y10K) problems, due to supporting only 4 digits for the year. --- 14679,14688 ----  File: g77.info, Node: Year 10000 (Y10K) Problems, Prev: Character-variable Length, Up: Run-time Environment Limits ! Year 10000 (Y10K) Problems ! -------------------------- ! Most intrinsics returning, or computing values based on, date information are prone to Year-10000 (Y10K) problems, due to supporting only 4 digits for the year. *************** only 4 digits for the year. *** 14900,14915 ****  File: g77.info, Node: Compiler Types, Next: Compiler Constants, Prev: Run-time Environment Limits, Up: Compiler ! 10.3 Compiler Types ! =================== ! Fortran implementations have a fair amount of freedom given them by the ! standard as far as how much storage space is used and how much precision ! and range is offered by the various types such as `LOGICAL(KIND=1)', ! `INTEGER(KIND=1)', `REAL(KIND=1)', `REAL(KIND=2)', `COMPLEX(KIND=1)', ! and `CHARACTER'. Further, many compilers offer so-called `*N' ! notation, but the interpretation of N varies across compilers and ! target architectures. The standard requires that `LOGICAL(KIND=1)', `INTEGER(KIND=1)', and `REAL(KIND=1)' occupy the same amount of storage space, and that --- 14693,14708 ----  File: g77.info, Node: Compiler Types, Next: Compiler Constants, Prev: Run-time Environment Limits, Up: Compiler ! Compiler Types ! ============== ! Fortran implementations have a fair amount of freedom given them by ! the standard as far as how much storage space is used and how much ! precision and range is offered by the various types such as ! `LOGICAL(KIND=1)', `INTEGER(KIND=1)', `REAL(KIND=1)', `REAL(KIND=2)', ! `COMPLEX(KIND=1)', and `CHARACTER'. Further, many compilers offer ! so-called `*N' notation, but the interpretation of N varies across ! compilers and target architectures. The standard requires that `LOGICAL(KIND=1)', `INTEGER(KIND=1)', and `REAL(KIND=1)' occupy the same amount of storage space, and that *************** clarity, consistency, and portability. *** 15017,15026 ****  File: g77.info, Node: Compiler Constants, Next: Compiler Intrinsics, Prev: Compiler Types, Up: Compiler ! 10.4 Compiler Constants ! ======================= ! `g77' strictly assigns types to _all_ constants not documented as "typeless" (typeless constants including `'1'Z', for example). Many other Fortran compilers attempt to assign types to typed constants based on their context. This results in hard-to-find bugs, nonportable --- 14810,14819 ----  File: g77.info, Node: Compiler Constants, Next: Compiler Intrinsics, Prev: Compiler Types, Up: Compiler ! Compiler Constants ! ================== ! `g77' strictly assigns types to _all_ constants not documented as "typeless" (typeless constants including `'1'Z', for example). Many other Fortran compilers attempt to assign types to typed constants based on their context. This results in hard-to-find bugs, nonportable *************** issue. *** 15038,15048 ****  File: g77.info, Node: Compiler Intrinsics, Prev: Compiler Constants, Up: Compiler ! 10.5 Compiler Intrinsics ! ======================== ! `g77' offers an ever-widening set of intrinsics. Currently these all ! are procedures (functions and subroutines). Some of these intrinsics are unimplemented, but their names reserved to reduce future problems with existing code as they are implemented. --- 14831,14841 ----  File: g77.info, Node: Compiler Intrinsics, Prev: Compiler Constants, Up: Compiler ! Compiler Intrinsics ! =================== ! `g77' offers an ever-widening set of intrinsics. Currently these ! all are procedures (functions and subroutines). Some of these intrinsics are unimplemented, but their names reserved to reduce future problems with existing code as they are implemented. *************** by the GNU Fortran language. *** 15063,15074 ****  File: g77.info, Node: Intrinsic Groups, Next: Other Intrinsics, Up: Compiler Intrinsics ! 10.5.1 Intrinsic Groups ! ----------------------- ! A given specific intrinsic belongs in one or more groups. Each group ! is deleted, disabled, hidden, or enabled by default or a command-line ! option. The meaning of each term follows. Deleted No intrinsics are recognized as belonging to that group. --- 14856,14867 ----  File: g77.info, Node: Intrinsic Groups, Next: Other Intrinsics, Up: Compiler Intrinsics ! Intrinsic Groups ! ---------------- ! A given specific intrinsic belongs in one or more groups. Each ! group is deleted, disabled, hidden, or enabled by default or a ! command-line option. The meaning of each term follows. Deleted No intrinsics are recognized as belonging to that group. *************** enabled, and so on. *** 15155,15165 ****  File: g77.info, Node: Other Intrinsics, Prev: Intrinsic Groups, Up: Compiler Intrinsics ! 10.5.2 Other Intrinsics ! ----------------------- ! `g77' supports intrinsics other than those in the GNU Fortran language ! proper. This set of intrinsics is described below. (Note that the empty lines appearing in the menu below are not intentional--they result from a bug in the `makeinfo' program.) --- 14948,14958 ----  File: g77.info, Node: Other Intrinsics, Prev: Intrinsic Groups, Up: Compiler Intrinsics ! Other Intrinsics ! ---------------- ! `g77' supports intrinsics other than those in the GNU Fortran ! language proper. This set of intrinsics is described below. (Note that the empty lines appearing in the menu below are not intentional--they result from a bug in the `makeinfo' program.) *************** intentional--they result from a bug in t *** 15356,15464 ****  File: g77.info, Node: ACosD Intrinsic, Next: AIMax0 Intrinsic, Up: Other Intrinsics ! 10.5.2.1 ACosD Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ACosD' to use this name for an external ! procedure.  File: g77.info, Node: AIMax0 Intrinsic, Next: AIMin0 Intrinsic, Prev: ACosD Intrinsic, Up: Other Intrinsics ! 10.5.2.2 AIMax0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AIMax0' to use this name for an external procedure.  File: g77.info, Node: AIMin0 Intrinsic, Next: AJMax0 Intrinsic, Prev: AIMax0 Intrinsic, Up: Other Intrinsics ! 10.5.2.3 AIMin0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AIMin0' to use this name for an external procedure.  File: g77.info, Node: AJMax0 Intrinsic, Next: AJMin0 Intrinsic, Prev: AIMin0 Intrinsic, Up: Other Intrinsics ! 10.5.2.4 AJMax0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AJMax0' to use this name for an external procedure.  File: g77.info, Node: AJMin0 Intrinsic, Next: ASinD Intrinsic, Prev: AJMax0 Intrinsic, Up: Other Intrinsics ! 10.5.2.5 AJMin0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AJMin0' to use this name for an external procedure.  File: g77.info, Node: ASinD Intrinsic, Next: ATan2D Intrinsic, Prev: AJMin0 Intrinsic, Up: Other Intrinsics ! 10.5.2.6 ASinD Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ASinD' to use this name for an external ! procedure.  File: g77.info, Node: ATan2D Intrinsic, Next: ATanD Intrinsic, Prev: ASinD Intrinsic, Up: Other Intrinsics ! 10.5.2.7 ATan2D Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ATan2D' to use this name for an external procedure.  File: g77.info, Node: ATanD Intrinsic, Next: BITest Intrinsic, Prev: ATan2D Intrinsic, Up: Other Intrinsics ! 10.5.2.8 ATanD Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ATanD' to use this name for an external ! procedure.  File: g77.info, Node: BITest Intrinsic, Next: BJTest Intrinsic, Prev: ATanD Intrinsic, Up: Other Intrinsics ! 10.5.2.9 BITest Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL BITest' to use this name for an external procedure.  File: g77.info, Node: BJTest Intrinsic, Next: CDAbs Intrinsic, Prev: BITest Intrinsic, Up: Other Intrinsics ! 10.5.2.10 BJTest Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL BJTest' to use this name for an external procedure.  File: g77.info, Node: CDAbs Intrinsic, Next: CDCos Intrinsic, Prev: BJTest Intrinsic, Up: Other Intrinsics ! 10.5.2.11 CDAbs Intrinsic ! ......................... ! CDAbs(A) --- 15149,15256 ----  File: g77.info, Node: ACosD Intrinsic, Next: AIMax0 Intrinsic, Up: Other Intrinsics ! ACosD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ACosD' to use this name for an ! external procedure.  File: g77.info, Node: AIMax0 Intrinsic, Next: AIMin0 Intrinsic, Prev: ACosD Intrinsic, Up: Other Intrinsics ! AIMax0 Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AIMax0' to use this name for an external procedure.  File: g77.info, Node: AIMin0 Intrinsic, Next: AJMax0 Intrinsic, Prev: AIMax0 Intrinsic, Up: Other Intrinsics ! AIMin0 Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AIMin0' to use this name for an external procedure.  File: g77.info, Node: AJMax0 Intrinsic, Next: AJMin0 Intrinsic, Prev: AIMin0 Intrinsic, Up: Other Intrinsics ! AJMax0 Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AJMax0' to use this name for an external procedure.  File: g77.info, Node: AJMin0 Intrinsic, Next: ASinD Intrinsic, Prev: AJMax0 Intrinsic, Up: Other Intrinsics ! AJMin0 Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AJMin0' to use this name for an external procedure.  File: g77.info, Node: ASinD Intrinsic, Next: ATan2D Intrinsic, Prev: AJMin0 Intrinsic, Up: Other Intrinsics ! ASinD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ASinD' to use this name for an ! external procedure.  File: g77.info, Node: ATan2D Intrinsic, Next: ATanD Intrinsic, Prev: ASinD Intrinsic, Up: Other Intrinsics ! ATan2D Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ATan2D' to use this name for an external procedure.  File: g77.info, Node: ATanD Intrinsic, Next: BITest Intrinsic, Prev: ATan2D Intrinsic, Up: Other Intrinsics ! ATanD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ATanD' to use this name for an ! external procedure.  File: g77.info, Node: BITest Intrinsic, Next: BJTest Intrinsic, Prev: ATanD Intrinsic, Up: Other Intrinsics ! BITest Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL BITest' to use this name for an external procedure.  File: g77.info, Node: BJTest Intrinsic, Next: CDAbs Intrinsic, Prev: BITest Intrinsic, Up: Other Intrinsics ! BJTest Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL BJTest' to use this name for an external procedure.  File: g77.info, Node: CDAbs Intrinsic, Next: CDCos Intrinsic, Prev: BJTest Intrinsic, Up: Other Intrinsics ! CDAbs Intrinsic ! ............... CDAbs(A) *************** Abs Intrinsic::. *** 15476,15484 ****  File: g77.info, Node: CDCos Intrinsic, Next: CDExp Intrinsic, Prev: CDAbs Intrinsic, Up: Other Intrinsics ! 10.5.2.12 CDCos Intrinsic ! ......................... ! CDCos(X) --- 15268,15275 ----  File: g77.info, Node: CDCos Intrinsic, Next: CDExp Intrinsic, Prev: CDAbs Intrinsic, Up: Other Intrinsics ! CDCos Intrinsic ! ............... CDCos(X) *************** Cos Intrinsic::. *** 15496,15504 ****  File: g77.info, Node: CDExp Intrinsic, Next: CDLog Intrinsic, Prev: CDCos Intrinsic, Up: Other Intrinsics ! 10.5.2.13 CDExp Intrinsic ! ......................... ! CDExp(X) --- 15287,15294 ----  File: g77.info, Node: CDExp Intrinsic, Next: CDLog Intrinsic, Prev: CDCos Intrinsic, Up: Other Intrinsics ! CDExp Intrinsic ! ............... CDExp(X) *************** Exp Intrinsic::. *** 15516,15524 ****  File: g77.info, Node: CDLog Intrinsic, Next: CDSin Intrinsic, Prev: CDExp Intrinsic, Up: Other Intrinsics ! 10.5.2.14 CDLog Intrinsic ! ......................... ! CDLog(X) --- 15306,15313 ----  File: g77.info, Node: CDLog Intrinsic, Next: CDSin Intrinsic, Prev: CDExp Intrinsic, Up: Other Intrinsics ! CDLog Intrinsic ! ............... CDLog(X) *************** Log Intrinsic::. *** 15536,15544 ****  File: g77.info, Node: CDSin Intrinsic, Next: CDSqRt Intrinsic, Prev: CDLog Intrinsic, Up: Other Intrinsics ! 10.5.2.15 CDSin Intrinsic ! ......................... ! CDSin(X) --- 15325,15332 ----  File: g77.info, Node: CDSin Intrinsic, Next: CDSqRt Intrinsic, Prev: CDLog Intrinsic, Up: Other Intrinsics ! CDSin Intrinsic ! ............... CDSin(X) *************** Sin Intrinsic::. *** 15556,15564 ****  File: g77.info, Node: CDSqRt Intrinsic, Next: ChDir Intrinsic (function), Prev: CDSin Intrinsic, Up: Other Intrinsics ! 10.5.2.16 CDSqRt Intrinsic ! .......................... ! CDSqRt(X) --- 15344,15351 ----  File: g77.info, Node: CDSqRt Intrinsic, Next: ChDir Intrinsic (function), Prev: CDSin Intrinsic, Up: Other Intrinsics ! CDSqRt Intrinsic ! ................ CDSqRt(X) *************** SqRt Intrinsic::. *** 15576,15584 ****  File: g77.info, Node: ChDir Intrinsic (function), Next: ChMod Intrinsic (function), Prev: CDSqRt Intrinsic, Up: Other Intrinsics ! 10.5.2.17 ChDir Intrinsic (function) ! .................................... ! ChDir(DIR) --- 15363,15370 ----  File: g77.info, Node: ChDir Intrinsic (function), Next: ChMod Intrinsic (function), Prev: CDSqRt Intrinsic, Up: Other Intrinsics ! ChDir Intrinsic (function) ! .......................... ChDir(DIR) *************** Intrinsic (subroutine)::. *** 15606,15614 ****  File: g77.info, Node: ChMod Intrinsic (function), Next: CosD Intrinsic, Prev: ChDir Intrinsic (function), Up: Other Intrinsics ! 10.5.2.18 ChMod Intrinsic (function) ! .................................... ! ChMod(NAME, MODE) --- 15392,15399 ----  File: g77.info, Node: ChMod Intrinsic (function), Next: CosD Intrinsic, Prev: ChDir Intrinsic (function), Up: Other Intrinsics ! ChMod Intrinsic (function) ! .......................... ChMod(NAME, MODE) *************** Intrinsic (subroutine)::. *** 15643,15701 ****  File: g77.info, Node: CosD Intrinsic, Next: DACosD Intrinsic, Prev: ChMod Intrinsic (function), Up: Other Intrinsics ! 10.5.2.19 CosD Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL CosD' to use this name for an external ! procedure.  File: g77.info, Node: DACosD Intrinsic, Next: DASinD Intrinsic, Prev: CosD Intrinsic, Up: Other Intrinsics ! 10.5.2.20 DACosD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DACosD' to use this name for an external procedure.  File: g77.info, Node: DASinD Intrinsic, Next: DATan2D Intrinsic, Prev: DACosD Intrinsic, Up: Other Intrinsics ! 10.5.2.21 DASinD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DASinD' to use this name for an external procedure.  File: g77.info, Node: DATan2D Intrinsic, Next: DATanD Intrinsic, Prev: DASinD Intrinsic, Up: Other Intrinsics ! 10.5.2.22 DATan2D Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DATan2D' to use this name for an ! external procedure.  File: g77.info, Node: DATanD Intrinsic, Next: Date Intrinsic, Prev: DATan2D Intrinsic, Up: Other Intrinsics ! 10.5.2.23 DATanD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DATanD' to use this name for an external procedure.  File: g77.info, Node: Date Intrinsic, Next: DbleQ Intrinsic, Prev: DATanD Intrinsic, Up: Other Intrinsics ! 10.5.2.24 Date Intrinsic ! ........................ ! CALL Date(DATE) --- 15428,15485 ----  File: g77.info, Node: CosD Intrinsic, Next: DACosD Intrinsic, Prev: ChMod Intrinsic (function), Up: Other Intrinsics ! CosD Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL CosD' to use this name for an ! external procedure.  File: g77.info, Node: DACosD Intrinsic, Next: DASinD Intrinsic, Prev: CosD Intrinsic, Up: Other Intrinsics ! DACosD Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DACosD' to use this name for an external procedure.  File: g77.info, Node: DASinD Intrinsic, Next: DATan2D Intrinsic, Prev: DACosD Intrinsic, Up: Other Intrinsics ! DASinD Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DASinD' to use this name for an external procedure.  File: g77.info, Node: DATan2D Intrinsic, Next: DATanD Intrinsic, Prev: DASinD Intrinsic, Up: Other Intrinsics ! DATan2D Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DATan2D' to use this name for ! an external procedure.  File: g77.info, Node: DATanD Intrinsic, Next: Date Intrinsic, Prev: DATan2D Intrinsic, Up: Other Intrinsics ! DATanD Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DATanD' to use this name for an external procedure.  File: g77.info, Node: Date Intrinsic, Next: DbleQ Intrinsic, Prev: DATanD Intrinsic, Up: Other Intrinsics ! Date Intrinsic ! .............. CALL Date(DATE) *************** on obtaining more digits for the current *** 15717,15735 ****  File: g77.info, Node: DbleQ Intrinsic, Next: DCmplx Intrinsic, Prev: Date Intrinsic, Up: Other Intrinsics ! 10.5.2.25 DbleQ Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DbleQ' to use this name for an external ! procedure.  File: g77.info, Node: DCmplx Intrinsic, Next: DConjg Intrinsic, Prev: DbleQ Intrinsic, Up: Other Intrinsics ! 10.5.2.26 DCmplx Intrinsic ! .......................... ! DCmplx(X, Y) --- 15501,15518 ----  File: g77.info, Node: DbleQ Intrinsic, Next: DCmplx Intrinsic, Prev: Date Intrinsic, Up: Other Intrinsics ! DbleQ Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DbleQ' to use this name for an ! external procedure.  File: g77.info, Node: DCmplx Intrinsic, Next: DConjg Intrinsic, Prev: DbleQ Intrinsic, Up: Other Intrinsics ! DCmplx Intrinsic ! ................ DCmplx(X, Y) *************** precision. GNU Fortran provides such an *** 15771,15779 ****  File: g77.info, Node: DConjg Intrinsic, Next: DCosD Intrinsic, Prev: DCmplx Intrinsic, Up: Other Intrinsics ! 10.5.2.27 DConjg Intrinsic ! .......................... ! DConjg(Z) --- 15554,15561 ----  File: g77.info, Node: DConjg Intrinsic, Next: DCosD Intrinsic, Prev: DCmplx Intrinsic, Up: Other Intrinsics ! DConjg Intrinsic ! ................ DConjg(Z) *************** Conjg Intrinsic::. *** 15791,15809 ****  File: g77.info, Node: DCosD Intrinsic, Next: DFloat Intrinsic, Prev: DConjg Intrinsic, Up: Other Intrinsics ! 10.5.2.28 DCosD Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DCosD' to use this name for an external ! procedure.  File: g77.info, Node: DFloat Intrinsic, Next: DFlotI Intrinsic, Prev: DCosD Intrinsic, Up: Other Intrinsics ! 10.5.2.29 DFloat Intrinsic ! .......................... ! DFloat(A) --- 15573,15590 ----  File: g77.info, Node: DCosD Intrinsic, Next: DFloat Intrinsic, Prev: DConjg Intrinsic, Up: Other Intrinsics ! DCosD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DCosD' to use this name for an ! external procedure.  File: g77.info, Node: DFloat Intrinsic, Next: DFlotI Intrinsic, Prev: DCosD Intrinsic, Up: Other Intrinsics ! DFloat Intrinsic ! ................ DFloat(A) *************** Real Intrinsic::. *** 15821,15849 ****  File: g77.info, Node: DFlotI Intrinsic, Next: DFlotJ Intrinsic, Prev: DFloat Intrinsic, Up: Other Intrinsics ! 10.5.2.30 DFlotI Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DFlotI' to use this name for an external procedure.  File: g77.info, Node: DFlotJ Intrinsic, Next: DImag Intrinsic, Prev: DFlotI Intrinsic, Up: Other Intrinsics ! 10.5.2.31 DFlotJ Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DFlotJ' to use this name for an external procedure.  File: g77.info, Node: DImag Intrinsic, Next: DReal Intrinsic, Prev: DFlotJ Intrinsic, Up: Other Intrinsics ! 10.5.2.32 DImag Intrinsic ! ......................... ! DImag(Z) --- 15602,15629 ----  File: g77.info, Node: DFlotI Intrinsic, Next: DFlotJ Intrinsic, Prev: DFloat Intrinsic, Up: Other Intrinsics ! DFlotI Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DFlotI' to use this name for an external procedure.  File: g77.info, Node: DFlotJ Intrinsic, Next: DImag Intrinsic, Prev: DFlotI Intrinsic, Up: Other Intrinsics ! DFlotJ Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DFlotJ' to use this name for an external procedure.  File: g77.info, Node: DImag Intrinsic, Next: DReal Intrinsic, Prev: DFlotJ Intrinsic, Up: Other Intrinsics ! DImag Intrinsic ! ............... DImag(Z) *************** AImag Intrinsic::. *** 15861,15869 ****  File: g77.info, Node: DReal Intrinsic, Next: DSinD Intrinsic, Prev: DImag Intrinsic, Up: Other Intrinsics ! 10.5.2.33 DReal Intrinsic ! ......................... ! DReal(A) --- 15641,15648 ----  File: g77.info, Node: DReal Intrinsic, Next: DSinD Intrinsic, Prev: DImag Intrinsic, Up: Other Intrinsics ! DReal Intrinsic ! ............... DReal(A) *************** issue. *** 15899,15927 ****  File: g77.info, Node: DSinD Intrinsic, Next: DTanD Intrinsic, Prev: DReal Intrinsic, Up: Other Intrinsics ! 10.5.2.34 DSinD Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DSinD' to use this name for an external ! procedure.  File: g77.info, Node: DTanD Intrinsic, Next: DTime Intrinsic (function), Prev: DSinD Intrinsic, Up: Other Intrinsics ! 10.5.2.35 DTanD Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DTanD' to use this name for an external ! procedure.  File: g77.info, Node: DTime Intrinsic (function), Next: FGet Intrinsic (function), Prev: DTanD Intrinsic, Up: Other Intrinsics ! 10.5.2.36 DTime Intrinsic (function) ! .................................... ! DTime(TARRAY) --- 15678,15705 ----  File: g77.info, Node: DSinD Intrinsic, Next: DTanD Intrinsic, Prev: DReal Intrinsic, Up: Other Intrinsics ! DSinD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DSinD' to use this name for an ! external procedure.  File: g77.info, Node: DTanD Intrinsic, Next: DTime Intrinsic (function), Prev: DSinD Intrinsic, Up: Other Intrinsics ! DTanD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DTanD' to use this name for an ! external procedure.  File: g77.info, Node: DTime Intrinsic (function), Next: FGet Intrinsic (function), Prev: DTanD Intrinsic, Up: Other Intrinsics ! DTime Intrinsic (function) ! .......................... DTime(TARRAY) *************** Intrinsic (subroutine)::. *** 15956,15964 ****  File: g77.info, Node: FGet Intrinsic (function), Next: FGetC Intrinsic (function), Prev: DTime Intrinsic (function), Up: Other Intrinsics ! 10.5.2.37 FGet Intrinsic (function) ! ................................... ! FGet(C) --- 15734,15741 ----  File: g77.info, Node: FGet Intrinsic (function), Next: FGetC Intrinsic (function), Prev: DTime Intrinsic (function), Up: Other Intrinsics ! FGet Intrinsic (function) ! ......................... FGet(C) *************** Intrinsic (subroutine)::. *** 15985,15993 ****  File: g77.info, Node: FGetC Intrinsic (function), Next: FloatI Intrinsic, Prev: FGet Intrinsic (function), Up: Other Intrinsics ! 10.5.2.38 FGetC Intrinsic (function) ! .................................... ! FGetC(UNIT, C) --- 15762,15769 ----  File: g77.info, Node: FGetC Intrinsic (function), Next: FloatI Intrinsic, Prev: FGet Intrinsic (function), Up: Other Intrinsics ! FGetC Intrinsic (function) ! .......................... FGetC(UNIT, C) *************** Intrinsic (subroutine)::. *** 16016,16044 ****  File: g77.info, Node: FloatI Intrinsic, Next: FloatJ Intrinsic, Prev: FGetC Intrinsic (function), Up: Other Intrinsics ! 10.5.2.39 FloatI Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL FloatI' to use this name for an external procedure.  File: g77.info, Node: FloatJ Intrinsic, Next: FPut Intrinsic (function), Prev: FloatI Intrinsic, Up: Other Intrinsics ! 10.5.2.40 FloatJ Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL FloatJ' to use this name for an external procedure.  File: g77.info, Node: FPut Intrinsic (function), Next: FPutC Intrinsic (function), Prev: FloatJ Intrinsic, Up: Other Intrinsics ! 10.5.2.41 FPut Intrinsic (function) ! ................................... ! FPut(C) --- 15792,15819 ----  File: g77.info, Node: FloatI Intrinsic, Next: FloatJ Intrinsic, Prev: FGetC Intrinsic (function), Up: Other Intrinsics ! FloatI Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL FloatI' to use this name for an external procedure.  File: g77.info, Node: FloatJ Intrinsic, Next: FPut Intrinsic (function), Prev: FloatI Intrinsic, Up: Other Intrinsics ! FloatJ Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL FloatJ' to use this name for an external procedure.  File: g77.info, Node: FPut Intrinsic (function), Next: FPutC Intrinsic (function), Prev: FloatJ Intrinsic, Up: Other Intrinsics ! FPut Intrinsic (function) ! ......................... FPut(C) *************** Intrinsic (subroutine)::. *** 16064,16072 ****  File: g77.info, Node: FPutC Intrinsic (function), Next: IDate Intrinsic (VXT), Prev: FPut Intrinsic (function), Up: Other Intrinsics ! 10.5.2.42 FPutC Intrinsic (function) ! .................................... ! FPutC(UNIT, C) --- 15839,15846 ----  File: g77.info, Node: FPutC Intrinsic (function), Next: IDate Intrinsic (VXT), Prev: FPut Intrinsic (function), Up: Other Intrinsics ! FPutC Intrinsic (function) ! .......................... FPutC(UNIT, C) *************** Intrinsic (subroutine)::. *** 16094,16102 ****  File: g77.info, Node: IDate Intrinsic (VXT), Next: IIAbs Intrinsic, Prev: FPutC Intrinsic (function), Up: Other Intrinsics ! 10.5.2.43 IDate Intrinsic (VXT) ! ............................... ! CALL IDate(M, D, Y) --- 15868,15875 ----  File: g77.info, Node: IDate Intrinsic (VXT), Next: IIAbs Intrinsic, Prev: FPutC Intrinsic (function), Up: Other Intrinsics ! IDate Intrinsic (VXT) ! ..................... CALL IDate(M, D, Y) *************** Intrinsic (UNIX)::. *** 16130,16628 ****  File: g77.info, Node: IIAbs Intrinsic, Next: IIAnd Intrinsic, Prev: IDate Intrinsic (VXT), Up: Other Intrinsics ! 10.5.2.44 IIAbs Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIAbs' to use this name for an external ! procedure.  File: g77.info, Node: IIAnd Intrinsic, Next: IIBClr Intrinsic, Prev: IIAbs Intrinsic, Up: Other Intrinsics ! 10.5.2.45 IIAnd Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIAnd' to use this name for an external ! procedure.  File: g77.info, Node: IIBClr Intrinsic, Next: IIBits Intrinsic, Prev: IIAnd Intrinsic, Up: Other Intrinsics ! 10.5.2.46 IIBClr Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIBClr' to use this name for an external procedure.  File: g77.info, Node: IIBits Intrinsic, Next: IIBSet Intrinsic, Prev: IIBClr Intrinsic, Up: Other Intrinsics ! 10.5.2.47 IIBits Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIBits' to use this name for an external procedure.  File: g77.info, Node: IIBSet Intrinsic, Next: IIDiM Intrinsic, Prev: IIBits Intrinsic, Up: Other Intrinsics ! 10.5.2.48 IIBSet Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIBSet' to use this name for an external procedure.  File: g77.info, Node: IIDiM Intrinsic, Next: IIDInt Intrinsic, Prev: IIBSet Intrinsic, Up: Other Intrinsics ! 10.5.2.49 IIDiM Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIDiM' to use this name for an external ! procedure.  File: g77.info, Node: IIDInt Intrinsic, Next: IIDNnt Intrinsic, Prev: IIDiM Intrinsic, Up: Other Intrinsics ! 10.5.2.50 IIDInt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIDInt' to use this name for an external procedure.  File: g77.info, Node: IIDNnt Intrinsic, Next: IIEOr Intrinsic, Prev: IIDInt Intrinsic, Up: Other Intrinsics ! 10.5.2.51 IIDNnt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIDNnt' to use this name for an external procedure.  File: g77.info, Node: IIEOr Intrinsic, Next: IIFix Intrinsic, Prev: IIDNnt Intrinsic, Up: Other Intrinsics ! 10.5.2.52 IIEOr Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIEOr' to use this name for an external ! procedure.  File: g77.info, Node: IIFix Intrinsic, Next: IInt Intrinsic, Prev: IIEOr Intrinsic, Up: Other Intrinsics ! 10.5.2.53 IIFix Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIFix' to use this name for an external ! procedure.  File: g77.info, Node: IInt Intrinsic, Next: IIOr Intrinsic, Prev: IIFix Intrinsic, Up: Other Intrinsics ! 10.5.2.54 IInt Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IInt' to use this name for an external ! procedure.  File: g77.info, Node: IIOr Intrinsic, Next: IIQint Intrinsic, Prev: IInt Intrinsic, Up: Other Intrinsics ! 10.5.2.55 IIOr Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIOr' to use this name for an external ! procedure.  File: g77.info, Node: IIQint Intrinsic, Next: IIQNnt Intrinsic, Prev: IIOr Intrinsic, Up: Other Intrinsics ! 10.5.2.56 IIQint Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIQint' to use this name for an external procedure.  File: g77.info, Node: IIQNnt Intrinsic, Next: IIShftC Intrinsic, Prev: IIQint Intrinsic, Up: Other Intrinsics ! 10.5.2.57 IIQNnt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIQNnt' to use this name for an external procedure.  File: g77.info, Node: IIShftC Intrinsic, Next: IISign Intrinsic, Prev: IIQNnt Intrinsic, Up: Other Intrinsics ! 10.5.2.58 IIShftC Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIShftC' to use this name for an ! external procedure.  File: g77.info, Node: IISign Intrinsic, Next: IMax0 Intrinsic, Prev: IIShftC Intrinsic, Up: Other Intrinsics ! 10.5.2.59 IISign Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IISign' to use this name for an external procedure.  File: g77.info, Node: IMax0 Intrinsic, Next: IMax1 Intrinsic, Prev: IISign Intrinsic, Up: Other Intrinsics ! 10.5.2.60 IMax0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMax0' to use this name for an external ! procedure.  File: g77.info, Node: IMax1 Intrinsic, Next: IMin0 Intrinsic, Prev: IMax0 Intrinsic, Up: Other Intrinsics ! 10.5.2.61 IMax1 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMax1' to use this name for an external ! procedure.  File: g77.info, Node: IMin0 Intrinsic, Next: IMin1 Intrinsic, Prev: IMax1 Intrinsic, Up: Other Intrinsics ! 10.5.2.62 IMin0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMin0' to use this name for an external ! procedure.  File: g77.info, Node: IMin1 Intrinsic, Next: IMod Intrinsic, Prev: IMin0 Intrinsic, Up: Other Intrinsics ! 10.5.2.63 IMin1 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMin1' to use this name for an external ! procedure.  File: g77.info, Node: IMod Intrinsic, Next: INInt Intrinsic, Prev: IMin1 Intrinsic, Up: Other Intrinsics ! 10.5.2.64 IMod Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMod' to use this name for an external ! procedure.  File: g77.info, Node: INInt Intrinsic, Next: INot Intrinsic, Prev: IMod Intrinsic, Up: Other Intrinsics ! 10.5.2.65 INInt Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL INInt' to use this name for an external ! procedure.  File: g77.info, Node: INot Intrinsic, Next: IZExt Intrinsic, Prev: INInt Intrinsic, Up: Other Intrinsics ! 10.5.2.66 INot Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL INot' to use this name for an external ! procedure.  File: g77.info, Node: IZExt Intrinsic, Next: JIAbs Intrinsic, Prev: INot Intrinsic, Up: Other Intrinsics ! 10.5.2.67 IZExt Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IZExt' to use this name for an external ! procedure.  File: g77.info, Node: JIAbs Intrinsic, Next: JIAnd Intrinsic, Prev: IZExt Intrinsic, Up: Other Intrinsics ! 10.5.2.68 JIAbs Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIAbs' to use this name for an external ! procedure.  File: g77.info, Node: JIAnd Intrinsic, Next: JIBClr Intrinsic, Prev: JIAbs Intrinsic, Up: Other Intrinsics ! 10.5.2.69 JIAnd Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIAnd' to use this name for an external ! procedure.  File: g77.info, Node: JIBClr Intrinsic, Next: JIBits Intrinsic, Prev: JIAnd Intrinsic, Up: Other Intrinsics ! 10.5.2.70 JIBClr Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIBClr' to use this name for an external procedure.  File: g77.info, Node: JIBits Intrinsic, Next: JIBSet Intrinsic, Prev: JIBClr Intrinsic, Up: Other Intrinsics ! 10.5.2.71 JIBits Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIBits' to use this name for an external procedure.  File: g77.info, Node: JIBSet Intrinsic, Next: JIDiM Intrinsic, Prev: JIBits Intrinsic, Up: Other Intrinsics ! 10.5.2.72 JIBSet Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIBSet' to use this name for an external procedure.  File: g77.info, Node: JIDiM Intrinsic, Next: JIDInt Intrinsic, Prev: JIBSet Intrinsic, Up: Other Intrinsics ! 10.5.2.73 JIDiM Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIDiM' to use this name for an external ! procedure.  File: g77.info, Node: JIDInt Intrinsic, Next: JIDNnt Intrinsic, Prev: JIDiM Intrinsic, Up: Other Intrinsics ! 10.5.2.74 JIDInt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIDInt' to use this name for an external procedure.  File: g77.info, Node: JIDNnt Intrinsic, Next: JIEOr Intrinsic, Prev: JIDInt Intrinsic, Up: Other Intrinsics ! 10.5.2.75 JIDNnt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIDNnt' to use this name for an external procedure.  File: g77.info, Node: JIEOr Intrinsic, Next: JIFix Intrinsic, Prev: JIDNnt Intrinsic, Up: Other Intrinsics ! 10.5.2.76 JIEOr Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIEOr' to use this name for an external ! procedure.  File: g77.info, Node: JIFix Intrinsic, Next: JInt Intrinsic, Prev: JIEOr Intrinsic, Up: Other Intrinsics ! 10.5.2.77 JIFix Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIFix' to use this name for an external ! procedure.  File: g77.info, Node: JInt Intrinsic, Next: JIOr Intrinsic, Prev: JIFix Intrinsic, Up: Other Intrinsics ! 10.5.2.78 JInt Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JInt' to use this name for an external ! procedure.  File: g77.info, Node: JIOr Intrinsic, Next: JIQint Intrinsic, Prev: JInt Intrinsic, Up: Other Intrinsics ! 10.5.2.79 JIOr Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIOr' to use this name for an external ! procedure.  File: g77.info, Node: JIQint Intrinsic, Next: JIQNnt Intrinsic, Prev: JIOr Intrinsic, Up: Other Intrinsics ! 10.5.2.80 JIQint Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIQint' to use this name for an external procedure.  File: g77.info, Node: JIQNnt Intrinsic, Next: JIShft Intrinsic, Prev: JIQint Intrinsic, Up: Other Intrinsics ! 10.5.2.81 JIQNnt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIQNnt' to use this name for an external procedure.  File: g77.info, Node: JIShft Intrinsic, Next: JIShftC Intrinsic, Prev: JIQNnt Intrinsic, Up: Other Intrinsics ! 10.5.2.82 JIShft Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIShft' to use this name for an external procedure.  File: g77.info, Node: JIShftC Intrinsic, Next: JISign Intrinsic, Prev: JIShft Intrinsic, Up: Other Intrinsics ! 10.5.2.83 JIShftC Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIShftC' to use this name for an ! external procedure.  File: g77.info, Node: JISign Intrinsic, Next: JMax0 Intrinsic, Prev: JIShftC Intrinsic, Up: Other Intrinsics ! 10.5.2.84 JISign Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JISign' to use this name for an external procedure.  File: g77.info, Node: JMax0 Intrinsic, Next: JMax1 Intrinsic, Prev: JISign Intrinsic, Up: Other Intrinsics ! 10.5.2.85 JMax0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMax0' to use this name for an external ! procedure.  File: g77.info, Node: JMax1 Intrinsic, Next: JMin0 Intrinsic, Prev: JMax0 Intrinsic, Up: Other Intrinsics ! 10.5.2.86 JMax1 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMax1' to use this name for an external ! procedure.  File: g77.info, Node: JMin0 Intrinsic, Next: JMin1 Intrinsic, Prev: JMax1 Intrinsic, Up: Other Intrinsics ! 10.5.2.87 JMin0 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMin0' to use this name for an external ! procedure.  File: g77.info, Node: JMin1 Intrinsic, Next: JMod Intrinsic, Prev: JMin0 Intrinsic, Up: Other Intrinsics ! 10.5.2.88 JMin1 Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMin1' to use this name for an external ! procedure.  File: g77.info, Node: JMod Intrinsic, Next: JNInt Intrinsic, Prev: JMin1 Intrinsic, Up: Other Intrinsics ! 10.5.2.89 JMod Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMod' to use this name for an external ! procedure.  File: g77.info, Node: JNInt Intrinsic, Next: JNot Intrinsic, Prev: JMod Intrinsic, Up: Other Intrinsics ! 10.5.2.90 JNInt Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JNInt' to use this name for an external ! procedure.  File: g77.info, Node: JNot Intrinsic, Next: JZExt Intrinsic, Prev: JNInt Intrinsic, Up: Other Intrinsics ! 10.5.2.91 JNot Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JNot' to use this name for an external ! procedure.  File: g77.info, Node: JZExt Intrinsic, Next: Kill Intrinsic (function), Prev: JNot Intrinsic, Up: Other Intrinsics ! 10.5.2.92 JZExt Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JZExt' to use this name for an external ! procedure.  File: g77.info, Node: Kill Intrinsic (function), Next: Link Intrinsic (function), Prev: JZExt Intrinsic, Up: Other Intrinsics ! 10.5.2.93 Kill Intrinsic (function) ! ................................... ! Kill(PID, SIGNAL) --- 15903,16400 ----  File: g77.info, Node: IIAbs Intrinsic, Next: IIAnd Intrinsic, Prev: IDate Intrinsic (VXT), Up: Other Intrinsics ! IIAbs Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIAbs' to use this name for an ! external procedure.  File: g77.info, Node: IIAnd Intrinsic, Next: IIBClr Intrinsic, Prev: IIAbs Intrinsic, Up: Other Intrinsics ! IIAnd Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIAnd' to use this name for an ! external procedure.  File: g77.info, Node: IIBClr Intrinsic, Next: IIBits Intrinsic, Prev: IIAnd Intrinsic, Up: Other Intrinsics ! IIBClr Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIBClr' to use this name for an external procedure.  File: g77.info, Node: IIBits Intrinsic, Next: IIBSet Intrinsic, Prev: IIBClr Intrinsic, Up: Other Intrinsics ! IIBits Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIBits' to use this name for an external procedure.  File: g77.info, Node: IIBSet Intrinsic, Next: IIDiM Intrinsic, Prev: IIBits Intrinsic, Up: Other Intrinsics ! IIBSet Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIBSet' to use this name for an external procedure.  File: g77.info, Node: IIDiM Intrinsic, Next: IIDInt Intrinsic, Prev: IIBSet Intrinsic, Up: Other Intrinsics ! IIDiM Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIDiM' to use this name for an ! external procedure.  File: g77.info, Node: IIDInt Intrinsic, Next: IIDNnt Intrinsic, Prev: IIDiM Intrinsic, Up: Other Intrinsics ! IIDInt Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIDInt' to use this name for an external procedure.  File: g77.info, Node: IIDNnt Intrinsic, Next: IIEOr Intrinsic, Prev: IIDInt Intrinsic, Up: Other Intrinsics ! IIDNnt Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIDNnt' to use this name for an external procedure.  File: g77.info, Node: IIEOr Intrinsic, Next: IIFix Intrinsic, Prev: IIDNnt Intrinsic, Up: Other Intrinsics ! IIEOr Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIEOr' to use this name for an ! external procedure.  File: g77.info, Node: IIFix Intrinsic, Next: IInt Intrinsic, Prev: IIEOr Intrinsic, Up: Other Intrinsics ! IIFix Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIFix' to use this name for an ! external procedure.  File: g77.info, Node: IInt Intrinsic, Next: IIOr Intrinsic, Prev: IIFix Intrinsic, Up: Other Intrinsics ! IInt Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IInt' to use this name for an ! external procedure.  File: g77.info, Node: IIOr Intrinsic, Next: IIQint Intrinsic, Prev: IInt Intrinsic, Up: Other Intrinsics ! IIOr Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIOr' to use this name for an ! external procedure.  File: g77.info, Node: IIQint Intrinsic, Next: IIQNnt Intrinsic, Prev: IIOr Intrinsic, Up: Other Intrinsics ! IIQint Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIQint' to use this name for an external procedure.  File: g77.info, Node: IIQNnt Intrinsic, Next: IIShftC Intrinsic, Prev: IIQint Intrinsic, Up: Other Intrinsics ! IIQNnt Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIQNnt' to use this name for an external procedure.  File: g77.info, Node: IIShftC Intrinsic, Next: IISign Intrinsic, Prev: IIQNnt Intrinsic, Up: Other Intrinsics ! IIShftC Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIShftC' to use this name for ! an external procedure.  File: g77.info, Node: IISign Intrinsic, Next: IMax0 Intrinsic, Prev: IIShftC Intrinsic, Up: Other Intrinsics ! IISign Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IISign' to use this name for an external procedure.  File: g77.info, Node: IMax0 Intrinsic, Next: IMax1 Intrinsic, Prev: IISign Intrinsic, Up: Other Intrinsics ! IMax0 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMax0' to use this name for an ! external procedure.  File: g77.info, Node: IMax1 Intrinsic, Next: IMin0 Intrinsic, Prev: IMax0 Intrinsic, Up: Other Intrinsics ! IMax1 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMax1' to use this name for an ! external procedure.  File: g77.info, Node: IMin0 Intrinsic, Next: IMin1 Intrinsic, Prev: IMax1 Intrinsic, Up: Other Intrinsics ! IMin0 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMin0' to use this name for an ! external procedure.  File: g77.info, Node: IMin1 Intrinsic, Next: IMod Intrinsic, Prev: IMin0 Intrinsic, Up: Other Intrinsics ! IMin1 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMin1' to use this name for an ! external procedure.  File: g77.info, Node: IMod Intrinsic, Next: INInt Intrinsic, Prev: IMin1 Intrinsic, Up: Other Intrinsics ! IMod Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMod' to use this name for an ! external procedure.  File: g77.info, Node: INInt Intrinsic, Next: INot Intrinsic, Prev: IMod Intrinsic, Up: Other Intrinsics ! INInt Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL INInt' to use this name for an ! external procedure.  File: g77.info, Node: INot Intrinsic, Next: IZExt Intrinsic, Prev: INInt Intrinsic, Up: Other Intrinsics ! INot Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL INot' to use this name for an ! external procedure.  File: g77.info, Node: IZExt Intrinsic, Next: JIAbs Intrinsic, Prev: INot Intrinsic, Up: Other Intrinsics ! IZExt Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IZExt' to use this name for an ! external procedure.  File: g77.info, Node: JIAbs Intrinsic, Next: JIAnd Intrinsic, Prev: IZExt Intrinsic, Up: Other Intrinsics ! JIAbs Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIAbs' to use this name for an ! external procedure.  File: g77.info, Node: JIAnd Intrinsic, Next: JIBClr Intrinsic, Prev: JIAbs Intrinsic, Up: Other Intrinsics ! JIAnd Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIAnd' to use this name for an ! external procedure.  File: g77.info, Node: JIBClr Intrinsic, Next: JIBits Intrinsic, Prev: JIAnd Intrinsic, Up: Other Intrinsics ! JIBClr Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIBClr' to use this name for an external procedure.  File: g77.info, Node: JIBits Intrinsic, Next: JIBSet Intrinsic, Prev: JIBClr Intrinsic, Up: Other Intrinsics ! JIBits Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIBits' to use this name for an external procedure.  File: g77.info, Node: JIBSet Intrinsic, Next: JIDiM Intrinsic, Prev: JIBits Intrinsic, Up: Other Intrinsics ! JIBSet Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIBSet' to use this name for an external procedure.  File: g77.info, Node: JIDiM Intrinsic, Next: JIDInt Intrinsic, Prev: JIBSet Intrinsic, Up: Other Intrinsics ! JIDiM Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIDiM' to use this name for an ! external procedure.  File: g77.info, Node: JIDInt Intrinsic, Next: JIDNnt Intrinsic, Prev: JIDiM Intrinsic, Up: Other Intrinsics ! JIDInt Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIDInt' to use this name for an external procedure.  File: g77.info, Node: JIDNnt Intrinsic, Next: JIEOr Intrinsic, Prev: JIDInt Intrinsic, Up: Other Intrinsics ! JIDNnt Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIDNnt' to use this name for an external procedure.  File: g77.info, Node: JIEOr Intrinsic, Next: JIFix Intrinsic, Prev: JIDNnt Intrinsic, Up: Other Intrinsics ! JIEOr Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIEOr' to use this name for an ! external procedure.  File: g77.info, Node: JIFix Intrinsic, Next: JInt Intrinsic, Prev: JIEOr Intrinsic, Up: Other Intrinsics ! JIFix Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIFix' to use this name for an ! external procedure.  File: g77.info, Node: JInt Intrinsic, Next: JIOr Intrinsic, Prev: JIFix Intrinsic, Up: Other Intrinsics ! JInt Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JInt' to use this name for an ! external procedure.  File: g77.info, Node: JIOr Intrinsic, Next: JIQint Intrinsic, Prev: JInt Intrinsic, Up: Other Intrinsics ! JIOr Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIOr' to use this name for an ! external procedure.  File: g77.info, Node: JIQint Intrinsic, Next: JIQNnt Intrinsic, Prev: JIOr Intrinsic, Up: Other Intrinsics ! JIQint Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIQint' to use this name for an external procedure.  File: g77.info, Node: JIQNnt Intrinsic, Next: JIShft Intrinsic, Prev: JIQint Intrinsic, Up: Other Intrinsics ! JIQNnt Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIQNnt' to use this name for an external procedure.  File: g77.info, Node: JIShft Intrinsic, Next: JIShftC Intrinsic, Prev: JIQNnt Intrinsic, Up: Other Intrinsics ! JIShft Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIShft' to use this name for an external procedure.  File: g77.info, Node: JIShftC Intrinsic, Next: JISign Intrinsic, Prev: JIShft Intrinsic, Up: Other Intrinsics ! JIShftC Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIShftC' to use this name for ! an external procedure.  File: g77.info, Node: JISign Intrinsic, Next: JMax0 Intrinsic, Prev: JIShftC Intrinsic, Up: Other Intrinsics ! JISign Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JISign' to use this name for an external procedure.  File: g77.info, Node: JMax0 Intrinsic, Next: JMax1 Intrinsic, Prev: JISign Intrinsic, Up: Other Intrinsics ! JMax0 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMax0' to use this name for an ! external procedure.  File: g77.info, Node: JMax1 Intrinsic, Next: JMin0 Intrinsic, Prev: JMax0 Intrinsic, Up: Other Intrinsics ! JMax1 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMax1' to use this name for an ! external procedure.  File: g77.info, Node: JMin0 Intrinsic, Next: JMin1 Intrinsic, Prev: JMax1 Intrinsic, Up: Other Intrinsics ! JMin0 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMin0' to use this name for an ! external procedure.  File: g77.info, Node: JMin1 Intrinsic, Next: JMod Intrinsic, Prev: JMin0 Intrinsic, Up: Other Intrinsics ! JMin1 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMin1' to use this name for an ! external procedure.  File: g77.info, Node: JMod Intrinsic, Next: JNInt Intrinsic, Prev: JMin1 Intrinsic, Up: Other Intrinsics ! JMod Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMod' to use this name for an ! external procedure.  File: g77.info, Node: JNInt Intrinsic, Next: JNot Intrinsic, Prev: JMod Intrinsic, Up: Other Intrinsics ! JNInt Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JNInt' to use this name for an ! external procedure.  File: g77.info, Node: JNot Intrinsic, Next: JZExt Intrinsic, Prev: JNInt Intrinsic, Up: Other Intrinsics ! JNot Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JNot' to use this name for an ! external procedure.  File: g77.info, Node: JZExt Intrinsic, Next: Kill Intrinsic (function), Prev: JNot Intrinsic, Up: Other Intrinsics ! JZExt Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JZExt' to use this name for an ! external procedure.  File: g77.info, Node: Kill Intrinsic (function), Next: Link Intrinsic (function), Prev: JZExt Intrinsic, Up: Other Intrinsics ! Kill Intrinsic (function) ! ......................... Kill(PID, SIGNAL) *************** Intrinsic (subroutine)::. *** 16648,16656 ****  File: g77.info, Node: Link Intrinsic (function), Next: QAbs Intrinsic, Prev: Kill Intrinsic (function), Up: Other Intrinsics ! 10.5.2.94 Link Intrinsic (function) ! ................................... ! Link(PATH1, PATH2) --- 16420,16427 ----  File: g77.info, Node: Link Intrinsic (function), Next: QAbs Intrinsic, Prev: Kill Intrinsic (function), Up: Other Intrinsics ! Link Intrinsic (function) ! ......................... Link(PATH1, PATH2) *************** Intrinsic (subroutine)::. *** 16678,16996 ****  File: g77.info, Node: QAbs Intrinsic, Next: QACos Intrinsic, Prev: Link Intrinsic (function), Up: Other Intrinsics ! 10.5.2.95 QAbs Intrinsic ! ........................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QAbs' to use this name for an external ! procedure.  File: g77.info, Node: QACos Intrinsic, Next: QACosD Intrinsic, Prev: QAbs Intrinsic, Up: Other Intrinsics ! 10.5.2.96 QACos Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QACos' to use this name for an external ! procedure.  File: g77.info, Node: QACosD Intrinsic, Next: QASin Intrinsic, Prev: QACos Intrinsic, Up: Other Intrinsics ! 10.5.2.97 QACosD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QACosD' to use this name for an external procedure.  File: g77.info, Node: QASin Intrinsic, Next: QASinD Intrinsic, Prev: QACosD Intrinsic, Up: Other Intrinsics ! 10.5.2.98 QASin Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QASin' to use this name for an external ! procedure.  File: g77.info, Node: QASinD Intrinsic, Next: QATan Intrinsic, Prev: QASin Intrinsic, Up: Other Intrinsics ! 10.5.2.99 QASinD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QASinD' to use this name for an external procedure.  File: g77.info, Node: QATan Intrinsic, Next: QATan2 Intrinsic, Prev: QASinD Intrinsic, Up: Other Intrinsics ! 10.5.2.100 QATan Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATan' to use this name for an external ! procedure.  File: g77.info, Node: QATan2 Intrinsic, Next: QATan2D Intrinsic, Prev: QATan Intrinsic, Up: Other Intrinsics ! 10.5.2.101 QATan2 Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATan2' to use this name for an external procedure.  File: g77.info, Node: QATan2D Intrinsic, Next: QATanD Intrinsic, Prev: QATan2 Intrinsic, Up: Other Intrinsics ! 10.5.2.102 QATan2D Intrinsic ! ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATan2D' to use this name for an ! external procedure.  File: g77.info, Node: QATanD Intrinsic, Next: QCos Intrinsic, Prev: QATan2D Intrinsic, Up: Other Intrinsics ! 10.5.2.103 QATanD Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATanD' to use this name for an external procedure.  File: g77.info, Node: QCos Intrinsic, Next: QCosD Intrinsic, Prev: QATanD Intrinsic, Up: Other Intrinsics ! 10.5.2.104 QCos Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QCos' to use this name for an external ! procedure.  File: g77.info, Node: QCosD Intrinsic, Next: QCosH Intrinsic, Prev: QCos Intrinsic, Up: Other Intrinsics ! 10.5.2.105 QCosD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QCosD' to use this name for an external ! procedure.  File: g77.info, Node: QCosH Intrinsic, Next: QDiM Intrinsic, Prev: QCosD Intrinsic, Up: Other Intrinsics ! 10.5.2.106 QCosH Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QCosH' to use this name for an external ! procedure.  File: g77.info, Node: QDiM Intrinsic, Next: QExp Intrinsic, Prev: QCosH Intrinsic, Up: Other Intrinsics ! 10.5.2.107 QDiM Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QDiM' to use this name for an external ! procedure.  File: g77.info, Node: QExp Intrinsic, Next: QExt Intrinsic, Prev: QDiM Intrinsic, Up: Other Intrinsics ! 10.5.2.108 QExp Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QExp' to use this name for an external ! procedure.  File: g77.info, Node: QExt Intrinsic, Next: QExtD Intrinsic, Prev: QExp Intrinsic, Up: Other Intrinsics ! 10.5.2.109 QExt Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QExt' to use this name for an external ! procedure.  File: g77.info, Node: QExtD Intrinsic, Next: QFloat Intrinsic, Prev: QExt Intrinsic, Up: Other Intrinsics ! 10.5.2.110 QExtD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QExtD' to use this name for an external ! procedure.  File: g77.info, Node: QFloat Intrinsic, Next: QInt Intrinsic, Prev: QExtD Intrinsic, Up: Other Intrinsics ! 10.5.2.111 QFloat Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QFloat' to use this name for an external procedure.  File: g77.info, Node: QInt Intrinsic, Next: QLog Intrinsic, Prev: QFloat Intrinsic, Up: Other Intrinsics ! 10.5.2.112 QInt Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QInt' to use this name for an external ! procedure.  File: g77.info, Node: QLog Intrinsic, Next: QLog10 Intrinsic, Prev: QInt Intrinsic, Up: Other Intrinsics ! 10.5.2.113 QLog Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QLog' to use this name for an external ! procedure.  File: g77.info, Node: QLog10 Intrinsic, Next: QMax1 Intrinsic, Prev: QLog Intrinsic, Up: Other Intrinsics ! 10.5.2.114 QLog10 Intrinsic ! ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QLog10' to use this name for an external procedure.  File: g77.info, Node: QMax1 Intrinsic, Next: QMin1 Intrinsic, Prev: QLog10 Intrinsic, Up: Other Intrinsics ! 10.5.2.115 QMax1 Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QMax1' to use this name for an external ! procedure.  File: g77.info, Node: QMin1 Intrinsic, Next: QMod Intrinsic, Prev: QMax1 Intrinsic, Up: Other Intrinsics ! 10.5.2.116 QMin1 Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QMin1' to use this name for an external ! procedure.  File: g77.info, Node: QMod Intrinsic, Next: QNInt Intrinsic, Prev: QMin1 Intrinsic, Up: Other Intrinsics ! 10.5.2.117 QMod Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QMod' to use this name for an external ! procedure.  File: g77.info, Node: QNInt Intrinsic, Next: QSin Intrinsic, Prev: QMod Intrinsic, Up: Other Intrinsics ! 10.5.2.118 QNInt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QNInt' to use this name for an external ! procedure.  File: g77.info, Node: QSin Intrinsic, Next: QSinD Intrinsic, Prev: QNInt Intrinsic, Up: Other Intrinsics ! 10.5.2.119 QSin Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSin' to use this name for an external ! procedure.  File: g77.info, Node: QSinD Intrinsic, Next: QSinH Intrinsic, Prev: QSin Intrinsic, Up: Other Intrinsics ! 10.5.2.120 QSinD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSinD' to use this name for an external ! procedure.  File: g77.info, Node: QSinH Intrinsic, Next: QSqRt Intrinsic, Prev: QSinD Intrinsic, Up: Other Intrinsics ! 10.5.2.121 QSinH Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSinH' to use this name for an external ! procedure.  File: g77.info, Node: QSqRt Intrinsic, Next: QTan Intrinsic, Prev: QSinH Intrinsic, Up: Other Intrinsics ! 10.5.2.122 QSqRt Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSqRt' to use this name for an external ! procedure.  File: g77.info, Node: QTan Intrinsic, Next: QTanD Intrinsic, Prev: QSqRt Intrinsic, Up: Other Intrinsics ! 10.5.2.123 QTan Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QTan' to use this name for an external ! procedure.  File: g77.info, Node: QTanD Intrinsic, Next: QTanH Intrinsic, Prev: QTan Intrinsic, Up: Other Intrinsics ! 10.5.2.124 QTanD Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QTanD' to use this name for an external ! procedure.  File: g77.info, Node: QTanH Intrinsic, Next: Rename Intrinsic (function), Prev: QTanD Intrinsic, Up: Other Intrinsics ! 10.5.2.125 QTanH Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QTanH' to use this name for an external ! procedure.  File: g77.info, Node: Rename Intrinsic (function), Next: Secnds Intrinsic, Prev: QTanH Intrinsic, Up: Other Intrinsics ! 10.5.2.126 Rename Intrinsic (function) ! ...................................... ! Rename(PATH1, PATH2) --- 16449,16766 ----  File: g77.info, Node: QAbs Intrinsic, Next: QACos Intrinsic, Prev: Link Intrinsic (function), Up: Other Intrinsics ! QAbs Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QAbs' to use this name for an ! external procedure.  File: g77.info, Node: QACos Intrinsic, Next: QACosD Intrinsic, Prev: QAbs Intrinsic, Up: Other Intrinsics ! QACos Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QACos' to use this name for an ! external procedure.  File: g77.info, Node: QACosD Intrinsic, Next: QASin Intrinsic, Prev: QACos Intrinsic, Up: Other Intrinsics ! QACosD Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QACosD' to use this name for an external procedure.  File: g77.info, Node: QASin Intrinsic, Next: QASinD Intrinsic, Prev: QACosD Intrinsic, Up: Other Intrinsics ! QASin Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QASin' to use this name for an ! external procedure.  File: g77.info, Node: QASinD Intrinsic, Next: QATan Intrinsic, Prev: QASin Intrinsic, Up: Other Intrinsics ! QASinD Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QASinD' to use this name for an external procedure.  File: g77.info, Node: QATan Intrinsic, Next: QATan2 Intrinsic, Prev: QASinD Intrinsic, Up: Other Intrinsics ! QATan Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATan' to use this name for an ! external procedure.  File: g77.info, Node: QATan2 Intrinsic, Next: QATan2D Intrinsic, Prev: QATan Intrinsic, Up: Other Intrinsics ! QATan2 Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATan2' to use this name for an external procedure.  File: g77.info, Node: QATan2D Intrinsic, Next: QATanD Intrinsic, Prev: QATan2 Intrinsic, Up: Other Intrinsics ! QATan2D Intrinsic ! ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATan2D' to use this name for ! an external procedure.  File: g77.info, Node: QATanD Intrinsic, Next: QCos Intrinsic, Prev: QATan2D Intrinsic, Up: Other Intrinsics ! QATanD Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATanD' to use this name for an external procedure.  File: g77.info, Node: QCos Intrinsic, Next: QCosD Intrinsic, Prev: QATanD Intrinsic, Up: Other Intrinsics ! QCos Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QCos' to use this name for an ! external procedure.  File: g77.info, Node: QCosD Intrinsic, Next: QCosH Intrinsic, Prev: QCos Intrinsic, Up: Other Intrinsics ! QCosD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QCosD' to use this name for an ! external procedure.  File: g77.info, Node: QCosH Intrinsic, Next: QDiM Intrinsic, Prev: QCosD Intrinsic, Up: Other Intrinsics ! QCosH Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QCosH' to use this name for an ! external procedure.  File: g77.info, Node: QDiM Intrinsic, Next: QExp Intrinsic, Prev: QCosH Intrinsic, Up: Other Intrinsics ! QDiM Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QDiM' to use this name for an ! external procedure.  File: g77.info, Node: QExp Intrinsic, Next: QExt Intrinsic, Prev: QDiM Intrinsic, Up: Other Intrinsics ! QExp Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QExp' to use this name for an ! external procedure.  File: g77.info, Node: QExt Intrinsic, Next: QExtD Intrinsic, Prev: QExp Intrinsic, Up: Other Intrinsics ! QExt Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QExt' to use this name for an ! external procedure.  File: g77.info, Node: QExtD Intrinsic, Next: QFloat Intrinsic, Prev: QExt Intrinsic, Up: Other Intrinsics ! QExtD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QExtD' to use this name for an ! external procedure.  File: g77.info, Node: QFloat Intrinsic, Next: QInt Intrinsic, Prev: QExtD Intrinsic, Up: Other Intrinsics ! QFloat Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QFloat' to use this name for an external procedure.  File: g77.info, Node: QInt Intrinsic, Next: QLog Intrinsic, Prev: QFloat Intrinsic, Up: Other Intrinsics ! QInt Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QInt' to use this name for an ! external procedure.  File: g77.info, Node: QLog Intrinsic, Next: QLog10 Intrinsic, Prev: QInt Intrinsic, Up: Other Intrinsics ! QLog Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QLog' to use this name for an ! external procedure.  File: g77.info, Node: QLog10 Intrinsic, Next: QMax1 Intrinsic, Prev: QLog Intrinsic, Up: Other Intrinsics ! QLog10 Intrinsic ! ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QLog10' to use this name for an external procedure.  File: g77.info, Node: QMax1 Intrinsic, Next: QMin1 Intrinsic, Prev: QLog10 Intrinsic, Up: Other Intrinsics ! QMax1 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QMax1' to use this name for an ! external procedure.  File: g77.info, Node: QMin1 Intrinsic, Next: QMod Intrinsic, Prev: QMax1 Intrinsic, Up: Other Intrinsics ! QMin1 Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QMin1' to use this name for an ! external procedure.  File: g77.info, Node: QMod Intrinsic, Next: QNInt Intrinsic, Prev: QMin1 Intrinsic, Up: Other Intrinsics ! QMod Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QMod' to use this name for an ! external procedure.  File: g77.info, Node: QNInt Intrinsic, Next: QSin Intrinsic, Prev: QMod Intrinsic, Up: Other Intrinsics ! QNInt Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QNInt' to use this name for an ! external procedure.  File: g77.info, Node: QSin Intrinsic, Next: QSinD Intrinsic, Prev: QNInt Intrinsic, Up: Other Intrinsics ! QSin Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSin' to use this name for an ! external procedure.  File: g77.info, Node: QSinD Intrinsic, Next: QSinH Intrinsic, Prev: QSin Intrinsic, Up: Other Intrinsics ! QSinD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSinD' to use this name for an ! external procedure.  File: g77.info, Node: QSinH Intrinsic, Next: QSqRt Intrinsic, Prev: QSinD Intrinsic, Up: Other Intrinsics ! QSinH Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSinH' to use this name for an ! external procedure.  File: g77.info, Node: QSqRt Intrinsic, Next: QTan Intrinsic, Prev: QSinH Intrinsic, Up: Other Intrinsics ! QSqRt Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSqRt' to use this name for an ! external procedure.  File: g77.info, Node: QTan Intrinsic, Next: QTanD Intrinsic, Prev: QSqRt Intrinsic, Up: Other Intrinsics ! QTan Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QTan' to use this name for an ! external procedure.  File: g77.info, Node: QTanD Intrinsic, Next: QTanH Intrinsic, Prev: QTan Intrinsic, Up: Other Intrinsics ! QTanD Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QTanD' to use this name for an ! external procedure.  File: g77.info, Node: QTanH Intrinsic, Next: Rename Intrinsic (function), Prev: QTanD Intrinsic, Up: Other Intrinsics ! QTanH Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QTanH' to use this name for an ! external procedure.  File: g77.info, Node: Rename Intrinsic (function), Next: Secnds Intrinsic, Prev: QTanH Intrinsic, Up: Other Intrinsics ! Rename Intrinsic (function) ! ........................... Rename(PATH1, PATH2) *************** Intrinsic (subroutine)::. *** 17018,17026 ****  File: g77.info, Node: Secnds Intrinsic, Next: Signal Intrinsic (function), Prev: Rename Intrinsic (function), Up: Other Intrinsics ! 10.5.2.127 Secnds Intrinsic ! ........................... ! Secnds(T) --- 16788,16795 ----  File: g77.info, Node: Secnds Intrinsic, Next: Signal Intrinsic (function), Prev: Rename Intrinsic (function), Up: Other Intrinsics ! Secnds Intrinsic ! ................ Secnds(T) *************** midnight hour). *** 17042,17050 ****  File: g77.info, Node: Signal Intrinsic (function), Next: SinD Intrinsic, Prev: Secnds Intrinsic, Up: Other Intrinsics ! 10.5.2.128 Signal Intrinsic (function) ! ...................................... ! Signal(NUMBER, HANDLER) --- 16811,16818 ----  File: g77.info, Node: Signal Intrinsic (function), Next: SinD Intrinsic, Prev: Secnds Intrinsic, Up: Other Intrinsics ! Signal Intrinsic (function) ! ........................... Signal(NUMBER, HANDLER) *************** Intrinsic (subroutine)::. *** 17123,17151 ****  File: g77.info, Node: SinD Intrinsic, Next: SnglQ Intrinsic, Prev: Signal Intrinsic (function), Up: Other Intrinsics ! 10.5.2.129 SinD Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL SinD' to use this name for an external ! procedure.  File: g77.info, Node: SnglQ Intrinsic, Next: SymLnk Intrinsic (function), Prev: SinD Intrinsic, Up: Other Intrinsics ! 10.5.2.130 SnglQ Intrinsic ! .......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL SnglQ' to use this name for an external ! procedure.  File: g77.info, Node: SymLnk Intrinsic (function), Next: System Intrinsic (function), Prev: SnglQ Intrinsic, Up: Other Intrinsics ! 10.5.2.131 SymLnk Intrinsic (function) ! ...................................... ! SymLnk(PATH1, PATH2) --- 16891,16918 ----  File: g77.info, Node: SinD Intrinsic, Next: SnglQ Intrinsic, Prev: Signal Intrinsic (function), Up: Other Intrinsics ! SinD Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL SinD' to use this name for an ! external procedure.  File: g77.info, Node: SnglQ Intrinsic, Next: SymLnk Intrinsic (function), Prev: SinD Intrinsic, Up: Other Intrinsics ! SnglQ Intrinsic ! ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL SnglQ' to use this name for an ! external procedure.  File: g77.info, Node: SymLnk Intrinsic (function), Next: System Intrinsic (function), Prev: SnglQ Intrinsic, Up: Other Intrinsics ! SymLnk Intrinsic (function) ! ........................... SymLnk(PATH1, PATH2) *************** Intrinsic (subroutine)::. *** 17174,17182 ****  File: g77.info, Node: System Intrinsic (function), Next: TanD Intrinsic, Prev: SymLnk Intrinsic (function), Up: Other Intrinsics ! 10.5.2.132 System Intrinsic (function) ! ...................................... ! System(COMMAND) --- 16941,16948 ----  File: g77.info, Node: System Intrinsic (function), Next: TanD Intrinsic, Prev: SymLnk Intrinsic (function), Up: Other Intrinsics ! System Intrinsic (function) ! ........................... System(COMMAND) *************** Intrinsic (subroutine)::. *** 17211,17229 ****  File: g77.info, Node: TanD Intrinsic, Next: Time Intrinsic (VXT), Prev: System Intrinsic (function), Up: Other Intrinsics ! 10.5.2.133 TanD Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL TanD' to use this name for an external ! procedure.  File: g77.info, Node: Time Intrinsic (VXT), Next: UMask Intrinsic (function), Prev: TanD Intrinsic, Up: Other Intrinsics ! 10.5.2.134 Time Intrinsic (VXT) ! ............................... ! CALL Time(TIME) --- 16977,16994 ----  File: g77.info, Node: TanD Intrinsic, Next: Time Intrinsic (VXT), Prev: System Intrinsic (function), Up: Other Intrinsics ! TanD Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL TanD' to use this name for an ! external procedure.  File: g77.info, Node: Time Intrinsic (VXT), Next: UMask Intrinsic (function), Prev: TanD Intrinsic, Up: Other Intrinsics ! Time Intrinsic (VXT) ! .................... CALL Time(TIME) *************** Intrinsic (UNIX)::. *** 17249,17257 ****  File: g77.info, Node: UMask Intrinsic (function), Next: Unlink Intrinsic (function), Prev: Time Intrinsic (VXT), Up: Other Intrinsics ! 10.5.2.135 UMask Intrinsic (function) ! ..................................... ! UMask(MASK) --- 17014,17021 ----  File: g77.info, Node: UMask Intrinsic (function), Next: Unlink Intrinsic (function), Prev: Time Intrinsic (VXT), Up: Other Intrinsics ! UMask Intrinsic (function) ! .......................... UMask(MASK) *************** Intrinsic (subroutine)::. *** 17275,17283 ****  File: g77.info, Node: Unlink Intrinsic (function), Next: ZExt Intrinsic, Prev: UMask Intrinsic (function), Up: Other Intrinsics ! 10.5.2.136 Unlink Intrinsic (function) ! ...................................... ! Unlink(FILE) --- 17039,17046 ----  File: g77.info, Node: Unlink Intrinsic (function), Next: ZExt Intrinsic, Prev: UMask Intrinsic (function), Up: Other Intrinsics ! Unlink Intrinsic (function) ! ........................... Unlink(FILE) *************** Intrinsic (subroutine)::. *** 17302,17327 ****  File: g77.info, Node: ZExt Intrinsic, Prev: Unlink Intrinsic (function), Up: Other Intrinsics ! 10.5.2.137 ZExt Intrinsic ! ......................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ZExt' to use this name for an external ! procedure.  File: g77.info, Node: Other Compilers, Next: Other Languages, Prev: Other Dialects, Up: Top ! 11 Other Compilers ! ****************** ! An individual Fortran source file can be compiled to an object (`*.o') ! file instead of to the final program executable. This allows several ! portions of a program to be compiled at different times and linked ! together whenever a new version of the program is needed. However, it ! introduces the issue of "object compatibility" across the various ! object files (and libraries, or `*.a' files) that are linked together ! to produce any particular executable file. Object compatibility is an issue when combining, in one program, Fortran code compiled by more than one compiler (or more than one --- 17065,17090 ----  File: g77.info, Node: ZExt Intrinsic, Prev: Unlink Intrinsic (function), Up: Other Intrinsics ! ZExt Intrinsic ! .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ZExt' to use this name for an ! external procedure.  File: g77.info, Node: Other Compilers, Next: Other Languages, Prev: Other Dialects, Up: Top ! Other Compilers ! *************** ! An individual Fortran source file can be compiled to an object ! (`*.o') file instead of to the final program executable. This allows ! several portions of a program to be compiled at different times and ! linked together whenever a new version of the program is needed. ! However, it introduces the issue of "object compatibility" across the ! various object files (and libraries, or `*.a' files) that are linked ! together to produce any particular executable file. Object compatibility is an issue when combining, in one program, Fortran code compiled by more than one compiler (or more than one *************** work!_ *** 17366,17377 ****  File: g77.info, Node: Dropping f2c Compatibility, Next: Compilers Other Than f2c, Up: Other Compilers ! 11.1 Dropping `f2c' Compatibility ! ================================= ! Specifying `-fno-f2c' allows `g77' to generate, in some cases, faster ! code, by not needing to allow to the possibility of linking with code ! compiled by `f2c'. For example, this affects how `REAL(KIND=1)', `COMPLEX(KIND=1)', and `COMPLEX(KIND=2)' functions are called. With `-fno-f2c', they are --- 17129,17140 ----  File: g77.info, Node: Dropping f2c Compatibility, Next: Compilers Other Than f2c, Up: Other Compilers ! Dropping `f2c' Compatibility ! ============================ ! Specifying `-fno-f2c' allows `g77' to generate, in some cases, ! faster code, by not needing to allow to the possibility of linking with ! code compiled by `f2c'. For example, this affects how `REAL(KIND=1)', `COMPLEX(KIND=1)', and `COMPLEX(KIND=2)' functions are called. With `-fno-f2c', they are *************** or some other as-yet-unused name.) *** 17426,17435 ****  File: g77.info, Node: Compilers Other Than f2c, Prev: Dropping f2c Compatibility, Up: Other Compilers ! 11.2 Compilers Other Than `f2c' ! =============================== ! On systems with Fortran compilers other than `f2c' and `g77', code compiled by `g77' is not expected to work well with code compiled by the native compiler. (This is true for `f2c'-compiled objects as well.) Libraries compiled with the native compiler probably will have to be --- 17189,17198 ----  File: g77.info, Node: Compilers Other Than f2c, Prev: Dropping f2c Compatibility, Up: Other Compilers ! Compilers Other Than `f2c' ! ========================== ! On systems with Fortran compilers other than `f2c' and `g77', code compiled by `g77' is not expected to work well with code compiled by the native compiler. (This is true for `f2c'-compiled objects as well.) Libraries compiled with the native compiler probably will have to be *************** recompiled with `g77' to be used with `g *** 17464,17473 ****  File: g77.info, Node: Other Languages, Next: Debugging and Interfacing, Prev: Other Compilers, Up: Top ! 12 Other Languages ! ****************** ! _Note: This portion of the documentation definitely needs a lot of work!_ * Menu: --- 17227,17236 ----  File: g77.info, Node: Other Languages, Next: Debugging and Interfacing, Prev: Other Compilers, Up: Top ! Other Languages ! *************** ! _Note: This portion of the documentation definitely needs a lot of work!_ * Menu: *************** work!_ *** 17477,17486 ****  File: g77.info, Node: Interoperating with C and C++, Up: Other Languages ! 12.1 Tools and advice for interoperating with C and C++ ! ======================================================= ! The following discussion assumes that you are running `g77' in `f2c' compatibility mode, i.e. not using `-fno-f2c'. It provides some advice about quick and simple techniques for linking Fortran and C (or C++), the most common requirement. For the full story consult the --- 17240,17249 ----  File: g77.info, Node: Interoperating with C and C++, Up: Other Languages ! Tools and advice for interoperating with C and C++ ! ================================================== ! The following discussion assumes that you are running `g77' in `f2c' compatibility mode, i.e. not using `-fno-f2c'. It provides some advice about quick and simple techniques for linking Fortran and C (or C++), the most common requirement. For the full story consult the *************** running `g77 -v'. *** 17504,17513 ****  File: g77.info, Node: C Interfacing Tools, Next: C Access to Type Information, Up: Interoperating with C and C++ ! 12.1.1 C Interfacing Tools ! -------------------------- ! Even if you don't actually use it as a compiler, `f2c' from `ftp://ftp.netlib.org/f2c/src', can be a useful tool when you're interfacing (linking) Fortran and C. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes. --- 17267,17276 ----  File: g77.info, Node: C Interfacing Tools, Next: C Access to Type Information, Up: Interoperating with C and C++ ! C Interfacing Tools ! ------------------- ! Even if you don't actually use it as a compiler, `f2c' from `ftp://ftp.netlib.org/f2c/src', can be a useful tool when you're interfacing (linking) Fortran and C. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes. *************** between Fortran and C. It can be used i *** 17526,17550 ****  File: g77.info, Node: C Access to Type Information, Next: f2c Skeletons and Prototypes, Prev: C Interfacing Tools, Up: Interoperating with C and C++ ! 12.1.2 Accessing Type Information in C ! -------------------------------------- ! Generally, C code written to link with `g77' code--calling and/or being ! called from Fortran--should `#include ' to define the C versions ! of the Fortran types. Don't assume Fortran `INTEGER' types correspond ! to C `int's, for instance; instead, declare them as `integer', a type ! defined by `g2c.h'. `g2c.h' is installed where `gcc' will find it by ! default, assuming you use a copy of `gcc' compatible with `g77', ! probably built at the same time as `g77'.  File: g77.info, Node: f2c Skeletons and Prototypes, Next: C++ Considerations, Prev: C Access to Type Information, Up: Interoperating with C and C++ ! 12.1.3 Generating Skeletons and Prototypes with `f2c' ! ----------------------------------------------------- ! A simple and foolproof way to write `g77'-callable C routines--e.g. to ! interface with an existing library--is to write a file (named, for example, `fred.f') of dummy Fortran skeletons comprising just the declaration of the routine(s) and dummy arguments plus `END' statements. Then run `f2c' on file `fred.f' to produce `fred.c' into which you can --- 17289,17313 ----  File: g77.info, Node: C Access to Type Information, Next: f2c Skeletons and Prototypes, Prev: C Interfacing Tools, Up: Interoperating with C and C++ ! Accessing Type Information in C ! ------------------------------- ! Generally, C code written to link with `g77' code--calling and/or ! being called from Fortran--should `#include ' to define the C ! versions of the Fortran types. Don't assume Fortran `INTEGER' types ! correspond to C `int's, for instance; instead, declare them as ! `integer', a type defined by `g2c.h'. `g2c.h' is installed where `gcc' ! will find it by default, assuming you use a copy of `gcc' compatible ! with `g77', probably built at the same time as `g77'.  File: g77.info, Node: f2c Skeletons and Prototypes, Next: C++ Considerations, Prev: C Access to Type Information, Up: Interoperating with C and C++ ! Generating Skeletons and Prototypes with `f2c' ! ---------------------------------------------- ! A simple and foolproof way to write `g77'-callable C routines--e.g. ! to interface with an existing library--is to write a file (named, for example, `fred.f') of dummy Fortran skeletons comprising just the declaration of the routine(s) and dummy arguments plus `END' statements. Then run `f2c' on file `fred.f' to produce `fred.c' into which you can *************** consistency checking of dummy and actual *** 17574,17584 ****  File: g77.info, Node: C++ Considerations, Next: Startup Code, Prev: f2c Skeletons and Prototypes, Up: Interoperating with C and C++ ! 12.1.4 C++ Considerations ! ------------------------- ! `f2c' can be used to generate suitable code for compilation with a C++ ! system using the `-C++' option. The important thing about linking `g77'-compiled code with C++ is that the prototypes for the `g77' routines must specify C linkage to avoid name mangling. So, use an `extern "C"' declaration. `f2c''s `-C++' option will not take care of --- 17337,17347 ----  File: g77.info, Node: C++ Considerations, Next: Startup Code, Prev: f2c Skeletons and Prototypes, Up: Interoperating with C and C++ ! C++ Considerations ! ------------------ ! `f2c' can be used to generate suitable code for compilation with a ! C++ system using the `-C++' option. The important thing about linking `g77'-compiled code with C++ is that the prototypes for the `g77' routines must specify C linkage to avoid name mangling. So, use an `extern "C"' declaration. `f2c''s `-C++' option will not take care of *************** will avoid clashes with C++ reserved wor *** 17588,17597 ****  File: g77.info, Node: Startup Code, Prev: C++ Considerations, Up: Interoperating with C and C++ ! 12.1.5 Startup Code ! ------------------- ! Unlike with some runtime systems, it shouldn't be necessary (unless there are bugs) to use a Fortran main program unit to ensure the runtime--specifically the I/O system--is initialized. --- 17351,17360 ----  File: g77.info, Node: Startup Code, Prev: C++ Considerations, Up: Interoperating with C and C++ ! Startup Code ! ------------ ! Unlike with some runtime systems, it shouldn't be necessary (unless there are bugs) to use a Fortran main program unit to ensure the runtime--specifically the I/O system--is initialized. *************** open-code (inline) references to `IARGC' *** 17699,17712 ****  File: g77.info, Node: Debugging and Interfacing, Next: Collected Fortran Wisdom, Prev: Other Languages, Up: Top ! 13 Debugging and Interfacing ! **************************** ! GNU Fortran currently generates code that is object-compatible with the ! `f2c' converter. Also, it avoids limitations in the current GBE, such ! as the inability to generate a procedure with multiple entry points, by ! generating code that is structured differently (in terms of procedure ! names, scopes, arguments, and so on) than might be expected. As a result, writing code in other languages that calls on, is called by, or shares in-memory data with `g77'-compiled code generally --- 17462,17475 ----  File: g77.info, Node: Debugging and Interfacing, Next: Collected Fortran Wisdom, Prev: Other Languages, Up: Top ! Debugging and Interfacing ! ************************* ! GNU Fortran currently generates code that is object-compatible with ! the `f2c' converter. Also, it avoids limitations in the current GBE, ! such as the inability to generate a procedure with multiple entry ! points, by generating code that is structured differently (in terms of ! procedure names, scopes, arguments, and so on) than might be expected. As a result, writing code in other languages that calls on, is called by, or shares in-memory data with `g77'-compiled code generally *************** described in this section. *** 17753,17762 ****  File: g77.info, Node: Main Program Unit, Next: Procedures, Up: Debugging and Interfacing ! 13.1 Main Program Unit (PROGRAM) ! ================================ ! When `g77' compiles a main program unit, it gives it the public procedure name `MAIN__'. The `libg2c' library has the actual `main()' procedure as is typical of C-based environments, and it is this procedure that performs some initial start-up activity and then calls --- 17516,17525 ----  File: g77.info, Node: Main Program Unit, Next: Procedures, Up: Debugging and Interfacing ! Main Program Unit (PROGRAM) ! =========================== ! When `g77' compiles a main program unit, it gives it the public procedure name `MAIN__'. The `libg2c' library has the actual `main()' procedure as is typical of C-based environments, and it is this procedure that performs some initial start-up activity and then calls *************** breaking at `MAIN__', that should work f *** 17809,17818 ****  File: g77.info, Node: Procedures, Next: Functions, Prev: Main Program Unit, Up: Debugging and Interfacing ! 13.2 Procedures (SUBROUTINE and FUNCTION) ! ========================================= ! Currently, `g77' passes arguments via reference--specifically, by passing a pointer to the location in memory of a variable, array, array element, a temporary location that holds the result of evaluating an expression, or a temporary or permanent location that holds the value --- 17572,17581 ----  File: g77.info, Node: Procedures, Next: Functions, Prev: Main Program Unit, Up: Debugging and Interfacing ! Procedures (SUBROUTINE and FUNCTION) ! ==================================== ! Currently, `g77' passes arguments via reference--specifically, by passing a pointer to the location in memory of a variable, array, array element, a temporary location that holds the result of evaluating an expression, or a temporary or permanent location that holds the value *************** appear. *** 17872,17881 ****  File: g77.info, Node: Functions, Next: Names, Prev: Procedures, Up: Debugging and Interfacing ! 13.3 Functions (FUNCTION and RETURN) ! ==================================== ! `g77' handles in a special way functions that return the following types: * `CHARACTER' --- 17635,17644 ----  File: g77.info, Node: Functions, Next: Names, Prev: Procedures, Up: Debugging and Interfacing ! Functions (FUNCTION and RETURN) ! =============================== ! `g77' handles in a special way functions that return the following types: * `CHARACTER' *************** type). When `-fno-f2c' is in force, `RE *** 17911,17923 ****  File: g77.info, Node: Names, Next: Common Blocks, Prev: Functions, Up: Debugging and Interfacing ! 13.4 Names ! ========== ! Fortran permits each implementation to decide how to represent names as ! far as how they're seen in other contexts, such as debuggers and when ! interfacing to other languages, and especially as far as how casing is ! handled. External names--names of entities that are public, or "accessible", to all modules in a program--normally have an underscore (`_') appended --- 17674,17686 ----  File: g77.info, Node: Names, Next: Common Blocks, Prev: Functions, Up: Debugging and Interfacing ! Names ! ===== ! Fortran permits each implementation to decide how to represent names ! as far as how they're seen in other contexts, such as debuggers and ! when interfacing to other languages, and especially as far as how ! casing is handled. External names--names of entities that are public, or "accessible", to all modules in a program--normally have an underscore (`_') appended *************** be used to inhibit the appending of the *** 17987,18005 ****  File: g77.info, Node: Common Blocks, Next: Local Equivalence Areas, Prev: Names, Up: Debugging and Interfacing ! 13.5 Common Blocks (COMMON) ! =========================== ! `g77' names and lays out `COMMON' areas the same way `f2c' does, for compatibility with `f2c'.  File: g77.info, Node: Local Equivalence Areas, Next: Complex Variables, Prev: Common Blocks, Up: Debugging and Interfacing ! 13.6 Local Equivalence Areas (EQUIVALENCE) ! ========================================== ! `g77' treats storage-associated areas involving a `COMMON' block as explained in the section on common blocks. A local `EQUIVALENCE' area is a collection of variables and arrays --- 17750,17768 ----  File: g77.info, Node: Common Blocks, Next: Local Equivalence Areas, Prev: Names, Up: Debugging and Interfacing ! Common Blocks (COMMON) ! ====================== ! `g77' names and lays out `COMMON' areas the same way `f2c' does, for compatibility with `f2c'.  File: g77.info, Node: Local Equivalence Areas, Next: Complex Variables, Prev: Common Blocks, Up: Debugging and Interfacing ! Local Equivalence Areas (EQUIVALENCE) ! ===================================== ! `g77' treats storage-associated areas involving a `COMMON' block as explained in the section on common blocks. A local `EQUIVALENCE' area is a collection of variables and arrays *************** documentation.) *** 18018,18029 ****  File: g77.info, Node: Complex Variables, Next: Arrays, Prev: Local Equivalence Areas, Up: Debugging and Interfacing ! 13.7 Complex Variables (COMPLEX) ! ================================ ! As of 0.5.20, `g77' defaults to handling `COMPLEX' types (and related ! intrinsics, constants, functions, and so on) in a manner that makes ! direct debugging involving these types in Fortran language mode difficult. Essentially, `g77' implements these types using an internal --- 17781,17792 ----  File: g77.info, Node: Complex Variables, Next: Arrays, Prev: Local Equivalence Areas, Up: Debugging and Interfacing ! Complex Variables (COMPLEX) ! =========================== ! As of 0.5.20, `g77' defaults to handling `COMPLEX' types (and ! related intrinsics, constants, functions, and so on) in a manner that ! makes direct debugging involving these types in Fortran language mode difficult. Essentially, `g77' implements these types using an internal *************** afterward. (In `gdb', this is accomplis *** 18044,18054 ****  File: g77.info, Node: Arrays, Next: Adjustable Arrays, Prev: Complex Variables, Up: Debugging and Interfacing ! 13.8 Arrays (DIMENSION) ! ======================= ! Fortran uses "column-major ordering" in its arrays. This differs from ! other languages, such as C, which use "row-major ordering". The difference is that, with Fortran, array elements adjacent to each other in memory differ in the _first_ subscript instead of the last; `A(5,10,20)' immediately follows `A(4,10,20)', whereas with row-major --- 17807,17817 ----  File: g77.info, Node: Arrays, Next: Adjustable Arrays, Prev: Complex Variables, Up: Debugging and Interfacing ! Arrays (DIMENSION) ! ================== ! Fortran uses "column-major ordering" in its arrays. This differs ! from other languages, such as C, which use "row-major ordering". The difference is that, with Fortran, array elements adjacent to each other in memory differ in the _first_ subscript instead of the last; `A(5,10,20)' immediately follows `A(4,10,20)', whereas with row-major *************** subscripts equal to the corresponding lo *** 18114,18123 ****  File: g77.info, Node: Adjustable Arrays, Next: Alternate Entry Points, Prev: Arrays, Up: Debugging and Interfacing ! 13.9 Adjustable Arrays (DIMENSION) ! ================================== ! Adjustable and automatic arrays in Fortran require the implementation (in this case, the `g77' compiler) to "memorize" the expressions that dimension the arrays each time the procedure is invoked. This is so that subsequent changes to variables used in those expressions, made --- 17877,17886 ----  File: g77.info, Node: Adjustable Arrays, Next: Alternate Entry Points, Prev: Arrays, Up: Debugging and Interfacing ! Adjustable Arrays (DIMENSION) ! ============================= ! Adjustable and automatic arrays in Fortran require the implementation (in this case, the `g77' compiler) to "memorize" the expressions that dimension the arrays each time the procedure is invoked. This is so that subsequent changes to variables used in those expressions, made *************** the future!) *** 18179,18188 ****  File: g77.info, Node: Alternate Entry Points, Next: Alternate Returns, Prev: Adjustable Arrays, Up: Debugging and Interfacing ! 13.10 Alternate Entry Points (ENTRY) ! ==================================== ! The GBE does not understand the general concept of alternate entry points as Fortran provides via the ENTRY statement. `g77' gets around this by using an approach to compiling procedures having at least one `ENTRY' statement that is almost identical to the approach used by --- 17942,17951 ----  File: g77.info, Node: Alternate Entry Points, Next: Alternate Returns, Prev: Adjustable Arrays, Up: Debugging and Interfacing ! Alternate Entry Points (ENTRY) ! ============================== ! The GBE does not understand the general concept of alternate entry points as Fortran provides via the ENTRY statement. `g77' gets around this by using an approach to compiling procedures having at least one `ENTRY' statement that is almost identical to the approach used by *************** function. *** 18315,18324 ****  File: g77.info, Node: Alternate Returns, Next: Assigned Statement Labels, Prev: Alternate Entry Points, Up: Debugging and Interfacing ! 13.11 Alternate Returns (SUBROUTINE and RETURN) ! =============================================== ! Subroutines with alternate returns (e.g. `SUBROUTINE X(*)' and `CALL X(*50)') are implemented by `g77' as functions returning the C `int' type. The actual alternate-return arguments are omitted from the calling sequence. Instead, the caller uses the return value to do a --- 18078,18087 ----  File: g77.info, Node: Alternate Returns, Next: Assigned Statement Labels, Prev: Alternate Entry Points, Up: Debugging and Interfacing ! Alternate Returns (SUBROUTINE and RETURN) ! ========================================= ! Subroutines with alternate returns (e.g. `SUBROUTINE X(*)' and `CALL X(*50)') are implemented by `g77' as functions returning the C `int' type. The actual alternate-return arguments are omitted from the calling sequence. Instead, the caller uses the return value to do a *************** C, and `RETURN' by itself is `X = 0' and *** 18332,18346 ****  File: g77.info, Node: Assigned Statement Labels, Next: Run-time Library Errors, Prev: Alternate Returns, Up: Debugging and Interfacing ! 13.12 Assigned Statement Labels (ASSIGN and GOTO) ! ================================================= ! For portability to machines where a pointer (such as to a label, which ! is how `g77' implements `ASSIGN' and its relatives, the assigned-`GOTO' ! and assigned-`FORMAT'-I/O statements) is wider (bitwise) than an ! `INTEGER(KIND=1)', `g77' uses a different memory location to hold the ! `ASSIGN'ed value of a variable than it does the numerical value in that ! variable, unless the variable is wide enough (can hold enough bits). In particular, while `g77' implements --- 18095,18110 ----  File: g77.info, Node: Assigned Statement Labels, Next: Run-time Library Errors, Prev: Alternate Returns, Up: Debugging and Interfacing ! Assigned Statement Labels (ASSIGN and GOTO) ! =========================================== ! For portability to machines where a pointer (such as to a label, ! which is how `g77' implements `ASSIGN' and its relatives, the ! assigned-`GOTO' and assigned-`FORMAT'-I/O statements) is wider ! (bitwise) than an `INTEGER(KIND=1)', `g77' uses a different memory ! location to hold the `ASSIGN'ed value of a variable than it does the ! numerical value in that variable, unless the variable is wide enough ! (can hold enough bits). In particular, while `g77' implements *************** assigned-label uses of a variable. *** 18373,18383 ****  File: g77.info, Node: Run-time Library Errors, Prev: Assigned Statement Labels, Up: Debugging and Interfacing ! 13.13 Run-time Library Errors ! ============================= ! The `libg2c' library currently has the following table to relate error ! code numbers, returned in `IOSTAT=' variables, to messages. This information should, in future versions of this document, be expanded upon to include detailed descriptions of each message. --- 18137,18147 ----  File: g77.info, Node: Run-time Library Errors, Prev: Assigned Statement Labels, Up: Debugging and Interfacing ! Run-time Library Errors ! ======================= ! The `libg2c' library currently has the following table to relate ! error code numbers, returned in `IOSTAT=' variables, to messages. This information should, in future versions of this document, be expanded upon to include detailed descriptions of each message. *************** actual numbers in the future. *** 18426,18435 ****  File: g77.info, Node: Collected Fortran Wisdom, Next: Trouble, Prev: Debugging and Interfacing, Up: Top ! 14 Collected Fortran Wisdom ! *************************** ! Most users of `g77' can be divided into two camps: * Those writing new Fortran code to be compiled by `g77'. --- 18190,18199 ----  File: g77.info, Node: Collected Fortran Wisdom, Next: Trouble, Prev: Debugging and Interfacing, Up: Top ! Collected Fortran Wisdom ! ************************ ! Most users of `g77' can be divided into two camps: * Those writing new Fortran code to be compiled by `g77'. *************** as well. *** 18462,18471 ****  File: g77.info, Node: Advantages Over f2c, Next: Block Data and Libraries, Up: Collected Fortran Wisdom ! 14.1 Advantages Over f2c ! ======================== ! Without `f2c', `g77' would have taken much longer to do and probably not been as good for quite a while. Sometimes people who notice how much `g77' depends on, and documents encouragement to use, `f2c' ask why `g77' was created if `f2c' already existed. --- 18226,18235 ----  File: g77.info, Node: Advantages Over f2c, Next: Block Data and Libraries, Up: Collected Fortran Wisdom ! Advantages Over f2c ! =================== ! Without `f2c', `g77' would have taken much longer to do and probably not been as good for quite a while. Sometimes people who notice how much `g77' depends on, and documents encouragement to use, `f2c' ask why `g77' was created if `f2c' already existed. *************** is not intended to be comprehensive. *** 18486,18495 ****  File: g77.info, Node: Language Extensions, Next: Diagnostic Abilities, Up: Advantages Over f2c ! 14.1.1 Language Extensions ! -------------------------- ! `g77' offers several extensions to FORTRAN 77 language that `f2c' doesn't: * Automatic arrays --- 18250,18259 ----  File: g77.info, Node: Language Extensions, Next: Diagnostic Abilities, Up: Advantages Over f2c ! Language Extensions ! ------------------- ! `g77' offers several extensions to FORTRAN 77 language that `f2c' doesn't: * Automatic arrays *************** features at some time in the future. *** 18530,18539 ****  File: g77.info, Node: Diagnostic Abilities, Next: Compiler Options, Prev: Language Extensions, Up: Advantages Over f2c ! 14.1.2 Diagnostic Abilities ! --------------------------- ! `g77' offers better diagnosis of problems in `FORMAT' statements. `f2c' doesn't, for example, emit any diagnostic for `FORMAT(XZFAJG10324)', leaving that to be diagnosed, at run time, by the `libf2c' run-time library. --- 18294,18303 ----  File: g77.info, Node: Diagnostic Abilities, Next: Compiler Options, Prev: Language Extensions, Up: Advantages Over f2c ! Diagnostic Abilities ! -------------------- ! `g77' offers better diagnosis of problems in `FORMAT' statements. `f2c' doesn't, for example, emit any diagnostic for `FORMAT(XZFAJG10324)', leaving that to be diagnosed, at run time, by the `libf2c' run-time library. *************** the `libf2c' run-time library. *** 18541,18550 ****  File: g77.info, Node: Compiler Options, Next: Compiler Speed, Prev: Diagnostic Abilities, Up: Advantages Over f2c ! 14.1.3 Compiler Options ! ----------------------- ! `g77' offers compiler options that `f2c' doesn't, most of which are designed to more easily accommodate legacy code: * Two that control the automatic appending of extra underscores to --- 18305,18314 ----  File: g77.info, Node: Compiler Options, Next: Compiler Speed, Prev: Diagnostic Abilities, Up: Advantages Over f2c ! Compiler Options ! ---------------- ! `g77' offers compiler options that `f2c' doesn't, most of which are designed to more easily accommodate legacy code: * Two that control the automatic appending of extra underscores to *************** some time in the future. *** 18572,18581 ****  File: g77.info, Node: Compiler Speed, Next: Program Speed, Prev: Compiler Options, Up: Advantages Over f2c ! 14.1.4 Compiler Speed ! --------------------- ! Saving the steps of writing and then rereading C code is a big reason why `g77' should be able to compile code much faster than using `f2c' in conjunction with the equivalent invocation of `gcc'. --- 18336,18345 ----  File: g77.info, Node: Compiler Speed, Next: Program Speed, Prev: Compiler Options, Up: Advantages Over f2c ! Compiler Speed ! -------------- ! Saving the steps of writing and then rereading C code is a big reason why `g77' should be able to compile code much faster than using `f2c' in conjunction with the equivalent invocation of `gcc'. *************** with `gcc'. *** 18589,18599 ****  File: g77.info, Node: Program Speed, Next: Ease of Debugging, Prev: Compiler Speed, Up: Advantages Over f2c ! 14.1.5 Program Speed ! -------------------- ! `g77' has the potential to better optimize code than `f2c', even when ! `gcc' is used to compile the output of `f2c', because `f2c' must necessarily translate Fortran into a somewhat lower-level language (C) that cannot preserve all the information that is potentially useful for optimization, while `g77' can gather, preserve, and transmit that --- 18353,18363 ----  File: g77.info, Node: Program Speed, Next: Ease of Debugging, Prev: Compiler Speed, Up: Advantages Over f2c ! Program Speed ! ------------- ! `g77' has the potential to better optimize code than `f2c', even ! when `gcc' is used to compile the output of `f2c', because `f2c' must necessarily translate Fortran into a somewhat lower-level language (C) that cannot preserve all the information that is potentially useful for optimization, while `g77' can gather, preserve, and transmit that *************** available in an upcoming release of `gcc *** 18623,18634 ****  File: g77.info, Node: Ease of Debugging, Next: Character and Hollerith Constants, Prev: Program Speed, Up: Advantages Over f2c ! 14.1.6 Ease of Debugging ! ------------------------ ! Because `g77' compiles directly to assembler code like `gcc', instead ! of translating to an intermediate language (C) as does `f2c', support ! for debugging can be better for `g77' than `f2c'. However, although `g77' might be somewhat more "native" in terms of debugging support than `f2c' plus `gcc', there still are a lot of --- 18387,18398 ----  File: g77.info, Node: Ease of Debugging, Next: Character and Hollerith Constants, Prev: Program Speed, Up: Advantages Over f2c ! Ease of Debugging ! ----------------- ! Because `g77' compiles directly to assembler code like `gcc', ! instead of translating to an intermediate language (C) as does `f2c', ! support for debugging can be better for `g77' than `f2c'. However, although `g77' might be somewhat more "native" in terms of debugging support than `f2c' plus `gcc', there still are a lot of *************** finding help improving the other product *** 18671,18684 ****  File: g77.info, Node: Character and Hollerith Constants, Prev: Ease of Debugging, Up: Advantages Over f2c ! 14.1.7 Character and Hollerith Constants ! ---------------------------------------- ! To avoid the extensive hassle that would be needed to avoid this, `f2c' ! uses C character constants to encode character and Hollerith constants. ! That means a constant like `'HELLO'' is translated to `"hello"' in C, ! which further means that an extra null byte is present at the end of ! the constant. This null byte is superfluous. `g77' does not generate such null bytes. This represents significant savings of resources, such as on systems where `/dev/null' or --- 18435,18448 ----  File: g77.info, Node: Character and Hollerith Constants, Prev: Ease of Debugging, Up: Advantages Over f2c ! Character and Hollerith Constants ! --------------------------------- ! To avoid the extensive hassle that would be needed to avoid this, ! `f2c' uses C character constants to encode character and Hollerith ! constants. That means a constant like `'HELLO'' is translated to ! `"hello"' in C, which further means that an extra null byte is present ! at the end of the constant. This null byte is superfluous. `g77' does not generate such null bytes. This represents significant savings of resources, such as on systems where `/dev/null' or *************** patent on the digits 0 and 1 is upheld.) *** 18691,18703 ****  File: g77.info, Node: Block Data and Libraries, Next: Loops, Prev: Advantages Over f2c, Up: Collected Fortran Wisdom ! 14.2 Block Data and Libraries ! ============================= ! To ensure that block data program units are linked, especially a concern ! when they are put into libraries, give each one a name (as in `BLOCK ! DATA FOO') and make sure there is an `EXTERNAL FOO' statement in every ! program unit that uses any common block initialized by the corresponding `BLOCK DATA'. `g77' currently compiles a `BLOCK DATA' as if it were a `SUBROUTINE', that is, it generates an actual procedure having the appropriate name. The procedure does nothing but return --- 18455,18467 ----  File: g77.info, Node: Block Data and Libraries, Next: Loops, Prev: Advantages Over f2c, Up: Collected Fortran Wisdom ! Block Data and Libraries ! ======================== ! To ensure that block data program units are linked, especially a ! concern when they are put into libraries, give each one a name (as in ! `BLOCK DATA FOO') and make sure there is an `EXTERNAL FOO' statement in ! every program unit that uses any common block initialized by the corresponding `BLOCK DATA'. `g77' currently compiles a `BLOCK DATA' as if it were a `SUBROUTINE', that is, it generates an actual procedure having the appropriate name. The procedure does nothing but return *************** executable program. *** 18766,18775 ****  File: g77.info, Node: Loops, Next: Working Programs, Prev: Block Data and Libraries, Up: Collected Fortran Wisdom ! 14.3 Loops ! ========== ! The meaning of a `DO' loop in Fortran is precisely specified in the Fortran standard...and is quite different from what many programmers might expect. --- 18530,18539 ----  File: g77.info, Node: Loops, Next: Working Programs, Prev: Block Data and Libraries, Up: Collected Fortran Wisdom ! Loops ! ===== ! The meaning of a `DO' loop in Fortran is precisely specified in the Fortran standard...and is quite different from what many programmers might expect. *************** information on this option. *** 18898,18907 ****  File: g77.info, Node: Working Programs, Next: Overly Convenient Options, Prev: Loops, Up: Collected Fortran Wisdom ! 14.4 Working Programs ! ===================== ! Getting Fortran programs to work in the first place can be quite a challenge--even when the programs already work on other systems, or when using other compilers. --- 18662,18671 ----  File: g77.info, Node: Working Programs, Next: Overly Convenient Options, Prev: Loops, Up: Collected Fortran Wisdom ! Working Programs ! ================ ! Getting Fortran programs to work in the first place can be quite a challenge--even when the programs already work on other systems, or when using other compilers. *************** bugs in such programs. *** 18925,18935 ****  File: g77.info, Node: Not My Type, Next: Variables Assumed To Be Zero, Up: Working Programs ! 14.4.1 Not My Type ! ------------------ ! A fruitful source of bugs in Fortran source code is use, or mis-use, of ! Fortran's implicit-typing feature, whereby the type of a variable, array, or function is determined by the first character of its name. Simple cases of this include statements like `LOGX=9.227', without a --- 18689,18699 ----  File: g77.info, Node: Not My Type, Next: Variables Assumed To Be Zero, Up: Working Programs ! Not My Type ! ----------- ! A fruitful source of bugs in Fortran source code is use, or mis-use, ! of Fortran's implicit-typing feature, whereby the type of a variable, array, or function is determined by the first character of its name. Simple cases of this include statements like `LOGX=9.227', without a *************** evaluated. (In this particular case, th *** 18965,18977 ****  File: g77.info, Node: Variables Assumed To Be Zero, Next: Variables Assumed To Be Saved, Prev: Not My Type, Up: Working Programs ! 14.4.2 Variables Assumed To Be Zero ! ----------------------------------- ! Many Fortran programs were developed on systems that provided automatic ! initialization of all, or some, variables and arrays to zero. As a ! result, many of these programs depend, sometimes inadvertently, on this ! behavior, though to do so violates the Fortran standards. You can ask `g77' for this behavior by specifying the `-finit-local-zero' option when compiling Fortran code. (You might --- 18729,18741 ----  File: g77.info, Node: Variables Assumed To Be Zero, Next: Variables Assumed To Be Saved, Prev: Not My Type, Up: Working Programs ! Variables Assumed To Be Zero ! ---------------------------- ! Many Fortran programs were developed on systems that provided ! automatic initialization of all, or some, variables and arrays to zero. ! As a result, many of these programs depend, sometimes inadvertently, on ! this behavior, though to do so violates the Fortran standards. You can ask `g77' for this behavior by specifying the `-finit-local-zero' option when compiling Fortran code. (You might *************** fixing them, using techniques such as co *** 18988,18999 ****  File: g77.info, Node: Variables Assumed To Be Saved, Next: Unwanted Variables, Prev: Variables Assumed To Be Zero, Up: Working Programs ! 14.4.3 Variables Assumed To Be Saved ! ------------------------------------ ! Many Fortran programs were developed on systems that saved the values ! of all, or some, variables and arrays across procedure calls. As a ! result, many of these programs depend, sometimes inadvertently, on being able to assign a value to a variable, perform a `RETURN' to a calling procedure, and, upon subsequent invocation, reference the previously assigned variable to obtain the value. --- 18752,18763 ----  File: g77.info, Node: Variables Assumed To Be Saved, Next: Unwanted Variables, Prev: Variables Assumed To Be Zero, Up: Working Programs ! Variables Assumed To Be Saved ! ----------------------------- ! Many Fortran programs were developed on systems that saved the ! values of all, or some, variables and arrays across procedure calls. ! As a result, many of these programs depend, sometimes inadvertently, on being able to assign a value to a variable, perform a `RETURN' to a calling procedure, and, upon subsequent invocation, reference the previously assigned variable to obtain the value. *************** as compiling with the `-O -Wuninitialize *** 19016,19029 ****  File: g77.info, Node: Unwanted Variables, Next: Unused Arguments, Prev: Variables Assumed To Be Saved, Up: Working Programs ! 14.4.4 Unwanted Variables ! ------------------------- ! The `-Wunused' option can find bugs involving implicit typing, sometimes ! more easily than using `-Wimplicit' in code that makes heavy use of ! implicit typing. An unused variable or array might indicate that the ! spelling for its declaration is different from that of its intended ! uses. Other than cases involving typos, unused variables rarely indicate actual bugs in a program. However, investigating such cases thoroughly --- 18780,18793 ----  File: g77.info, Node: Unwanted Variables, Next: Unused Arguments, Prev: Variables Assumed To Be Saved, Up: Working Programs ! Unwanted Variables ! ------------------ ! The `-Wunused' option can find bugs involving implicit typing, ! sometimes more easily than using `-Wimplicit' in code that makes heavy ! use of implicit typing. An unused variable or array might indicate ! that the spelling for its declaration is different from that of its ! intended uses. Other than cases involving typos, unused variables rarely indicate actual bugs in a program. However, investigating such cases thoroughly *************** algorithm, then got distracted and forgo *** 19035,19044 ****  File: g77.info, Node: Unused Arguments, Next: Surprising Interpretations of Code, Prev: Unwanted Variables, Up: Working Programs ! 14.4.5 Unused Arguments ! ----------------------- ! As with unused variables, It is possible that unused arguments to a procedure might indicate a bug. Compile with `-W -Wunused' option to catch cases of unused arguments. --- 18799,18808 ----  File: g77.info, Node: Unused Arguments, Next: Surprising Interpretations of Code, Prev: Unwanted Variables, Up: Working Programs ! Unused Arguments ! ---------------- ! As with unused variables, It is possible that unused arguments to a procedure might indicate a bug. Compile with `-W -Wunused' option to catch cases of unused arguments. *************** floating-point constants under certain c *** 19048,19057 ****  File: g77.info, Node: Surprising Interpretations of Code, Next: Aliasing Assumed To Work, Prev: Unused Arguments, Up: Working Programs ! 14.4.6 Surprising Interpretations of Code ! ----------------------------------------- ! The `-Wsurprising' option can help find bugs involving expression evaluation or in the way `DO' loops with non-integral iteration variables are handled. Cases found by this option might indicate a difference of interpretation between the author of the code involved, --- 18812,18821 ----  File: g77.info, Node: Surprising Interpretations of Code, Next: Aliasing Assumed To Work, Prev: Unused Arguments, Up: Working Programs ! Surprising Interpretations of Code ! ---------------------------------- ! The `-Wsurprising' option can help find bugs involving expression evaluation or in the way `DO' loops with non-integral iteration variables are handled. Cases found by this option might indicate a difference of interpretation between the author of the code involved, *************** especially if such changes make the prog *** 19066,19075 ****  File: g77.info, Node: Aliasing Assumed To Work, Next: Output Assumed To Flush, Prev: Surprising Interpretations of Code, Up: Working Programs ! 14.4.7 Aliasing Assumed To Work ! ------------------------------- ! The `-falias-check', `-fargument-alias', `-fargument-noalias', and `-fno-argument-noalias-global' options, introduced in version 0.5.20 and `g77''s version 2.7.2.2.f.2 of `gcc', were withdrawn as of `g77' version 0.5.23 due to their not being supported by `gcc' version 2.8. --- 18830,18839 ----  File: g77.info, Node: Aliasing Assumed To Work, Next: Output Assumed To Flush, Prev: Surprising Interpretations of Code, Up: Working Programs ! Aliasing Assumed To Work ! ------------------------ ! The `-falias-check', `-fargument-alias', `-fargument-noalias', and `-fno-argument-noalias-global' options, introduced in version 0.5.20 and `g77''s version 2.7.2.2.f.2 of `gcc', were withdrawn as of `g77' version 0.5.23 due to their not being supported by `gcc' version 2.8. *************** results when executed: *** 19135,19141 **** CALL FOO(I, I) PRINT *, I END ! SUBROUTINE FOO(J, K) J = J + K K = J * K --- 18899,18905 ---- CALL FOO(I, I) PRINT *, I END ! SUBROUTINE FOO(J, K) J = J + K K = J * K *************** of detection are welcome. *** 19203,19214 ****  File: g77.info, Node: Output Assumed To Flush, Next: Large File Unit Numbers, Prev: Aliasing Assumed To Work, Up: Working Programs ! 14.4.8 Output Assumed To Flush ! ------------------------------ ! For several versions prior to 0.5.20, `g77' configured its version of ! the `libf2c' run-time library so that one of its configuration macros, ! `ALWAYS_FLUSH', was defined. This was done as a result of a belief that many programs expected output to be flushed to the operating system (under UNIX, via the --- 18967,18978 ----  File: g77.info, Node: Output Assumed To Flush, Next: Large File Unit Numbers, Prev: Aliasing Assumed To Work, Up: Working Programs ! Output Assumed To Flush ! ----------------------- ! For several versions prior to 0.5.20, `g77' configured its version ! of the `libf2c' run-time library so that one of its configuration ! macros, `ALWAYS_FLUSH', was defined. This was done as a result of a belief that many programs expected output to be flushed to the operating system (under UNIX, via the *************** trailing ` */'. *** 19266,19277 ****  File: g77.info, Node: Large File Unit Numbers, Next: Floating-point precision, Prev: Output Assumed To Flush, Up: Working Programs ! 14.4.9 Large File Unit Numbers ! ------------------------------ ! If your program crashes at run time with a message including the text ! `illegal unit number', that probably is a message from the run-time ! library, `libg2c'. The message means that your program has attempted to use a file unit number that is out of the range accepted by `libg2c'. Normally, this --- 19030,19041 ----  File: g77.info, Node: Large File Unit Numbers, Next: Floating-point precision, Prev: Output Assumed To Flush, Up: Working Programs ! Large File Unit Numbers ! ----------------------- ! If your program crashes at run time with a message including the ! text `illegal unit number', that probably is a message from the ! run-time library, `libg2c'. The message means that your program has attempted to use a file unit number that is out of the range accepted by `libg2c'. Normally, this *************** other limits should be found in your sys *** 19316,19326 ****  File: g77.info, Node: Floating-point precision, Next: Inconsistent Calling Sequences, Prev: Large File Unit Numbers, Up: Working Programs ! 14.4.10 Floating-point precision ! -------------------------------- ! If your program depends on exact IEEE 754 floating-point handling it may ! help on some systems--specifically x86 or m68k hardware--to use the `-ffloat-store' option or to reset the precision flag on the floating-point unit. *Note Optimize Options::. --- 19080,19090 ----  File: g77.info, Node: Floating-point precision, Next: Inconsistent Calling Sequences, Prev: Large File Unit Numbers, Up: Working Programs ! Floating-point precision ! ------------------------ ! If your program depends on exact IEEE 754 floating-point handling it ! may help on some systems--specifically x86 or m68k hardware--to use the `-ffloat-store' option or to reset the precision flag on the floating-point unit. *Note Optimize Options::. *************** IEEE conformance. *Note Hardware Models *** 19345,19354 ****  File: g77.info, Node: Inconsistent Calling Sequences, Prev: Floating-point precision, Up: Working Programs ! 14.4.11 Inconsistent Calling Sequences ! -------------------------------------- ! Code containing inconsistent calling sequences in the same file is normally rejected--see *Note GLOBALS::. (Use, say, `ftnchek' to ensure consistency across source files. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes.) --- 19109,19118 ----  File: g77.info, Node: Inconsistent Calling Sequences, Prev: Floating-point precision, Up: Working Programs ! Inconsistent Calling Sequences ! ------------------------------ ! Code containing inconsistent calling sequences in the same file is normally rejected--see *Note GLOBALS::. (Use, say, `ftnchek' to ensure consistency across source files. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes.) *************** later. Similarly if, say, external C ro *** 19365,19379 ****  File: g77.info, Node: Overly Convenient Options, Next: Faster Programs, Prev: Working Programs, Up: Collected Fortran Wisdom ! 14.5 Overly Convenient Command-line Options ! =========================================== ! These options should be used only as a quick-and-dirty way to determine ! how well your program will run under different compilation models ! without having to change the source. Some are more problematic than ! others, depending on how portable and maintainable you want the program ! to be (and, of course, whether you are allowed to change it at all is ! crucial). You should not continue to use these command-line options to compile a given program, but rather should make changes to the source code: --- 19129,19143 ----  File: g77.info, Node: Overly Convenient Options, Next: Faster Programs, Prev: Working Programs, Up: Collected Fortran Wisdom ! Overly Convenient Command-line Options ! ====================================== ! These options should be used only as a quick-and-dirty way to ! determine how well your program will run under different compilation ! models without having to change the source. Some are more problematic ! than others, depending on how portable and maintainable you want the ! program to be (and, of course, whether you are allowed to change it at ! all is crucial). You should not continue to use these command-line options to compile a given program, but rather should make changes to the source code: *************** a given program, but rather should make *** 19433,19444 ****  File: g77.info, Node: Faster Programs, Prev: Overly Convenient Options, Up: Collected Fortran Wisdom ! 14.6 Faster Programs ! ==================== ! Aside from the usual `gcc' options, such as `-O', `-ffast-math', and so ! on, consider trying some of the following approaches to speed up your ! program (once you get it working). * Menu: --- 19197,19208 ----  File: g77.info, Node: Faster Programs, Prev: Overly Convenient Options, Up: Collected Fortran Wisdom ! Faster Programs ! =============== ! Aside from the usual `gcc' options, such as `-O', `-ffast-math', and ! so on, consider trying some of the following approaches to speed up ! your program (once you get it working). * Menu: *************** program (once you get it working). *** 19450,19459 ****  File: g77.info, Node: Aligned Data, Next: Prefer Automatic Uninitialized Variables, Up: Faster Programs ! 14.6.1 Aligned Data ! ------------------- ! On some systems, such as those with Pentium Pro CPUs, programs that make heavy use of `REAL(KIND=2)' (`DOUBLE PRECISION') might run much slower than possible due to the compiler not aligning these 64-bit values to 64-bit boundaries in memory. (The effect also is present, --- 19214,19223 ----  File: g77.info, Node: Aligned Data, Next: Prefer Automatic Uninitialized Variables, Up: Faster Programs ! Aligned Data ! ------------ ! On some systems, such as those with Pentium Pro CPUs, programs that make heavy use of `REAL(KIND=2)' (`DOUBLE PRECISION') might run much slower than possible due to the compiler not aligning these 64-bit values to 64-bit boundaries in memory. (The effect also is present, *************** systems (such as GNU/Linux). *** 19542,19551 ****  File: g77.info, Node: Prefer Automatic Uninitialized Variables, Next: Avoid f2c Compatibility, Prev: Aligned Data, Up: Faster Programs ! 14.6.2 Prefer Automatic Uninitialized Variables ! ----------------------------------------------- ! If you're using `-fno-automatic' already, you probably should change your code to allow compilation with `-fautomatic' (the default), to allow the program to run faster. --- 19306,19315 ----  File: g77.info, Node: Prefer Automatic Uninitialized Variables, Next: Avoid f2c Compatibility, Prev: Aligned Data, Up: Faster Programs ! Prefer Automatic Uninitialized Variables ! ---------------------------------------- ! If you're using `-fno-automatic' already, you probably should change your code to allow compilation with `-fautomatic' (the default), to allow the program to run faster. *************** changes in your own code. *** 19571,19594 ****  File: g77.info, Node: Avoid f2c Compatibility, Next: Use Submodel Options, Prev: Prefer Automatic Uninitialized Variables, Up: Faster Programs ! 14.6.3 Avoid f2c Compatibility ! ------------------------------ ! If you aren't linking with any code compiled using `f2c', try using the ! `-fno-f2c' option when compiling _all_ the code in your program. (Note ! that `libf2c' is _not_ an example of code that is compiled using `f2c'--it is compiled by a C compiler, typically `gcc'.)  File: g77.info, Node: Use Submodel Options, Prev: Avoid f2c Compatibility, Up: Faster Programs ! 14.6.4 Use Submodel Options ! --------------------------- ! Using an appropriate `-m' option to generate specific code for your CPU ! may be worthwhile, though it may mean the executable won't run on other ! versions of the CPU that don't support the same instruction set. *Note ! Hardware Models and Configurations: (gcc)Submodel Options. For instance on an x86 system the compiler might have been built--as shown by `g77 -v'--for the target `i386-pc-linux-gnu', i.e. an `i386' CPU. In that case to generate code best optimized for a Pentium you could --- 19335,19358 ----  File: g77.info, Node: Avoid f2c Compatibility, Next: Use Submodel Options, Prev: Prefer Automatic Uninitialized Variables, Up: Faster Programs ! Avoid f2c Compatibility ! ----------------------- ! If you aren't linking with any code compiled using `f2c', try using ! the `-fno-f2c' option when compiling _all_ the code in your program. ! (Note that `libf2c' is _not_ an example of code that is compiled using `f2c'--it is compiled by a C compiler, typically `gcc'.)  File: g77.info, Node: Use Submodel Options, Prev: Avoid f2c Compatibility, Up: Faster Programs ! Use Submodel Options ! -------------------- ! Using an appropriate `-m' option to generate specific code for your ! CPU may be worthwhile, though it may mean the executable won't run on ! other versions of the CPU that don't support the same instruction set. ! *Note Hardware Models and Configurations: (gcc)Submodel Options. For instance on an x86 system the compiler might have been built--as shown by `g77 -v'--for the target `i386-pc-linux-gnu', i.e. an `i386' CPU. In that case to generate code best optimized for a Pentium you could *************** is not turned on anyway by `-O'. *** 19605,19616 ****  File: g77.info, Node: Trouble, Next: Open Questions, Prev: Collected Fortran Wisdom, Up: Top ! 15 Known Causes of Trouble with GNU Fortran ! ******************************************* ! This section describes known problems that affect users of GNU Fortran. ! Most of these are not GNU Fortran bugs per se--if they were, we would ! fix them. But the result for a user might be like the result of a bug. Some of these problems are due to bugs in other software, some are missing features that are too much work to add, and some are places --- 19369,19381 ----  File: g77.info, Node: Trouble, Next: Open Questions, Prev: Collected Fortran Wisdom, Up: Top ! Known Causes of Trouble with GNU Fortran ! **************************************** ! This section describes known problems that affect users of GNU ! Fortran. Most of these are not GNU Fortran bugs per se--if they were, ! we would fix them. But the result for a user might be like the result ! of a bug. Some of these problems are due to bugs in other software, some are missing features that are too much work to add, and some are places *************** portion of `g77', see *Note Known Causes *** 19635,19645 ****  File: g77.info, Node: But-bugs, Next: Known Bugs, Up: Trouble ! 15.1 Bugs Not In GNU Fortran ! ============================ ! These are bugs to which the maintainers often have to reply, "but that ! isn't a bug in `g77'...". Some of these already are fixed in new versions of other software; some still need to be fixed; some are problems with how `g77' is installed or is being used; some are the result of bad hardware that causes software to misbehave in sometimes --- 19400,19410 ----  File: g77.info, Node: But-bugs, Next: Known Bugs, Up: Trouble ! Bugs Not In GNU Fortran ! ======================= ! These are bugs to which the maintainers often have to reply, "but ! that isn't a bug in `g77'...". Some of these already are fixed in new versions of other software; some still need to be fixed; some are problems with how `g77' is installed or is being used; some are the result of bad hardware that causes software to misbehave in sometimes *************** _thought_ to indicate bugs. *** 19674,19683 ****  File: g77.info, Node: Signal 11 and Friends, Next: Cannot Link Fortran Programs, Up: But-bugs ! 15.1.1 Signal 11 and Friends ! ---------------------------- ! A whole variety of strange behaviors can occur when the software, or the way you are using the software, stresses the hardware in a way that triggers hardware bugs. This might seem hard to believe, but it happens frequently enough that there exist documents explaining in --- 19439,19448 ----  File: g77.info, Node: Signal 11 and Friends, Next: Cannot Link Fortran Programs, Up: But-bugs ! Signal 11 and Friends ! --------------------- ! A whole variety of strange behaviors can occur when the software, or the way you are using the software, stresses the hardware in a way that triggers hardware bugs. This might seem hard to believe, but it happens frequently enough that there exist documents explaining in *************** including a reference to it in future ve *** 19721,19730 ****  File: g77.info, Node: Cannot Link Fortran Programs, Next: Large Common Blocks, Prev: Signal 11 and Friends, Up: But-bugs ! 15.1.2 Cannot Link Fortran Programs ! ----------------------------------- ! On some systems, perhaps just those with out-of-date (shared?) libraries, unresolved-reference errors happen when linking `g77'-compiled programs (which should be done using `g77'). --- 19486,19495 ----  File: g77.info, Node: Cannot Link Fortran Programs, Next: Large Common Blocks, Prev: Signal 11 and Friends, Up: But-bugs ! Cannot Link Fortran Programs ! ---------------------------- ! On some systems, perhaps just those with out-of-date (shared?) libraries, unresolved-reference errors happen when linking `g77'-compiled programs (which should be done using `g77'). *************** line, in case that helps. *** 19750,19759 ****  File: g77.info, Node: Large Common Blocks, Next: Debugger Problems, Prev: Cannot Link Fortran Programs, Up: But-bugs ! 15.1.3 Large Common Blocks ! -------------------------- ! On some older GNU/Linux systems, programs with common blocks larger than 16MB cannot be linked without some kind of error message being produced. --- 19515,19524 ----  File: g77.info, Node: Large Common Blocks, Next: Debugger Problems, Prev: Cannot Link Fortran Programs, Up: But-bugs ! Large Common Blocks ! ------------------- ! On some older GNU/Linux systems, programs with common blocks larger than 16MB cannot be linked without some kind of error message being produced. *************** versions of `binutils', such as version *** 19763,19772 ****  File: g77.info, Node: Debugger Problems, Next: NeXTStep Problems, Prev: Large Common Blocks, Up: But-bugs ! 15.1.4 Debugger Problems ! ------------------------ ! There are some known problems when using `gdb' on code compiled by `g77'. Inadequate investigation as of the release of 0.5.16 results in not knowing which products are the culprit, but `gdb-4.14' definitely crashes when, for example, an attempt is made to print the contents of --- 19528,19537 ----  File: g77.info, Node: Debugger Problems, Next: NeXTStep Problems, Prev: Large Common Blocks, Up: But-bugs ! Debugger Problems ! ----------------- ! There are some known problems when using `gdb' on code compiled by `g77'. Inadequate investigation as of the release of 0.5.16 results in not knowing which products are the culprit, but `gdb-4.14' definitely crashes when, for example, an attempt is made to print the contents of *************** done for a different compiler and isn't *** 19778,19787 ****  File: g77.info, Node: NeXTStep Problems, Next: Stack Overflow, Prev: Debugger Problems, Up: But-bugs ! 15.1.5 NeXTStep Problems ! ------------------------ ! Developers of Fortran code on NeXTStep (all architectures) have to watch out for the following problem when writing programs with large, statically allocated (i.e. non-stack based) data structures (common blocks, saved arrays). --- 19543,19552 ----  File: g77.info, Node: NeXTStep Problems, Next: Stack Overflow, Prev: Debugger Problems, Up: But-bugs ! NeXTStep Problems ! ----------------- ! Developers of Fortran code on NeXTStep (all architectures) have to watch out for the following problem when writing programs with large, statically allocated (i.e. non-stack based) data structures (common blocks, saved arrays). *************** this somewhat, but probably not enough.) *** 19825,19834 ****  File: g77.info, Node: Stack Overflow, Next: Nothing Happens, Prev: NeXTStep Problems, Up: But-bugs ! 15.1.6 Stack Overflow ! --------------------- ! `g77' code might fail at runtime (probably with a "segmentation violation") due to overflowing the stack. This happens most often on systems with an environment that provides substantially more heap space (for use when arbitrarily allocating and freeing memory) than stack --- 19590,19599 ----  File: g77.info, Node: Stack Overflow, Next: Nothing Happens, Prev: NeXTStep Problems, Up: But-bugs ! Stack Overflow ! -------------- ! `g77' code might fail at runtime (probably with a "segmentation violation") due to overflowing the stack. This happens most often on systems with an environment that provides substantially more heap space (for use when arbitrarily allocating and freeing memory) than stack *************** system, or buggy.) *** 19884,19896 ****  File: g77.info, Node: Nothing Happens, Next: Strange Behavior at Run Time, Prev: Stack Overflow, Up: But-bugs ! 15.1.7 Nothing Happens ! ---------------------- ! It is occasionally reported that a "simple" program, such as a "Hello, ! World!" program, does nothing when it is run, even though the compiler ! reported no errors, despite the program containing nothing other than a ! simple `PRINT' statement. This most often happens because the program has been compiled and linked on a UNIX system and named `test', though other names can lead --- 19649,19661 ----  File: g77.info, Node: Nothing Happens, Next: Strange Behavior at Run Time, Prev: Stack Overflow, Up: But-bugs ! Nothing Happens ! --------------- ! It is occasionally reported that a "simple" program, such as a ! "Hello, World!" program, does nothing when it is run, even though the ! compiler reported no errors, despite the program containing nothing ! other than a simple `PRINT' statement. This most often happens because the program has been compiled and linked on a UNIX system and named `test', though other names can lead *************** and so on. The relevant UNIX commands t *** 19925,19934 ****  File: g77.info, Node: Strange Behavior at Run Time, Next: Floating-point Errors, Prev: Nothing Happens, Up: But-bugs ! 15.1.8 Strange Behavior at Run Time ! ----------------------------------- ! `g77' code might fail at runtime with "segmentation violation", "bus error", or even something as subtle as a procedure call overwriting a variable or array element that it is not supposed to touch. --- 19690,19699 ----  File: g77.info, Node: Strange Behavior at Run Time, Next: Floating-point Errors, Prev: Nothing Happens, Up: But-bugs ! Strange Behavior at Run Time ! ---------------------------- ! `g77' code might fail at runtime with "segmentation violation", "bus error", or even something as subtle as a procedure call overwriting a variable or array element that it is not supposed to touch. *************** library from `/usr/ucblib'. *** 19979,19988 ****  File: g77.info, Node: Floating-point Errors, Prev: Strange Behavior at Run Time, Up: But-bugs ! 15.1.9 Floating-point Errors ! ---------------------------- ! Some programs appear to produce inconsistent floating-point results compiled by `g77' versus by other compilers. Often the reason for this behavior is the fact that floating-point --- 19744,19753 ----  File: g77.info, Node: Floating-point Errors, Prev: Strange Behavior at Run Time, Up: But-bugs ! Floating-point Errors ! --------------------- ! Some programs appear to produce inconsistent floating-point results compiled by `g77' versus by other compilers. Often the reason for this behavior is the fact that floating-point *************** other documentation about this. *** 20102,20112 ****  File: g77.info, Node: Known Bugs, Next: Missing Features, Prev: But-bugs, Up: Trouble ! 15.2 Known Bugs In GNU Fortran ! ============================== This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.4.3 version of `g77'. This includes bugs that are actually in the `gcc' back end (GBE) or in `libf2c', because those sets of code are at least somewhat under the control of (and necessarily intertwined with) `g77', so it isn't worth separating them out. --- 19867,19877 ----  File: g77.info, Node: Known Bugs, Next: Missing Features, Prev: But-bugs, Up: Trouble ! Known Bugs In GNU Fortran ! ========================= This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.4.4 version of `g77'. This includes bugs that are actually in the `gcc' back end (GBE) or in `libf2c', because those sets of code are at least somewhat under the control of (and necessarily intertwined with) `g77', so it isn't worth separating them out. *************** versions. *** 20247,20258 ****  File: g77.info, Node: Missing Features, Next: Disappointments, Prev: Known Bugs, Up: Trouble ! 15.3 Missing Features ! ===================== ! This section lists features we know are missing from `g77', and which ! we want to add someday. (There is no priority implied in the ordering ! below.) * Menu: --- 20012,20023 ----  File: g77.info, Node: Missing Features, Next: Disappointments, Prev: Known Bugs, Up: Trouble ! Missing Features ! ================ ! This section lists features we know are missing from `g77', and ! which we want to add someday. (There is no priority implied in the ! ordering below.) * Menu: *************** Debugging: *** 20322,20331 ****  File: g77.info, Node: Better Source Model, Next: Fortran 90 Support, Up: Missing Features ! 15.3.1 Better Source Model ! -------------------------- ! `g77' needs to provide, as the default source-line model, a "pure visual" mode, where the interpretation of a source program in this mode can be accurately determined by a user looking at a traditionally displayed rendition of the program (assuming the user knows whether the --- 20087,20096 ----  File: g77.info, Node: Better Source Model, Next: Fortran 90 Support, Up: Missing Features ! Better Source Model ! ------------------- ! `g77' needs to provide, as the default source-line model, a "pure visual" mode, where the interpretation of a source program in this mode can be accurately determined by a user looking at a traditionally displayed rendition of the program (assuming the user knows whether the *************** specify, say, a `-Wno-col73to80' option. *** 20359,20369 ****  File: g77.info, Node: Fortran 90 Support, Next: Intrinsics in PARAMETER Statements, Prev: Better Source Model, Up: Missing Features ! 15.3.2 Fortran 90 Support ! ------------------------- ! `g77' does not support many of the features that distinguish Fortran 90 ! (and, now, Fortran 95) from ANSI FORTRAN 77. Some Fortran 90 features are supported, because they make sense to offer even to die-hard users of F77. For example, many of them codify --- 20124,20134 ----  File: g77.info, Node: Fortran 90 Support, Next: Intrinsics in PARAMETER Statements, Prev: Better Source Model, Up: Missing Features ! Fortran 90 Support ! ------------------ ! `g77' does not support many of the features that distinguish Fortran ! 90 (and, now, Fortran 95) from ANSI FORTRAN 77. Some Fortran 90 features are supported, because they make sense to offer even to die-hard users of F77. For example, many of them codify *************** project to create GNU Fortran 95. *** 20382,20391 ****  File: g77.info, Node: Intrinsics in PARAMETER Statements, Next: Arbitrary Concatenation, Prev: Fortran 90 Support, Up: Missing Features ! 15.3.3 Intrinsics in `PARAMETER' Statements ! ------------------------------------------- ! `g77' doesn't allow intrinsics in `PARAMETER' statements. Related to this, `g77' doesn't allow non-integral exponentiation in `PARAMETER' statements, such as `PARAMETER (R=2**.25)'. It is unlikely --- 20147,20156 ----  File: g77.info, Node: Intrinsics in PARAMETER Statements, Next: Arbitrary Concatenation, Prev: Fortran 90 Support, Up: Missing Features ! Intrinsics in `PARAMETER' Statements ! ------------------------------------ ! `g77' doesn't allow intrinsics in `PARAMETER' statements. Related to this, `g77' doesn't allow non-integral exponentiation in `PARAMETER' statements, such as `PARAMETER (R=2**.25)'. It is unlikely *************** in implementing this feature soon afterw *** 20398,20408 ****  File: g77.info, Node: Arbitrary Concatenation, Next: SELECT CASE on CHARACTER Type, Prev: Intrinsics in PARAMETER Statements, Up: Missing Features ! 15.3.4 Arbitrary Concatenation ! ------------------------------ ! `g77' doesn't support arbitrary operands for concatenation in contexts ! where run-time allocation is required. For example: SUBROUTINE X(A) CHARACTER*(*) A --- 20163,20173 ----  File: g77.info, Node: Arbitrary Concatenation, Next: SELECT CASE on CHARACTER Type, Prev: Intrinsics in PARAMETER Statements, Up: Missing Features ! Arbitrary Concatenation ! ----------------------- ! `g77' doesn't support arbitrary operands for concatenation in ! contexts where run-time allocation is required. For example: SUBROUTINE X(A) CHARACTER*(*) A *************** where run-time allocation is required. *** 20411,20429 ****  File: g77.info, Node: SELECT CASE on CHARACTER Type, Next: RECURSIVE Keyword, Prev: Arbitrary Concatenation, Up: Missing Features ! 15.3.5 `SELECT CASE' on `CHARACTER' Type ! ---------------------------------------- ! Character-type selector/cases for `SELECT CASE' currently are not supported.  File: g77.info, Node: RECURSIVE Keyword, Next: Popular Non-standard Types, Prev: SELECT CASE on CHARACTER Type, Up: Missing Features ! 15.3.6 `RECURSIVE' Keyword ! -------------------------- ! `g77' doesn't support the `RECURSIVE' keyword that F90 compilers do. Nor does it provide any means for compiling procedures designed to do recursion. --- 20176,20194 ----  File: g77.info, Node: SELECT CASE on CHARACTER Type, Next: RECURSIVE Keyword, Prev: Arbitrary Concatenation, Up: Missing Features ! `SELECT CASE' on `CHARACTER' Type ! --------------------------------- ! Character-type selector/cases for `SELECT CASE' currently are not supported.  File: g77.info, Node: RECURSIVE Keyword, Next: Popular Non-standard Types, Prev: SELECT CASE on CHARACTER Type, Up: Missing Features ! `RECURSIVE' Keyword ! ------------------- ! `g77' doesn't support the `RECURSIVE' keyword that F90 compilers do. Nor does it provide any means for compiling procedures designed to do recursion. *************** result is not pretty. *** 20433,20445 ****  File: g77.info, Node: Increasing Precision/Range, Next: Enabling Debug Lines, Prev: Support for Threads, Up: Missing Features ! 15.3.7 Increasing Precision/Range ! --------------------------------- ! Some compilers, such as `f2c', have an option (`-r8', `-qrealsize=8' or ! similar) that provides automatic treatment of `REAL' entities such that ! they have twice the storage size, and a corresponding increase in the ! range and precision, of what would normally be the `REAL(KIND=1)' (default `REAL') type. (This affects `COMPLEX' the same way.) They also typically offer another option (`-i8') to increase --- 20198,20210 ----  File: g77.info, Node: Increasing Precision/Range, Next: Enabling Debug Lines, Prev: Support for Threads, Up: Missing Features ! Increasing Precision/Range ! -------------------------- ! Some compilers, such as `f2c', have an option (`-r8', `-qrealsize=8' ! or similar) that provides automatic treatment of `REAL' entities such ! that they have twice the storage size, and a corresponding increase in ! the range and precision, of what would normally be the `REAL(KIND=1)' (default `REAL') type. (This affects `COMPLEX' the same way.) They also typically offer another option (`-i8') to increase *************** problem). *** 20467,20498 ****  File: g77.info, Node: Popular Non-standard Types, Next: Full Support for Compiler Types, Prev: RECURSIVE Keyword, Up: Missing Features ! 15.3.8 Popular Non-standard Types ! --------------------------------- ! `g77' doesn't fully support `INTEGER*2', `LOGICAL*1', and similar. In ! the meantime, version 0.5.18 provides rudimentary support for them.  File: g77.info, Node: Full Support for Compiler Types, Next: Array Bounds Expressions, Prev: Popular Non-standard Types, Up: Missing Features ! 15.3.9 Full Support for Compiler Types ! -------------------------------------- ! `g77' doesn't support `INTEGER', `REAL', and `COMPLEX' equivalents for ! _all_ applicable back-end-supported types (`char', `short int', `int', ! `long int', `long long int', and `long double'). This means providing ! intrinsic support, and maybe constant support (using F90 syntax) as ! well, and, for most machines will result in automatic support of ! `INTEGER*1', `INTEGER*2', `INTEGER*8', maybe even `REAL*16', and so on.  File: g77.info, Node: Array Bounds Expressions, Next: POINTER Statements, Prev: Full Support for Compiler Types, Up: Missing Features ! 15.3.10 Array Bounds Expressions ! -------------------------------- ! `g77' doesn't support more general expressions to dimension arrays, such as array element references, function references, etc. For example, `g77' currently does not accept the following: --- 20232,20264 ----  File: g77.info, Node: Popular Non-standard Types, Next: Full Support for Compiler Types, Prev: RECURSIVE Keyword, Up: Missing Features ! Popular Non-standard Types ! -------------------------- ! `g77' doesn't fully support `INTEGER*2', `LOGICAL*1', and similar. ! In the meantime, version 0.5.18 provides rudimentary support for them.  File: g77.info, Node: Full Support for Compiler Types, Next: Array Bounds Expressions, Prev: Popular Non-standard Types, Up: Missing Features ! Full Support for Compiler Types ! ------------------------------- ! `g77' doesn't support `INTEGER', `REAL', and `COMPLEX' equivalents ! for _all_ applicable back-end-supported types (`char', `short int', ! `int', `long int', `long long int', and `long double'). This means ! providing intrinsic support, and maybe constant support (using F90 ! syntax) as well, and, for most machines will result in automatic ! support of `INTEGER*1', `INTEGER*2', `INTEGER*8', maybe even `REAL*16', ! and so on.  File: g77.info, Node: Array Bounds Expressions, Next: POINTER Statements, Prev: Full Support for Compiler Types, Up: Missing Features ! Array Bounds Expressions ! ------------------------ ! `g77' doesn't support more general expressions to dimension arrays, such as array element references, function references, etc. For example, `g77' currently does not accept the following: *************** such as array element references, functi *** 20503,20512 ****  File: g77.info, Node: POINTER Statements, Next: Sensible Non-standard Constructs, Prev: Array Bounds Expressions, Up: Missing Features ! 15.3.11 POINTER Statements ! -------------------------- ! `g77' doesn't support pointers or allocatable objects (other than automatic arrays). This set of features is probably considered just behind intrinsics in `PARAMETER' statements on the list of large, important things to add to `g77'. --- 20269,20278 ----  File: g77.info, Node: POINTER Statements, Next: Sensible Non-standard Constructs, Prev: Array Bounds Expressions, Up: Missing Features ! POINTER Statements ! ------------------ ! `g77' doesn't support pointers or allocatable objects (other than automatic arrays). This set of features is probably considered just behind intrinsics in `PARAMETER' statements on the list of large, important things to add to `g77'. *************** pointers to procedures written in langua *** 20523,20536 ****  File: g77.info, Node: Sensible Non-standard Constructs, Next: READONLY Keyword, Prev: POINTER Statements, Up: Missing Features ! 15.3.12 Sensible Non-standard Constructs ! ---------------------------------------- ! `g77' rejects things other compilers accept, like `INTRINSIC SQRT,SQRT'. ! As time permits in the future, some of these things that are easy for ! humans to read and write and unlikely to be intended to mean something ! else will be accepted by `g77' (though `-fpedantic' should trigger ! warnings about such non-standard constructs). Until `g77' no longer gratuitously rejects sensible code, you might as well fix your code to be more standard-conforming and portable. --- 20289,20302 ----  File: g77.info, Node: Sensible Non-standard Constructs, Next: READONLY Keyword, Prev: POINTER Statements, Up: Missing Features ! Sensible Non-standard Constructs ! -------------------------------- ! `g77' rejects things other compilers accept, like `INTRINSIC ! SQRT,SQRT'. As time permits in the future, some of these things that ! are easy for humans to read and write and unlikely to be intended to ! mean something else will be accepted by `g77' (though `-fpedantic' ! should trigger warnings about such non-standard constructs). Until `g77' no longer gratuitously rejects sensible code, you might as well fix your code to be more standard-conforming and portable. *************** explanation, so we can consider fixing ` *** 20570,20582 ****  File: g77.info, Node: READONLY Keyword, Next: FLUSH Statement, Prev: Sensible Non-standard Constructs, Up: Missing Features ! 15.3.13 `READONLY' Keyword ! -------------------------- ! Support for `READONLY', in `OPEN' statements, requires `libg2c' support, ! to make sure that `CLOSE(...,STATUS='DELETE')' does not delete a file ! opened on a unit with the `READONLY' keyword, and perhaps to trigger a ! fatal diagnostic if a `WRITE' or `PRINT' to such a unit is attempted. _Note:_ It is not sufficient for `g77' and `libg2c' (its version of `libf2c') to assume that `READONLY' does not need some kind of explicit --- 20336,20349 ----  File: g77.info, Node: READONLY Keyword, Next: FLUSH Statement, Prev: Sensible Non-standard Constructs, Up: Missing Features ! `READONLY' Keyword ! ------------------ ! Support for `READONLY', in `OPEN' statements, requires `libg2c' ! support, to make sure that `CLOSE(...,STATUS='DELETE')' does not delete ! a file opened on a unit with the `READONLY' keyword, and perhaps to ! trigger a fatal diagnostic if a `WRITE' or `PRINT' to such a unit is ! attempted. _Note:_ It is not sufficient for `g77' and `libg2c' (its version of `libf2c') to assume that `READONLY' does not need some kind of explicit *************** keyword.) *** 20592,20611 ****  File: g77.info, Node: FLUSH Statement, Next: Expressions in FORMAT Statements, Prev: READONLY Keyword, Up: Missing Features ! 15.3.14 `FLUSH' Statement ! ------------------------- ! `g77' could perhaps use a `FLUSH' statement that does what `CALL FLUSH' ! does, but that supports `*' as the unit designator (same unit as for ! `PRINT') and accepts `ERR=' and/or `IOSTAT=' specifiers.  File: g77.info, Node: Expressions in FORMAT Statements, Next: Explicit Assembler Code, Prev: FLUSH Statement, Up: Missing Features ! 15.3.15 Expressions in `FORMAT' Statements ! ------------------------------------------ ! `g77' doesn't support `FORMAT(I)' and the like. Supporting this requires a significant redesign or replacement of `libg2c'. However, `g77' does support this construct when the expression is --- 20359,20378 ----  File: g77.info, Node: FLUSH Statement, Next: Expressions in FORMAT Statements, Prev: READONLY Keyword, Up: Missing Features ! `FLUSH' Statement ! ----------------- ! `g77' could perhaps use a `FLUSH' statement that does what `CALL ! FLUSH' does, but that supports `*' as the unit designator (same unit as ! for `PRINT') and accepts `ERR=' and/or `IOSTAT=' specifiers.  File: g77.info, Node: Expressions in FORMAT Statements, Next: Explicit Assembler Code, Prev: FLUSH Statement, Up: Missing Features ! Expressions in `FORMAT' Statements ! ---------------------------------- ! `g77' doesn't support `FORMAT(I)' and the like. Supporting this requires a significant redesign or replacement of `libg2c'. However, `g77' does support this construct when the expression is *************** well, but not all can. For example, thi *** 20635,20654 ****  File: g77.info, Node: Explicit Assembler Code, Next: Q Edit Descriptor, Prev: Expressions in FORMAT Statements, Up: Missing Features ! 15.3.16 Explicit Assembler Code ! ------------------------------- ! `g77' needs to provide some way, a la `gcc', for `g77' code to specify ! explicit assembler code.  File: g77.info, Node: Q Edit Descriptor, Next: Old-style PARAMETER Statements, Prev: Explicit Assembler Code, Up: Missing Features ! 15.3.17 Q Edit Descriptor ! ------------------------- ! The `Q' edit descriptor in `FORMAT's isn't supported. (This is meant ! to get the number of characters remaining in an input record.) Supporting this requires a significant redesign or replacement of `libg2c'. --- 20402,20421 ----  File: g77.info, Node: Explicit Assembler Code, Next: Q Edit Descriptor, Prev: Expressions in FORMAT Statements, Up: Missing Features ! Explicit Assembler Code ! ----------------------- ! `g77' needs to provide some way, a la `gcc', for `g77' code to ! specify explicit assembler code.  File: g77.info, Node: Q Edit Descriptor, Next: Old-style PARAMETER Statements, Prev: Explicit Assembler Code, Up: Missing Features ! Q Edit Descriptor ! ----------------- ! The `Q' edit descriptor in `FORMAT's isn't supported. (This is ! meant to get the number of characters remaining in an input record.) Supporting this requires a significant redesign or replacement of `libg2c'. *************** intrinsics. *Note FGetC Intrinsic (subr *** 20658,20669 ****  File: g77.info, Node: Old-style PARAMETER Statements, Next: TYPE and ACCEPT I/O Statements, Prev: Q Edit Descriptor, Up: Missing Features ! 15.3.18 Old-style PARAMETER Statements ! -------------------------------------- ! `g77' doesn't accept `PARAMETER I=1'. Supporting this obsolete form of ! the `PARAMETER' statement would not be particularly hard, as most of the ! parsing code is already in place and working. Until time/money is spent implementing it, you might as well fix your code to use the standard form, `PARAMETER (I=1)' (possibly needing --- 20425,20436 ----  File: g77.info, Node: Old-style PARAMETER Statements, Next: TYPE and ACCEPT I/O Statements, Prev: Q Edit Descriptor, Up: Missing Features ! Old-style PARAMETER Statements ! ------------------------------ ! `g77' doesn't accept `PARAMETER I=1'. Supporting this obsolete form ! of the `PARAMETER' statement would not be particularly hard, as most of ! the parsing code is already in place and working. Until time/money is spent implementing it, you might as well fix your code to use the standard form, `PARAMETER (I=1)' (possibly needing *************** the type of the constant being assigned *** 20674,20683 ****  File: g77.info, Node: TYPE and ACCEPT I/O Statements, Next: STRUCTURE UNION RECORD MAP, Prev: Old-style PARAMETER Statements, Up: Missing Features ! 15.3.19 `TYPE' and `ACCEPT' I/O Statements ! ------------------------------------------ ! `g77' doesn't support the I/O statements `TYPE' and `ACCEPT'. These are common extensions that should be easy to support, but also are fairly easy to work around in user code. --- 20441,20450 ----  File: g77.info, Node: TYPE and ACCEPT I/O Statements, Next: STRUCTURE UNION RECORD MAP, Prev: Old-style PARAMETER Statements, Up: Missing Features ! `TYPE' and `ACCEPT' I/O Statements ! ---------------------------------- ! `g77' doesn't support the I/O statements `TYPE' and `ACCEPT'. These are common extensions that should be easy to support, but also are fairly easy to work around in user code. *************** by `READ fmt,list'. *** 20688,20710 ****  File: g77.info, Node: STRUCTURE UNION RECORD MAP, Next: OPEN CLOSE and INQUIRE Keywords, Prev: TYPE and ACCEPT I/O Statements, Up: Missing Features ! 15.3.20 `STRUCTURE', `UNION', `RECORD', `MAP' ! --------------------------------------------- ! `g77' doesn't support `STRUCTURE', `UNION', `RECORD', `MAP'. This set ! of extensions is quite a bit lower on the list of large, important things to add to `g77', partly because it requires a great deal of work either upgrading or replacing `libg2c'.  File: g77.info, Node: OPEN CLOSE and INQUIRE Keywords, Next: ENCODE and DECODE, Prev: STRUCTURE UNION RECORD MAP, Up: Missing Features ! 15.3.21 `OPEN', `CLOSE', and `INQUIRE' Keywords ! ----------------------------------------------- ! `g77' doesn't have support for keywords such as `DISP='DELETE'' in the ! `OPEN', `CLOSE', and `INQUIRE' statements. These extensions are easy ! to add to `g77' itself, but require much more work on `libg2c'. `g77' doesn't support `FORM='PRINT'' or an equivalent to translate the traditional `carriage control' characters in column 1 of output to --- 20455,20477 ----  File: g77.info, Node: STRUCTURE UNION RECORD MAP, Next: OPEN CLOSE and INQUIRE Keywords, Prev: TYPE and ACCEPT I/O Statements, Up: Missing Features ! `STRUCTURE', `UNION', `RECORD', `MAP' ! ------------------------------------- ! `g77' doesn't support `STRUCTURE', `UNION', `RECORD', `MAP'. This ! set of extensions is quite a bit lower on the list of large, important things to add to `g77', partly because it requires a great deal of work either upgrading or replacing `libg2c'.  File: g77.info, Node: OPEN CLOSE and INQUIRE Keywords, Next: ENCODE and DECODE, Prev: STRUCTURE UNION RECORD MAP, Up: Missing Features ! `OPEN', `CLOSE', and `INQUIRE' Keywords ! --------------------------------------- ! `g77' doesn't have support for keywords such as `DISP='DELETE'' in ! the `OPEN', `CLOSE', and `INQUIRE' statements. These extensions are ! easy to add to `g77' itself, but require much more work on `libg2c'. `g77' doesn't support `FORM='PRINT'' or an equivalent to translate the traditional `carriage control' characters in column 1 of output to *************** Alternatively, `fpr' is in BSD distribut *** 20718,20727 ****  File: g77.info, Node: ENCODE and DECODE, Next: AUTOMATIC Statement, Prev: OPEN CLOSE and INQUIRE Keywords, Up: Missing Features ! 15.3.22 `ENCODE' and `DECODE' ! ----------------------------- ! `g77' doesn't support `ENCODE' or `DECODE'. These statements are best replaced by READ and WRITE statements involving internal files (CHARACTER variables and arrays). --- 20485,20494 ----  File: g77.info, Node: ENCODE and DECODE, Next: AUTOMATIC Statement, Prev: OPEN CLOSE and INQUIRE Keywords, Up: Missing Features ! `ENCODE' and `DECODE' ! --------------------- ! `g77' doesn't support `ENCODE' or `DECODE'. These statements are best replaced by READ and WRITE statements involving internal files (CHARACTER variables and arrays). *************** by a future version of `g77'. *** 20764,20773 ****  File: g77.info, Node: AUTOMATIC Statement, Next: Suppressing Space Padding, Prev: ENCODE and DECODE, Up: Missing Features ! 15.3.23 `AUTOMATIC' Statement ! ----------------------------- ! `g77' doesn't support the `AUTOMATIC' statement that `f2c' does. `AUTOMATIC' would identify a variable or array as not being `SAVE''d, which is normally the default, but which would be especially --- 20531,20540 ----  File: g77.info, Node: AUTOMATIC Statement, Next: Suppressing Space Padding, Prev: ENCODE and DECODE, Up: Missing Features ! `AUTOMATIC' Statement ! --------------------- ! `g77' doesn't support the `AUTOMATIC' statement that `f2c' does. `AUTOMATIC' would identify a variable or array as not being `SAVE''d, which is normally the default, but which would be especially *************** statements. *** 20797,20807 ****  File: g77.info, Node: Suppressing Space Padding, Next: Fortran Preprocessor, Prev: AUTOMATIC Statement, Up: Missing Features ! 15.3.24 Suppressing Space Padding of Source Lines ! ------------------------------------------------- ! `g77' should offer VXT-Fortran-style suppression of virtual spaces at ! the end of a source line if an appropriate command-line option is specified. This affects cases where a character constant is continued onto the --- 20564,20574 ----  File: g77.info, Node: Suppressing Space Padding, Next: Fortran Preprocessor, Prev: AUTOMATIC Statement, Up: Missing Features ! Suppressing Space Padding of Source Lines ! ----------------------------------------- ! `g77' should offer VXT-Fortran-style suppression of virtual spaces ! at the end of a source line if an appropriate command-line option is specified. This affects cases where a character constant is continued onto the *************** Digital's approach to handling the above *** 20825,20835 ****  File: g77.info, Node: Fortran Preprocessor, Next: Bit Operations on Floating-point Data, Prev: Suppressing Space Padding, Up: Missing Features ! 15.3.25 Fortran Preprocessor ! ---------------------------- ! `g77' should offer a preprocessor designed specifically for Fortran to ! replace `cpp -traditional'. There are several out there worth evaluating, at least. Such a preprocessor would recognize Hollerith constants, properly --- 20592,20602 ----  File: g77.info, Node: Fortran Preprocessor, Next: Bit Operations on Floating-point Data, Prev: Suppressing Space Padding, Up: Missing Features ! Fortran Preprocessor ! -------------------- ! `g77' should offer a preprocessor designed specifically for Fortran ! to replace `cpp -traditional'. There are several out there worth evaluating, at least. Such a preprocessor would recognize Hollerith constants, properly *************** recognize, process, and thus preprocess *** 20840,20850 ****  File: g77.info, Node: Bit Operations on Floating-point Data, Next: Really Ugly Character Assignments, Prev: Fortran Preprocessor, Up: Missing Features ! 15.3.26 Bit Operations on Floating-point Data ! --------------------------------------------- ! `g77' does not allow `REAL' and other non-integral types for arguments ! to intrinsics like `And', `Or', and `Shift'. For example, this program is rejected by `g77', because the intrinsic `Iand' does not accept `REAL' arguments: --- 20607,20617 ----  File: g77.info, Node: Bit Operations on Floating-point Data, Next: Really Ugly Character Assignments, Prev: Fortran Preprocessor, Up: Missing Features ! Bit Operations on Floating-point Data ! ------------------------------------- ! `g77' does not allow `REAL' and other non-integral types for ! arguments to intrinsics like `And', `Or', and `Shift'. For example, this program is rejected by `g77', because the intrinsic `Iand' does not accept `REAL' arguments: *************** intrinsic `Iand' does not accept `REAL' *** 20856,20865 ****  File: g77.info, Node: Really Ugly Character Assignments, Next: POSIX Standard, Prev: Bit Operations on Floating-point Data, Up: Missing Features ! 15.3.27 Really Ugly Character Assignments ! ----------------------------------------- ! An option such as `-fugly-char' should be provided to allow REAL*8 A1 DATA A1 / '12345678' / --- 20623,20632 ----  File: g77.info, Node: Really Ugly Character Assignments, Next: POSIX Standard, Prev: Bit Operations on Floating-point Data, Up: Missing Features ! Really Ugly Character Assignments ! --------------------------------- ! An option such as `-fugly-char' should be provided to allow REAL*8 A1 DATA A1 / '12345678' / *************** An option such as `-fugly-char' should b *** 20872,20889 ****  File: g77.info, Node: POSIX Standard, Next: Floating-point Exception Handling, Prev: Really Ugly Character Assignments, Up: Missing Features ! 15.3.28 `POSIX' Standard ! ------------------------ ! `g77' should support the POSIX standard for Fortran.  File: g77.info, Node: Floating-point Exception Handling, Next: Nonportable Conversions, Prev: POSIX Standard, Up: Missing Features ! 15.3.29 Floating-point Exception Handling ! ----------------------------------------- ! The `gcc' backend and, consequently, `g77', currently provides no general control over whether or not floating-point exceptions are trapped or ignored. (Ignoring them typically results in NaN values being propagated in systems that conform to IEEE 754.) The behavior is --- 20639,20656 ----  File: g77.info, Node: POSIX Standard, Next: Floating-point Exception Handling, Prev: Really Ugly Character Assignments, Up: Missing Features ! `POSIX' Standard ! ---------------- ! `g77' should support the POSIX standard for Fortran.  File: g77.info, Node: Floating-point Exception Handling, Next: Nonportable Conversions, Prev: POSIX Standard, Up: Missing Features ! Floating-point Exception Handling ! --------------------------------- ! The `gcc' backend and, consequently, `g77', currently provides no general control over whether or not floating-point exceptions are trapped or ignored. (Ignoring them typically results in NaN values being propagated in systems that conform to IEEE 754.) The behavior is *************** a GNU system using glibc 2.2 or newer: *** 20903,20909 **** trapfpe () { /* Enable some exceptions. At startup all exceptions are masked. */ ! feenableexcept (FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW); } --- 20670,20676 ---- trapfpe () { /* Enable some exceptions. At startup all exceptions are masked. */ ! feenableexcept (FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW); } *************** linking. *** 20915,20924 ****  File: g77.info, Node: Nonportable Conversions, Next: Large Automatic Arrays, Prev: Floating-point Exception Handling, Up: Missing Features ! 15.3.30 Nonportable Conversions ! ------------------------------- ! `g77' doesn't accept some particularly nonportable, silent data-type conversions such as `LOGICAL' to `REAL' (as in `A=.FALSE.', where `A' is type `REAL'), that other compilers might quietly accept. --- 20682,20691 ----  File: g77.info, Node: Nonportable Conversions, Next: Large Automatic Arrays, Prev: Floating-point Exception Handling, Up: Missing Features ! Nonportable Conversions ! ----------------------- ! `g77' doesn't accept some particularly nonportable, silent data-type conversions such as `LOGICAL' to `REAL' (as in `A=.FALSE.', where `A' is type `REAL'), that other compilers might quietly accept. *************** all of them. *** 20929,20938 ****  File: g77.info, Node: Large Automatic Arrays, Next: Support for Threads, Prev: Nonportable Conversions, Up: Missing Features ! 15.3.31 Large Automatic Arrays ! ------------------------------ ! Currently, automatic arrays always are allocated on the stack. For situations where the stack cannot be made large enough, `g77' should offer a compiler option that specifies allocation of automatic arrays in heap storage. --- 20696,20705 ----  File: g77.info, Node: Large Automatic Arrays, Next: Support for Threads, Prev: Nonportable Conversions, Up: Missing Features ! Large Automatic Arrays ! ---------------------- ! Currently, automatic arrays always are allocated on the stack. For situations where the stack cannot be made large enough, `g77' should offer a compiler option that specifies allocation of automatic arrays in heap storage. *************** in heap storage. *** 20940,20949 ****  File: g77.info, Node: Support for Threads, Next: Increasing Precision/Range, Prev: Large Automatic Arrays, Up: Missing Features ! 15.3.32 Support for Threads ! --------------------------- ! Neither the code produced by `g77' nor the `libg2c' library are thread-safe, nor does `g77' have support for parallel processing (other than the instruction-level parallelism available on some processors). A package such as PVM might help here. --- 20707,20716 ----  File: g77.info, Node: Support for Threads, Next: Increasing Precision/Range, Prev: Large Automatic Arrays, Up: Missing Features ! Support for Threads ! ------------------- ! Neither the code produced by `g77' nor the `libg2c' library are thread-safe, nor does `g77' have support for parallel processing (other than the instruction-level parallelism available on some processors). A package such as PVM might help here. *************** A package such as PVM might help here. *** 20951,20971 ****  File: g77.info, Node: Enabling Debug Lines, Next: Better Warnings, Prev: Increasing Precision/Range, Up: Missing Features ! 15.3.33 Enabling Debug Lines ! ---------------------------- ! An option such as `-fdebug-lines' should be provided to turn fixed-form ! lines beginning with `D' to be treated as if they began with a space, ! instead of as if they began with a `C' (as comment lines).  File: g77.info, Node: Better Warnings, Next: Gracefully Handle Sensible Bad Code, Prev: Enabling Debug Lines, Up: Missing Features ! 15.3.34 Better Warnings ! ----------------------- ! Because of how `g77' generates code via the back end, it doesn't always ! provide warnings the user wants. Consider: PROGRAM X PRINT *, A --- 20718,20738 ----  File: g77.info, Node: Enabling Debug Lines, Next: Better Warnings, Prev: Increasing Precision/Range, Up: Missing Features ! Enabling Debug Lines ! -------------------- ! An option such as `-fdebug-lines' should be provided to turn ! fixed-form lines beginning with `D' to be treated as if they began with ! a space, instead of as if they began with a `C' (as comment lines).  File: g77.info, Node: Better Warnings, Next: Gracefully Handle Sensible Bad Code, Prev: Enabling Debug Lines, Up: Missing Features ! Better Warnings ! --------------- ! Because of how `g77' generates code via the back end, it doesn't ! always provide warnings the user wants. Consider: PROGRAM X PRINT *, A *************** would!) *** 21005,21016 ****  File: g77.info, Node: Gracefully Handle Sensible Bad Code, Next: Non-standard Conversions, Prev: Better Warnings, Up: Missing Features ! 15.3.35 Gracefully Handle Sensible Bad Code ! ------------------------------------------- ! `g77' generally should continue processing for warnings and recoverable ! (user) errors whenever possible--that is, it shouldn't gratuitously ! make bad or useless code. For example: --- 20772,20783 ----  File: g77.info, Node: Gracefully Handle Sensible Bad Code, Next: Non-standard Conversions, Prev: Better Warnings, Up: Missing Features ! Gracefully Handle Sensible Bad Code ! ----------------------------------- ! `g77' generally should continue processing for warnings and ! recoverable (user) errors whenever possible--that is, it shouldn't ! gratuitously make bad or useless code. For example: *************** are analyzed.) *** 21027,21045 ****  File: g77.info, Node: Non-standard Conversions, Next: Non-standard Intrinsics, Prev: Gracefully Handle Sensible Bad Code, Up: Missing Features ! 15.3.36 Non-standard Conversions ! -------------------------------- ! `-Wconversion' and related should flag places where non-standard conversions are found. Perhaps much of this would be part of `-Wugly*'.  File: g77.info, Node: Non-standard Intrinsics, Next: Modifying DO Variable, Prev: Non-standard Conversions, Up: Missing Features ! 15.3.37 Non-standard Intrinsics ! ------------------------------- ! `g77' needs a new option, like `-Wintrinsics', to warn about use of non-standard intrinsics without explicit `INTRINSIC' statements for them. This would help find code that might fail silently when ported to another compiler. --- 20794,20812 ----  File: g77.info, Node: Non-standard Conversions, Next: Non-standard Intrinsics, Prev: Gracefully Handle Sensible Bad Code, Up: Missing Features ! Non-standard Conversions ! ------------------------ ! `-Wconversion' and related should flag places where non-standard conversions are found. Perhaps much of this would be part of `-Wugly*'.  File: g77.info, Node: Non-standard Intrinsics, Next: Modifying DO Variable, Prev: Non-standard Conversions, Up: Missing Features ! Non-standard Intrinsics ! ----------------------- ! `g77' needs a new option, like `-Wintrinsics', to warn about use of non-standard intrinsics without explicit `INTRINSIC' statements for them. This would help find code that might fail silently when ported to another compiler. *************** to another compiler. *** 21047,21056 ****  File: g77.info, Node: Modifying DO Variable, Next: Better Pedantic Compilation, Prev: Non-standard Intrinsics, Up: Missing Features ! 15.3.38 Modifying `DO' Variable ! ------------------------------- ! `g77' should warn about modifying `DO' variables via `EQUIVALENCE'. (The internal information gathered to produce this warning might also be useful in setting the internal "doiter" flag for a variable or even array reference within a loop, since that might produce faster code --- 20814,20823 ----  File: g77.info, Node: Modifying DO Variable, Next: Better Pedantic Compilation, Prev: Non-standard Intrinsics, Up: Missing Features ! Modifying `DO' Variable ! ----------------------- ! `g77' should warn about modifying `DO' variables via `EQUIVALENCE'. (The internal information gathered to produce this warning might also be useful in setting the internal "doiter" flag for a variable or even array reference within a loop, since that might produce faster code *************** invalid assignment to `NOTHER': *** 21067,21077 ****  File: g77.info, Node: Better Pedantic Compilation, Next: Warn About Implicit Conversions, Prev: Modifying DO Variable, Up: Missing Features ! 15.3.39 Better Pedantic Compilation ! ----------------------------------- ! `g77' needs to support `-fpedantic' more thoroughly, and use it only to ! generate warnings instead of rejecting constructs outright. Have it warn: if a variable that dimensions an array is not a dummy or placed explicitly in `COMMON' (F77 does not allow it to be placed in `COMMON' via `EQUIVALENCE'); if specification statements follow --- 20834,20844 ----  File: g77.info, Node: Better Pedantic Compilation, Next: Warn About Implicit Conversions, Prev: Modifying DO Variable, Up: Missing Features ! Better Pedantic Compilation ! --------------------------- ! `g77' needs to support `-fpedantic' more thoroughly, and use it only ! to generate warnings instead of rejecting constructs outright. Have it warn: if a variable that dimensions an array is not a dummy or placed explicitly in `COMMON' (F77 does not allow it to be placed in `COMMON' via `EQUIVALENCE'); if specification statements follow *************** extensions. *** 21081,21091 ****  File: g77.info, Node: Warn About Implicit Conversions, Next: Invalid Use of Hollerith Constant, Prev: Better Pedantic Compilation, Up: Missing Features ! 15.3.40 Warn About Implicit Conversions ! --------------------------------------- ! `g77' needs a `-Wpromotions' option to warn if source code appears to ! expect automatic, silent, and somewhat dangerous compiler-assisted conversion of `REAL(KIND=1)' constants to `REAL(KIND=2)' based on context. --- 20848,20858 ----  File: g77.info, Node: Warn About Implicit Conversions, Next: Invalid Use of Hollerith Constant, Prev: Better Pedantic Compilation, Up: Missing Features ! Warn About Implicit Conversions ! ------------------------------- ! `g77' needs a `-Wpromotions' option to warn if source code appears ! to expect automatic, silent, and somewhat dangerous compiler-assisted conversion of `REAL(KIND=1)' constants to `REAL(KIND=2)' based on context. *************** context. *** 21098,21119 ****  File: g77.info, Node: Invalid Use of Hollerith Constant, Next: Dummy Array Without Dimensioning Dummy, Prev: Warn About Implicit Conversions, Up: Missing Features ! 15.3.41 Invalid Use of Hollerith Constant ! ----------------------------------------- ! `g77' should disallow statements like `RETURN 2HAB', which are invalid ! in both source forms (unlike `RETURN (2HAB)', which probably still ! makes no sense but at least can be reliably parsed). Fixed-form processing rejects it, but not free-form, except in a way that is a bit difficult to understand.  File: g77.info, Node: Dummy Array Without Dimensioning Dummy, Next: Invalid FORMAT Specifiers, Prev: Invalid Use of Hollerith Constant, Up: Missing Features ! 15.3.42 Dummy Array Without Dimensioning Dummy ! ---------------------------------------------- ! `g77' should complain when a list of dummy arguments containing an adjustable dummy array does not also contain every variable listed in the dimension list of the adjustable array. --- 20865,20886 ----  File: g77.info, Node: Invalid Use of Hollerith Constant, Next: Dummy Array Without Dimensioning Dummy, Prev: Warn About Implicit Conversions, Up: Missing Features ! Invalid Use of Hollerith Constant ! --------------------------------- ! `g77' should disallow statements like `RETURN 2HAB', which are ! invalid in both source forms (unlike `RETURN (2HAB)', which probably ! still makes no sense but at least can be reliably parsed). Fixed-form processing rejects it, but not free-form, except in a way that is a bit difficult to understand.  File: g77.info, Node: Dummy Array Without Dimensioning Dummy, Next: Invalid FORMAT Specifiers, Prev: Invalid Use of Hollerith Constant, Up: Missing Features ! Dummy Array Without Dimensioning Dummy ! -------------------------------------- ! `g77' should complain when a list of dummy arguments containing an adjustable dummy array does not also contain every variable listed in the dimension list of the adjustable array. *************** since it includes `ARRAY' but not `ISIZE *** 21132,21142 ****  File: g77.info, Node: Invalid FORMAT Specifiers, Next: Ambiguous Dialects, Prev: Dummy Array Without Dimensioning Dummy, Up: Missing Features ! 15.3.43 Invalid FORMAT Specifiers ! --------------------------------- ! `g77' should check `FORMAT' specifiers for validity as it does `FORMAT' ! statements. For example, a diagnostic would be produced for: --- 20899,20909 ----  File: g77.info, Node: Invalid FORMAT Specifiers, Next: Ambiguous Dialects, Prev: Dummy Array Without Dimensioning Dummy, Up: Missing Features ! Invalid FORMAT Specifiers ! ------------------------- ! `g77' should check `FORMAT' specifiers for validity as it does ! `FORMAT' statements. For example, a diagnostic would be produced for: *************** statements. *** 21145,21174 ****  File: g77.info, Node: Ambiguous Dialects, Next: Unused Labels, Prev: Invalid FORMAT Specifiers, Up: Missing Features ! 15.3.44 Ambiguous Dialects ! -------------------------- ! `g77' needs a set of options such as `-Wugly*', `-Wautomatic', `-Wvxt', ! `-Wf90', and so on. These would warn about places in the user's source ! where ambiguities are found, helpful in resolving ambiguities in the ! program's dialect or dialects.  File: g77.info, Node: Unused Labels, Next: Informational Messages, Prev: Ambiguous Dialects, Up: Missing Features ! 15.3.45 Unused Labels ! --------------------- ! `g77' should warn about unused labels when `-Wunused' is in effect.  File: g77.info, Node: Informational Messages, Next: Uninitialized Variables at Run Time, Prev: Unused Labels, Up: Missing Features ! 15.3.46 Informational Messages ! ------------------------------ ! `g77' needs an option to suppress information messages (notes). `-w' ! does this but also suppresses warnings. The default should be to suppress info messages. Perhaps info messages should simply be eliminated. --- 20912,20941 ----  File: g77.info, Node: Ambiguous Dialects, Next: Unused Labels, Prev: Invalid FORMAT Specifiers, Up: Missing Features ! Ambiguous Dialects ! ------------------ ! `g77' needs a set of options such as `-Wugly*', `-Wautomatic', ! `-Wvxt', `-Wf90', and so on. These would warn about places in the ! user's source where ambiguities are found, helpful in resolving ! ambiguities in the program's dialect or dialects.  File: g77.info, Node: Unused Labels, Next: Informational Messages, Prev: Ambiguous Dialects, Up: Missing Features ! Unused Labels ! ------------- ! `g77' should warn about unused labels when `-Wunused' is in effect.  File: g77.info, Node: Informational Messages, Next: Uninitialized Variables at Run Time, Prev: Unused Labels, Up: Missing Features ! Informational Messages ! ---------------------- ! `g77' needs an option to suppress information messages (notes). ! `-w' does this but also suppresses warnings. The default should be to suppress info messages. Perhaps info messages should simply be eliminated. *************** suppress info messages. *** 21176,21185 ****  File: g77.info, Node: Uninitialized Variables at Run Time, Next: Portable Unformatted Files, Prev: Informational Messages, Up: Missing Features ! 15.3.47 Uninitialized Variables at Run Time ! ------------------------------------------- ! `g77' needs an option to initialize everything (not otherwise explicitly initialized) to "weird" (machine-dependent) values, e.g. NaNs, bad (non-`NULL') pointers, and largest-magnitude integers, would help track down references to some kinds of uninitialized variables at --- 20943,20952 ----  File: g77.info, Node: Uninitialized Variables at Run Time, Next: Portable Unformatted Files, Prev: Informational Messages, Up: Missing Features ! Uninitialized Variables at Run Time ! ----------------------------------- ! `g77' needs an option to initialize everything (not otherwise explicitly initialized) to "weird" (machine-dependent) values, e.g. NaNs, bad (non-`NULL') pointers, and largest-magnitude integers, would help track down references to some kinds of uninitialized variables at *************** such bugs at compile time. *** 21191,21200 ****  File: g77.info, Node: Portable Unformatted Files, Next: Better List-directed I/O, Prev: Uninitialized Variables at Run Time, Up: Missing Features ! 15.3.48 Portable Unformatted Files ! ---------------------------------- ! `g77' has no facility for exchanging unformatted files with systems using different number formats--even differing only in endianness (byte order)--or written by other compilers. Some compilers provide facilities at least for doing byte-swapping during unformatted I/O. --- 20958,20967 ----  File: g77.info, Node: Portable Unformatted Files, Next: Better List-directed I/O, Prev: Uninitialized Variables at Run Time, Up: Missing Features ! Portable Unformatted Files ! -------------------------- ! `g77' has no facility for exchanging unformatted files with systems using different number formats--even differing only in endianness (byte order)--or written by other compilers. Some compilers provide facilities at least for doing byte-swapping during unformatted I/O. *************** techniques. *** 21254,21263 ****  File: g77.info, Node: Better List-directed I/O, Next: Default to Console I/O, Prev: Portable Unformatted Files, Up: Missing Features ! 15.3.49 Better List-directed I/O ! -------------------------------- ! Values output using list-directed I/O (`PRINT *, R, D') should be written with a field width, precision, and so on appropriate for the type (precision) of each value. --- 21021,21030 ----  File: g77.info, Node: Better List-directed I/O, Next: Default to Console I/O, Prev: Portable Unformatted Files, Up: Missing Features ! Better List-directed I/O ! ------------------------ ! Values output using list-directed I/O (`PRINT *, R, D') should be written with a field width, precision, and so on appropriate for the type (precision) of each value. *************** controlled by preprocessing directives. *** 21277,21287 ****  File: g77.info, Node: Default to Console I/O, Next: Labels Visible to Debugger, Prev: Better List-directed I/O, Up: Missing Features ! 15.3.50 Default to Console I/O ! ------------------------------ ! The default I/O units, specified by `READ FMT', `READ (UNIT=*)', `WRITE ! (UNIT=*)', and `PRINT FMT', should not be units 5 (input) and 6 (output), but, rather, unit numbers not normally available for use in statements such as `OPEN' and `CLOSE'. --- 21044,21054 ----  File: g77.info, Node: Default to Console I/O, Next: Labels Visible to Debugger, Prev: Better List-directed I/O, Up: Missing Features ! Default to Console I/O ! ---------------------- ! The default I/O units, specified by `READ FMT', `READ (UNIT=*)', ! `WRITE (UNIT=*)', and `PRINT FMT', should not be units 5 (input) and 6 (output), but, rather, unit numbers not normally available for use in statements such as `OPEN' and `CLOSE'. *************** to the "console". *** 21294,21303 ****  File: g77.info, Node: Labels Visible to Debugger, Prev: Default to Console I/O, Up: Missing Features ! 15.3.51 Labels Visible to Debugger ! ---------------------------------- ! `g77' should output debugging information for statements labels, for use by debuggers that know how to support them. Same with weirder things like construct names. It is not yet known if any debug formats or debuggers support these. --- 21061,21070 ----  File: g77.info, Node: Labels Visible to Debugger, Prev: Default to Console I/O, Up: Missing Features ! Labels Visible to Debugger ! -------------------------- ! `g77' should output debugging information for statements labels, for use by debuggers that know how to support them. Same with weirder things like construct names. It is not yet known if any debug formats or debuggers support these. *************** or debuggers support these. *** 21305,21315 ****  File: g77.info, Node: Disappointments, Next: Non-bugs, Prev: Missing Features, Up: Trouble ! 15.4 Disappointments and Misunderstandings ! ========================================== ! These problems are perhaps regrettable, but we don't know any practical ! way around them for now. * Menu: --- 21072,21082 ----  File: g77.info, Node: Disappointments, Next: Non-bugs, Prev: Missing Features, Up: Trouble ! Disappointments and Misunderstandings ! ===================================== ! These problems are perhaps regrettable, but we don't know any ! practical way around them for now. * Menu: *************** way around them for now. *** 21322,21331 ****  File: g77.info, Node: Mangling of Names, Next: Multiple Definitions of External Names, Up: Disappointments ! 15.4.1 Mangling of Names in Source Code ! --------------------------------------- ! The current external-interface design, which includes naming of external procedures, COMMON blocks, and the library interface, has various usability problems, including things like adding underscores where not really necessary (and preventing easier inter-language --- 21089,21098 ----  File: g77.info, Node: Mangling of Names, Next: Multiple Definitions of External Names, Up: Disappointments ! Mangling of Names in Source Code ! -------------------------------- ! The current external-interface design, which includes naming of external procedures, COMMON blocks, and the library interface, has various usability problems, including things like adding underscores where not really necessary (and preventing easier inter-language *************** existing compilers. *** 21341,21352 ****  File: g77.info, Node: Multiple Definitions of External Names, Next: Limitation on Implicit Declarations, Prev: Mangling of Names, Up: Disappointments ! 15.4.2 Multiple Definitions of External Names ! --------------------------------------------- ! `g77' doesn't allow a common block and an external procedure or `BLOCK ! DATA' to have the same name. Some systems allow this, but `g77' does ! not, to be compatible with `f2c'. `g77' could special-case the way it handles `BLOCK DATA', since it is not compatible with `f2c' in this particular area (necessarily, --- 21108,21119 ----  File: g77.info, Node: Multiple Definitions of External Names, Next: Limitation on Implicit Declarations, Prev: Mangling of Names, Up: Disappointments ! Multiple Definitions of External Names ! -------------------------------------- ! `g77' doesn't allow a common block and an external procedure or ! `BLOCK DATA' to have the same name. Some systems allow this, but `g77' ! does not, to be compatible with `f2c'. `g77' could special-case the way it handles `BLOCK DATA', since it is not compatible with `f2c' in this particular area (necessarily, *************** more trouble than it's worth.) *** 21370,21389 ****  File: g77.info, Node: Limitation on Implicit Declarations, Prev: Multiple Definitions of External Names, Up: Disappointments ! 15.4.3 Limitation on Implicit Declarations ! ------------------------------------------ ! `g77' disallows `IMPLICIT CHARACTER*(*)'. This is not standard-conforming.  File: g77.info, Node: Non-bugs, Next: Warnings and Errors, Prev: Disappointments, Up: Trouble ! 15.5 Certain Changes We Don't Want to Make ! ========================================== ! This section lists changes that people frequently request, but which we ! do not make because we think GNU Fortran is better without them. * Menu: --- 21137,21156 ----  File: g77.info, Node: Limitation on Implicit Declarations, Prev: Multiple Definitions of External Names, Up: Disappointments ! Limitation on Implicit Declarations ! ----------------------------------- ! `g77' disallows `IMPLICIT CHARACTER*(*)'. This is not standard-conforming.  File: g77.info, Node: Non-bugs, Next: Warnings and Errors, Prev: Disappointments, Up: Trouble ! Certain Changes We Don't Want to Make ! ===================================== ! This section lists changes that people frequently request, but which ! we do not make because we think GNU Fortran is better without them. * Menu: *************** do not make because we think GNU Fortran *** 21403,21412 ****  File: g77.info, Node: Backslash in Constants, Next: Initializing Before Specifying, Up: Non-bugs ! 15.5.1 Backslash in Constants ! ----------------------------- ! In the opinion of many experienced Fortran users, `-fno-backslash' should be the default, not `-fbackslash', as currently set by `g77'. First of all, you can always specify `-fno-backslash' to turn off --- 21170,21179 ----  File: g77.info, Node: Backslash in Constants, Next: Initializing Before Specifying, Up: Non-bugs ! Backslash in Constants ! ---------------------- ! In the opinion of many experienced Fortran users, `-fno-backslash' should be the default, not `-fbackslash', as currently set by `g77'. First of all, you can always specify `-fno-backslash' to turn off *************** used instead, for readability.) *** 21504,21514 ****  File: g77.info, Node: Initializing Before Specifying, Next: Context-Sensitive Intrinsicness, Prev: Backslash in Constants, Up: Non-bugs ! 15.5.2 Initializing Before Specifying ! ------------------------------------- ! `g77' does not allow `DATA VAR/1/' to appear in the source code before ! `COMMON VAR', `DIMENSION VAR(10)', `INTEGER VAR', and so on. In general, `g77' requires initialization of a variable or array to be specified _after_ all other specifications of attributes (type, size, placement, and so on) of that variable or array are specified (though --- 21271,21281 ----  File: g77.info, Node: Initializing Before Specifying, Next: Context-Sensitive Intrinsicness, Prev: Backslash in Constants, Up: Non-bugs ! Initializing Before Specifying ! ------------------------------ ! `g77' does not allow `DATA VAR/1/' to appear in the source code ! before `COMMON VAR', `DIMENSION VAR(10)', `INTEGER VAR', and so on. In general, `g77' requires initialization of a variable or array to be specified _after_ all other specifications of attributes (type, size, placement, and so on) of that variable or array are specified (though *************** cannot be followed by `COMMON A'. *** 21529,21538 ****  File: g77.info, Node: Context-Sensitive Intrinsicness, Next: Context-Sensitive Constants, Prev: Initializing Before Specifying, Up: Non-bugs ! 15.5.3 Context-Sensitive Intrinsicness ! -------------------------------------- ! `g77' treats procedure references to _possible_ intrinsic names as always enabling their intrinsic nature, regardless of whether the _form_ of the reference is valid for that intrinsic. --- 21296,21305 ----  File: g77.info, Node: Context-Sensitive Intrinsicness, Next: Context-Sensitive Constants, Prev: Initializing Before Specifying, Up: Non-bugs ! Context-Sensitive Intrinsicness ! ------------------------------- ! `g77' treats procedure references to _possible_ intrinsic names as always enabling their intrinsic nature, regardless of whether the _form_ of the reference is valid for that intrinsic. *************** user-written subroutine named `SQRT'. *** 21574,21585 ****  File: g77.info, Node: Context-Sensitive Constants, Next: Equivalence Versus Equality, Prev: Context-Sensitive Intrinsicness, Up: Non-bugs ! 15.5.4 Context-Sensitive Constants ! ---------------------------------- ! `g77' does not use context to determine the types of constants or named ! constants (`PARAMETER'), except for (non-standard) typeless constants ! such as `'123'O'. For example, consider the following statement: --- 21341,21352 ----  File: g77.info, Node: Context-Sensitive Constants, Next: Equivalence Versus Equality, Prev: Context-Sensitive Intrinsicness, Up: Non-bugs ! Context-Sensitive Constants ! --------------------------- ! `g77' does not use context to determine the types of constants or ! named constants (`PARAMETER'), except for (non-standard) typeless ! constants such as `'123'O'. For example, consider the following statement: *************** in such code could be very helpful. *** 21642,21653 ****  File: g77.info, Node: Equivalence Versus Equality, Next: Order of Side Effects, Prev: Context-Sensitive Constants, Up: Non-bugs ! 15.5.5 Equivalence Versus Equality ! ---------------------------------- ! Use of `.EQ.' and `.NE.' on `LOGICAL' operands is not supported, except ! via `-fugly-logint', which is not recommended except for legacy code ! (where the behavior expected by the _code_ is assumed). Legacy code should be changed, as resources permit, to use `.EQV.' and `.NEQV.' instead, as these are permitted by the various Fortran --- 21409,21420 ----  File: g77.info, Node: Equivalence Versus Equality, Next: Order of Side Effects, Prev: Context-Sensitive Constants, Up: Non-bugs ! Equivalence Versus Equality ! --------------------------- ! Use of `.EQ.' and `.NE.' on `LOGICAL' operands is not supported, ! except via `-fugly-logint', which is not recommended except for legacy ! code (where the behavior expected by the _code_ is assumed). Legacy code should be changed, as resources permit, to use `.EQV.' and `.NEQV.' instead, as these are permitted by the various Fortran *************** diagnose it. *** 21711,21724 ****  File: g77.info, Node: Order of Side Effects, Prev: Equivalence Versus Equality, Up: Non-bugs ! 15.5.6 Order of Side Effects ! ---------------------------- ! `g77' does not necessarily produce code that, when run, performs side ! effects (such as those performed by function invocations) in the same ! order as in some other compiler--or even in the same order as another ! version, port, or invocation (using different command-line options) of ! `g77'. It is never safe to depend on the order of evaluation of side effects. For example, an expression like this may very well behave --- 21478,21491 ----  File: g77.info, Node: Order of Side Effects, Prev: Equivalence Versus Equality, Up: Non-bugs ! Order of Side Effects ! --------------------- ! `g77' does not necessarily produce code that, when run, performs ! side effects (such as those performed by function invocations) in the ! same order as in some other compiler--or even in the same order as ! another version, port, or invocation (using different command-line ! options) of `g77'. It is never safe to depend on the order of evaluation of side effects. For example, an expression like this may very well behave *************** being speeded up). *** 21753,21762 ****  File: g77.info, Node: Warnings and Errors, Prev: Non-bugs, Up: Trouble ! 15.6 Warning Messages and Error Messages ! ======================================== ! The GNU compiler can produce two kinds of diagnostics: errors and warnings. Each kind has a different purpose: _Errors_ report problems that make it impossible to compile your --- 21520,21529 ----  File: g77.info, Node: Warnings and Errors, Prev: Non-bugs, Up: Trouble ! Warning Messages and Error Messages ! =================================== ! The GNU compiler can produce two kinds of diagnostics: errors and warnings. Each kind has a different purpose: _Errors_ report problems that make it impossible to compile your *************** more detail on these and related command *** 21785,21794 ****  File: g77.info, Node: Open Questions, Next: Bugs, Prev: Trouble, Up: Top ! 16 Open Questions ! ***************** ! Please consider offering useful answers to these questions! * `LOC()' and other intrinsics are probably somewhat misclassified. Is the a need for more precise classification of intrinsics, and --- 21552,21561 ----  File: g77.info, Node: Open Questions, Next: Bugs, Prev: Trouble, Up: Top ! Open Questions ! ************** ! Please consider offering useful answers to these questions! * `LOC()' and other intrinsics are probably somewhat misclassified. Is the a need for more precise classification of intrinsics, and *************** Please consider offering useful answers *** 21799,21808 ****  File: g77.info, Node: Bugs, Next: Service, Prev: Open Questions, Up: Top ! 17 Reporting Bugs ! ***************** ! Your bug reports play an essential role in making GNU Fortran reliable. When you encounter a problem, the first thing to do is to see if it is already known. *Note Trouble::. If it isn't known, then you should --- 21566,21576 ----  File: g77.info, Node: Bugs, Next: Service, Prev: Open Questions, Up: Top ! Reporting Bugs ! ************** ! Your bug reports play an essential role in making GNU Fortran ! reliable. When you encounter a problem, the first thing to do is to see if it is already known. *Note Trouble::. If it isn't known, then you should *************** where to ask for help. *** 21822,21831 ****  File: g77.info, Node: Bug Criteria, Next: Bug Reporting, Up: Bugs ! 17.1 Have You Found a Bug? ! ========================== ! If you are not sure whether you have found a bug, here are some guidelines: * If the compiler gets a fatal signal, for any input whatever, that --- 21590,21599 ----  File: g77.info, Node: Bug Criteria, Next: Bug Reporting, Up: Bugs ! Have You Found a Bug? ! ===================== ! If you are not sure whether you have found a bug, here are some guidelines: * If the compiler gets a fatal signal, for any input whatever, that *************** the code you're compiling with `g77': *** 21916,21961 **** # Dummy suffix for ftnchek targets: .SUFFIXES: .chek .PHONY: chekall ! # How to compile .f files (for implicit rule): FC = g77 # Assume `include' directory: FFLAGS = -Iinclude -g -O -Wall ! # Flags for ftnchek: CHEK1 = -array=0 -include=includes -noarray CHEK2 = -nonovice -usage=1 -notruncation CHEKFLAGS = $(CHEK1) $(CHEK2) ! # Run ftnchek with all the .prj files except the one corresponding # to the target's root: %.chek : %.f ; \ ftnchek $(filter-out $*.prj,$(PRJS)) $(CHEKFLAGS) \ -noextern -library $< ! # Derive a project file from a source file: %.prj : %.f ; \ ftnchek $(CHEKFLAGS) -noextern -project -library $< ! # The list of objects is assumed to be in variable OBJS. # Sources corresponding to the objects: SRCS = $(OBJS:%.o=%.f) # ftnchek project files: PRJS = $(OBJS:%.o=%.prj) ! # Build the program prog: $(OBJS) ; \ $(FC) -o $ $(OBJS) ! chekall: $(PRJS) ; \ ftnchek $(CHEKFLAGS) $(PRJS) ! prjs: $(PRJS) ! # For Emacs M-x find-tag: TAGS: $(SRCS) ; \ etags $(SRCS) ! # Rebuild dependencies: depend: ; \ sfmakedepend -I $(PLTLIBDIR) -I includes -a prj $(SRCS1) --- 21684,21729 ---- # Dummy suffix for ftnchek targets: .SUFFIXES: .chek .PHONY: chekall ! # How to compile .f files (for implicit rule): FC = g77 # Assume `include' directory: FFLAGS = -Iinclude -g -O -Wall ! # Flags for ftnchek: CHEK1 = -array=0 -include=includes -noarray CHEK2 = -nonovice -usage=1 -notruncation CHEKFLAGS = $(CHEK1) $(CHEK2) ! # Run ftnchek with all the .prj files except the one corresponding # to the target's root: %.chek : %.f ; \ ftnchek $(filter-out $*.prj,$(PRJS)) $(CHEKFLAGS) \ -noextern -library $< ! # Derive a project file from a source file: %.prj : %.f ; \ ftnchek $(CHEKFLAGS) -noextern -project -library $< ! # The list of objects is assumed to be in variable OBJS. # Sources corresponding to the objects: SRCS = $(OBJS:%.o=%.f) # ftnchek project files: PRJS = $(OBJS:%.o=%.prj) ! # Build the program prog: $(OBJS) ; \ $(FC) -o $ $(OBJS) ! chekall: $(PRJS) ; \ ftnchek $(CHEKFLAGS) $(PRJS) ! prjs: $(PRJS) ! # For Emacs M-x find-tag: TAGS: $(SRCS) ; \ etags $(SRCS) ! # Rebuild dependencies: depend: ; \ sfmakedepend -I $(PLTLIBDIR) -I includes -a prj $(SRCS1) *************** the code you're compiling with `g77': *** 21973,21982 ****  File: g77.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Bugs ! 17.2 How to Report Bugs ! ======================= ! Bugs should be reported to our bug database. Please refer to `http://gcc.gnu.org/bugs.html' for up-to-date instructions how to submit bug reports. Copies of this file in HTML (`bugs.html') and plain text (`BUGS') are also part of GCC releases. --- 21741,21750 ----  File: g77.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Bugs ! How to Report Bugs ! ================== ! Bugs should be reported to our bug database. Please refer to `http://gcc.gnu.org/bugs.html' for up-to-date instructions how to submit bug reports. Copies of this file in HTML (`bugs.html') and plain text (`BUGS') are also part of GCC releases. *************** plain text (`BUGS') are also part of GCC *** 21984,21994 ****  File: g77.info, Node: Service, Next: Adding Options, Prev: Bugs, Up: Top ! 18 How To Get Help with GNU Fortran ! *********************************** ! If you need help installing, using or changing GNU Fortran, there are ! two ways to find it: * Look in the service directory for someone who might help you for a fee. The service directory is found in the file named `SERVICE' --- 21752,21762 ----  File: g77.info, Node: Service, Next: Adding Options, Prev: Bugs, Up: Top ! How To Get Help with GNU Fortran ! ******************************** ! If you need help installing, using or changing GNU Fortran, there ! are two ways to find it: * Look in the service directory for someone who might help you for a fee. The service directory is found in the file named `SERVICE' *************** two ways to find it: *** 21999,22008 ****  File: g77.info, Node: Adding Options, Next: Projects, Prev: Service, Up: Top ! 19 Adding Options ! ***************** ! To add a new command-line option to `g77', first decide what kind of option you wish to add. Search the `g77' and `gcc' documentation for one or more options that is most closely like the one you want to add (in terms of what kind of effect it has, and so on) to help clarify its --- 21767,21776 ----  File: g77.info, Node: Adding Options, Next: Projects, Prev: Service, Up: Top ! Adding Options ! ************** ! To add a new command-line option to `g77', first decide what kind of option you wish to add. Search the `g77' and `gcc' documentation for one or more options that is most closely like the one you want to add (in terms of what kind of effect it has, and so on) to help clarify its *************** _Fortran-reticent_ compiler options by c *** 22100,22109 ****  File: g77.info, Node: Projects, Next: Front End, Prev: Adding Options, Up: Top ! 20 Projects ! *********** ! If you want to contribute to `g77' by doing research, design, specification, documentation, coding, or testing, the following information should give you some ideas. --- 21868,21877 ----  File: g77.info, Node: Projects, Next: Front End, Prev: Adding Options, Up: Top ! Projects ! ******** ! If you want to contribute to `g77' by doing research, design, specification, documentation, coding, or testing, the following information should give you some ideas. *************** information should give you some ideas. *** 22122,22134 ****  File: g77.info, Node: Efficiency, Next: Better Optimization, Up: Projects ! 20.1 Improve Efficiency ! ======================= ! Don't bother doing any performance analysis until most of the following ! items are taken care of, because there's no question they represent ! serious space/time problems, although some of them show up only given ! certain kinds of (popular) input. * Improve `malloc' package and its uses to specify more info about memory pools and, where feasible, use obstacks to implement them. --- 21890,21902 ----  File: g77.info, Node: Efficiency, Next: Better Optimization, Up: Projects ! Improve Efficiency ! ================== ! Don't bother doing any performance analysis until most of the ! following items are taken care of, because there's no question they ! represent serious space/time problems, although some of them show up ! only given certain kinds of (popular) input. * Improve `malloc' package and its uses to specify more info about memory pools and, where feasible, use obstacks to implement them. *************** certain kinds of (popular) input. *** 22181,22190 ****  File: g77.info, Node: Better Optimization, Next: Simplify Porting, Prev: Efficiency, Up: Projects ! 20.2 Better Optimization ! ======================== ! Much of this work should be put off until after `g77' has all the features necessary for its widespread acceptance as a useful F77 compiler. However, perhaps this work can be done in parallel during the feature-adding work. --- 21949,21958 ----  File: g77.info, Node: Better Optimization, Next: Simplify Porting, Prev: Efficiency, Up: Projects ! Better Optimization ! =================== ! Much of this work should be put off until after `g77' has all the features necessary for its widespread acceptance as a useful F77 compiler. However, perhaps this work can be done in parallel during the feature-adding work. *************** the feature-adding work. *** 22247,22257 ****  File: g77.info, Node: Simplify Porting, Next: More Extensions, Prev: Better Optimization, Up: Projects ! 20.3 Simplify Porting ! ===================== ! Making `g77' easier to configure, port, build, and install, either as a ! single-system compiler or as a cross-compiler, would be very useful. * A new library (replacing `libg2c') should improve portability as well as produce more optimal code. Further, `g77' and the new --- 22015,22026 ----  File: g77.info, Node: Simplify Porting, Next: More Extensions, Prev: Better Optimization, Up: Projects ! Simplify Porting ! ================ ! Making `g77' easier to configure, port, build, and install, either ! as a single-system compiler or as a cross-compiler, would be very ! useful. * A new library (replacing `libg2c') should improve portability as well as produce more optimal code. Further, `g77' and the new *************** single-system compiler or as a cross-com *** 22284,22293 ****  File: g77.info, Node: More Extensions, Next: Machine Model, Prev: Simplify Porting, Up: Projects ! 20.4 More Extensions ! ==================== ! These extensions are not the sort of things users ask for "by name", but they might improve the usability of `g77', and Fortran in general, in the long run. Some of these items really pertain to improving `g77' internals so that some popular extensions can be more easily supported. --- 22053,22062 ----  File: g77.info, Node: More Extensions, Next: Machine Model, Prev: Simplify Porting, Up: Projects ! More Extensions ! =============== ! These extensions are not the sort of things users ask for "by name", but they might improve the usability of `g77', and Fortran in general, in the long run. Some of these items really pertain to improving `g77' internals so that some popular extensions can be more easily supported. *************** internals so that some popular extension *** 22351,22361 ****  File: g77.info, Node: Machine Model, Next: Internals Documentation, Prev: More Extensions, Up: Projects ! 20.5 Machine Model ! ================== ! This items pertain to generalizing `g77''s view of the machine model to ! more fully accept whatever the GBE provides it via its configuration. * Switch to using `REAL_VALUE_TYPE' to represent floating-point constants exclusively so the target float format need not be --- 22120,22130 ----  File: g77.info, Node: Machine Model, Next: Internals Documentation, Prev: More Extensions, Up: Projects ! Machine Model ! ============= ! This items pertain to generalizing `g77''s view of the machine model ! to more fully accept whatever the GBE provides it via its configuration. * Switch to using `REAL_VALUE_TYPE' to represent floating-point constants exclusively so the target float format need not be *************** more fully accept whatever the GBE provi *** 22379,22388 ****  File: g77.info, Node: Internals Documentation, Next: Internals Improvements, Prev: Machine Model, Up: Projects ! 20.6 Internals Documentation ! ============================ ! Better info on how `g77' works and how to port it is needed. *Note Front End::, which contains some information on `g77' internals. --- 22148,22157 ----  File: g77.info, Node: Internals Documentation, Next: Internals Improvements, Prev: Machine Model, Up: Projects ! Internals Documentation ! ======================= ! Better info on how `g77' works and how to port it is needed. *Note Front End::, which contains some information on `g77' internals. *************** internals. *** 22390,22399 ****  File: g77.info, Node: Internals Improvements, Next: Better Diagnostics, Prev: Internals Documentation, Up: Projects ! 20.7 Internals Improvements ! =========================== ! Some more items that would make `g77' more reliable and easier to maintain: * Generally make expression handling focus more on critical syntax --- 22159,22168 ----  File: g77.info, Node: Internals Improvements, Next: Better Diagnostics, Prev: Internals Documentation, Up: Projects ! Internals Improvements ! ====================== ! Some more items that would make `g77' more reliable and easier to maintain: * Generally make expression handling focus more on critical syntax *************** maintain: *** 22465,22476 ****  File: g77.info, Node: Better Diagnostics, Prev: Internals Improvements, Up: Projects ! 20.8 Better Diagnostics ! ======================= ! These are things users might not ask about, or that need to be looked ! into, before worrying about. Also here are items that involve reducing ! unnecessary diagnostic clutter. * When `FUNCTION' and `ENTRY' point types disagree (`CHARACTER' lengths, type classes, and so on), `ANY'-ize the offending `ENTRY' --- 22234,22245 ----  File: g77.info, Node: Better Diagnostics, Prev: Internals Improvements, Up: Projects ! Better Diagnostics ! ================== ! These are things users might not ask about, or that need to be ! looked into, before worrying about. Also here are items that involve ! reducing unnecessary diagnostic clutter. * When `FUNCTION' and `ENTRY' point types disagree (`CHARACTER' lengths, type classes, and so on), `ANY'-ize the offending `ENTRY' *************** unnecessary diagnostic clutter. *** 22492,22502 ****  File: g77.info, Node: Front End, Next: Diagnostics, Prev: Projects, Up: Top ! 21 Front End ! ************ ! This chapter describes some aspects of the design and implementation of ! the `g77' front end. To find about things that are "To Be Determined" or "To Be Done", search for the string TBD. If you want to help by working on one or --- 22261,22271 ----  File: g77.info, Node: Front End, Next: Diagnostics, Prev: Projects, Up: Top ! Front End ! ********* ! This chapter describes some aspects of the design and implementation ! of the `g77' front end. To find about things that are "To Be Determined" or "To Be Done", search for the string TBD. If you want to help by working on one or *************** first. *** 22519,22528 ****  File: g77.info, Node: Overview of Sources, Next: Overview of Translation Process, Up: Front End ! 21.1 Overview of Sources ! ======================== ! The current directory layout includes the following: `SRCDIR/gcc/' Non-g77 files in gcc --- 22288,22297 ----  File: g77.info, Node: Overview of Sources, Next: Overview of Translation Process, Up: Front End ! Overview of Sources ! =================== ! The current directory layout includes the following: `SRCDIR/gcc/' Non-g77 files in gcc *************** around a bug in `g77' until a fix is ava *** 22697,22707 ****  File: g77.info, Node: Overview of Translation Process, Next: Philosophy of Code Generation, Prev: Overview of Sources, Up: Front End ! 21.2 Overview of Translation Process ! ==================================== ! The order of phases translating source code to the form accepted by the ! GBE is: 1. Stripping punched-card sources (`g77stripcard.c') --- 22466,22476 ----  File: g77.info, Node: Overview of Translation Process, Next: Philosophy of Code Generation, Prev: Overview of Sources, Up: Front End ! Overview of Translation Process ! =============================== ! The order of phases translating source code to the form accepted by ! the GBE is: 1. Stripping punched-card sources (`g77stripcard.c') *************** decimal numbering is used, and so on. *** 22829,22838 ****  File: g77.info, Node: g77stripcard, Next: lex.c, Up: Overview of Translation Process ! 21.2.1 g77stripcard ! ------------------- ! The `g77stripcard' program handles removing content beyond column 72 (adjustable via a command-line option), optionally warning about that content being something other than trailing whitespace or Fortran commentary. --- 22598,22607 ----  File: g77.info, Node: g77stripcard, Next: lex.c, Up: Overview of Translation Process ! g77stripcard ! ------------ ! The `g77stripcard' program handles removing content beyond column 72 (adjustable via a command-line option), optionally warning about that content being something other than trailing whitespace or Fortran commentary. *************** tomorrow's Fortran programmers to read.) *** 22883,22895 ****  File: g77.info, Node: lex.c, Next: sta.c, Prev: g77stripcard, Up: Overview of Translation Process ! 21.2.2 lex.c ! ------------ ! To help make the lexer simple, fast, and easy to maintain, while also ! having `g77' generally encourage Fortran programmers to write simple, ! maintainable, portable code by maximizing the performance of compiling ! that kind of code: * There'll be just one lexer, for both fixed-form and free-form source. --- 22652,22664 ----  File: g77.info, Node: lex.c, Next: sta.c, Prev: g77stripcard, Up: Overview of Translation Process ! lex.c ! ----- ! To help make the lexer simple, fast, and easy to maintain, while ! also having `g77' generally encourage Fortran programmers to write ! simple, maintainable, portable code by maximizing the performance of ! compiling that kind of code: * There'll be just one lexer, for both fixed-form and free-form source. *************** phase of `g77'. Mainly, they need not w *** 23086,23150 ****  File: g77.info, Node: sta.c, Next: sti.c, Prev: lex.c, Up: Overview of Translation Process ! 21.2.3 sta.c ! ------------  File: g77.info, Node: sti.c, Next: stq.c, Prev: sta.c, Up: Overview of Translation Process ! 21.2.4 sti.c ! ------------  File: g77.info, Node: stq.c, Next: stb.c, Prev: sti.c, Up: Overview of Translation Process ! 21.2.5 stq.c ! ------------  File: g77.info, Node: stb.c, Next: expr.c, Prev: stq.c, Up: Overview of Translation Process ! 21.2.6 stb.c ! ------------  File: g77.info, Node: expr.c, Next: stc.c, Prev: stb.c, Up: Overview of Translation Process ! 21.2.7 expr.c ! -------------  File: g77.info, Node: stc.c, Next: std.c, Prev: expr.c, Up: Overview of Translation Process ! 21.2.8 stc.c ! ------------  File: g77.info, Node: std.c, Next: ste.c, Prev: stc.c, Up: Overview of Translation Process ! 21.2.9 std.c ! ------------  File: g77.info, Node: ste.c, Next: Gotchas (Transforming), Prev: std.c, Up: Overview of Translation Process ! 21.2.10 ste.c ! -------------  File: g77.info, Node: Gotchas (Transforming), Next: TBD (Transforming), Prev: ste.c, Up: Overview of Translation Process ! 21.2.11 Gotchas (Transforming) ! ------------------------------ ! This section is not about transforming "gotchas" into something else. It is about the weirder aspects of transforming Fortran, however that's defined, into a more modern, canonical form. ! 21.2.11.1 Multi-character Lexemes ! ................................. ! Each lexeme carries with it a pointer to where it appears in the source. To provide the ability for diagnostics to point to column numbers, in addition to line numbers and names, lexemes that represent more than --- 22855,22920 ----  File: g77.info, Node: sta.c, Next: sti.c, Prev: lex.c, Up: Overview of Translation Process ! sta.c ! -----  File: g77.info, Node: sti.c, Next: stq.c, Prev: sta.c, Up: Overview of Translation Process ! sti.c ! -----  File: g77.info, Node: stq.c, Next: stb.c, Prev: sti.c, Up: Overview of Translation Process ! stq.c ! -----  File: g77.info, Node: stb.c, Next: expr.c, Prev: stq.c, Up: Overview of Translation Process ! stb.c ! -----  File: g77.info, Node: expr.c, Next: stc.c, Prev: stb.c, Up: Overview of Translation Process ! expr.c ! ------  File: g77.info, Node: stc.c, Next: std.c, Prev: expr.c, Up: Overview of Translation Process ! stc.c ! -----  File: g77.info, Node: std.c, Next: ste.c, Prev: stc.c, Up: Overview of Translation Process ! std.c ! -----  File: g77.info, Node: ste.c, Next: Gotchas (Transforming), Prev: std.c, Up: Overview of Translation Process ! ste.c ! -----  File: g77.info, Node: Gotchas (Transforming), Next: TBD (Transforming), Prev: ste.c, Up: Overview of Translation Process ! Gotchas (Transforming) ! ---------------------- ! This section is not about transforming "gotchas" into something else. It is about the weirder aspects of transforming Fortran, however that's defined, into a more modern, canonical form. ! Multi-character Lexemes ! ....................... ! Each lexeme carries with it a pointer to where it appears in the ! source. To provide the ability for diagnostics to point to column numbers, in addition to line numbers and names, lexemes that represent more than *************** a row much easier than the old design, s *** 23213,23232 **** sacrifice. It probably makes the lexer much easier to implement than it makes the parser harder. ! 21.2.11.2 Space-padding Lexemes ! ............................... ! Certain lexemes need to be padded with virtual spaces when the end of ! the line (or file) is encountered. This is necessary in fixed form, to handle lines that don't extend to column 72, assuming that's the line length in effect. ! 21.2.11.3 Bizarre Free-form Hollerith Constants ! ............................................... ! Last I checked, the Fortran 90 standard actually required the compiler ! to silently accept something like FORMAT ( 1 2 Htwelve chars ) --- 22983,23002 ---- sacrifice. It probably makes the lexer much easier to implement than it makes the parser harder. ! Space-padding Lexemes ! ..................... ! Certain lexemes need to be padded with virtual spaces when the end ! of the line (or file) is encountered. This is necessary in fixed form, to handle lines that don't extend to column 72, assuming that's the line length in effect. ! Bizarre Free-form Hollerith Constants ! ..................................... ! Last I checked, the Fortran 90 standard actually required the ! compiler to silently accept something like FORMAT ( 1 2 Htwelve chars ) *************** subsequent phases to pull them apart as *** 23263,23272 **** must be treated--the former must be diagnosed, due to the separation between lexemes, the latter must be accepted as a proper declaration. ! 21.2.11.4 Hollerith Constants ! ............................. ! Recognizing a Hollerith constant--specifically, that an `H' or `h' after a digit string begins such a constant--requires some knowledge of context. --- 23033,23042 ---- must be treated--the former must be diagnosed, due to the separation between lexemes, the latter must be accepted as a proper declaration. ! Hollerith Constants ! ................... ! Recognizing a Hollerith constant--specifically, that an `H' or `h' after a digit string begins such a constant--requires some knowledge of context. *************** context. *** 23287,23296 **** * `CHARACTER*', which can be treated generally as any `*' that is the second lexeme of a statement ! 21.2.11.5 Confusing Function Keyword ! .................................... ! While REAL FUNCTION FOO () --- 23057,23066 ---- * `CHARACTER*', which can be treated generally as any `*' that is the second lexeme of a statement ! Confusing Function Keyword ! .......................... ! While REAL FUNCTION FOO () *************** already-started program unit (but not at *** 23317,23326 **** begins a function program unit (external, or, within `CONTAINS', nested). ! 21.2.11.6 Weird READ ! .................... ! The statement READ (N) --- 23087,23096 ---- begins a function program unit (external, or, within `CONTAINS', nested). ! Weird READ ! .......... ! The statement READ (N) *************** the standard is always assumed, and we'r *** 23369,23378 ****  File: g77.info, Node: TBD (Transforming), Prev: Gotchas (Transforming), Up: Overview of Translation Process ! 21.2.12 TBD (Transforming) ! -------------------------- ! Continue researching gotchas, designing the transformational process, and implementing it. Specific issues to resolve: --- 23139,23148 ----  File: g77.info, Node: TBD (Transforming), Prev: Gotchas (Transforming), Up: Overview of Translation Process ! TBD (Transforming) ! ------------------ ! Continue researching gotchas, designing the transformational process, and implementing it. Specific issues to resolve: *************** and implementing it. *** 23430,23439 ****  File: g77.info, Node: Philosophy of Code Generation, Next: Two-pass Design, Prev: Overview of Translation Process, Up: Front End ! 21.3 Philosophy of Code Generation ! ================================== ! Don't poke the bear. The `g77' front end generates code via the `gcc' back end. --- 23200,23209 ----  File: g77.info, Node: Philosophy of Code Generation, Next: Two-pass Design, Prev: Overview of Translation Process, Up: Front End ! Philosophy of Code Generation ! ============================= ! Don't poke the bear. The `g77' front end generates code via the `gcc' back end. *************** over shorter timeframes), for some of th *** 23558,23571 ****  File: g77.info, Node: Two-pass Design, Next: Challenges Posed, Prev: Philosophy of Code Generation, Up: Front End ! 21.4 Two-pass Design ! ==================== ! The FFE does not tell the GBE anything about a program unit until after ! the last statement in that unit has been parsed. (A program unit is a ! Fortran concept that corresponds, in the C world, mostly closely to ! functions definitions in ISO C. That is, a program unit in Fortran is ! like a top-level function in C. Nested functions, found among the extensions offered by GNU C, correspond roughly to Fortran's statement functions.) --- 23328,23341 ----  File: g77.info, Node: Two-pass Design, Next: Challenges Posed, Prev: Philosophy of Code Generation, Up: Front End ! Two-pass Design ! =============== ! The FFE does not tell the GBE anything about a program unit until ! after the last statement in that unit has been parsed. (A program unit ! is a Fortran concept that corresponds, in the C world, mostly closely ! to functions definitions in ISO C. That is, a program unit in Fortran ! is like a top-level function in C. Nested functions, found among the extensions offered by GNU C, correspond roughly to Fortran's statement functions.) *************** could be viewed as a "two-plus-pass" des *** 23589,23599 ****  File: g77.info, Node: Two-pass Code, Next: Why Two Passes, Up: Two-pass Design ! 21.4.1 Two-pass Code ! -------------------- ! Most of the code that turns the first pass (parsing) into a second pass ! for code generation is in `gcc/gcc/f/std.c'. It has external functions, called mainly by siblings in `gcc/gcc/f/stc.c', that record the information on statements and --- 23359,23369 ----  File: g77.info, Node: Two-pass Code, Next: Why Two Passes, Up: Two-pass Design ! Two-pass Code ! ------------- ! Most of the code that turns the first pass (parsing) into a second ! pass for code generation is in `gcc/gcc/f/std.c'. It has external functions, called mainly by siblings in `gcc/gcc/f/stc.c', that record the information on statements and *************** routines to represent and specify expres *** 23608,23623 ****  File: g77.info, Node: Why Two Passes, Prev: Two-pass Code, Up: Two-pass Design ! 21.4.2 Why Two Passes ! --------------------- ! The need for two passes was not immediately evident during the design ! and implementation of the code in the FFE that was to produce GBEL. ! Only after a few kludges, to handle things like incorrectly-guessed ! `ASSIGN' label nature, had been implemented, did enough evidence pile ! up to make it clear that `std.c' had to be introduced to intercept, ! save, then revisit as part of a second pass, the digested contents of a ! program unit. Other such missteps have occurred during the evolution of the FFE, because of the different goals of the FFE and the GBE. --- 23378,23393 ----  File: g77.info, Node: Why Two Passes, Prev: Two-pass Code, Up: Two-pass Design ! Why Two Passes ! -------------- ! The need for two passes was not immediately evident during the ! design and implementation of the code in the FFE that was to produce ! GBEL. Only after a few kludges, to handle things like ! incorrectly-guessed `ASSIGN' label nature, had been implemented, did ! enough evidence pile up to make it clear that `std.c' had to be ! introduced to intercept, save, then revisit as part of a second pass, ! the digested contents of a program unit. Other such missteps have occurred during the evolution of the FFE, because of the different goals of the FFE and the GBE. *************** achieve its goals. *** 23642,23653 **** foo (int a, int b) { int c = 0; ! if ((c = bar (c)) == 0) goto done; ! quux (c << 1); ! done: return c; } --- 23412,23423 ---- foo (int a, int b) { int c = 0; ! if ((c = bar (c)) == 0) goto done; ! quux (c << 1); ! done: return c; } *************** Consider: *** 23689,23700 **** REAL ARRAY(ID1*ID2) COMMON ID2 EXTERNAL FRED ! ASSIGN 100 TO J CALL FOO (I) IF (I .EQ. 0) PRINT *, A(0) GOTO 200 ! ENTRY Y (Z) ASSIGN 101 TO J 200 PRINT *, A(1) --- 23459,23470 ---- REAL ARRAY(ID1*ID2) COMMON ID2 EXTERNAL FRED ! ASSIGN 100 TO J CALL FOO (I) IF (I .EQ. 0) PRINT *, A(0) GOTO 200 ! ENTRY Y (Z) ASSIGN 101 TO J 200 PRINT *, A(1) *************** supported by `g77'.) *** 23776,23785 ****  File: g77.info, Node: Challenges Posed, Next: Transforming Statements, Prev: Two-pass Design, Up: Front End ! 21.5 Challenges Posed ! ===================== ! Consider the following Fortran code, which uses various extensions (including some to Fortran 90): SUBROUTINE X(A) --- 23546,23555 ----  File: g77.info, Node: Challenges Posed, Next: Transforming Statements, Prev: Two-pass Design, Up: Front End ! Challenges Posed ! ================ ! Consider the following Fortran code, which uses various extensions (including some to Fortran 90): SUBROUTINE X(A) *************** Consider the following Fortran code, whi *** 23787,23793 **** COMPLEX CFUNC INTEGER*2 CLOCKS(200) INTEGER IFUNC ! CALL SYSTEM_CLOCK (CLOCKS (IFUNC (CFUNC ('('//A//')')))) The above poses the following challenges to any Fortran compiler --- 23557,23563 ---- COMPLEX CFUNC INTEGER*2 CLOCKS(200) INTEGER IFUNC ! CALL SYSTEM_CLOCK (CLOCKS (IFUNC (CFUNC ('('//A//')')))) The above poses the following challenges to any Fortran compiler *************** conforming to the requirements of the GB *** 23837,23847 ****  File: g77.info, Node: Transforming Statements, Next: Transforming Expressions, Prev: Challenges Posed, Up: Front End ! 21.6 Transforming Statements ! ============================ ! Most Fortran statements are given their own block, and, for temporary ! variables they might need, their own scope. (A block is what distinguishes `{ foo (); }' from just `foo ();' in C. A scope is included with every such block, providing a distinct name space for local variables.) --- 23607,23617 ----  File: g77.info, Node: Transforming Statements, Next: Transforming Expressions, Prev: Challenges Posed, Up: Front End ! Transforming Statements ! ======================= ! Most Fortran statements are given their own block, and, for ! temporary variables they might need, their own scope. (A block is what distinguishes `{ foo (); }' from just `foo ();' in C. A scope is included with every such block, providing a distinct name space for local variables.) *************** of this document). *** 23862,23872 ****  File: g77.info, Node: Statements Needing Temporaries, Next: Transforming DO WHILE, Up: Transforming Statements ! 21.6.1 Statements Needing Temporaries ! ------------------------------------- ! Any temporaries needed during, but not beyond, execution of a Fortran ! statement, are made local to the scope of that statement's block. This allows the GBE to share storage for these temporaries among the various statements without the FFE having to manage that itself. --- 23632,23643 ----  File: g77.info, Node: Statements Needing Temporaries, Next: Transforming DO WHILE, Up: Transforming Statements ! Statements Needing Temporaries ! ------------------------------ ! Any temporaries needed during, but not beyond, execution of a ! Fortran statement, are made local to the scope of that statement's ! block. This allows the GBE to share storage for these temporaries among the various statements without the FFE having to manage that itself. *************** in the first item. *** 23918,23927 ****  File: g77.info, Node: Transforming DO WHILE, Next: Transforming Iterative DO, Prev: Statements Needing Temporaries, Up: Transforming Statements ! 21.6.2 Transforming DO WHILE ! ---------------------------- ! `DO WHILE(expr)' _must_ be implemented so that temporaries needed to evaluate `expr' are generated just for the test, each time. Consider how `DO WHILE (A//B .NE. 'END'); ...; END DO' is --- 23689,23698 ----  File: g77.info, Node: Transforming DO WHILE, Next: Transforming Iterative DO, Prev: Statements Needing Temporaries, Up: Transforming Statements ! Transforming DO WHILE ! --------------------- ! `DO WHILE(expr)' _must_ be implemented so that temporaries needed to evaluate `expr' are generated just for the test, each time. Consider how `DO WHILE (A//B .NE. 'END'); ...; END DO' is *************** transformed: *** 23930,23946 **** for (;;) { int temp0; ! { char temp1[large]; ! libg77_catenate (temp1, a, b); temp0 = libg77_ne (temp1, 'END'); } ! if (! temp0) break; ! ... } --- 23701,23717 ---- for (;;) { int temp0; ! { char temp1[large]; ! libg77_catenate (temp1, a, b); temp0 = libg77_ne (temp1, 'END'); } ! if (! temp0) break; ! ... } *************** be used in specific circumstances. *** 23959,23968 ****  File: g77.info, Node: Transforming Iterative DO, Next: Transforming Block IF, Prev: Transforming DO WHILE, Up: Transforming Statements ! 21.6.3 Transforming Iterative DO ! -------------------------------- ! An iterative `DO' loop (one that specifies an iteration variable) is required by the Fortran standards to be implemented as though an iteration count is computed before entering the loop body, and that iteration count used to determine the number of times the loop body is --- 23730,23739 ----  File: g77.info, Node: Transforming Iterative DO, Next: Transforming Block IF, Prev: Transforming DO WHILE, Up: Transforming Statements ! Transforming Iterative DO ! ------------------------- ! An iterative `DO' loop (one that specifies an iteration variable) is required by the Fortran standards to be implemented as though an iteration count is computed before entering the loop body, and that iteration count used to determine the number of times the loop body is *************** loop, and the variable declared as belon *** 23977,23991 ****  File: g77.info, Node: Transforming Block IF, Next: Transforming SELECT CASE, Prev: Transforming Iterative DO, Up: Transforming Statements ! 21.6.4 Transforming Block IF ! ---------------------------- ! Consider: SUBROUTINE X(A,B,C) CHARACTER*(*) A, B, C LOGICAL LFUNC ! IF (LFUNC (A//B)) THEN CALL SUBR1 ELSE IF (LFUNC (A//C)) THEN --- 23748,23762 ----  File: g77.info, Node: Transforming Block IF, Next: Transforming SELECT CASE, Prev: Transforming Iterative DO, Up: Transforming Statements ! Transforming Block IF ! --------------------- ! Consider: SUBROUTINE X(A,B,C) CHARACTER*(*) A, B, C LOGICAL LFUNC ! IF (LFUNC (A//B)) THEN CALL SUBR1 ELSE IF (LFUNC (A//C)) THEN *************** inner block. *** 24018,24028 ****  File: g77.info, Node: Transforming SELECT CASE, Prev: Transforming Block IF, Up: Transforming Statements ! 21.6.5 Transforming SELECT CASE ! ------------------------------- ! `SELECT CASE' poses a few interesting problems for code generation, if ! efficiency and frugal stack management are important. Consider `SELECT CASE (I('PREFIX'//A))', where `A' is `CHARACTER*(*)'. In a case like this--basically, in any case where --- 23789,23799 ----  File: g77.info, Node: Transforming SELECT CASE, Prev: Transforming Block IF, Up: Transforming Statements ! Transforming SELECT CASE ! ------------------------ ! `SELECT CASE' poses a few interesting problems for code generation, ! if efficiency and frugal stack management are important. Consider `SELECT CASE (I('PREFIX'//A))', where `A' is `CHARACTER*(*)'. In a case like this--basically, in any case where *************** block). *** 24039,24047 **** { char temp[large]; ! libg77_catenate (temp, 'prefix', a); ! switch (i (temp)) { case 0: --- 23810,23818 ---- { char temp[large]; ! libg77_catenate (temp, 'prefix', a); ! switch (i (temp)) { case 0: *************** them, and thus free that temp before exe *** 24057,24070 **** { int temp0; ! { char temp1[large]; ! libg77_catenate (temp1, 'prefix', a); temp0 = i (temp1); } ! switch (temp0) { case 0: --- 23828,23841 ---- { int temp0; ! { char temp1[large]; ! libg77_catenate (temp1, 'prefix', a); temp0 = i (temp1); } ! switch (temp0) { case 0: *************** actual code generation for `SELECT CASE' *** 24112,24122 ****  File: g77.info, Node: Transforming Expressions, Next: Internal Naming Conventions, Prev: Transforming Statements, Up: Front End ! 21.7 Transforming Expressions ! ============================= ! The interactions between statements, expressions, and subexpressions at ! program run time can be viewed as: ACTION(EXPR) --- 23883,23893 ----  File: g77.info, Node: Transforming Expressions, Next: Internal Naming Conventions, Prev: Transforming Statements, Up: Front End ! Transforming Expressions ! ======================== ! The interactions between statements, expressions, and subexpressions ! at program run time can be viewed as: ACTION(EXPR) *************** least two other streams implement the ev *** 24166,24180 ****  File: g77.info, Node: Internal Naming Conventions, Prev: Transforming Expressions, Up: Front End ! 21.8 Internal Naming Conventions ! ================================ ! Names exported by FFE modules have the following (regular-expression) ! forms. Note that all names beginning `ffeMOD' or `FFEMOD', where MOD ! is lowercase or uppercase alphanumerics, respectively, are exported by ! the module `ffeMOD', with the source code doing the exporting in ! `MOD.h'. (Usually, the source code for the implementation is in ! `MOD.c'.) Identifiers that don't fit the following forms are not considered exported, even if they are according to the C language. (For example, --- 23937,23951 ----  File: g77.info, Node: Internal Naming Conventions, Prev: Transforming Expressions, Up: Front End ! Internal Naming Conventions ! =========================== ! Names exported by FFE modules have the following ! (regular-expression) forms. Note that all names beginning `ffeMOD' or ! `FFEMOD', where MOD is lowercase or uppercase alphanumerics, ! respectively, are exported by the module `ffeMOD', with the source code ! doing the exporting in `MOD.h'. (Usually, the source code for the ! implementation is in `MOD.c'.) Identifiers that don't fit the following forms are not considered exported, even if they are according to the C language. (For example, *************** definitions. *** 24268,24278 ****  File: g77.info, Node: Diagnostics, Next: Keyword Index, Prev: Front End, Up: Top ! 22 Diagnostics ! ************** ! Some diagnostics produced by `g77' require sufficient explanation that ! the explanations are given below, and the diagnostics themselves identify the appropriate explanation. Identification uses the GNU Info format--specifically, the `info' --- 24039,24049 ----  File: g77.info, Node: Diagnostics, Next: Keyword Index, Prev: Front End, Up: Top ! Diagnostics ! *********** ! Some diagnostics produced by `g77' require sufficient explanation ! that the explanations are given below, and the diagnostics themselves identify the appropriate explanation. Identification uses the GNU Info format--specifically, the `info' *************** text you're reading now), `FOOEY' is the *** 24304,24312 ****  File: g77.info, Node: CMPAMBIG, Next: EXPIMP, Up: Diagnostics ! 22.1 `CMPAMBIG' ! =============== ! Ambiguous use of intrinsic INTRINSIC ... --- 24075,24082 ----  File: g77.info, Node: CMPAMBIG, Next: EXPIMP, Up: Diagnostics ! `CMPAMBIG' ! ========== Ambiguous use of intrinsic INTRINSIC ... *************** compiler, run away! *** 24471,24479 ****  File: g77.info, Node: EXPIMP, Next: INTGLOB, Prev: CMPAMBIG, Up: Diagnostics ! 22.2 `EXPIMP' ! ============= ! Intrinsic INTRINSIC referenced ... --- 24241,24248 ----  File: g77.info, Node: EXPIMP, Next: INTGLOB, Prev: CMPAMBIG, Up: Diagnostics ! `EXPIMP' ! ======== Intrinsic INTRINSIC referenced ... *************** procedures as intrinsics provided as ext *** 24503,24511 ****  File: g77.info, Node: INTGLOB, Next: LEX, Prev: EXPIMP, Up: Diagnostics ! 22.3 `INTGLOB' ! ============== ! Same name `INTRINSIC' given ... --- 24272,24279 ----  File: g77.info, Node: INTGLOB, Next: LEX, Prev: EXPIMP, Up: Diagnostics ! `INTGLOB' ! ========= Same name `INTRINSIC' given ... *************** procedures as intrinsics provided as ext *** 24564,24572 ****  File: g77.info, Node: LEX, Next: GLOBALS, Prev: INTGLOB, Up: Diagnostics ! 22.4 `LEX' ! ========== ! Unrecognized character ... Invalid first character ... --- 24332,24339 ----  File: g77.info, Node: LEX, Next: GLOBALS, Prev: INTGLOB, Up: Diagnostics ! `LEX' ! ===== Unrecognized character ... Invalid first character ... *************** produced when general problems such as t *** 24605,24614 **** of a line, the sixth column is reserved to denote continuation lines, and actual statements start at or beyond column 7. Spaces generally are not significant, so if you see statements such as ! `REALX,Y' and `DO10I=1,100', you are looking at fixed-form code. Comment ! lines are indicated by the letter `C' or the symbol `*' in column ! 1. (Some code uses `!' or `/*' to begin in-line comments, which ! many compilers support.) Free-form code is distinguished from fixed-form source primarily by the fact that statements may start anywhere. (If lots of --- 24372,24381 ---- of a line, the sixth column is reserved to denote continuation lines, and actual statements start at or beyond column 7. Spaces generally are not significant, so if you see statements such as ! `REALX,Y' and `DO10I=1,100', you are looking at fixed-form code. ! Comment lines are indicated by the letter `C' or the symbol `*' in ! column 1. (Some code uses `!' or `/*' to begin in-line comments, ! which many compilers support.) Free-form code is distinguished from fixed-form source primarily by the fact that statements may start anywhere. (If lots of *************** produced when general problems such as t *** 24691,24699 ****  File: g77.info, Node: GLOBALS, Next: LINKFAIL, Prev: LEX, Up: Diagnostics ! 22.5 `GLOBALS' ! ============== ! Global name NAME defined at ... already defined... Global name NAME at ... has different type... --- 24458,24465 ----  File: g77.info, Node: GLOBALS, Next: LINKFAIL, Prev: LEX, Up: Diagnostics ! `GLOBALS' ! ========= Global name NAME defined at ... already defined... Global name NAME at ... has different type... *************** exhibiting any other outward manifestati *** 24751,24758 ****  File: g77.info, Node: LINKFAIL, Next: Y2KBAD, Prev: GLOBALS, Up: Diagnostics ! 22.6 `LINKFAIL' ! =============== On AIX 4.1, `g77' might not build with the native (non-GNU) tools due to a linker bug in coping with the `-bbigtoc' option which leads to a --- 24517,24524 ----  File: g77.info, Node: LINKFAIL, Next: Y2KBAD, Prev: GLOBALS, Up: Diagnostics ! `LINKFAIL' ! ========== On AIX 4.1, `g77' might not build with the native (non-GNU) tools due to a linker bug in coping with the `-bbigtoc' option which leads to a *************** adding *** 24769,24777 ****  File: g77.info, Node: Y2KBAD, Prev: LINKFAIL, Up: Diagnostics ! 22.7 `Y2KBAD' ! ============= ! Intrinsic `NAME', invoked at (^), known to be non-Y2K-compliant... --- 24535,24542 ----  File: g77.info, Node: Y2KBAD, Prev: LINKFAIL, Up: Diagnostics ! `Y2KBAD' ! ======== Intrinsic `NAME', invoked at (^), known to be non-Y2K-compliant... *************** File: g77.info, Node: Keyword Index, P *** 24787,28447 **** Keyword Index ************* - [index] * Menu: ! * ! <1>: LEX. (line 46) ! * ! <2>: Exclamation Point. (line 6) ! * ! <3>: Trailing Comment. (line 6) ! * ! <4>: Character Set. (line 17) * !: Statements Comments Lines. ! (line 8) ! * ": Character Set. (line 19) * # <1>: Cpp-style directives. ! (line 6) ! * #: Character Set. (line 25) ! * #define: Overall Options. (line 56) ! * #if: Overall Options. (line 56) ! * #include: Overall Options. (line 56) ! * $: Dollar Signs. (line 6) ! * %: Character Set. (line 29) ! * %DESCR() construct: %DESCR(). (line 6) ! * %LOC() construct: %LOC(). (line 6) ! * %REF() construct: %REF(). (line 6) ! * %VAL() construct: %VAL(). (line 6) ! * &: Character Set. (line 27) ! * *: LEX. (line 44) ! * *N notation <1>: Compiler Types. (line 95) ! * *N notation: Star Notation. (line 6) ! * --driver option <1>: Changes. (line 430) ! * --driver option: News. (line 668) * -falias-check option <1>: Aliasing Assumed To Work. ! (line 6) ! * -falias-check option: Code Gen Options. (line 197) * -fargument-alias option <1>: Aliasing Assumed To Work. ! (line 6) ! * -fargument-alias option: Code Gen Options. (line 197) * -fargument-noalias option <1>: Aliasing Assumed To Work. ! (line 6) ! * -fargument-noalias option: Code Gen Options. (line 197) * -fbadu77-intrinsics-delete option: Fortran Dialect Options. - (line 243) * -fbadu77-intrinsics-disable option: Fortran Dialect Options. - (line 246) * -fbadu77-intrinsics-enable option: Fortran Dialect Options. - (line 248) * -fbadu77-intrinsics-hide option: Fortran Dialect Options. ! (line 244) ! * -fbounds-check option: Code Gen Options. (line 262) ! * -fcaller-saves option: Optimize Options. (line 109) * -fcase-initcap option: Fortran Dialect Options. - (line 222) * -fcase-lower option: Fortran Dialect Options. - (line 232) * -fcase-preserve option: Fortran Dialect Options. - (line 236) * -fcase-strict-lower option: Fortran Dialect Options. - (line 217) * -fcase-strict-upper option: Fortran Dialect Options. - (line 212) * -fcase-upper option: Fortran Dialect Options. ! (line 228) ! * -fdelayed-branch option: Optimize Options. (line 103) * -fdollar-ok option: Fortran Dialect Options. ! (line 37) ! * -femulate-complex option: Code Gen Options. (line 170) ! * -fexpensive-optimizations option: Optimize Options. (line 101) * -ff2c-intrinsics-delete option: Fortran Dialect Options. - (line 254) * -ff2c-intrinsics-disable option: Fortran Dialect Options. - (line 257) * -ff2c-intrinsics-enable option: Fortran Dialect Options. - (line 259) * -ff2c-intrinsics-hide option: Fortran Dialect Options. ! (line 255) ! * -ff2c-library option: Code Gen Options. (line 63) ! * -ff66 option: Shorthand Options. (line 34) ! * -ff77 option: Shorthand Options. (line 45) ! * -ff90: Fortran 90 Features. (line 11) * -ff90 option: Fortran Dialect Options. - (line 15) * -ff90-intrinsics-delete option: Fortran Dialect Options. - (line 265) * -ff90-intrinsics-disable option: Fortran Dialect Options. - (line 268) * -ff90-intrinsics-enable option: Fortran Dialect Options. - (line 270) * -ff90-intrinsics-hide option: Fortran Dialect Options. ! (line 266) ! * -ffast-math option: Optimize Options. (line 71) ! * -ffinite-math-only option: Optimize Options. (line 81) * -ffixed-line-length-N option: Fortran Dialect Options. ! (line 318) ! * -fflatten-arrays option: Code Gen Options. (line 254) ! * -ffloat-store option: Optimize Options. (line 39) ! * -fforce-addr option: Optimize Options. (line 61) ! * -fforce-mem option: Optimize Options. (line 60) ! * -ffortran-bounds-check option: Code Gen Options. (line 262) ! * -ffree-form: Fortran 90 Features. (line 10) * -ffree-form option: Fortran Dialect Options. - (line 9) * -fgnu-intrinsics-delete option: Fortran Dialect Options. - (line 276) * -fgnu-intrinsics-disable option: Fortran Dialect Options. - (line 279) * -fgnu-intrinsics-enable option: Fortran Dialect Options. - (line 281) * -fgnu-intrinsics-hide option: Fortran Dialect Options. - (line 277) * -fGROUP-intrinsics-hide option: Overly Convenient Options. - (line 63) * -finit-local-zero option <1>: Overly Convenient Options. ! (line 16) ! * -finit-local-zero option: Code Gen Options. (line 20) * -fintrin-case-any option: Fortran Dialect Options. - (line 178) * -fintrin-case-initcap option: Fortran Dialect Options. - (line 173) * -fintrin-case-lower option: Fortran Dialect Options. - (line 176) * -fintrin-case-upper option: Fortran Dialect Options. - (line 174) * -fmatch-case-any option: Fortran Dialect Options. - (line 188) * -fmatch-case-initcap option: Fortran Dialect Options. - (line 183) * -fmatch-case-lower option: Fortran Dialect Options. - (line 186) * -fmatch-case-upper option: Fortran Dialect Options. - (line 184) * -fmil-intrinsics-delete option: Fortran Dialect Options. - (line 287) * -fmil-intrinsics-disable option: Fortran Dialect Options. - (line 290) * -fmil-intrinsics-enable option: Fortran Dialect Options. - (line 292) * -fmil-intrinsics-hide option: Fortran Dialect Options. - (line 288) * -fno-argument-noalias-global option <1>: Aliasing Assumed To Work. ! (line 6) ! * -fno-argument-noalias-global option: Code Gen Options. (line 197) * -fno-automatic option <1>: Overly Convenient Options. ! (line 32) ! * -fno-automatic option: Code Gen Options. (line 14) * -fno-backslash option: Fortran Dialect Options. ! (line 40) ! * -fno-common option: Code Gen Options. (line 332) * -fno-f2c option <1>: Avoid f2c Compatibility. ! (line 6) ! * -fno-f2c option: Code Gen Options. (line 29) ! * -fno-f77 option: Shorthand Options. (line 54) * -fno-fixed-form option: Fortran Dialect Options. ! (line 9) ! * -fno-globals option: Code Gen Options. (line 223) ! * -fno-ident option: Code Gen Options. (line 145) ! * -fno-inline option: Optimize Options. (line 65) ! * -fno-move-all-movables option: Optimize Options. (line 134) ! * -fno-reduce-all-givs option: Optimize Options. (line 136) ! * -fno-rerun-loop-opt option: Optimize Options. (line 138) * -fno-second-underscore: f2c Skeletons and Prototypes. ! (line 6) ! * -fno-second-underscore option <1>: Names. (line 23) ! * -fno-second-underscore option: Code Gen Options. (line 135) ! * -fno-silent option: Overall Options. (line 134) ! * -fno-trapping-math option: Optimize Options. (line 91) ! * -fno-ugly option: Shorthand Options. (line 24) * -fno-ugly-args option: Fortran Dialect Options. - (line 59) * -fno-ugly-init option: Fortran Dialect Options. ! (line 108) ! * -fno-underscoring option <1>: Names. (line 23) ! * -fno-underscoring option: Code Gen Options. (line 73) * -fonetrip option: Fortran Dialect Options. ! (line 127) ! * -fpack-struct option: Code Gen Options. (line 336) ! * -fpcc-struct-return option: Code Gen Options. (line 321) ! * -fpedantic option: Warning Options. (line 44) ! * -fPIC option: News. (line 854) ! * -freg-struct-return option: Code Gen Options. (line 322) ! * -frerun-cse-after-loop option: Optimize Options. (line 100) ! * -fschedule-insns option: Optimize Options. (line 105) ! * -fschedule-insns2 option: Optimize Options. (line 107) ! * -fset-g77-defaults option: Overall Options. (line 111) ! * -fshort-double option: Code Gen Options. (line 328) * -fsource-case-lower option: Fortran Dialect Options. - (line 194) * -fsource-case-preserve option: Fortran Dialect Options. - (line 196) * -fsource-case-upper option: Fortran Dialect Options. ! (line 193) ! * -fstrength-reduce option: Optimize Options. (line 97) * -fsymbol-case-any option: Fortran Dialect Options. - (line 207) * -fsymbol-case-initcap option: Fortran Dialect Options. - (line 202) * -fsymbol-case-lower option: Fortran Dialect Options. - (line 205) * -fsymbol-case-upper option: Fortran Dialect Options. ! (line 203) ! * -fsyntax-only option: Warning Options. (line 20) * -ftypeless-boz option: Fortran Dialect Options. ! (line 153) ! * -fugly option: Shorthand Options. (line 9) * -fugly-assign option: Fortran Dialect Options. - (line 65) * -fugly-assumed option: Fortran Dialect Options. - (line 72) * -fugly-comma option: Fortran Dialect Options. - (line 82) * -fugly-complex option: Fortran Dialect Options. - (line 99) * -fugly-logint option: Fortran Dialect Options. - (line 118) * -funix-intrinsics-delete option: Fortran Dialect Options. - (line 298) * -funix-intrinsics-disable option: Fortran Dialect Options. - (line 301) * -funix-intrinsics-enable option: Fortran Dialect Options. - (line 303) * -funix-intrinsics-hide option: Fortran Dialect Options. ! (line 299) ! * -funroll-all-loops option: Optimize Options. (line 127) ! * -funroll-loops option: Optimize Options. (line 113) ! * -funsafe-math-optimizations option: Optimize Options. (line 77) ! * -fversion option: Overall Options. (line 99) * -fvxt option: Fortran Dialect Options. - (line 26) * -fvxt-intrinsics-delete option: Fortran Dialect Options. - (line 308) * -fvxt-intrinsics-disable option: Fortran Dialect Options. - (line 311) * -fvxt-intrinsics-enable option: Fortran Dialect Options. - (line 313) * -fvxt-intrinsics-hide option: Fortran Dialect Options. ! (line 309) ! * -fzeros option: Code Gen Options. (line 148) ! * -g option: Debugging Options. (line 9) ! * -I- option: Directory Options. (line 14) * -i8: Increasing Precision/Range. ! (line 6) ! * -Idir option: Directory Options. (line 15) ! * -malign-double <1>: Changes. (line 282) ! * -malign-double: News. (line 364) ! * -malign-double option <1>: Aligned Data. (line 59) ! * -malign-double option: Optimize Options. (line 16) ! * -Nl option: Compiler Limits. (line 10) ! * -Nx option: Compiler Limits. (line 10) ! * -O2: News. (line 560) ! * -pedantic option: Warning Options. (line 24) ! * -pedantic-errors option: Warning Options. (line 40) * -qrealsize=8: Increasing Precision/Range. - (line 6) * -r8: Increasing Precision/Range. ! (line 6) ! * -u option: Warning Options. (line 61) ! * -v option: G77 and GCC. (line 27) ! * -W option: Warning Options. (line 185) ! * -w option: Warning Options. (line 47) ! * -Waggregate-return option: Warning Options. (line 226) ! * -Wall option: Warning Options. (line 114) ! * -Wcomment option: Warning Options. (line 205) ! * -Wconversion option: Warning Options. (line 224) ! * -Werror option: Warning Options. (line 182) ! * -Wformat option: Warning Options. (line 206) ! * -Wid-clash-LEN option: Warning Options. (line 220) ! * -Wimplicit option: Warning Options. (line 60) ! * -Wlarger-than-LEN option: Warning Options. (line 222) ! * -Wno-globals option: Warning Options. (line 50) ! * -Wparentheses option: Warning Options. (line 208) ! * -Wredundant-decls option: Warning Options. (line 228) ! * -Wshadow option: Warning Options. (line 218) ! * -Wsurprising option: Warning Options. (line 124) ! * -Wswitch option: Warning Options. (line 210) ! * -Wswitch-default option: Warning Options. (line 212) ! * -Wswitch-enum option: Warning Options. (line 214) ! * -Wtraditional option: Warning Options. (line 216) ! * -Wuninitialized option: Warning Options. (line 69) ! * -Wunused option: Warning Options. (line 66) ! * -x f77-cpp-input option: LEX. (line 109) * .EQV., with integer operands: Equivalence Versus Equality. ! (line 6) ! * .F filename suffix: Overall Options. (line 33) ! * .f filename suffix: Overall Options. (line 20) ! * .FOR filename suffix: Overall Options. (line 20) ! * .for filename suffix: Overall Options. (line 20) ! * .FPP filename suffix: Overall Options. (line 33) ! * .fpp filename suffix: Overall Options. (line 33) ! * .gdbinit: Main Program Unit. (line 33) ! * .r filename suffix: Overall Options. (line 45) ! * /* <1>: Trailing Comment. (line 6) ! * /*: Overall Options. (line 90) ! * /WARNINGS=DECLARATIONS switch: Warning Options. (line 61) * 80-bit spills: Floating-point Errors. ! (line 113) ! * ; <1>: Character Set. (line 15) * ;: Statements Comments Lines. ! (line 23) ! * <: Character Set. (line 33) ! * <> edit descriptor: I/O. (line 9) ! * >: Character Set. (line 35) ! * ?: Character Set. (line 23) ! * \: Character Set. (line 21) ! * _: Character Set. (line 31) ! * Abort intrinsic: Abort Intrinsic. (line 6) ! * Abs intrinsic: Abs Intrinsic. (line 6) * ACCEPT statement: TYPE and ACCEPT I/O Statements. ! (line 6) ! * Access intrinsic: Access Intrinsic. (line 6) ! * AChar intrinsic: AChar Intrinsic. (line 6) ! * ACos intrinsic: ACos Intrinsic. (line 6) ! * ACosD intrinsic: ACosD Intrinsic. (line 6) ! * adding options: Adding Options. (line 6) ! * adjustable arrays: Adjustable Arrays. (line 6) ! * AdjustL intrinsic: AdjustL Intrinsic. (line 6) ! * AdjustR intrinsic: AdjustR Intrinsic. (line 6) ! * AImag intrinsic <1>: AImag Intrinsic. (line 6) * AImag intrinsic: REAL() and AIMAG() of Complex. ! (line 6) ! * AIMax0 intrinsic: AIMax0 Intrinsic. (line 6) ! * AIMin0 intrinsic: AIMin0 Intrinsic. (line 6) ! * AInt intrinsic: AInt Intrinsic. (line 6) ! * AJMax0 intrinsic: AJMax0 Intrinsic. (line 6) ! * AJMin0 intrinsic: AJMin0 Intrinsic. (line 6) ! * Alarm intrinsic: Alarm Intrinsic. (line 6) ! * aliasing <1>: Known Bugs. (line 133) * aliasing: Aliasing Assumed To Work. ! (line 6) ! * aligned data: Aligned Data. (line 6) ! * aligned stack: Aligned Data. (line 6) ! * alignment <1>: Aligned Data. (line 6) ! * alignment <2>: Changes. (line 282) ! * alignment: News. (line 364) ! * All intrinsic: All Intrinsic. (line 6) ! * all warnings: Warning Options. (line 115) ! * Allocated intrinsic: Allocated Intrinsic. (line 6) ! * ALog intrinsic: ALog Intrinsic. (line 6) ! * ALog10 intrinsic: ALog10 Intrinsic. (line 6) ! * Alpha, support: Known Bugs. (line 117) * alternate entry points: Alternate Entry Points. ! (line 6) ! * alternate returns: Alternate Returns. (line 6) * ALWAYS_FLUSH: Output Assumed To Flush. ! (line 6) ! * AMax0 intrinsic: AMax0 Intrinsic. (line 6) ! * AMax1 intrinsic: AMax1 Intrinsic. (line 6) ! * AMin0 intrinsic: AMin0 Intrinsic. (line 6) ! * AMin1 intrinsic: AMin1 Intrinsic. (line 6) ! * AMod intrinsic: AMod Intrinsic. (line 6) ! * ampersand: Character Set. (line 27) ! * ampersand continuation line: Ampersands. (line 6) * And intrinsic <1>: Bit Operations on Floating-point Data. ! (line 6) ! * And intrinsic: And Intrinsic. (line 6) ! * ANInt intrinsic: ANInt Intrinsic. (line 6) * ANS carriage control: OPEN CLOSE and INQUIRE Keywords. ! (line 10) ! * ANSI FORTRAN 77 standard: Language. (line 6) ! * ANSI FORTRAN 77 support: Standard Support. (line 6) * anti-aliasing: Aliasing Assumed To Work. ! (line 6) ! * Any intrinsic: Any Intrinsic. (line 6) ! * arguments, null: Ugly Null Arguments. (line 6) ! * arguments, omitting: Ugly Null Arguments. (line 11) ! * arguments, unused <1>: Unused Arguments. (line 6) ! * arguments, unused: Warning Options. (line 192) ! * array bounds checking: Code Gen Options. (line 264) * array bounds, adjustable: Array Bounds Expressions. - (line 6) * array elements, in adjustable array bounds: Array Bounds Expressions. ! (line 6) ! * array ordering: Arrays. (line 6) ! * array performance: Code Gen Options. (line 255) ! * array size: Array Size. (line 6) ! * arrays: Arrays. (line 6) ! * arrays, adjustable: Adjustable Arrays. (line 6) * arrays, assumed-size: Ugly Assumed-Size Arrays. - (line 6) * arrays, automatic <1>: Large Automatic Arrays. ! (line 6) ! * arrays, automatic <2>: Stack Overflow. (line 41) * arrays, automatic <3>: Overly Convenient Options. ! (line 53) ! * arrays, automatic: Adjustable Arrays. (line 6) ! * arrays, dimensioning <1>: Adjustable Arrays. (line 6) ! * arrays, dimensioning: Array Size. (line 22) ! * arrays, flattening: Code Gen Options. (line 255) * as command: What is GNU Fortran?. ! (line 93) ! * ASin intrinsic: ASin Intrinsic. (line 6) ! * ASinD intrinsic: ASinD Intrinsic. (line 6) * assembler: What is GNU Fortran?. - (line 93) * assembly code: What is GNU Fortran?. ! (line 93) ! * assembly code, invalid: Bug Criteria. (line 13) * ASSIGN statement <1>: Assigned Statement Labels. - (line 6) * ASSIGN statement: Ugly Assigned Labels. - (line 6) * assigned labels: Ugly Assigned Labels. - (line 6) * assigned statement labels: Assigned Statement Labels. - (line 6) * Associated intrinsic: Associated Intrinsic. - (line 6) * association, storage: Aliasing Assumed To Work. - (line 6) * assumed-size arrays: Ugly Assumed-Size Arrays. ! (line 6) ! * asterisk: LEX. (line 44) ! * ATan intrinsic: ATan Intrinsic. (line 6) ! * ATan2 intrinsic: ATan2 Intrinsic. (line 6) ! * ATan2D intrinsic: ATan2D Intrinsic. (line 6) ! * ATanD intrinsic: ATanD Intrinsic. (line 6) * automatic arrays <1>: Large Automatic Arrays. ! (line 6) ! * automatic arrays <2>: Stack Overflow. (line 41) * automatic arrays <3>: Overly Convenient Options. ! (line 53) ! * automatic arrays: Adjustable Arrays. (line 6) ! * AUTOMATIC statement: AUTOMATIC Statement. (line 6) ! * automatic variables: AUTOMATIC Statement. (line 6) * back end, gcc <1>: Philosophy of Code Generation. - (line 10) * back end, gcc: What is GNU Fortran?. - (line 165) * backslash <1>: Backslash in Constants. ! (line 6) ! * backslash <2>: Character Set. (line 21) * backslash: Fortran Dialect Options. - (line 41) * badu77 intrinsics: Fortran Dialect Options. ! (line 250) ! * badu77 intrinsics group: Intrinsic Groups. (line 69) * basic concepts: What is GNU Fortran?. - (line 6) * Bear-poking: Philosophy of Code Generation. ! (line 69) ! * beginners: Getting Started. (line 6) ! * BesJ0 intrinsic: BesJ0 Intrinsic. (line 6) ! * BesJ1 intrinsic: BesJ1 Intrinsic. (line 6) ! * BesJN intrinsic: BesJN Intrinsic. (line 6) ! * BesY0 intrinsic: BesY0 Intrinsic. (line 6) ! * BesY1 intrinsic: BesY1 Intrinsic. (line 6) ! * BesYN intrinsic: BesYN Intrinsic. (line 6) * binary data: Portable Unformatted Files. ! (line 6) ! * Bit_Size intrinsic: Bit_Size Intrinsic. (line 6) ! * BITest intrinsic: BITest Intrinsic. (line 6) ! * BJTest intrinsic: BJTest Intrinsic. (line 6) ! * blank <1>: Lines. (line 37) ! * blank: Character Set. (line 40) * block data: Multiple Definitions of External Names. - (line 6) * block data and libraries: Block Data and Libraries. - (line 6) * BLOCK DATA statement <1>: Multiple Definitions of External Names. - (line 6) * BLOCK DATA statement: Block Data and Libraries. ! (line 6) ! * bounds checking: Code Gen Options. (line 264) ! * BTest intrinsic: BTest Intrinsic. (line 6) ! * bug criteria: Bug Criteria. (line 6) ! * bugs: Bugs. (line 6) * bugs, finding: What is GNU Fortran?. ! (line 33) ! * bugs, known: Trouble. (line 6) * bus error <1>: Strange Behavior at Run Time. ! (line 6) ! * bus error: NeXTStep Problems. (line 6) ! * but-bugs: But-bugs. (line 6) * byte ordering: Portable Unformatted Files. - (line 6) * C library: Strange Behavior at Run Time. ! (line 42) ! * C preprocessor: Overall Options. (line 33) * C routines calling Fortran: Debugging and Interfacing. ! (line 6) ! * C++: C++ Considerations. (line 6) * C++, linking with: Interoperating with C and C++. - (line 6) * C, linking with: Interoperating with C and C++. ! (line 6) ! * CAbs intrinsic: CAbs Intrinsic. (line 6) * calling C routines: Debugging and Interfacing. - (line 6) * card image: Fortran Dialect Options. - (line 323) * carriage control: OPEN CLOSE and INQUIRE Keywords. ! (line 10) ! * carriage returns: Carriage Returns. (line 6) ! * case sensitivity: Case Sensitivity. (line 6) * cc1 program: What is GNU Fortran?. - (line 106) * cc1plus program: What is GNU Fortran?. ! (line 111) ! * CCos intrinsic: CCos Intrinsic. (line 6) ! * CDAbs intrinsic: CDAbs Intrinsic. (line 6) ! * CDCos intrinsic: CDCos Intrinsic. (line 6) ! * CDExp intrinsic: CDExp Intrinsic. (line 6) ! * CDLog intrinsic: CDLog Intrinsic. (line 6) ! * CDSin intrinsic: CDSin Intrinsic. (line 6) ! * CDSqRt intrinsic: CDSqRt Intrinsic. (line 6) ! * Ceiling intrinsic: Ceiling Intrinsic. (line 6) ! * CExp intrinsic: CExp Intrinsic. (line 6) ! * cfortran.h: C Interfacing Tools. (line 6) ! * changes, user-visible: Changes. (line 6) ! * Char intrinsic: Char Intrinsic. (line 6) ! * character assignments: Fortran 90 Features. (line 19) * character constants <1>: Character and Hollerith Constants. - (line 6) * character constants <2>: Ugly Conversion of Initializers. - (line 20) * character constants <3>: Double Quote Meaning. - (line 6) * character constants: Fortran Dialect Options. - (line 41) * character set: Fortran Dialect Options. - (line 38) * CHARACTER*(*): Arbitrary Concatenation. ! (line 6) ! * CHARACTER, null: Character Type. (line 14) * character-variable length: Character-variable Length. ! (line 6) ! * characters: Character Set. (line 6) ! * characters, comma: Ugly Null Arguments. (line 6) ! * characters, comment <1>: LEX. (line 46) ! * characters, comment <2>: Exclamation Point. (line 6) ! * characters, comment <3>: Trailing Comment. (line 6) * characters, comment: Statements Comments Lines. ! (line 8) ! * characters, continuation <1>: LEX. (line 39) ! * characters, continuation <2>: Exclamation Point. (line 6) * characters, continuation: Statements Comments Lines. - (line 8) * ChDir intrinsic <1>: ChDir Intrinsic (function). - (line 6) * ChDir intrinsic: ChDir Intrinsic (subroutine). ! (line 6) ! * checking subscripts: Code Gen Options. (line 264) ! * checking substrings: Code Gen Options. (line 264) ! * checks, of internal consistency: Overall Options. (line 99) * ChMod intrinsic <1>: ChMod Intrinsic (function). - (line 6) * ChMod intrinsic: ChMod Intrinsic (subroutine). ! (line 6) ! * CLog intrinsic: CLog Intrinsic. (line 6) ! * close angle: Character Set. (line 35) ! * close bracket: Character Set. (line 35) * CLOSE statement: OPEN CLOSE and INQUIRE Keywords. ! (line 6) ! * Cmplx intrinsic <1>: Cmplx Intrinsic. (line 6) * Cmplx intrinsic: CMPLX() of DOUBLE PRECISION. ! (line 6) ! * code generation, conventions: Code Gen Options. (line 6) ! * code generation, improving: Better Optimization. (line 6) * code generator <1>: Philosophy of Code Generation. - (line 10) * code generator: What is GNU Fortran?. - (line 165) * code, assembly: What is GNU Fortran?. ! (line 93) ! * code, displaying main source: Known Bugs. (line 93) * code, in-line: What is GNU Fortran?. - (line 147) * code, legacy: Collected Fortran Wisdom. - (line 6) * code, machine: What is GNU Fortran?. ! (line 24) ! * code, source <1>: Case Sensitivity. (line 6) ! * code, source <2>: Source Form. (line 6) ! * code, source <3>: Lines. (line 6) * code, source: What is GNU Fortran?. - (line 20) * code, user: Cannot Link Fortran Programs. - (line 6) * code, writing: Collected Fortran Wisdom. ! (line 6) ! * column-major ordering: Arrays. (line 6) ! * columns 73 through 80: Better Source Model. (line 28) ! * comma, trailing: Ugly Null Arguments. (line 6) ! * command options: Invoking G77. (line 6) * commands, as: What is GNU Fortran?. ! (line 93) ! * commands, g77 <1>: G77 and GCC. (line 21) * commands, g77: What is GNU Fortran?. ! (line 78) ! * commands, gcc <1>: G77 and GCC. (line 6) * commands, gcc: What is GNU Fortran?. - (line 72) * commands, gdb: What is GNU Fortran?. - (line 33) * commands, ld: What is GNU Fortran?. ! (line 37) ! * comment <1>: LEX. (line 46) ! * comment <2>: Trailing Comment. (line 6) * comment: Statements Comments Lines. ! (line 8) ! * comment character: Exclamation Point. (line 6) * comment line, debug <1>: Enabling Debug Lines. ! (line 6) ! * comment line, debug: Debug Line. (line 6) ! * common blocks <1>: Mangling of Names. (line 6) ! * common blocks <2>: Known Bugs. (line 122) ! * common blocks: Common Blocks. (line 6) ! * common blocks, large: Large Common Blocks. (line 6) ! * COMMON layout: Aligned Data. (line 20) * COMMON statement <1>: Multiple Definitions of External Names. ! (line 6) ! * COMMON statement: Common Blocks. (line 6) * comparing logical expressions: Equivalence Versus Equality. - (line 6) * compatibility, f2c <1>: Avoid f2c Compatibility. - (line 6) * compatibility, f2c <2>: Block Data and Libraries. ! (line 6) ! * compatibility, f2c <3>: Code Gen Options. (line 30) ! * compatibility, f2c <4>: Shorthand Options. (line 46) ! * compatibility, f2c: Overall Options. (line 134) ! * compatibility, f77: Shorthand Options. (line 46) * compatibility, FORTRAN 66 <1>: Fortran Dialect Options. ! (line 128) ! * compatibility, FORTRAN 66: Shorthand Options. (line 35) ! * compatibility, FORTRAN 77: Standard Support. (line 6) ! * compatibility, Fortran 90: Fortran 90. (line 6) ! * compilation, in-line <1>: GLOBALS. (line 26) ! * compilation, in-line <2>: Code Gen Options. (line 224) ! * compilation, in-line: Optimize Options. (line 66) * compilation, pedantic: Pedantic Compilation. ! (line 6) ! * compilation, status: Overall Options. (line 134) ! * compiler bugs, reporting: Bug Reporting. (line 6) ! * compiler limits: Compiler Limits. (line 6) ! * compiler memory usage: Known Bugs. (line 45) ! * compiler speed: Known Bugs. (line 45) * compilers: What is GNU Fortran?. ! (line 17) ! * compiling programs: G77 and GCC. (line 6) ! * Complex intrinsic: Complex Intrinsic. (line 6) * COMPLEX intrinsics: Fortran Dialect Options. ! (line 283) ! * complex performance: Known Bugs. (line 133) ! * COMPLEX statement: Complex Variables. (line 6) * complex values: Ugly Complex Part Extraction. ! (line 6) ! * complex variables: Complex Variables. (line 6) ! * COMPLEX(KIND=1) type: Compiler Types. (line 88) ! * COMPLEX(KIND=2) type: Compiler Types. (line 92) * components of g77: What is GNU Fortran?. - (line 70) * concatenation: Arbitrary Concatenation. - (line 6) * concepts, basic: What is GNU Fortran?. - (line 6) * conformance, IEEE 754 <1>: Floating-point precision. ! (line 6) ! * conformance, IEEE 754: Optimize Options. (line 40) ! * Conjg intrinsic: Conjg Intrinsic. (line 6) ! * consistency checks: Overall Options. (line 99) ! * constants <1>: Compiler Constants. (line 6) ! * constants: Constants. (line 6) * constants, character <1>: Character and Hollerith Constants. - (line 6) * constants, character <2>: Ugly Conversion of Initializers. - (line 20) * constants, character: Double Quote Meaning. - (line 6) * constants, context-sensitive: Context-Sensitive Constants. - (line 6) * constants, Hollerith <1>: Character and Hollerith Constants. - (line 6) * constants, Hollerith <2>: Ugly Conversion of Initializers. - (line 8) * constants, Hollerith: Ugly Implicit Argument Conversion. ! (line 6) ! * constants, integer: Known Bugs. (line 32) * constants, octal: Double Quote Meaning. - (line 6) * constants, prefix-radix: Fortran Dialect Options. - (line 153) * constants, types: Fortran Dialect Options. ! (line 153) ! * construct names: Construct Names. (line 6) * context-sensitive constants: Context-Sensitive Constants. - (line 6) * context-sensitive intrinsics: Context-Sensitive Intrinsicness. ! (line 6) ! * continuation character <1>: LEX. (line 39) ! * continuation character <2>: Exclamation Point. (line 6) * continuation character: Statements Comments Lines. ! (line 8) ! * continuation line, ampersand: Ampersands. (line 6) ! * continuation line, number of: Continuation Line. (line 6) ! * contributors: Contributors. (line 6) * conversions, nonportable: Nonportable Conversions. ! (line 6) ! * core dump: Bug Criteria. (line 9) ! * Cos intrinsic: Cos Intrinsic. (line 6) ! * CosD intrinsic: CosD Intrinsic. (line 6) ! * CosH intrinsic: CosH Intrinsic. (line 6) ! * Count intrinsic: Count Intrinsic. (line 6) ! * cpp preprocessor: Overall Options. (line 33) ! * cpp program <1>: LEX. (line 109) * cpp program <2>: Preprocessor Options. ! (line 6) ! * cpp program <3>: Overall Options. (line 33) * cpp program: What is GNU Fortran?. ! (line 106) ! * CPU_Time intrinsic: CPU_Time Intrinsic. (line 6) ! * Cray pointers: POINTER Statements. (line 6) ! * credits: Contributors. (line 6) ! * CShift intrinsic: CShift Intrinsic. (line 6) ! * CSin intrinsic: CSin Intrinsic. (line 6) ! * CSqRt intrinsic: CSqRt Intrinsic. (line 6) * CTime intrinsic <1>: CTime Intrinsic (function). - (line 6) * CTime intrinsic: CTime Intrinsic (subroutine). ! (line 6) ! * CYCLE statement: CYCLE and EXIT. (line 6) ! * DAbs intrinsic: DAbs Intrinsic. (line 6) ! * DACos intrinsic: DACos Intrinsic. (line 6) ! * DACosD intrinsic: DACosD Intrinsic. (line 6) ! * DASin intrinsic: DASin Intrinsic. (line 6) ! * DASinD intrinsic: DASinD Intrinsic. (line 6) ! * DATA statement <1>: Known Bugs. (line 45) ! * DATA statement: Code Gen Options. (line 21) ! * data types: Compiler Types. (line 6) ! * data, aligned: Aligned Data. (line 6) * data, overwritten: Strange Behavior at Run Time. ! (line 6) ! * DATan intrinsic: DATan Intrinsic. (line 6) ! * DATan2 intrinsic: DATan2 Intrinsic. (line 6) ! * DATan2D intrinsic: DATan2D Intrinsic. (line 6) ! * DATanD intrinsic: DATanD Intrinsic. (line 6) ! * Date intrinsic: Date Intrinsic. (line 6) * Date_and_Time intrinsic: Date_and_Time Intrinsic. - (line 6) * date_y2kbuggy_0: Year 2000 (Y2K) Problems. ! (line 28) ! * DbesJ0 intrinsic: DbesJ0 Intrinsic. (line 6) ! * DbesJ1 intrinsic: DbesJ1 Intrinsic. (line 6) ! * DbesJN intrinsic: DbesJN Intrinsic. (line 6) ! * DbesY0 intrinsic: DbesY0 Intrinsic. (line 6) ! * DbesY1 intrinsic: DbesY1 Intrinsic. (line 6) ! * DbesYN intrinsic: DbesYN Intrinsic. (line 6) ! * Dble intrinsic: Dble Intrinsic. (line 6) ! * DbleQ intrinsic: DbleQ Intrinsic. (line 6) ! * DCmplx intrinsic: DCmplx Intrinsic. (line 6) ! * DConjg intrinsic: DConjg Intrinsic. (line 6) ! * DCos intrinsic: DCos Intrinsic. (line 6) ! * DCosD intrinsic: DCosD Intrinsic. (line 6) ! * DCosH intrinsic: DCosH Intrinsic. (line 6) ! * DDiM intrinsic: DDiM Intrinsic. (line 6) * debug line <1>: Enabling Debug Lines. ! (line 6) ! * debug line: Debug Line. (line 6) ! * debugger <1>: Known Bugs. (line 102) * debugger: What is GNU Fortran?. ! (line 33) ! * debugging <1>: Names. (line 36) ! * debugging <2>: Main Program Unit. (line 33) * debugging: Debugging and Interfacing. ! (line 6) ! * debugging information options: Debugging Options. (line 6) ! * debugging main source code: Known Bugs. (line 93) ! * DECODE statement: ENCODE and DECODE. (line 6) ! * deleted intrinsics: Intrinsic Groups. (line 10) ! * DErF intrinsic: DErF Intrinsic. (line 6) ! * DErFC intrinsic: DErFC Intrinsic. (line 6) ! * DExp intrinsic: DExp Intrinsic. (line 6) ! * DFloat intrinsic: DFloat Intrinsic. (line 6) ! * DFlotI intrinsic: DFlotI Intrinsic. (line 6) ! * DFlotJ intrinsic: DFlotJ Intrinsic. (line 6) ! * diagnostics: Diagnostics. (line 6) * diagnostics, incorrect: What is GNU Fortran?. - (line 51) * dialect options: Fortran Dialect Options. - (line 6) * Digital Fortran features: Fortran Dialect Options. ! (line 283) ! * Digits intrinsic: Digits Intrinsic. (line 6) ! * DiM intrinsic: DiM Intrinsic. (line 6) ! * DImag intrinsic: DImag Intrinsic. (line 6) * DIMENSION statement <1>: Array Bounds Expressions. ! (line 6) ! * DIMENSION statement <2>: Adjustable Arrays. (line 6) ! * DIMENSION statement: Arrays. (line 6) * DIMENSION X(1): Ugly Assumed-Size Arrays. ! (line 6) ! * dimensioning arrays: Adjustable Arrays. (line 6) ! * DInt intrinsic: DInt Intrinsic. (line 6) * direction of language development: Direction of Language Development. ! (line 6) ! * directive, INCLUDE <1>: Directory Options. (line 10) * directive, INCLUDE: Preprocessor Options. ! (line 12) ! * directory, options: Directory Options. (line 6) ! * directory, search paths for inclusion: Directory Options. (line 17) ! * disabled intrinsics: Intrinsic Groups. (line 13) * disk full: Output Assumed To Flush. ! (line 6) ! * displaying main source code: Known Bugs. (line 93) * disposition of files: OPEN CLOSE and INQUIRE Keywords. ! (line 6) ! * distensions: Distensions. (line 6) ! * DLog intrinsic: DLog Intrinsic. (line 6) ! * DLog10 intrinsic: DLog10 Intrinsic. (line 6) ! * DMax1 intrinsic: DMax1 Intrinsic. (line 6) ! * DMin1 intrinsic: DMin1 Intrinsic. (line 6) ! * DMod intrinsic: DMod Intrinsic. (line 6) ! * DNInt intrinsic: DNInt Intrinsic. (line 6) ! * DNRM2: News. (line 560) ! * DO: DO WHILE. (line 6) * DO loops, one-trip: Fortran Dialect Options. - (line 128) * DO loops, zero-trip: Fortran Dialect Options. ! (line 128) ! * DO statement <1>: Loops. (line 6) ! * DO statement: Warning Options. (line 171) ! * DO WHILE <1>: DO WHILE. (line 6) ! * DO WHILE: Optimize Options. (line 127) ! * dollar sign <1>: Dollar Signs. (line 6) ! * dollar sign <2>: I/O. (line 6) * dollar sign: Fortran Dialect Options. - (line 38) * Dot_Product intrinsic: Dot_Product Intrinsic. ! (line 6) ! * DOUBLE COMPLEX: DOUBLE COMPLEX. (line 6) ! * DOUBLE COMPLEX type: Compiler Types. (line 103) ! * DOUBLE PRECISION type: Compiler Types. (line 100) ! * double quote: Character Set. (line 19) ! * double quoted character constants <1>: Fortran 90 Features. (line 23) ! * double quoted character constants: Character Type. (line 8) * double quotes: Double Quote Meaning. ! (line 6) ! * double-precision performance <1>: Changes. (line 282) ! * double-precision performance: News. (line 364) ! * DProd intrinsic: DProd Intrinsic. (line 6) ! * DReal intrinsic: DReal Intrinsic. (line 6) * driver, gcc command as: What is GNU Fortran?. ! (line 106) ! * DSign intrinsic: DSign Intrinsic. (line 6) ! * DSin intrinsic: DSin Intrinsic. (line 6) ! * DSinD intrinsic: DSinD Intrinsic. (line 6) ! * DSinH intrinsic: DSinH Intrinsic. (line 6) ! * DSqRt intrinsic: DSqRt Intrinsic. (line 6) ! * DTan intrinsic: DTan Intrinsic. (line 6) ! * DTanD intrinsic: DTanD Intrinsic. (line 6) ! * DTanH intrinsic: DTanH Intrinsic. (line 6) * DTime intrinsic <1>: DTime Intrinsic (function). - (line 6) * DTime intrinsic: DTime Intrinsic (subroutine). ! (line 6) ! * dummies, unused: Warning Options. (line 192) ! * edit descriptor, <>: I/O. (line 9) ! * edit descriptor, O: I/O. (line 16) ! * edit descriptor, Q: Q Edit Descriptor. (line 6) ! * edit descriptor, Z <1>: Fortran 90 Features. (line 68) ! * edit descriptor, Z: I/O. (line 16) ! * effecting IMPLICIT NONE: Warning Options. (line 61) ! * efficiency: Efficiency. (line 6) ! * ELF support: News. (line 854) ! * empty CHARACTER strings: Character Type. (line 14) ! * enabled intrinsics: Intrinsic Groups. (line 23) ! * ENCODE statement: ENCODE and DECODE. (line 6) ! * END DO: END DO. (line 6) * entry points: Alternate Entry Points. - (line 6) * ENTRY statement: Alternate Entry Points. - (line 6) * environment variables: Environment Variables. ! (line 6) ! * EOShift intrinsic: EOShift Intrinsic. (line 6) ! * Epsilon intrinsic: Epsilon Intrinsic. (line 6) ! * equivalence areas <1>: Known Bugs. (line 122) * equivalence areas: Local Equivalence Areas. - (line 6) * EQUIVALENCE statement: Local Equivalence Areas. ! (line 6) ! * ErF intrinsic: ErF Intrinsic. (line 6) ! * ErFC intrinsic: ErFC Intrinsic. (line 6) ! * error messages <1>: Warnings and Errors. (line 6) * error messages: Run-time Library Errors. - (line 6) * error messages, incorrect: What is GNU Fortran?. - (line 51) * error values: Run-time Library Errors. ! (line 6) ! * errors, linker: Large Common Blocks. (line 6) * ETime intrinsic <1>: ETime Intrinsic (function). - (line 6) * ETime intrinsic: ETime Intrinsic (subroutine). - (line 6) * exceptions, floating-point: Floating-point Exception Handling. ! (line 6) ! * exclamation point <1>: LEX. (line 46) ! * exclamation point <2>: Exclamation Point. (line 6) ! * exclamation point <3>: Trailing Comment. (line 6) ! * exclamation point <4>: Character Set. (line 17) * exclamation point: Statements Comments Lines. - (line 8) * executable file: What is GNU Fortran?. ! (line 106) ! * Exit intrinsic: Exit Intrinsic. (line 6) ! * EXIT statement: CYCLE and EXIT. (line 6) ! * Exp intrinsic: Exp Intrinsic. (line 6) ! * Exponent intrinsic: Exponent Intrinsic. (line 6) * extended-source option: Fortran Dialect Options. ! (line 323) ! * extensions, file name: Overall Options. (line 13) ! * extensions, from Fortran 90: Fortran 90 Features. (line 6) ! * extensions, more: More Extensions. (line 6) ! * extensions, VXT: VXT Fortran. (line 6) ! * external names: Mangling of Names. (line 6) ! * extra warnings: Warning Options. (line 186) * f2c: Increasing Precision/Range. - (line 6) * f2c compatibility <1>: Avoid f2c Compatibility. - (line 6) * f2c compatibility <2>: Block Data and Libraries. - (line 6) * f2c compatibility <3>: Debugging and Interfacing. ! (line 6) ! * f2c compatibility <4>: Code Gen Options. (line 30) ! * f2c compatibility <5>: Shorthand Options. (line 46) ! * f2c compatibility: Overall Options. (line 134) * f2c intrinsics: Fortran Dialect Options. ! (line 261) ! * f2c intrinsics group: Intrinsic Groups. (line 77) ! * f77 compatibility: Shorthand Options. (line 46) * f77 support: Backslash in Constants. - (line 6) * f771, program: What is GNU Fortran?. ! (line 93) ! * f90 intrinsics group: Intrinsic Groups. (line 80) ! * fatal signal: Bug Criteria. (line 9) * FDate intrinsic <1>: FDate Intrinsic (function). - (line 6) * FDate intrinsic: FDate Intrinsic (subroutine). - (line 6) * FDL, GNU Free Documentation License: GNU Free Documentation License. - (line 6) * features, language: Direction of Language Development. ! (line 6) ! * features, ugly <1>: Distensions. (line 6) ! * features, ugly: Shorthand Options. (line 10) ! * FFE <1>: Front End. (line 6) * FFE: What is GNU Fortran?. - (line 172) * fflush(): Output Assumed To Flush. - (line 6) * FGet intrinsic <1>: FGet Intrinsic (function). - (line 6) * FGet intrinsic: FGet Intrinsic (subroutine). - (line 6) * FGetC intrinsic <1>: FGetC Intrinsic (function). - (line 6) * FGetC intrinsic: FGetC Intrinsic (subroutine). - (line 6) * file format not recognized: What is GNU Fortran?. - (line 120) * file formats: Portable Unformatted Files. ! (line 6) ! * file name extension: Overall Options. (line 13) ! * file name suffix: Overall Options. (line 13) ! * file type: Overall Options. (line 13) ! * file, source <1>: Source Form. (line 6) ! * file, source <2>: Lines. (line 6) * file, source: What is GNU Fortran?. - (line 20) * files, executable: What is GNU Fortran?. ! (line 106) ! * fixed form <1>: Source Form. (line 6) ! * fixed form <2>: Lines. (line 6) * fixed form: Fortran Dialect Options. ! (line 9) ! * Float intrinsic: Float Intrinsic. (line 6) ! * FloatI intrinsic: FloatI Intrinsic. (line 6) * floating-point errors: Floating-point Errors. - (line 6) * floating-point, errors: Inconsistent Calling Sequences. - (line 6) * floating-point, exceptions: Floating-point Exception Handling. - (line 6) * floating-point, precision <1>: Floating-point precision. ! (line 6) ! * floating-point, precision: Optimize Options. (line 40) ! * FloatJ intrinsic: FloatJ Intrinsic. (line 6) ! * Floor intrinsic: Floor Intrinsic. (line 6) ! * Flush intrinsic: Flush Intrinsic. (line 6) * flushing output: Output Assumed To Flush. ! (line 6) ! * FNum intrinsic: FNum Intrinsic. (line 6) * FORM='PRINT': OPEN CLOSE and INQUIRE Keywords. ! (line 10) ! * FORMAT descriptors <1>: Fortran 90 Features. (line 68) ! * FORMAT descriptors: I/O. (line 16) ! * FORMAT statement <1>: Q Edit Descriptor. (line 6) * FORMAT statement: Expressions in FORMAT Statements. - (line 6) * FORTRAN 66 <1>: Fortran Dialect Options. ! (line 128) ! * FORTRAN 66: Shorthand Options. (line 35) ! * FORTRAN 77 compatibility: Standard Support. (line 6) ! * Fortran 90: Fortran 90 Features. (line 6) ! * Fortran 90, compatibility: Fortran 90. (line 6) * Fortran 90, features: Fortran Dialect Options. - (line 9) * Fortran 90, intrinsics: Fortran Dialect Options. ! (line 272) ! * Fortran 90, support: Fortran 90 Support. (line 6) ! * Fortran preprocessor: Overall Options. (line 33) ! * forward references: GLOBALS. (line 26) * FPE handling: Floating-point Exception Handling. - (line 6) * FPut intrinsic <1>: FPut Intrinsic (function). - (line 6) * FPut intrinsic: FPut Intrinsic (subroutine). - (line 6) * FPutC intrinsic <1>: FPutC Intrinsic (function). - (line 6) * FPutC intrinsic: FPutC Intrinsic (subroutine). ! (line 6) ! * Fraction intrinsic: Fraction Intrinsic. (line 6) ! * free form <1>: Source Form. (line 6) ! * free form <2>: Lines. (line 6) * free form: Fortran Dialect Options. ! (line 9) ! * front end, g77 <1>: Front End. (line 6) * front end, g77: What is GNU Fortran?. ! (line 172) ! * FSeek intrinsic: FSeek Intrinsic. (line 6) ! * FSF, funding the: Funding GNU Fortran. (line 17) * FStat intrinsic <1>: FStat Intrinsic (function). - (line 6) * FStat intrinsic: FStat Intrinsic (subroutine). - (line 6) * FTell intrinsic <1>: FTell Intrinsic (function). - (line 6) * FTell intrinsic: FTell Intrinsic (subroutine). - (line 6) * function references, in adjustable array bounds: Array Bounds Expressions. ! (line 6) ! * FUNCTION statement <1>: Functions. (line 6) ! * FUNCTION statement: Procedures. (line 6) ! * functions: Functions. (line 6) ! * functions, mistyped: Not My Type. (line 6) ! * funding improvements: Funding GNU Fortran. (line 6) ! * funding the FSF: Funding GNU Fortran. (line 17) ! * g77 options, --driver <1>: Changes. (line 430) ! * g77 options, --driver: News. (line 668) ! * g77 options, -v: G77 and GCC. (line 27) ! * g77, command <1>: G77 and GCC. (line 21) * g77, command: What is GNU Fortran?. - (line 78) * g77, components of: What is GNU Fortran?. ! (line 70) ! * g77, front end <1>: Front End. (line 6) * g77, front end: What is GNU Fortran?. ! (line 172) ! * g77, modifying: Overall Options. (line 125) * G77_date_y2kbuggy_0: Year 2000 (Y2K) Problems. - (line 28) * G77_vxtidate_y2kbuggy_0: Year 2000 (Y2K) Problems. - (line 28) * GBE <1>: Philosophy of Code Generation. - (line 10) * GBE: What is GNU Fortran?. - (line 165) * GBEL: Philosophy of Code Generation. - (line 27) * gcc, back end <1>: Philosophy of Code Generation. - (line 10) * gcc, back end: What is GNU Fortran?. ! (line 165) ! * gcc, command <1>: G77 and GCC. (line 6) * gcc, command: What is GNU Fortran?. - (line 72) * gcc, command as driver: What is GNU Fortran?. - (line 106) * gcc, not recognizing Fortran source: What is GNU Fortran?. - (line 120) * gdb, command: What is GNU Fortran?. ! (line 33) ! * gdb, support: Debugger Problems. (line 6) * generic intrinsics: Generics and Specifics. ! (line 6) ! * GError intrinsic: GError Intrinsic. (line 6) ! * GetArg intrinsic <1>: Main Program Unit. (line 28) ! * GetArg intrinsic: GetArg Intrinsic. (line 6) * GetCWD intrinsic <1>: GetCWD Intrinsic (function). - (line 6) * GetCWD intrinsic: GetCWD Intrinsic (subroutine). ! (line 6) ! * GetEnv intrinsic: GetEnv Intrinsic. (line 6) ! * GetGId intrinsic: GetGId Intrinsic. (line 6) ! * GetLog intrinsic: GetLog Intrinsic. (line 6) ! * GetPId intrinsic: GetPId Intrinsic. (line 6) ! * getting started: Getting Started. (line 6) ! * GetUId intrinsic: GetUId Intrinsic. (line 6) ! * global names, warning <1>: Code Gen Options. (line 224) ! * global names, warning: Warning Options. (line 51) ! * GMTime intrinsic: GMTime Intrinsic. (line 6) * GNU Back End (GBE) <1>: Philosophy of Code Generation. - (line 10) * GNU Back End (GBE): What is GNU Fortran?. - (line 165) * GNU Back End Language (GBEL): Philosophy of Code Generation. ! (line 27) ! * GNU Fortran command options: Invoking G77. (line 6) ! * GNU Fortran Front End (FFE) <1>: Front End. (line 6) * GNU Fortran Front End (FFE): What is GNU Fortran?. ! (line 172) ! * gnu intrinsics group: Intrinsic Groups. (line 73) * GOTO statement: Assigned Statement Labels. ! (line 6) ! * groups of intrinsics: Intrinsic Groups. (line 6) * hardware errors: Signal 11 and Friends. ! (line 6) ! * hash mark: Character Set. (line 25) * HDF: Portable Unformatted Files. ! (line 50) ! * hidden intrinsics: Intrinsic Groups. (line 18) * Hollerith constants <1>: Character and Hollerith Constants. - (line 6) * Hollerith constants <2>: Ugly Conversion of Initializers. - (line 8) * Hollerith constants <3>: Ugly Implicit Argument Conversion. - (line 6) * Hollerith constants: Fortran Dialect Options. ! (line 41) ! * horizontal tab: Tabs. (line 6) * HostNm intrinsic <1>: HostNm Intrinsic (function). - (line 6) * HostNm intrinsic: HostNm Intrinsic (subroutine). ! (line 6) ! * Huge intrinsic: Huge Intrinsic. (line 6) * I/O, errors: Run-time Library Errors. - (line 6) * I/O, flushing: Output Assumed To Flush. ! (line 6) ! * IAbs intrinsic: IAbs Intrinsic. (line 6) ! * IAChar intrinsic: IAChar Intrinsic. (line 6) ! * IAnd intrinsic: IAnd Intrinsic. (line 6) ! * IArgC intrinsic <1>: Main Program Unit. (line 28) ! * IArgC intrinsic: IArgC Intrinsic. (line 6) ! * IBClr intrinsic: IBClr Intrinsic. (line 6) ! * IBits intrinsic: IBits Intrinsic. (line 6) ! * IBSet intrinsic: IBSet Intrinsic. (line 6) ! * IChar intrinsic: IChar Intrinsic. (line 6) * IDate intrinsic <1>: IDate Intrinsic (VXT). - (line 6) * IDate intrinsic: IDate Intrinsic (UNIX). ! (line 6) ! * IDiM intrinsic: IDiM Intrinsic. (line 6) ! * IDInt intrinsic: IDInt Intrinsic. (line 6) ! * IDNInt intrinsic: IDNInt Intrinsic. (line 6) * IEEE 754 conformance <1>: Floating-point precision. ! (line 6) ! * IEEE 754 conformance: Optimize Options. (line 40) ! * IEOr intrinsic: IEOr Intrinsic. (line 6) ! * IErrNo intrinsic: IErrNo Intrinsic. (line 6) ! * IFix intrinsic: IFix Intrinsic. (line 6) ! * IIAbs intrinsic: IIAbs Intrinsic. (line 6) ! * IIAnd intrinsic: IIAnd Intrinsic. (line 6) ! * IIBClr intrinsic: IIBClr Intrinsic. (line 6) ! * IIBits intrinsic: IIBits Intrinsic. (line 6) ! * IIBSet intrinsic: IIBSet Intrinsic. (line 6) ! * IIDiM intrinsic: IIDiM Intrinsic. (line 6) ! * IIDInt intrinsic: IIDInt Intrinsic. (line 6) ! * IIDNnt intrinsic: IIDNnt Intrinsic. (line 6) ! * IIEOr intrinsic: IIEOr Intrinsic. (line 6) ! * IIFix intrinsic: IIFix Intrinsic. (line 6) ! * IInt intrinsic: IInt Intrinsic. (line 6) ! * IIOr intrinsic: IIOr Intrinsic. (line 6) ! * IIQint intrinsic: IIQint Intrinsic. (line 6) ! * IIQNnt intrinsic: IIQNnt Intrinsic. (line 6) ! * IIShftC intrinsic: IIShftC Intrinsic. (line 6) ! * IISign intrinsic: IISign Intrinsic. (line 6) * illegal unit number: Large File Unit Numbers. ! (line 6) ! * Imag intrinsic: Imag Intrinsic. (line 6) ! * imaginary part <1>: Complex Variables. (line 6) * imaginary part: Ugly Complex Part Extraction. ! (line 6) ! * ImagPart intrinsic: ImagPart Intrinsic. (line 6) ! * IMax0 intrinsic: IMax0 Intrinsic. (line 6) ! * IMax1 intrinsic: IMax1 Intrinsic. (line 6) ! * IMin0 intrinsic: IMin0 Intrinsic. (line 6) ! * IMin1 intrinsic: IMin1 Intrinsic. (line 6) ! * IMod intrinsic: IMod Intrinsic. (line 6) * IMPLICIT CHARACTER*(*) statement: Limitation on Implicit Declarations. ! (line 6) ! * implicit declaration, warning: Warning Options. (line 61) ! * IMPLICIT NONE, similar effect: Warning Options. (line 61) ! * implicit typing: Not My Type. (line 6) ! * improvements, funding: Funding GNU Fortran. (line 6) ! * in-line code <1>: GLOBALS. (line 26) ! * in-line code <2>: Code Gen Options. (line 224) ! * in-line code <3>: Optimize Options. (line 66) * in-line code: What is GNU Fortran?. ! (line 147) ! * INCLUDE directive <1>: INCLUDE. (line 6) ! * INCLUDE directive <2>: Directory Options. (line 10) * INCLUDE directive: Preprocessor Options. ! (line 12) ! * inclusion, directory search paths for: Directory Options. (line 17) * inconsistent floating-point results: Floating-point Errors. - (line 6) * incorrect diagnostics: What is GNU Fortran?. - (line 51) * incorrect error messages: What is GNU Fortran?. - (line 51) * incorrect use of language: What is GNU Fortran?. - (line 47) * increasing maximum unit number: Large File Unit Numbers. - (line 6) * increasing precision: Increasing Precision/Range. - (line 6) * increasing range: Increasing Precision/Range. ! (line 6) ! * Index intrinsic: Index Intrinsic. (line 6) ! * indexed (iterative) DO: Optimize Options. (line 114) * infinite spaces printed: Strange Behavior at Run Time. ! (line 42) ! * INInt intrinsic: INInt Intrinsic. (line 6) ! * initialization, bug: Known Bugs. (line 45) ! * initialization, of local variables: Code Gen Options. (line 21) ! * initialization, run-time: Startup Code. (line 6) * initialization, statement placement: Initializing Before Specifying. ! (line 6) ! * INot intrinsic: INot Intrinsic. (line 6) * INQUIRE statement: OPEN CLOSE and INQUIRE Keywords. ! (line 6) ! * installation trouble: Trouble. (line 6) ! * Int intrinsic: Int Intrinsic. (line 6) ! * Int2 intrinsic: Int2 Intrinsic. (line 6) ! * Int8 intrinsic: Int8 Intrinsic. (line 6) ! * integer constants: Known Bugs. (line 32) ! * INTEGER(KIND=1) type: Compiler Types. (line 59) ! * INTEGER(KIND=2) type: Compiler Types. (line 67) ! * INTEGER(KIND=3) type: Compiler Types. (line 75) ! * INTEGER(KIND=6) type: Compiler Types. (line 81) * INTEGER*2 support: Popular Non-standard Types. - (line 6) * INTEGER*8 support: Full Support for Compiler Types. ! (line 6) ! * Intel x86: News. (line 560) * interfacing: Debugging and Interfacing. ! (line 6) ! * internal consistency checks: Overall Options. (line 99) ! * intrinsics, Abort: Abort Intrinsic. (line 6) ! * intrinsics, Abs: Abs Intrinsic. (line 6) ! * intrinsics, Access: Access Intrinsic. (line 6) ! * intrinsics, AChar: AChar Intrinsic. (line 6) ! * intrinsics, ACos: ACos Intrinsic. (line 6) ! * intrinsics, ACosD: ACosD Intrinsic. (line 6) ! * intrinsics, AdjustL: AdjustL Intrinsic. (line 6) ! * intrinsics, AdjustR: AdjustR Intrinsic. (line 6) ! * intrinsics, AImag <1>: AImag Intrinsic. (line 6) * intrinsics, AImag: REAL() and AIMAG() of Complex. ! (line 6) ! * intrinsics, AIMax0: AIMax0 Intrinsic. (line 6) ! * intrinsics, AIMin0: AIMin0 Intrinsic. (line 6) ! * intrinsics, AInt: AInt Intrinsic. (line 6) ! * intrinsics, AJMax0: AJMax0 Intrinsic. (line 6) ! * intrinsics, AJMin0: AJMin0 Intrinsic. (line 6) ! * intrinsics, Alarm: Alarm Intrinsic. (line 6) ! * intrinsics, All: All Intrinsic. (line 6) ! * intrinsics, Allocated: Allocated Intrinsic. (line 6) ! * intrinsics, ALog: ALog Intrinsic. (line 6) ! * intrinsics, ALog10: ALog10 Intrinsic. (line 6) ! * intrinsics, AMax0: AMax0 Intrinsic. (line 6) ! * intrinsics, AMax1: AMax1 Intrinsic. (line 6) ! * intrinsics, AMin0: AMin0 Intrinsic. (line 6) ! * intrinsics, AMin1: AMin1 Intrinsic. (line 6) ! * intrinsics, AMod: AMod Intrinsic. (line 6) * intrinsics, And <1>: Bit Operations on Floating-point Data. ! (line 6) ! * intrinsics, And: And Intrinsic. (line 6) ! * intrinsics, ANInt: ANInt Intrinsic. (line 6) ! * intrinsics, Any: Any Intrinsic. (line 6) ! * intrinsics, ASin: ASin Intrinsic. (line 6) ! * intrinsics, ASinD: ASinD Intrinsic. (line 6) * intrinsics, Associated: Associated Intrinsic. ! (line 6) ! * intrinsics, ATan: ATan Intrinsic. (line 6) ! * intrinsics, ATan2: ATan2 Intrinsic. (line 6) ! * intrinsics, ATan2D: ATan2D Intrinsic. (line 6) ! * intrinsics, ATanD: ATanD Intrinsic. (line 6) * intrinsics, badu77: Fortran Dialect Options. ! (line 250) ! * intrinsics, BesJ0: BesJ0 Intrinsic. (line 6) ! * intrinsics, BesJ1: BesJ1 Intrinsic. (line 6) ! * intrinsics, BesJN: BesJN Intrinsic. (line 6) ! * intrinsics, BesY0: BesY0 Intrinsic. (line 6) ! * intrinsics, BesY1: BesY1 Intrinsic. (line 6) ! * intrinsics, BesYN: BesYN Intrinsic. (line 6) ! * intrinsics, Bit_Size: Bit_Size Intrinsic. (line 6) ! * intrinsics, BITest: BITest Intrinsic. (line 6) ! * intrinsics, BJTest: BJTest Intrinsic. (line 6) ! * intrinsics, BTest: BTest Intrinsic. (line 6) ! * intrinsics, CAbs: CAbs Intrinsic. (line 6) ! * intrinsics, CCos: CCos Intrinsic. (line 6) ! * intrinsics, CDAbs: CDAbs Intrinsic. (line 6) ! * intrinsics, CDCos: CDCos Intrinsic. (line 6) ! * intrinsics, CDExp: CDExp Intrinsic. (line 6) ! * intrinsics, CDLog: CDLog Intrinsic. (line 6) ! * intrinsics, CDSin: CDSin Intrinsic. (line 6) ! * intrinsics, CDSqRt: CDSqRt Intrinsic. (line 6) ! * intrinsics, Ceiling: Ceiling Intrinsic. (line 6) ! * intrinsics, CExp: CExp Intrinsic. (line 6) ! * intrinsics, Char: Char Intrinsic. (line 6) * intrinsics, ChDir <1>: ChDir Intrinsic (function). - (line 6) * intrinsics, ChDir: ChDir Intrinsic (subroutine). - (line 6) * intrinsics, ChMod <1>: ChMod Intrinsic (function). - (line 6) * intrinsics, ChMod: ChMod Intrinsic (subroutine). ! (line 6) ! * intrinsics, CLog: CLog Intrinsic. (line 6) ! * intrinsics, Cmplx <1>: Cmplx Intrinsic. (line 6) * intrinsics, Cmplx: CMPLX() of DOUBLE PRECISION. ! (line 6) ! * intrinsics, Complex: Complex Intrinsic. (line 6) * intrinsics, COMPLEX: Fortran Dialect Options. ! (line 283) ! * intrinsics, Conjg: Conjg Intrinsic. (line 6) * intrinsics, context-sensitive: Context-Sensitive Intrinsicness. ! (line 6) ! * intrinsics, Cos: Cos Intrinsic. (line 6) ! * intrinsics, CosD: CosD Intrinsic. (line 6) ! * intrinsics, CosH: CosH Intrinsic. (line 6) ! * intrinsics, Count: Count Intrinsic. (line 6) ! * intrinsics, CPU_Time: CPU_Time Intrinsic. (line 6) ! * intrinsics, CShift: CShift Intrinsic. (line 6) ! * intrinsics, CSin: CSin Intrinsic. (line 6) ! * intrinsics, CSqRt: CSqRt Intrinsic. (line 6) * intrinsics, CTime <1>: CTime Intrinsic (function). - (line 6) * intrinsics, CTime: CTime Intrinsic (subroutine). ! (line 6) ! * intrinsics, DAbs: DAbs Intrinsic. (line 6) ! * intrinsics, DACos: DACos Intrinsic. (line 6) ! * intrinsics, DACosD: DACosD Intrinsic. (line 6) ! * intrinsics, DASin: DASin Intrinsic. (line 6) ! * intrinsics, DASinD: DASinD Intrinsic. (line 6) ! * intrinsics, DATan: DATan Intrinsic. (line 6) ! * intrinsics, DATan2: DATan2 Intrinsic. (line 6) ! * intrinsics, DATan2D: DATan2D Intrinsic. (line 6) ! * intrinsics, DATanD: DATanD Intrinsic. (line 6) ! * intrinsics, Date: Date Intrinsic. (line 6) * intrinsics, Date_and_Time: Date_and_Time Intrinsic. ! (line 6) ! * intrinsics, DbesJ0: DbesJ0 Intrinsic. (line 6) ! * intrinsics, DbesJ1: DbesJ1 Intrinsic. (line 6) ! * intrinsics, DbesJN: DbesJN Intrinsic. (line 6) ! * intrinsics, DbesY0: DbesY0 Intrinsic. (line 6) ! * intrinsics, DbesY1: DbesY1 Intrinsic. (line 6) ! * intrinsics, DbesYN: DbesYN Intrinsic. (line 6) ! * intrinsics, Dble: Dble Intrinsic. (line 6) ! * intrinsics, DbleQ: DbleQ Intrinsic. (line 6) ! * intrinsics, DCmplx: DCmplx Intrinsic. (line 6) ! * intrinsics, DConjg: DConjg Intrinsic. (line 6) ! * intrinsics, DCos: DCos Intrinsic. (line 6) ! * intrinsics, DCosD: DCosD Intrinsic. (line 6) ! * intrinsics, DCosH: DCosH Intrinsic. (line 6) ! * intrinsics, DDiM: DDiM Intrinsic. (line 6) ! * intrinsics, deleted: Intrinsic Groups. (line 10) ! * intrinsics, DErF: DErF Intrinsic. (line 6) ! * intrinsics, DErFC: DErFC Intrinsic. (line 6) ! * intrinsics, DExp: DExp Intrinsic. (line 6) ! * intrinsics, DFloat: DFloat Intrinsic. (line 6) ! * intrinsics, DFlotI: DFlotI Intrinsic. (line 6) ! * intrinsics, DFlotJ: DFlotJ Intrinsic. (line 6) ! * intrinsics, Digits: Digits Intrinsic. (line 6) ! * intrinsics, DiM: DiM Intrinsic. (line 6) ! * intrinsics, DImag: DImag Intrinsic. (line 6) ! * intrinsics, DInt: DInt Intrinsic. (line 6) ! * intrinsics, disabled: Intrinsic Groups. (line 13) ! * intrinsics, DLog: DLog Intrinsic. (line 6) ! * intrinsics, DLog10: DLog10 Intrinsic. (line 6) ! * intrinsics, DMax1: DMax1 Intrinsic. (line 6) ! * intrinsics, DMin1: DMin1 Intrinsic. (line 6) ! * intrinsics, DMod: DMod Intrinsic. (line 6) ! * intrinsics, DNInt: DNInt Intrinsic. (line 6) * intrinsics, Dot_Product: Dot_Product Intrinsic. ! (line 6) ! * intrinsics, DProd: DProd Intrinsic. (line 6) ! * intrinsics, DReal: DReal Intrinsic. (line 6) ! * intrinsics, DSign: DSign Intrinsic. (line 6) ! * intrinsics, DSin: DSin Intrinsic. (line 6) ! * intrinsics, DSinD: DSinD Intrinsic. (line 6) ! * intrinsics, DSinH: DSinH Intrinsic. (line 6) ! * intrinsics, DSqRt: DSqRt Intrinsic. (line 6) ! * intrinsics, DTan: DTan Intrinsic. (line 6) ! * intrinsics, DTanD: DTanD Intrinsic. (line 6) ! * intrinsics, DTanH: DTanH Intrinsic. (line 6) * intrinsics, DTime <1>: DTime Intrinsic (function). - (line 6) * intrinsics, DTime: DTime Intrinsic (subroutine). ! (line 6) ! * intrinsics, enabled: Intrinsic Groups. (line 23) ! * intrinsics, EOShift: EOShift Intrinsic. (line 6) ! * intrinsics, Epsilon: Epsilon Intrinsic. (line 6) ! * intrinsics, ErF: ErF Intrinsic. (line 6) ! * intrinsics, ErFC: ErFC Intrinsic. (line 6) * intrinsics, ETime <1>: ETime Intrinsic (function). - (line 6) * intrinsics, ETime: ETime Intrinsic (subroutine). ! (line 6) ! * intrinsics, Exit: Exit Intrinsic. (line 6) ! * intrinsics, Exp: Exp Intrinsic. (line 6) ! * intrinsics, Exponent: Exponent Intrinsic. (line 6) * intrinsics, f2c: Fortran Dialect Options. - (line 261) * intrinsics, FDate <1>: FDate Intrinsic (function). - (line 6) * intrinsics, FDate: FDate Intrinsic (subroutine). - (line 6) * intrinsics, FGet <1>: FGet Intrinsic (function). - (line 6) * intrinsics, FGet: FGet Intrinsic (subroutine). - (line 6) * intrinsics, FGetC <1>: FGetC Intrinsic (function). - (line 6) * intrinsics, FGetC: FGetC Intrinsic (subroutine). ! (line 6) ! * intrinsics, Float: Float Intrinsic. (line 6) ! * intrinsics, FloatI: FloatI Intrinsic. (line 6) ! * intrinsics, FloatJ: FloatJ Intrinsic. (line 6) ! * intrinsics, Floor: Floor Intrinsic. (line 6) ! * intrinsics, Flush: Flush Intrinsic. (line 6) ! * intrinsics, FNum: FNum Intrinsic. (line 6) * intrinsics, Fortran 90: Fortran Dialect Options. - (line 272) * intrinsics, FPut <1>: FPut Intrinsic (function). - (line 6) * intrinsics, FPut: FPut Intrinsic (subroutine). - (line 6) * intrinsics, FPutC <1>: FPutC Intrinsic (function). - (line 6) * intrinsics, FPutC: FPutC Intrinsic (subroutine). ! (line 6) ! * intrinsics, Fraction: Fraction Intrinsic. (line 6) ! * intrinsics, FSeek: FSeek Intrinsic. (line 6) * intrinsics, FStat <1>: FStat Intrinsic (function). - (line 6) * intrinsics, FStat: FStat Intrinsic (subroutine). - (line 6) * intrinsics, FTell <1>: FTell Intrinsic (function). - (line 6) * intrinsics, FTell: FTell Intrinsic (subroutine). - (line 6) * intrinsics, generic: Generics and Specifics. ! (line 6) ! * intrinsics, GError: GError Intrinsic. (line 6) ! * intrinsics, GetArg <1>: Main Program Unit. (line 28) ! * intrinsics, GetArg: GetArg Intrinsic. (line 6) * intrinsics, GetCWD <1>: GetCWD Intrinsic (function). - (line 6) * intrinsics, GetCWD: GetCWD Intrinsic (subroutine). ! (line 6) ! * intrinsics, GetEnv: GetEnv Intrinsic. (line 6) ! * intrinsics, GetGId: GetGId Intrinsic. (line 6) ! * intrinsics, GetLog: GetLog Intrinsic. (line 6) ! * intrinsics, GetPId: GetPId Intrinsic. (line 6) ! * intrinsics, GetUId: GetUId Intrinsic. (line 6) ! * intrinsics, GMTime: GMTime Intrinsic. (line 6) ! * intrinsics, groups: Intrinsic Groups. (line 6) ! * intrinsics, groups of: Intrinsic Groups. (line 69) ! * intrinsics, hidden: Intrinsic Groups. (line 18) * intrinsics, HostNm <1>: HostNm Intrinsic (function). - (line 6) * intrinsics, HostNm: HostNm Intrinsic (subroutine). ! (line 6) ! * intrinsics, Huge: Huge Intrinsic. (line 6) ! * intrinsics, IAbs: IAbs Intrinsic. (line 6) ! * intrinsics, IAChar: IAChar Intrinsic. (line 6) ! * intrinsics, IAnd: IAnd Intrinsic. (line 6) ! * intrinsics, IArgC <1>: Main Program Unit. (line 28) ! * intrinsics, IArgC: IArgC Intrinsic. (line 6) ! * intrinsics, IBClr: IBClr Intrinsic. (line 6) ! * intrinsics, IBits: IBits Intrinsic. (line 6) ! * intrinsics, IBSet: IBSet Intrinsic. (line 6) ! * intrinsics, IChar: IChar Intrinsic. (line 6) * intrinsics, IDate <1>: IDate Intrinsic (VXT). - (line 6) * intrinsics, IDate: IDate Intrinsic (UNIX). ! (line 6) ! * intrinsics, IDiM: IDiM Intrinsic. (line 6) ! * intrinsics, IDInt: IDInt Intrinsic. (line 6) ! * intrinsics, IDNInt: IDNInt Intrinsic. (line 6) ! * intrinsics, IEOr: IEOr Intrinsic. (line 6) ! * intrinsics, IErrNo: IErrNo Intrinsic. (line 6) ! * intrinsics, IFix: IFix Intrinsic. (line 6) ! * intrinsics, IIAbs: IIAbs Intrinsic. (line 6) ! * intrinsics, IIAnd: IIAnd Intrinsic. (line 6) ! * intrinsics, IIBClr: IIBClr Intrinsic. (line 6) ! * intrinsics, IIBits: IIBits Intrinsic. (line 6) ! * intrinsics, IIBSet: IIBSet Intrinsic. (line 6) ! * intrinsics, IIDiM: IIDiM Intrinsic. (line 6) ! * intrinsics, IIDInt: IIDInt Intrinsic. (line 6) ! * intrinsics, IIDNnt: IIDNnt Intrinsic. (line 6) ! * intrinsics, IIEOr: IIEOr Intrinsic. (line 6) ! * intrinsics, IIFix: IIFix Intrinsic. (line 6) ! * intrinsics, IInt: IInt Intrinsic. (line 6) ! * intrinsics, IIOr: IIOr Intrinsic. (line 6) ! * intrinsics, IIQint: IIQint Intrinsic. (line 6) ! * intrinsics, IIQNnt: IIQNnt Intrinsic. (line 6) ! * intrinsics, IIShftC: IIShftC Intrinsic. (line 6) ! * intrinsics, IISign: IISign Intrinsic. (line 6) ! * intrinsics, Imag: Imag Intrinsic. (line 6) ! * intrinsics, ImagPart: ImagPart Intrinsic. (line 6) ! * intrinsics, IMax0: IMax0 Intrinsic. (line 6) ! * intrinsics, IMax1: IMax1 Intrinsic. (line 6) ! * intrinsics, IMin0: IMin0 Intrinsic. (line 6) ! * intrinsics, IMin1: IMin1 Intrinsic. (line 6) ! * intrinsics, IMod: IMod Intrinsic. (line 6) ! * intrinsics, Index: Index Intrinsic. (line 6) ! * intrinsics, INInt: INInt Intrinsic. (line 6) ! * intrinsics, INot: INot Intrinsic. (line 6) ! * intrinsics, Int: Int Intrinsic. (line 6) ! * intrinsics, Int2: Int2 Intrinsic. (line 6) ! * intrinsics, Int8: Int8 Intrinsic. (line 6) ! * intrinsics, IOr: IOr Intrinsic. (line 6) ! * intrinsics, IRand: IRand Intrinsic. (line 6) ! * intrinsics, IsaTty: IsaTty Intrinsic. (line 6) ! * intrinsics, IShft: IShft Intrinsic. (line 6) ! * intrinsics, IShftC: IShftC Intrinsic. (line 6) ! * intrinsics, ISign: ISign Intrinsic. (line 6) ! * intrinsics, ITime: ITime Intrinsic. (line 6) ! * intrinsics, IZExt: IZExt Intrinsic. (line 6) ! * intrinsics, JIAbs: JIAbs Intrinsic. (line 6) ! * intrinsics, JIAnd: JIAnd Intrinsic. (line 6) ! * intrinsics, JIBClr: JIBClr Intrinsic. (line 6) ! * intrinsics, JIBits: JIBits Intrinsic. (line 6) ! * intrinsics, JIBSet: JIBSet Intrinsic. (line 6) ! * intrinsics, JIDiM: JIDiM Intrinsic. (line 6) ! * intrinsics, JIDInt: JIDInt Intrinsic. (line 6) ! * intrinsics, JIDNnt: JIDNnt Intrinsic. (line 6) ! * intrinsics, JIEOr: JIEOr Intrinsic. (line 6) ! * intrinsics, JIFix: JIFix Intrinsic. (line 6) ! * intrinsics, JInt: JInt Intrinsic. (line 6) ! * intrinsics, JIOr: JIOr Intrinsic. (line 6) ! * intrinsics, JIQint: JIQint Intrinsic. (line 6) ! * intrinsics, JIQNnt: JIQNnt Intrinsic. (line 6) ! * intrinsics, JIShft: JIShft Intrinsic. (line 6) ! * intrinsics, JIShftC: JIShftC Intrinsic. (line 6) ! * intrinsics, JISign: JISign Intrinsic. (line 6) ! * intrinsics, JMax0: JMax0 Intrinsic. (line 6) ! * intrinsics, JMax1: JMax1 Intrinsic. (line 6) ! * intrinsics, JMin0: JMin0 Intrinsic. (line 6) ! * intrinsics, JMin1: JMin1 Intrinsic. (line 6) ! * intrinsics, JMod: JMod Intrinsic. (line 6) ! * intrinsics, JNInt: JNInt Intrinsic. (line 6) ! * intrinsics, JNot: JNot Intrinsic. (line 6) ! * intrinsics, JZExt: JZExt Intrinsic. (line 6) * intrinsics, Kill <1>: Kill Intrinsic (function). - (line 6) * intrinsics, Kill: Kill Intrinsic (subroutine). ! (line 6) ! * intrinsics, Kind: Kind Intrinsic. (line 6) ! * intrinsics, LBound: LBound Intrinsic. (line 6) ! * intrinsics, Len: Len Intrinsic. (line 6) ! * intrinsics, Len_Trim: Len_Trim Intrinsic. (line 6) ! * intrinsics, LGe: LGe Intrinsic. (line 6) ! * intrinsics, LGt: LGt Intrinsic. (line 6) * intrinsics, Link <1>: Link Intrinsic (function). - (line 6) * intrinsics, Link: Link Intrinsic (subroutine). ! (line 6) ! * intrinsics, LLe: LLe Intrinsic. (line 6) ! * intrinsics, LLt: LLt Intrinsic. (line 6) ! * intrinsics, LnBlnk: LnBlnk Intrinsic. (line 6) ! * intrinsics, Loc: Loc Intrinsic. (line 6) ! * intrinsics, Log: Log Intrinsic. (line 6) ! * intrinsics, Log10: Log10 Intrinsic. (line 6) ! * intrinsics, Logical: Logical Intrinsic. (line 6) ! * intrinsics, Long: Long Intrinsic. (line 6) ! * intrinsics, LShift: LShift Intrinsic. (line 6) * intrinsics, LStat <1>: LStat Intrinsic (function). - (line 6) * intrinsics, LStat: LStat Intrinsic (subroutine). ! (line 6) ! * intrinsics, LTime: LTime Intrinsic. (line 6) ! * intrinsics, MatMul: MatMul Intrinsic. (line 6) ! * intrinsics, Max: Max Intrinsic. (line 6) ! * intrinsics, Max0: Max0 Intrinsic. (line 6) ! * intrinsics, Max1: Max1 Intrinsic. (line 6) * intrinsics, MaxExponent: MaxExponent Intrinsic. ! (line 6) ! * intrinsics, MaxLoc: MaxLoc Intrinsic. (line 6) ! * intrinsics, MaxVal: MaxVal Intrinsic. (line 6) ! * intrinsics, MClock: MClock Intrinsic. (line 6) ! * intrinsics, MClock8: MClock8 Intrinsic. (line 6) ! * intrinsics, Merge: Merge Intrinsic. (line 6) * intrinsics, MIL-STD 1753: Fortran Dialect Options. ! (line 294) ! * intrinsics, Min: Min Intrinsic. (line 6) ! * intrinsics, Min0: Min0 Intrinsic. (line 6) ! * intrinsics, Min1: Min1 Intrinsic. (line 6) * intrinsics, MinExponent: MinExponent Intrinsic. ! (line 6) ! * intrinsics, MinLoc: MinLoc Intrinsic. (line 6) ! * intrinsics, MinVal: MinVal Intrinsic. (line 6) ! * intrinsics, Mod: Mod Intrinsic. (line 6) ! * intrinsics, Modulo: Modulo Intrinsic. (line 6) ! * intrinsics, MvBits: MvBits Intrinsic. (line 6) ! * intrinsics, Nearest: Nearest Intrinsic. (line 6) ! * intrinsics, NInt: NInt Intrinsic. (line 6) ! * intrinsics, Not: Not Intrinsic. (line 6) * intrinsics, Or <1>: Bit Operations on Floating-point Data. ! (line 6) ! * intrinsics, Or: Or Intrinsic. (line 6) ! * intrinsics, others: Other Intrinsics. (line 6) ! * intrinsics, Pack: Pack Intrinsic. (line 6) ! * intrinsics, PError: PError Intrinsic. (line 6) ! * intrinsics, Precision: Precision Intrinsic. (line 6) ! * intrinsics, Present: Present Intrinsic. (line 6) ! * intrinsics, Product: Product Intrinsic. (line 6) ! * intrinsics, QAbs: QAbs Intrinsic. (line 6) ! * intrinsics, QACos: QACos Intrinsic. (line 6) ! * intrinsics, QACosD: QACosD Intrinsic. (line 6) ! * intrinsics, QASin: QASin Intrinsic. (line 6) ! * intrinsics, QASinD: QASinD Intrinsic. (line 6) ! * intrinsics, QATan: QATan Intrinsic. (line 6) ! * intrinsics, QATan2: QATan2 Intrinsic. (line 6) ! * intrinsics, QATan2D: QATan2D Intrinsic. (line 6) ! * intrinsics, QATanD: QATanD Intrinsic. (line 6) ! * intrinsics, QCos: QCos Intrinsic. (line 6) ! * intrinsics, QCosD: QCosD Intrinsic. (line 6) ! * intrinsics, QCosH: QCosH Intrinsic. (line 6) ! * intrinsics, QDiM: QDiM Intrinsic. (line 6) ! * intrinsics, QExp: QExp Intrinsic. (line 6) ! * intrinsics, QExt: QExt Intrinsic. (line 6) ! * intrinsics, QExtD: QExtD Intrinsic. (line 6) ! * intrinsics, QFloat: QFloat Intrinsic. (line 6) ! * intrinsics, QInt: QInt Intrinsic. (line 6) ! * intrinsics, QLog: QLog Intrinsic. (line 6) ! * intrinsics, QLog10: QLog10 Intrinsic. (line 6) ! * intrinsics, QMax1: QMax1 Intrinsic. (line 6) ! * intrinsics, QMin1: QMin1 Intrinsic. (line 6) ! * intrinsics, QMod: QMod Intrinsic. (line 6) ! * intrinsics, QNInt: QNInt Intrinsic. (line 6) ! * intrinsics, QSin: QSin Intrinsic. (line 6) ! * intrinsics, QSinD: QSinD Intrinsic. (line 6) ! * intrinsics, QSinH: QSinH Intrinsic. (line 6) ! * intrinsics, QSqRt: QSqRt Intrinsic. (line 6) ! * intrinsics, QTan: QTan Intrinsic. (line 6) ! * intrinsics, QTanD: QTanD Intrinsic. (line 6) ! * intrinsics, QTanH: QTanH Intrinsic. (line 6) ! * intrinsics, Radix: Radix Intrinsic. (line 6) ! * intrinsics, Rand: Rand Intrinsic. (line 6) * intrinsics, Random_Number: Random_Number Intrinsic. - (line 6) * intrinsics, Random_Seed: Random_Seed Intrinsic. ! (line 6) ! * intrinsics, Range: Range Intrinsic. (line 6) ! * intrinsics, Real <1>: Real Intrinsic. (line 6) * intrinsics, Real: REAL() and AIMAG() of Complex. ! (line 6) ! * intrinsics, RealPart: RealPart Intrinsic. (line 6) * intrinsics, Rename <1>: Rename Intrinsic (function). - (line 6) * intrinsics, Rename: Rename Intrinsic (subroutine). ! (line 6) ! * intrinsics, Repeat: Repeat Intrinsic. (line 6) ! * intrinsics, Reshape: Reshape Intrinsic. (line 6) ! * intrinsics, RRSpacing: RRSpacing Intrinsic. (line 6) ! * intrinsics, RShift: RShift Intrinsic. (line 6) ! * intrinsics, Scale: Scale Intrinsic. (line 6) ! * intrinsics, Scan: Scan Intrinsic. (line 6) ! * intrinsics, Secnds: Secnds Intrinsic. (line 6) * intrinsics, Second <1>: Second Intrinsic (subroutine). - (line 6) * intrinsics, Second: Second Intrinsic (function). - (line 6) * intrinsics, Selected_Int_Kind: Selected_Int_Kind Intrinsic. - (line 6) * intrinsics, Selected_Real_Kind: Selected_Real_Kind Intrinsic. - (line 6) * intrinsics, Set_Exponent: Set_Exponent Intrinsic. ! (line 6) ! * intrinsics, Shape: Shape Intrinsic. (line 6) * intrinsics, Shift: Bit Operations on Floating-point Data. ! (line 6) ! * intrinsics, Short: Short Intrinsic. (line 6) ! * intrinsics, Sign: Sign Intrinsic. (line 6) * intrinsics, Signal <1>: Signal Intrinsic (function). - (line 6) * intrinsics, Signal: Signal Intrinsic (subroutine). ! (line 6) ! * intrinsics, Sin: Sin Intrinsic. (line 6) ! * intrinsics, SinD: SinD Intrinsic. (line 6) ! * intrinsics, SinH: SinH Intrinsic. (line 6) ! * intrinsics, Sleep: Sleep Intrinsic. (line 6) ! * intrinsics, Sngl: Sngl Intrinsic. (line 6) ! * intrinsics, SnglQ: SnglQ Intrinsic. (line 6) ! * intrinsics, Spacing: Spacing Intrinsic. (line 6) ! * intrinsics, Spread: Spread Intrinsic. (line 6) ! * intrinsics, SqRt: SqRt Intrinsic. (line 6) ! * intrinsics, SRand: SRand Intrinsic. (line 6) * intrinsics, Stat <1>: Stat Intrinsic (function). - (line 6) * intrinsics, Stat: Stat Intrinsic (subroutine). ! (line 6) ! * intrinsics, Sum: Sum Intrinsic. (line 6) * intrinsics, SymLnk <1>: SymLnk Intrinsic (function). - (line 6) * intrinsics, SymLnk: SymLnk Intrinsic (subroutine). - (line 6) * intrinsics, System <1>: System Intrinsic (function). - (line 6) * intrinsics, System: System Intrinsic (subroutine). - (line 6) * intrinsics, System_Clock: System_Clock Intrinsic. - (line 6) * intrinsics, table of: Table of Intrinsic Functions. ! (line 6) ! * intrinsics, Tan: Tan Intrinsic. (line 6) ! * intrinsics, TanD: TanD Intrinsic. (line 6) ! * intrinsics, TanH: TanH Intrinsic. (line 6) * intrinsics, Time <1>: Time Intrinsic (VXT). - (line 6) * intrinsics, Time: Time Intrinsic (UNIX). ! (line 6) ! * intrinsics, Time8: Time8 Intrinsic. (line 6) ! * intrinsics, Tiny: Tiny Intrinsic. (line 6) ! * intrinsics, Transfer: Transfer Intrinsic. (line 6) ! * intrinsics, Transpose: Transpose Intrinsic. (line 6) ! * intrinsics, Trim: Trim Intrinsic. (line 6) * intrinsics, TtyNam <1>: TtyNam Intrinsic (function). - (line 6) * intrinsics, TtyNam: TtyNam Intrinsic (subroutine). ! (line 6) ! * intrinsics, UBound: UBound Intrinsic. (line 6) * intrinsics, UMask <1>: UMask Intrinsic (function). - (line 6) * intrinsics, UMask: UMask Intrinsic (subroutine). - (line 6) * intrinsics, UNIX: Fortran Dialect Options. - (line 305) * intrinsics, Unlink <1>: Unlink Intrinsic (function). - (line 6) * intrinsics, Unlink: Unlink Intrinsic (subroutine). ! (line 6) ! * intrinsics, Unpack: Unpack Intrinsic. (line 6) ! * intrinsics, Verify: Verify Intrinsic. (line 6) * intrinsics, VXT: Fortran Dialect Options. ! (line 315) ! * intrinsics, XOr: XOr Intrinsic. (line 6) ! * intrinsics, ZAbs: ZAbs Intrinsic. (line 6) ! * intrinsics, ZCos: ZCos Intrinsic. (line 6) ! * intrinsics, ZExp: ZExp Intrinsic. (line 6) ! * intrinsics, ZExt: ZExt Intrinsic. (line 6) ! * intrinsics, ZLog: ZLog Intrinsic. (line 6) ! * intrinsics, ZSin: ZSin Intrinsic. (line 6) ! * intrinsics, ZSqRt: ZSqRt Intrinsic. (line 6) ! * Introduction: Top. (line 6) ! * invalid assembly code: Bug Criteria. (line 13) ! * invalid input: Bug Criteria. (line 44) ! * IOr intrinsic: IOr Intrinsic. (line 6) * IOSTAT=: Run-time Library Errors. ! (line 6) ! * IRand intrinsic: IRand Intrinsic. (line 6) ! * IsaTty intrinsic: IsaTty Intrinsic. (line 6) ! * IShft intrinsic: IShft Intrinsic. (line 6) ! * IShftC intrinsic: IShftC Intrinsic. (line 6) ! * ISign intrinsic: ISign Intrinsic. (line 6) ! * iterative DO: Optimize Options. (line 114) ! * ITime intrinsic: ITime Intrinsic. (line 6) * ix86 floating-point: Floating-point precision. - (line 6) * ix86 FPU stack: Inconsistent Calling Sequences. ! (line 6) ! * IZExt intrinsic: IZExt Intrinsic. (line 6) * JCB002 program: Generics and Specifics. ! (line 60) ! * JCB003 program: CMPAMBIG. (line 133) ! * JIAbs intrinsic: JIAbs Intrinsic. (line 6) ! * JIAnd intrinsic: JIAnd Intrinsic. (line 6) ! * JIBClr intrinsic: JIBClr Intrinsic. (line 6) ! * JIBits intrinsic: JIBits Intrinsic. (line 6) ! * JIBSet intrinsic: JIBSet Intrinsic. (line 6) ! * JIDiM intrinsic: JIDiM Intrinsic. (line 6) ! * JIDInt intrinsic: JIDInt Intrinsic. (line 6) ! * JIDNnt intrinsic: JIDNnt Intrinsic. (line 6) ! * JIEOr intrinsic: JIEOr Intrinsic. (line 6) ! * JIFix intrinsic: JIFix Intrinsic. (line 6) ! * JInt intrinsic: JInt Intrinsic. (line 6) ! * JIOr intrinsic: JIOr Intrinsic. (line 6) ! * JIQint intrinsic: JIQint Intrinsic. (line 6) ! * JIQNnt intrinsic: JIQNnt Intrinsic. (line 6) ! * JIShft intrinsic: JIShft Intrinsic. (line 6) ! * JIShftC intrinsic: JIShftC Intrinsic. (line 6) ! * JISign intrinsic: JISign Intrinsic. (line 6) ! * JMax0 intrinsic: JMax0 Intrinsic. (line 6) ! * JMax1 intrinsic: JMax1 Intrinsic. (line 6) ! * JMin0 intrinsic: JMin0 Intrinsic. (line 6) ! * JMin1 intrinsic: JMin1 Intrinsic. (line 6) ! * JMod intrinsic: JMod Intrinsic. (line 6) ! * JNInt intrinsic: JNInt Intrinsic. (line 6) ! * JNot intrinsic: JNot Intrinsic. (line 6) ! * JZExt intrinsic: JZExt Intrinsic. (line 6) ! * keywords, RECURSIVE: RECURSIVE Keyword. (line 6) * Kill intrinsic <1>: Kill Intrinsic (function). - (line 6) * Kill intrinsic: Kill Intrinsic (subroutine). ! (line 6) ! * Kind intrinsic: Kind Intrinsic. (line 6) ! * KIND= notation: Kind Notation. (line 6) ! * known causes of trouble: Trouble. (line 6) ! * lack of recursion: RECURSIVE Keyword. (line 6) * language, dialect options: Fortran Dialect Options. - (line 6) * language, features: Direction of Language Development. - (line 6) * language, incorrect use of: What is GNU Fortran?. ! (line 47) ! * large aggregate areas: Known Bugs. (line 45) ! * large common blocks: Large Common Blocks. (line 6) ! * layout of COMMON blocks: Aligned Data. (line 20) ! * LBound intrinsic: LBound Intrinsic. (line 6) * ld command: What is GNU Fortran?. - (line 37) * ld, can't find _main: Cannot Link Fortran Programs. - (line 19) * ld, can't find strange names: Cannot Link Fortran Programs. - (line 6) * ld, error linking user code: Cannot Link Fortran Programs. ! (line 6) ! * ld, errors: Large Common Blocks. (line 6) ! * left angle: Character Set. (line 33) ! * left bracket: Character Set. (line 33) * legacy code: Collected Fortran Wisdom. ! (line 6) ! * Len intrinsic: Len Intrinsic. (line 6) ! * Len_Trim intrinsic: Len_Trim Intrinsic. (line 6) * length of source lines: Fortran Dialect Options. ! (line 319) ! * letters, lowercase: Case Sensitivity. (line 6) ! * letters, uppercase: Case Sensitivity. (line 6) ! * LGe intrinsic: LGe Intrinsic. (line 6) ! * LGt intrinsic: LGt Intrinsic. (line 6) * libc, non-ANSI or non-default: Strange Behavior at Run Time. - (line 42) * libf2c library: What is GNU Fortran?. - (line 81) * libg2c library: What is GNU Fortran?. - (line 81) * libraries: What is GNU Fortran?. - (line 37) * libraries, containing BLOCK DATA: Block Data and Libraries. - (line 6) * libraries, libf2c: What is GNU Fortran?. - (line 81) * libraries, libg2c: What is GNU Fortran?. ! (line 81) ! * limits, array dimensions: Compiler Limits. (line 18) ! * limits, array size: Array Size. (line 6) ! * limits, compiler: Compiler Limits. (line 6) ! * limits, continuation lines <1>: Compiler Limits. (line 10) ! * limits, continuation lines: Continuation Line. (line 6) ! * limits, lengths of names <1>: Compiler Limits. (line 10) ! * limits, lengths of names: Syntactic Items. (line 8) * limits, lengths of source lines: Fortran Dialect Options. ! (line 319) ! * limits, multi-dimension arrays: Array Size. (line 22) * limits, on character-variable length: Character-variable Length. ! (line 6) ! * limits, rank: Compiler Limits. (line 18) * limits, run-time library: Run-time Environment Limits. ! (line 6) ! * limits, timings <1>: Secnds Intrinsic. (line 19) * limits, timings <2>: DTime Intrinsic (function). ! (line 25) ! * limits, timings <3>: Time8 Intrinsic. (line 19) * limits, timings <4>: Time Intrinsic (UNIX). - (line 19) * limits, timings <5>: System_Clock Intrinsic. - (line 25) * limits, timings <6>: Second Intrinsic (subroutine). - (line 18) * limits, timings <7>: Second Intrinsic (function). ! (line 18) ! * limits, timings <8>: MClock8 Intrinsic. (line 18) ! * limits, timings <9>: MClock Intrinsic. (line 18) * limits, timings <10>: ETime Intrinsic (function). - (line 22) * limits, timings <11>: ETime Intrinsic (subroutine). - (line 22) * limits, timings <12>: DTime Intrinsic (subroutine). ! (line 25) ! * limits, timings: CPU_Time Intrinsic. (line 19) * limits, Y10K <1>: Time Intrinsic (VXT). - (line 18) * limits, Y10K <2>: IDate Intrinsic (UNIX). - (line 20) * limits, Y10K <3>: FDate Intrinsic (function). - (line 21) * limits, Y10K <4>: FDate Intrinsic (subroutine). - (line 22) * limits, Y10K: Date_and_Time Intrinsic. - (line 39) * limits, Y2K: IDate Intrinsic (VXT). ! (line 23) ! * lines: Lines. (line 6) ! * lines, continuation: Continuation Line. (line 6) * lines, length: Fortran Dialect Options. ! (line 319) ! * lines, long: Long Lines. (line 6) ! * lines, short: Short Lines. (line 6) * Link intrinsic <1>: Link Intrinsic (function). - (line 6) * Link intrinsic: Link Intrinsic (subroutine). - (line 6) * linking: What is GNU Fortran?. - (line 37) * linking against non-standard library: Strange Behavior at Run Time. - (line 42) * linking error for user code: Cannot Link Fortran Programs. - (line 6) * linking error, user code: Cannot Link Fortran Programs. - (line 19) * linking with C: Interoperating with C and C++. ! (line 6) ! * linking, errors: Large Common Blocks. (line 6) ! * LLe intrinsic: LLe Intrinsic. (line 6) ! * LLt intrinsic: LLt Intrinsic. (line 6) ! * LnBlnk intrinsic: LnBlnk Intrinsic. (line 6) ! * Loc intrinsic: Loc Intrinsic. (line 6) * local equivalence areas: Local Equivalence Areas. ! (line 6) ! * Log intrinsic: Log Intrinsic. (line 6) ! * Log10 intrinsic: Log10 Intrinsic. (line 6) * logical expressions, comparing: Equivalence Versus Equality. ! (line 6) ! * Logical intrinsic: Logical Intrinsic. (line 6) ! * LOGICAL(KIND=1) type: Compiler Types. (line 64) ! * LOGICAL(KIND=2) type: Compiler Types. (line 72) ! * LOGICAL(KIND=3) type: Compiler Types. (line 78) ! * LOGICAL(KIND=6) type: Compiler Types. (line 85) * LOGICAL*1 support: Popular Non-standard Types. ! (line 6) ! * Long intrinsic: Long Intrinsic. (line 6) ! * long source lines: Long Lines. (line 6) ! * long time: Timer Wraparounds. (line 12) ! * loops, optimizing: Optimize Options. (line 114) ! * loops, speeding up: Optimize Options. (line 63) ! * loops, unrolling: Optimize Options. (line 114) ! * lowercase letters: Case Sensitivity. (line 6) ! * LShift intrinsic: LShift Intrinsic. (line 6) * LStat intrinsic <1>: LStat Intrinsic (function). - (line 6) * LStat intrinsic: LStat Intrinsic (subroutine). ! (line 6) ! * LTime intrinsic: LTime Intrinsic. (line 6) * machine code: What is GNU Fortran?. ! (line 24) ! * macro options: Shorthand Options. (line 6) ! * main program unit, debugging: Main Program Unit. (line 33) ! * main(): Main Program Unit. (line 33) ! * MAIN__(): Main Program Unit. (line 33) ! * Makefile example: Bug Criteria. (line 89) * MAP statement: STRUCTURE UNION RECORD MAP. ! (line 6) ! * MatMul intrinsic: MatMul Intrinsic. (line 6) ! * Max intrinsic: Max Intrinsic. (line 6) ! * Max0 intrinsic: Max0 Intrinsic. (line 6) ! * Max1 intrinsic: Max1 Intrinsic. (line 6) * MaxExponent intrinsic: MaxExponent Intrinsic. ! (line 6) ! * maximum number of dimensions: Compiler Limits. (line 18) ! * maximum rank: Compiler Limits. (line 18) * maximum unit number: Large File Unit Numbers. ! (line 6) ! * MaxLoc intrinsic: MaxLoc Intrinsic. (line 6) ! * MaxVal intrinsic: MaxVal Intrinsic. (line 6) ! * MClock intrinsic: MClock Intrinsic. (line 6) ! * MClock8 intrinsic: MClock8 Intrinsic. (line 6) ! * memory usage, of compiler: Known Bugs. (line 45) ! * Merge intrinsic: Merge Intrinsic. (line 6) * messages, run-time: Run-time Library Errors. ! (line 6) ! * messages, warning: Warning Options. (line 6) ! * messages, warning and error: Warnings and Errors. (line 6) ! * mil intrinsics group: Intrinsic Groups. (line 83) ! * MIL-STD 1753 <1>: MIL-STD 1753. (line 6) ! * MIL-STD 1753 <2>: END DO. (line 6) ! * MIL-STD 1753 <3>: DO WHILE. (line 6) * MIL-STD 1753: Fortran Dialect Options. ! (line 294) ! * Min intrinsic: Min Intrinsic. (line 6) ! * Min0 intrinsic: Min0 Intrinsic. (line 6) ! * Min1 intrinsic: Min1 Intrinsic. (line 6) * MinExponent intrinsic: MinExponent Intrinsic. ! (line 6) ! * MinLoc intrinsic: MinLoc Intrinsic. (line 6) ! * MinVal intrinsic: MinVal Intrinsic. (line 6) * mistakes: What is GNU Fortran?. ! (line 24) ! * mistyped functions: Not My Type. (line 6) ! * mistyped variables: Not My Type. (line 6) ! * Mod intrinsic: Mod Intrinsic. (line 6) ! * modifying g77: Overall Options. (line 125) ! * Modulo intrinsic: Modulo Intrinsic. (line 6) ! * multi-dimension arrays: Array Size. (line 22) ! * MvBits intrinsic: MvBits Intrinsic. (line 6) * MXUNIT: Large File Unit Numbers. ! (line 6) ! * name space: Mangling of Names. (line 6) ! * NAMELIST statement: NAMELIST. (line 6) * naming conflicts: Multiple Definitions of External Names. ! (line 6) ! * naming issues: Mangling of Names. (line 6) ! * naming programs: Nothing Happens. (line 6) * NaN values: Floating-point Exception Handling. ! (line 6) ! * Nearest intrinsic: Nearest Intrinsic. (line 6) ! * negative forms of options: Invoking G77. (line 11) ! * negative time: Timer Wraparounds. (line 12) * Netlib <1>: Increasing Precision/Range. ! (line 6) ! * Netlib: C Interfacing Tools. (line 6) * network file system: Output Assumed To Flush. ! (line 6) ! * new users: Getting Started. (line 6) ! * newbies: Getting Started. (line 6) ! * NeXTStep problems: NeXTStep Problems. (line 6) * NFS: Output Assumed To Flush. ! (line 6) ! * NInt intrinsic: NInt Intrinsic. (line 6) * nonportable conversions: Nonportable Conversions. ! (line 6) ! * Not intrinsic: Not Intrinsic. (line 6) ! * nothing happens: Nothing Happens. (line 6) ! * null arguments: Ugly Null Arguments. (line 6) * null byte, trailing: Character and Hollerith Constants. ! (line 6) ! * null CHARACTER strings: Character Type. (line 14) ! * number of continuation lines: Continuation Line. (line 6) ! * number of dimensions, maximum: Compiler Limits. (line 18) ! * number of trips: Loops. (line 6) ! * O edit descriptor: I/O. (line 16) * octal constants: Double Quote Meaning. ! (line 6) ! * omitting arguments: Ugly Null Arguments. (line 11) * one-trip DO loops: Fortran Dialect Options. ! (line 128) ! * open angle: Character Set. (line 33) ! * open bracket: Character Set. (line 33) * OPEN statement: OPEN CLOSE and INQUIRE Keywords. ! (line 6) ! * optimization, better: Better Optimization. (line 6) ! * optimization, for Pentium: Aligned Data. (line 6) ! * optimize options: Optimize Options. (line 6) ! * options, --driver <1>: Changes. (line 430) ! * options, --driver: News. (line 668) * options, -falias-check <1>: Aliasing Assumed To Work. ! (line 6) ! * options, -falias-check: Code Gen Options. (line 197) * options, -fargument-alias <1>: Aliasing Assumed To Work. ! (line 6) ! * options, -fargument-alias: Code Gen Options. (line 197) * options, -fargument-noalias <1>: Aliasing Assumed To Work. ! (line 6) ! * options, -fargument-noalias: Code Gen Options. (line 197) * options, -fbadu77-intrinsics-delete: Fortran Dialect Options. - (line 243) * options, -fbadu77-intrinsics-disable: Fortran Dialect Options. - (line 246) * options, -fbadu77-intrinsics-enable: Fortran Dialect Options. - (line 248) * options, -fbadu77-intrinsics-hide: Fortran Dialect Options. ! (line 244) ! * options, -fcaller-saves: Optimize Options. (line 109) * options, -fcase-initcap: Fortran Dialect Options. - (line 222) * options, -fcase-lower: Fortran Dialect Options. - (line 232) * options, -fcase-preserve: Fortran Dialect Options. - (line 236) * options, -fcase-strict-lower: Fortran Dialect Options. - (line 217) * options, -fcase-strict-upper: Fortran Dialect Options. - (line 212) * options, -fcase-upper: Fortran Dialect Options. ! (line 228) ! * options, -fdelayed-branch: Optimize Options. (line 103) * options, -fdollar-ok: Fortran Dialect Options. ! (line 37) ! * options, -femulate-complex: Code Gen Options. (line 170) ! * options, -fexpensive-optimizations: Optimize Options. (line 101) * options, -ff2c-intrinsics-delete: Fortran Dialect Options. - (line 254) * options, -ff2c-intrinsics-disable: Fortran Dialect Options. - (line 257) * options, -ff2c-intrinsics-enable: Fortran Dialect Options. - (line 259) * options, -ff2c-intrinsics-hide: Fortran Dialect Options. ! (line 255) ! * options, -ff2c-library: Code Gen Options. (line 63) ! * options, -ff66: Shorthand Options. (line 34) ! * options, -ff77: Shorthand Options. (line 45) * options, -ff90: Fortran Dialect Options. - (line 15) * options, -ff90-intrinsics-delete: Fortran Dialect Options. - (line 265) * options, -ff90-intrinsics-disable: Fortran Dialect Options. - (line 268) * options, -ff90-intrinsics-enable: Fortran Dialect Options. - (line 270) * options, -ff90-intrinsics-hide: Fortran Dialect Options. ! (line 266) ! * options, -ffast-math: Optimize Options. (line 71) ! * options, -ffinite-math-only: Optimize Options. (line 81) * options, -ffixed-line-length-N: Fortran Dialect Options. ! (line 318) ! * options, -ffloat-store: Optimize Options. (line 39) ! * options, -fforce-addr: Optimize Options. (line 61) ! * options, -fforce-mem: Optimize Options. (line 60) * options, -ffree-form: Fortran Dialect Options. - (line 9) * options, -fgnu-intrinsics-delete: Fortran Dialect Options. - (line 276) * options, -fgnu-intrinsics-disable: Fortran Dialect Options. - (line 279) * options, -fgnu-intrinsics-enable: Fortran Dialect Options. - (line 281) * options, -fgnu-intrinsics-hide: Fortran Dialect Options. - (line 277) * options, -fGROUP-intrinsics-hide: Overly Convenient Options. - (line 63) * options, -finit-local-zero <1>: Overly Convenient Options. ! (line 16) ! * options, -finit-local-zero: Code Gen Options. (line 20) * options, -fintrin-case-any: Fortran Dialect Options. - (line 178) * options, -fintrin-case-initcap: Fortran Dialect Options. - (line 173) * options, -fintrin-case-lower: Fortran Dialect Options. - (line 176) * options, -fintrin-case-upper: Fortran Dialect Options. - (line 174) * options, -fmatch-case-any: Fortran Dialect Options. - (line 188) * options, -fmatch-case-initcap: Fortran Dialect Options. - (line 183) * options, -fmatch-case-lower: Fortran Dialect Options. - (line 186) * options, -fmatch-case-upper: Fortran Dialect Options. - (line 184) * options, -fmil-intrinsics-delete: Fortran Dialect Options. - (line 287) * options, -fmil-intrinsics-disable: Fortran Dialect Options. - (line 290) * options, -fmil-intrinsics-enable: Fortran Dialect Options. - (line 292) * options, -fmil-intrinsics-hide: Fortran Dialect Options. - (line 288) * options, -fno-argument-noalias-global <1>: Aliasing Assumed To Work. ! (line 6) ! * options, -fno-argument-noalias-global: Code Gen Options. (line 197) * options, -fno-automatic <1>: Overly Convenient Options. ! (line 32) ! * options, -fno-automatic: Code Gen Options. (line 14) * options, -fno-backslash: Fortran Dialect Options. ! (line 40) ! * options, -fno-common: Code Gen Options. (line 332) * options, -fno-f2c <1>: Avoid f2c Compatibility. ! (line 6) ! * options, -fno-f2c: Code Gen Options. (line 29) ! * options, -fno-f77: Shorthand Options. (line 54) * options, -fno-fixed-form: Fortran Dialect Options. ! (line 9) ! * options, -fno-globals: Code Gen Options. (line 223) ! * options, -fno-ident: Code Gen Options. (line 145) ! * options, -fno-inline: Optimize Options. (line 65) ! * options, -fno-move-all-movables: Optimize Options. (line 134) ! * options, -fno-reduce-all-givs: Optimize Options. (line 136) ! * options, -fno-rerun-loop-opt: Optimize Options. (line 138) ! * options, -fno-second-underscore: Code Gen Options. (line 135) ! * options, -fno-silent: Overall Options. (line 134) ! * options, -fno-trapping-math: Optimize Options. (line 91) ! * options, -fno-ugly: Shorthand Options. (line 24) * options, -fno-ugly-args: Fortran Dialect Options. - (line 59) * options, -fno-ugly-init: Fortran Dialect Options. ! (line 108) ! * options, -fno-underscoring <1>: Names. (line 23) ! * options, -fno-underscoring: Code Gen Options. (line 73) * options, -fonetrip: Fortran Dialect Options. ! (line 127) ! * options, -fpack-struct: Code Gen Options. (line 336) ! * options, -fpcc-struct-return: Code Gen Options. (line 321) ! * options, -fpedantic: Warning Options. (line 44) ! * options, -fPIC: News. (line 854) ! * options, -freg-struct-return: Code Gen Options. (line 322) ! * options, -frerun-cse-after-loop: Optimize Options. (line 100) ! * options, -fschedule-insns: Optimize Options. (line 105) ! * options, -fschedule-insns2: Optimize Options. (line 107) ! * options, -fset-g77-defaults: Overall Options. (line 111) ! * options, -fshort-double: Code Gen Options. (line 328) * options, -fsource-case-lower: Fortran Dialect Options. - (line 194) * options, -fsource-case-preserve: Fortran Dialect Options. - (line 196) * options, -fsource-case-upper: Fortran Dialect Options. ! (line 193) ! * options, -fstrength-reduce: Optimize Options. (line 97) * options, -fsymbol-case-any: Fortran Dialect Options. - (line 207) * options, -fsymbol-case-initcap: Fortran Dialect Options. - (line 202) * options, -fsymbol-case-lower: Fortran Dialect Options. - (line 205) * options, -fsymbol-case-upper: Fortran Dialect Options. ! (line 203) ! * options, -fsyntax-only: Warning Options. (line 20) * options, -ftypeless-boz: Fortran Dialect Options. ! (line 153) ! * options, -fugly: Shorthand Options. (line 9) * options, -fugly-assign: Fortran Dialect Options. - (line 65) * options, -fugly-assumed: Fortran Dialect Options. - (line 72) * options, -fugly-comma: Fortran Dialect Options. - (line 82) * options, -fugly-complex: Fortran Dialect Options. - (line 99) * options, -fugly-logint: Fortran Dialect Options. - (line 118) * options, -funix-intrinsics-delete: Fortran Dialect Options. - (line 298) * options, -funix-intrinsics-disable: Fortran Dialect Options. - (line 301) * options, -funix-intrinsics-enable: Fortran Dialect Options. - (line 303) * options, -funix-intrinsics-hide: Fortran Dialect Options. ! (line 299) ! * options, -funroll-all-loops: Optimize Options. (line 127) ! * options, -funroll-loops: Optimize Options. (line 113) ! * options, -funsafe-math-optimizations: Optimize Options. (line 77) ! * options, -fversion: Overall Options. (line 99) * options, -fvxt: Fortran Dialect Options. - (line 26) * options, -fvxt-intrinsics-delete: Fortran Dialect Options. - (line 308) * options, -fvxt-intrinsics-disable: Fortran Dialect Options. - (line 311) * options, -fvxt-intrinsics-enable: Fortran Dialect Options. - (line 313) * options, -fvxt-intrinsics-hide: Fortran Dialect Options. ! (line 309) ! * options, -fzeros: Code Gen Options. (line 148) ! * options, -g: Debugging Options. (line 9) ! * options, -I-: Directory Options. (line 14) ! * options, -Idir: Directory Options. (line 15) ! * options, -malign-double <1>: Aligned Data. (line 59) ! * options, -malign-double: Optimize Options. (line 16) ! * options, -Nl: Compiler Limits. (line 10) ! * options, -Nx: Compiler Limits. (line 10) ! * options, -pedantic: Warning Options. (line 24) ! * options, -pedantic-errors: Warning Options. (line 40) ! * options, -v: G77 and GCC. (line 27) ! * options, -W: Warning Options. (line 185) ! * options, -w: Warning Options. (line 47) ! * options, -Waggregate-return: Warning Options. (line 226) ! * options, -Wall: Warning Options. (line 114) ! * options, -Wcomment: Warning Options. (line 205) ! * options, -Wconversion: Warning Options. (line 224) ! * options, -Werror: Warning Options. (line 182) ! * options, -Wformat: Warning Options. (line 206) ! * options, -Wid-clash-LEN: Warning Options. (line 220) ! * options, -Wimplicit: Warning Options. (line 60) ! * options, -Wlarger-than-LEN: Warning Options. (line 222) ! * options, -Wno-globals: Warning Options. (line 50) ! * options, -Wparentheses: Warning Options. (line 208) ! * options, -Wredundant-decls: Warning Options. (line 228) ! * options, -Wshadow: Warning Options. (line 218) ! * options, -Wsurprising: Warning Options. (line 124) ! * options, -Wswitch: Warning Options. (line 210) ! * options, -Wswitch-default: Warning Options. (line 212) ! * options, -Wswitch-enum: Warning Options. (line 214) ! * options, -Wtraditional: Warning Options. (line 216) ! * options, -Wuninitialized: Warning Options. (line 69) ! * options, -Wunused: Warning Options. (line 66) ! * options, -x f77-cpp-input: LEX. (line 109) ! * options, adding: Adding Options. (line 6) ! * options, code generation: Code Gen Options. (line 6) ! * options, debugging: Debugging Options. (line 6) * options, dialect: Fortran Dialect Options. ! (line 6) ! * options, directory search: Directory Options. (line 6) ! * options, GNU Fortran command: Invoking G77. (line 6) ! * options, macro: Shorthand Options. (line 6) ! * options, negative forms: Invoking G77. (line 11) ! * options, optimization: Optimize Options. (line 6) ! * options, overall: Overall Options. (line 6) * options, overly convenient: Overly Convenient Options. - (line 6) * options, preprocessor: Preprocessor Options. ! (line 6) ! * options, shorthand: Shorthand Options. (line 6) ! * options, warnings: Warning Options. (line 6) * Or intrinsic <1>: Bit Operations on Floating-point Data. ! (line 6) ! * Or intrinsic: Or Intrinsic. (line 6) * order of evaluation, side effects: Order of Side Effects. ! (line 6) ! * ordering, array: Arrays. (line 6) ! * other intrinsics: Other Intrinsics. (line 6) * output, flushing: Output Assumed To Flush. ! (line 6) ! * overall options: Overall Options. (line 6) ! * overflow: Warning Options. (line 195) * overlapping arguments: Aliasing Assumed To Work. - (line 6) * overlays: Aliasing Assumed To Work. - (line 6) * overly convenient options: Overly Convenient Options. - (line 6) * overwritten data: Strange Behavior at Run Time. ! (line 6) ! * Pack intrinsic: Pack Intrinsic. (line 6) ! * padding: Known Bugs. (line 122) ! * parallel processing: Support for Threads. (line 6) * PARAMETER statement <1>: Old-style PARAMETER Statements. - (line 6) * PARAMETER statement: Intrinsics in PARAMETER Statements. ! (line 6) ! * parameters, unused: Warning Options. (line 192) ! * paths, search: Directory Options. (line 17) * PDB: Portable Unformatted Files. - (line 50) * pedantic compilation: Pedantic Compilation. ! (line 6) ! * Pentium optimizations: Aligned Data. (line 6) ! * percent sign: Character Set. (line 29) ! * PError intrinsic: PError Intrinsic. (line 6) * placing initialization statements: Initializing Before Specifying. ! (line 6) ! * POINTER statement: POINTER Statements. (line 6) * pointers <1>: Ugly Assigned Labels. ! (line 6) ! * pointers: Kind Notation. (line 127) * Poking the bear: Philosophy of Code Generation. ! (line 69) ! * porting, simplify: Simplify Porting. (line 6) ! * pound sign: Character Set. (line 25) ! * Precision intrinsic: Precision Intrinsic. (line 6) * precision, increasing: Increasing Precision/Range. - (line 6) * prefix-radix constants: Fortran Dialect Options. ! (line 153) ! * preprocessor <1>: LEX. (line 109) * preprocessor <2>: Cpp-style directives. ! (line 6) ! * preprocessor <3>: Overall Options. (line 33) * preprocessor: What is GNU Fortran?. - (line 106) * preprocessor options: Preprocessor Options. ! (line 6) ! * Present intrinsic: Present Intrinsic. (line 6) ! * printing compilation status: Overall Options. (line 134) ! * printing main source: Known Bugs. (line 93) ! * printing version information <1>: Overall Options. (line 99) * printing version information: What is GNU Fortran?. ! (line 132) ! * procedures: Procedures. (line 6) ! * Product intrinsic: Product Intrinsic. (line 6) ! * PROGRAM statement: Main Program Unit. (line 6) * programs, cc1: What is GNU Fortran?. - (line 106) * programs, cc1plus: What is GNU Fortran?. ! (line 111) ! * programs, compiling: G77 and GCC. (line 6) ! * programs, cpp <1>: LEX. (line 109) * programs, cpp <2>: Preprocessor Options. ! (line 6) ! * programs, cpp <3>: Overall Options. (line 33) * programs, cpp: What is GNU Fortran?. - (line 106) * programs, f771: What is GNU Fortran?. ! (line 93) ! * programs, ratfor: Overall Options. (line 45) ! * programs, speeding up: Faster Programs. (line 6) ! * programs, test: Nothing Happens. (line 6) ! * projects: Projects. (line 6) ! * Q edit descriptor: Q Edit Descriptor. (line 6) ! * QAbs intrinsic: QAbs Intrinsic. (line 6) ! * QACos intrinsic: QACos Intrinsic. (line 6) ! * QACosD intrinsic: QACosD Intrinsic. (line 6) ! * QASin intrinsic: QASin Intrinsic. (line 6) ! * QASinD intrinsic: QASinD Intrinsic. (line 6) ! * QATan intrinsic: QATan Intrinsic. (line 6) ! * QATan2 intrinsic: QATan2 Intrinsic. (line 6) ! * QATan2D intrinsic: QATan2D Intrinsic. (line 6) ! * QATanD intrinsic: QATanD Intrinsic. (line 6) ! * QCos intrinsic: QCos Intrinsic. (line 6) ! * QCosD intrinsic: QCosD Intrinsic. (line 6) ! * QCosH intrinsic: QCosH Intrinsic. (line 6) ! * QDiM intrinsic: QDiM Intrinsic. (line 6) ! * QExp intrinsic: QExp Intrinsic. (line 6) ! * QExt intrinsic: QExt Intrinsic. (line 6) ! * QExtD intrinsic: QExtD Intrinsic. (line 6) ! * QFloat intrinsic: QFloat Intrinsic. (line 6) ! * QInt intrinsic: QInt Intrinsic. (line 6) ! * QLog intrinsic: QLog Intrinsic. (line 6) ! * QLog10 intrinsic: QLog10 Intrinsic. (line 6) ! * QMax1 intrinsic: QMax1 Intrinsic. (line 6) ! * QMin1 intrinsic: QMin1 Intrinsic. (line 6) ! * QMod intrinsic: QMod Intrinsic. (line 6) ! * QNInt intrinsic: QNInt Intrinsic. (line 6) ! * QSin intrinsic: QSin Intrinsic. (line 6) ! * QSinD intrinsic: QSinD Intrinsic. (line 6) ! * QSinH intrinsic: QSinH Intrinsic. (line 6) ! * QSqRt intrinsic: QSqRt Intrinsic. (line 6) ! * QTan intrinsic: QTan Intrinsic. (line 6) ! * QTanD intrinsic: QTanD Intrinsic. (line 6) ! * QTanH intrinsic: QTanH Intrinsic. (line 6) ! * question mark: Character Set. (line 23) * questionable instructions: What is GNU Fortran?. ! (line 58) ! * Radix intrinsic: Radix Intrinsic. (line 6) ! * Rand intrinsic: Rand Intrinsic. (line 6) * Random_Number intrinsic: Random_Number Intrinsic. - (line 6) * Random_Seed intrinsic: Random_Seed Intrinsic. ! (line 6) ! * range checking: Code Gen Options. (line 264) ! * Range intrinsic: Range Intrinsic. (line 6) * range, increasing: Increasing Precision/Range. ! (line 6) ! * rank, maximum: Compiler Limits. (line 18) ! * ratfor: Overall Options. (line 45) ! * Ratfor preprocessor: Overall Options. (line 45) ! * READONLY: READONLY Keyword. (line 6) * reads and writes, scheduling: Aliasing Assumed To Work. ! (line 6) ! * Real intrinsic <1>: Real Intrinsic. (line 6) * Real intrinsic: REAL() and AIMAG() of Complex. - (line 6) * real part: Ugly Complex Part Extraction. ! (line 6) ! * REAL(KIND=1) type: Compiler Types. (line 52) ! * REAL(KIND=2) type: Compiler Types. (line 55) * REAL*16 support: Full Support for Compiler Types. ! (line 6) ! * RealPart intrinsic: RealPart Intrinsic. (line 6) ! * recent versions <1>: Changes. (line 6) ! * recent versions: News. (line 6) * RECORD statement: STRUCTURE UNION RECORD MAP. ! (line 6) ! * recursion, lack of: RECURSIVE Keyword. (line 6) ! * RECURSIVE keyword: RECURSIVE Keyword. (line 6) ! * reference works: Language. (line 6) * Rename intrinsic <1>: Rename Intrinsic (function). - (line 6) * Rename intrinsic: Rename Intrinsic (subroutine). ! (line 6) ! * Repeat intrinsic: Repeat Intrinsic. (line 6) ! * reporting bugs: Bugs. (line 6) ! * reporting compilation status: Overall Options. (line 134) ! * Reshape intrinsic: Reshape Intrinsic. (line 6) * results, inconsistent: Floating-point Errors. ! (line 6) ! * RETURN statement <1>: Alternate Returns. (line 6) ! * RETURN statement: Functions. (line 6) ! * return type of functions: Functions. (line 6) ! * right angle: Character Set. (line 35) ! * right bracket: Character Set. (line 35) * rounding errors: Floating-point Errors. ! (line 6) ! * row-major ordering: Arrays. (line 6) ! * RRSpacing intrinsic: RRSpacing Intrinsic. (line 6) ! * RShift intrinsic: RShift Intrinsic. (line 6) * run-time, dynamic allocation: Arbitrary Concatenation. ! (line 6) ! * run-time, initialization: Startup Code. (line 6) * run-time, library: What is GNU Fortran?. ! (line 81) ! * run-time, options: Code Gen Options. (line 6) ! * SAVE statement: Code Gen Options. (line 15) * saved variables: Variables Assumed To Be Saved. ! (line 6) ! * Scale intrinsic: Scale Intrinsic. (line 6) ! * Scan intrinsic: Scan Intrinsic. (line 6) * scheduling of reads and writes: Aliasing Assumed To Work. - (line 6) * scope <1>: Scope and Classes of Names. - (line 6) * scope: Scope of Names and Labels. ! (line 6) ! * search path: Directory Options. (line 6) ! * search paths, for included files: Directory Options. (line 17) ! * Secnds intrinsic: Secnds Intrinsic. (line 6) * Second intrinsic <1>: Second Intrinsic (subroutine). - (line 6) * Second intrinsic: Second Intrinsic (function). - (line 6) * segmentation violation <1>: Strange Behavior at Run Time. ! (line 6) ! * segmentation violation <2>: Stack Overflow. (line 6) ! * segmentation violation: NeXTStep Problems. (line 6) * Selected_Int_Kind intrinsic: Selected_Int_Kind Intrinsic. - (line 6) * Selected_Real_Kind intrinsic: Selected_Real_Kind Intrinsic. ! (line 6) ! * semicolon <1>: Character Set. (line 15) * semicolon: Statements Comments Lines. ! (line 23) ! * sequence numbers: Better Source Model. (line 28) * Set_Exponent intrinsic: Set_Exponent Intrinsic. ! (line 6) ! * Shape intrinsic: Shape Intrinsic. (line 6) ! * SHARED: READONLY Keyword. (line 19) * Shift intrinsic: Bit Operations on Floating-point Data. ! (line 6) ! * Short intrinsic: Short Intrinsic. (line 6) ! * short source lines: Short Lines. (line 6) ! * short time: Timer Wraparounds. (line 12) ! * shorthand options: Shorthand Options. (line 6) * side effects, order of evaluation: Order of Side Effects. ! (line 6) ! * Sign intrinsic: Sign Intrinsic. (line 6) * signal 11: Signal 11 and Friends. - (line 6) * Signal intrinsic <1>: Signal Intrinsic (function). - (line 6) * Signal intrinsic: Signal Intrinsic (subroutine). ! (line 6) ! * signature of procedures: Procedures. (line 6) ! * simplify porting: Simplify Porting. (line 6) ! * Sin intrinsic: Sin Intrinsic. (line 6) ! * SinD intrinsic: SinD Intrinsic. (line 6) ! * SinH intrinsic: SinH Intrinsic. (line 6) ! * Sleep intrinsic: Sleep Intrinsic. (line 6) ! * Sngl intrinsic: Sngl Intrinsic. (line 6) ! * SnglQ intrinsic: SnglQ Intrinsic. (line 6) * Solaris: Strange Behavior at Run Time. ! (line 42) ! * source code <1>: Case Sensitivity. (line 6) ! * source code <2>: Source Form. (line 6) ! * source code <3>: Lines. (line 6) * source code: What is GNU Fortran?. - (line 20) * source file: What is GNU Fortran?. ! (line 20) ! * source file format <1>: Case Sensitivity. (line 6) ! * source file format <2>: Source Form. (line 6) ! * source file format <3>: Lines. (line 6) * source file format: Fortran Dialect Options. ! (line 9) ! * source format <1>: Source Form. (line 6) ! * source format: Lines. (line 6) ! * source lines, long: Long Lines. (line 6) ! * source lines, short: Short Lines. (line 6) ! * space <1>: Lines. (line 37) ! * space: Character Set. (line 40) * space, endless printing of: Strange Behavior at Run Time. ! (line 42) ! * space, padding with: Short Lines. (line 6) ! * Spacing intrinsic: Spacing Intrinsic. (line 6) ! * SPC <1>: Lines. (line 37) ! * SPC: Character Set. (line 40) ! * speed, of compiler: Known Bugs. (line 45) ! * speed, of loops: Optimize Options. (line 63) ! * speed, of programs: Faster Programs. (line 6) * spills of floating-point results: Floating-point Errors. ! (line 113) ! * Spread intrinsic: Spread Intrinsic. (line 6) ! * SqRt intrinsic: SqRt Intrinsic. (line 6) ! * SRand intrinsic: SRand Intrinsic. (line 6) ! * stack, 387 coprocessor: News. (line 560) ! * stack, aligned: Aligned Data. (line 6) ! * stack, overflow: Stack Overflow. (line 6) ! * standard, ANSI FORTRAN 77: Language. (line 6) ! * standard, support for: Standard Support. (line 6) ! * startup code: Startup Code. (line 6) * Stat intrinsic <1>: Stat Intrinsic (function). - (line 6) * Stat intrinsic: Stat Intrinsic (subroutine). - (line 6) * statement labels, assigned: Assigned Statement Labels. - (line 6) * statements, ACCEPT: TYPE and ACCEPT I/O Statements. - (line 6) * statements, ASSIGN <1>: Assigned Statement Labels. - (line 6) * statements, ASSIGN: Ugly Assigned Labels. ! (line 6) ! * statements, AUTOMATIC: AUTOMATIC Statement. (line 6) * statements, BLOCK DATA <1>: Multiple Definitions of External Names. - (line 6) * statements, BLOCK DATA: Block Data and Libraries. - (line 6) * statements, CLOSE: OPEN CLOSE and INQUIRE Keywords. - (line 6) * statements, COMMON <1>: Multiple Definitions of External Names. ! (line 6) ! * statements, COMMON: Common Blocks. (line 6) ! * statements, COMPLEX: Complex Variables. (line 6) ! * statements, CYCLE: CYCLE and EXIT. (line 6) ! * statements, DATA <1>: Known Bugs. (line 45) ! * statements, DATA: Code Gen Options. (line 21) ! * statements, DECODE: ENCODE and DECODE. (line 6) * statements, DIMENSION <1>: Array Bounds Expressions. ! (line 6) ! * statements, DIMENSION <2>: Adjustable Arrays. (line 6) ! * statements, DIMENSION: Arrays. (line 6) ! * statements, DO <1>: Loops. (line 6) ! * statements, DO: Warning Options. (line 171) ! * statements, ENCODE: ENCODE and DECODE. (line 6) * statements, ENTRY: Alternate Entry Points. - (line 6) * statements, EQUIVALENCE: Local Equivalence Areas. ! (line 6) ! * statements, EXIT: CYCLE and EXIT. (line 6) * statements, FORMAT: Expressions in FORMAT Statements. ! (line 6) ! * statements, FUNCTION <1>: Functions. (line 6) ! * statements, FUNCTION: Procedures. (line 6) * statements, GOTO: Assigned Statement Labels. - (line 6) * statements, IMPLICIT CHARACTER*(*): Limitation on Implicit Declarations. - (line 6) * statements, INQUIRE: OPEN CLOSE and INQUIRE Keywords. - (line 6) * statements, MAP: STRUCTURE UNION RECORD MAP. ! (line 6) ! * statements, NAMELIST: NAMELIST. (line 6) * statements, OPEN: OPEN CLOSE and INQUIRE Keywords. - (line 6) * statements, PARAMETER <1>: Old-style PARAMETER Statements. - (line 6) * statements, PARAMETER: Intrinsics in PARAMETER Statements. ! (line 6) ! * statements, POINTER: POINTER Statements. (line 6) ! * statements, PROGRAM: Main Program Unit. (line 6) * statements, RECORD: STRUCTURE UNION RECORD MAP. ! (line 6) ! * statements, RETURN <1>: Alternate Returns. (line 6) ! * statements, RETURN: Functions. (line 6) ! * statements, SAVE: Code Gen Options. (line 15) * statements, separated by semicolon: Statements Comments Lines. - (line 23) * statements, STRUCTURE: STRUCTURE UNION RECORD MAP. ! (line 6) ! * statements, SUBROUTINE <1>: Alternate Returns. (line 6) ! * statements, SUBROUTINE: Procedures. (line 6) * statements, TYPE: TYPE and ACCEPT I/O Statements. - (line 6) * statements, UNION: STRUCTURE UNION RECORD MAP. ! (line 6) ! * STATIC: AUTOMATIC Statement. (line 30) * static variables: Variables Assumed To Be Saved. ! (line 6) ! * status, compilation: Overall Options. (line 134) * storage association: Aliasing Assumed To Work. ! (line 6) ! * strings, empty: Character Type. (line 14) * STRUCTURE statement: STRUCTURE UNION RECORD MAP. ! (line 6) ! * structures: Known Bugs. (line 122) * submodels: Use Submodel Options. ! (line 6) ! * SUBROUTINE statement <1>: Alternate Returns. (line 6) ! * SUBROUTINE statement: Procedures. (line 6) ! * subroutines: Alternate Returns. (line 6) ! * subscript checking: Code Gen Options. (line 264) ! * substring checking: Code Gen Options. (line 264) ! * suffixes, file name: Overall Options. (line 13) ! * Sum intrinsic: Sum Intrinsic. (line 6) ! * support, Alpha: Known Bugs. (line 117) ! * support, ELF: News. (line 854) * support, f77: Backslash in Constants. ! (line 6) ! * support, FORTRAN 77: Standard Support. (line 6) ! * support, Fortran 90: Fortran 90 Support. (line 6) ! * support, gdb: Debugger Problems. (line 6) ! * suppressing warnings: Warning Options. (line 6) ! * symbol names <1>: Names. (line 6) * symbol names: Fortran Dialect Options. - (line 38) * symbol names, scope and classes: Scope and Classes of Names. ! (line 6) ! * symbol names, transforming: Code Gen Options. (line 74) ! * symbol names, underscores: Code Gen Options. (line 74) * SymLnk intrinsic <1>: SymLnk Intrinsic (function). - (line 6) * SymLnk intrinsic: SymLnk Intrinsic (subroutine). - (line 6) * synchronous write errors: Output Assumed To Flush. ! (line 6) ! * syntax checking: Warning Options. (line 20) * System intrinsic <1>: System Intrinsic (function). - (line 6) * System intrinsic: System Intrinsic (subroutine). - (line 6) * System_Clock intrinsic: System_Clock Intrinsic. ! (line 6) ! * tab character: Tabs. (line 6) * table of intrinsics: Table of Intrinsic Functions. ! (line 6) ! * Tan intrinsic: Tan Intrinsic. (line 6) ! * TanD intrinsic: TanD Intrinsic. (line 6) ! * TanH intrinsic: TanH Intrinsic. (line 6) ! * test programs: Nothing Happens. (line 6) ! * textbooks: Language. (line 17) ! * threads: Support for Threads. (line 6) * Time intrinsic <1>: Time Intrinsic (VXT). - (line 6) * Time intrinsic: Time Intrinsic (UNIX). ! (line 6) ! * Time8 intrinsic: Time8 Intrinsic. (line 6) ! * Tiny intrinsic: Tiny Intrinsic. (line 6) * Toolpack: Increasing Precision/Range. ! (line 6) ! * trailing comma: Ugly Null Arguments. (line 6) ! * trailing comment <1>: LEX. (line 46) ! * trailing comment <2>: Trailing Comment. (line 6) * trailing comment: Statements Comments Lines. - (line 8) * trailing null byte: Character and Hollerith Constants. ! (line 6) ! * Transfer intrinsic: Transfer Intrinsic. (line 6) ! * transforming symbol names <1>: Names. (line 6) ! * transforming symbol names: Code Gen Options. (line 74) * translation of user programs: What is GNU Fortran?. ! (line 24) ! * Transpose intrinsic: Transpose Intrinsic. (line 6) ! * Trim intrinsic: Trim Intrinsic. (line 6) ! * trips, number of: Loops. (line 6) * truncation, of floating-point values: Floating-point Errors. ! (line 113) ! * truncation, of long lines: Long Lines. (line 6) * TtyNam intrinsic <1>: TtyNam Intrinsic (function). - (line 6) * TtyNam intrinsic: TtyNam Intrinsic (subroutine). - (line 6) * TYPE statement: TYPE and ACCEPT I/O Statements. ! (line 6) ! * types, COMPLEX(KIND=1): Compiler Types. (line 88) ! * types, COMPLEX(KIND=2): Compiler Types. (line 92) ! * types, constants <1>: Compiler Constants. (line 6) ! * types, constants <2>: Constants. (line 6) * types, constants: Fortran Dialect Options. ! (line 153) ! * types, DOUBLE COMPLEX: Compiler Types. (line 103) ! * types, DOUBLE PRECISION: Compiler Types. (line 100) ! * types, file: Overall Options. (line 13) * types, Fortran/C: C Access to Type Information. ! (line 6) ! * types, INTEGER(KIND=1): Compiler Types. (line 59) ! * types, INTEGER(KIND=2): Compiler Types. (line 67) ! * types, INTEGER(KIND=3): Compiler Types. (line 75) ! * types, INTEGER(KIND=6): Compiler Types. (line 81) * types, INTEGER*2: Popular Non-standard Types. - (line 6) * types, INTEGER*8: Full Support for Compiler Types. ! (line 6) ! * types, LOGICAL(KIND=1): Compiler Types. (line 64) ! * types, LOGICAL(KIND=2): Compiler Types. (line 72) ! * types, LOGICAL(KIND=3): Compiler Types. (line 78) ! * types, LOGICAL(KIND=6): Compiler Types. (line 85) * types, LOGICAL*1: Popular Non-standard Types. ! (line 6) ! * types, of data: Compiler Types. (line 6) ! * types, REAL(KIND=1): Compiler Types. (line 52) ! * types, REAL(KIND=2): Compiler Types. (line 55) * types, REAL*16: Full Support for Compiler Types. ! (line 6) ! * UBound intrinsic: UBound Intrinsic. (line 6) ! * ugly features <1>: Distensions. (line 6) ! * ugly features: Shorthand Options. (line 10) * UMask intrinsic <1>: UMask Intrinsic (function). - (line 6) * UMask intrinsic: UMask Intrinsic (subroutine). ! (line 6) ! * undefined behavior: Bug Criteria. (line 18) ! * undefined function value: Bug Criteria. (line 18) * undefined reference (_main): Cannot Link Fortran Programs. ! (line 19) ! * underscore <1>: Mangling of Names. (line 6) * underscore <2>: Underscores in Symbol Names. ! (line 6) ! * underscore <3>: Character Set. (line 31) ! * underscore: Code Gen Options. (line 74) * unformatted files: Portable Unformatted Files. - (line 6) * uninitialized variables <1>: Variables Assumed To Be Zero. ! (line 6) ! * uninitialized variables <2>: Code Gen Options. (line 21) ! * uninitialized variables: Warning Options. (line 70) * UNION statement: STRUCTURE UNION RECORD MAP. - (line 6) * unit numbers: Large File Unit Numbers. ! (line 6) ! * UNIX f77: Shorthand Options. (line 46) * UNIX intrinsics: Fortran Dialect Options. - (line 305) * Unlink intrinsic <1>: Unlink Intrinsic (function). - (line 6) * Unlink intrinsic: Unlink Intrinsic (subroutine). ! (line 6) ! * Unpack intrinsic: Unpack Intrinsic. (line 6) * unrecognized file format: What is GNU Fortran?. - (line 120) * unresolved reference (various): Cannot Link Fortran Programs. ! (line 6) ! * unrolling loops: Optimize Options. (line 114) ! * UNSAVE: AUTOMATIC Statement. (line 30) ! * unsupported warnings: Warning Options. (line 230) ! * unused arguments <1>: Unused Arguments. (line 6) ! * unused arguments: Warning Options. (line 192) ! * unused dummies: Warning Options. (line 192) ! * unused parameters: Warning Options. (line 192) ! * unused variables: Warning Options. (line 67) ! * uppercase letters: Case Sensitivity. (line 6) ! * user-visible changes: Changes. (line 6) * variables, assumed to be zero: Variables Assumed To Be Zero. ! (line 6) ! * variables, automatic: AUTOMATIC Statement. (line 6) ! * variables, initialization of: Code Gen Options. (line 21) ! * variables, mistyped: Not My Type. (line 6) * variables, retaining values across calls: Variables Assumed To Be Saved. ! (line 6) ! * variables, uninitialized <1>: Code Gen Options. (line 21) ! * variables, uninitialized: Warning Options. (line 70) ! * variables, unused: Warning Options. (line 67) ! * Verify intrinsic: Verify Intrinsic. (line 6) ! * version information, printing <1>: Overall Options. (line 99) * version information, printing: What is GNU Fortran?. ! (line 132) ! * versions, recent <1>: Changes. (line 6) ! * versions, recent: News. (line 6) ! * VXT extensions <1>: VXT Fortran. (line 6) * VXT extensions: Fortran Dialect Options. - (line 27) * VXT intrinsics: Fortran Dialect Options. - (line 315) * vxtidate_y2kbuggy_0: Year 2000 (Y2K) Problems. - (line 28) * warnings: What is GNU Fortran?. ! (line 58) ! * warnings vs errors: Warnings and Errors. (line 6) ! * warnings, all: Warning Options. (line 115) ! * warnings, extra: Warning Options. (line 186) ! * warnings, global names <1>: Code Gen Options. (line 224) ! * warnings, global names: Warning Options. (line 51) ! * warnings, implicit declaration: Warning Options. (line 61) ! * warnings, suppressing: Warning Options. (line 6) ! * warnings, unsupported: Warning Options. (line 230) * wisdom: Collected Fortran Wisdom. - (line 6) * wraparound: Run-time Environment Limits. ! (line 6) ! * wraparound, timings <1>: Secnds Intrinsic. (line 19) * wraparound, timings <2>: DTime Intrinsic (function). ! (line 25) ! * wraparound, timings <3>: Time8 Intrinsic. (line 19) * wraparound, timings <4>: Time Intrinsic (UNIX). - (line 19) * wraparound, timings <5>: System_Clock Intrinsic. - (line 25) * wraparound, timings <6>: Second Intrinsic (subroutine). - (line 18) * wraparound, timings <7>: Second Intrinsic (function). ! (line 18) ! * wraparound, timings <8>: MClock8 Intrinsic. (line 18) ! * wraparound, timings <9>: MClock Intrinsic. (line 18) * wraparound, timings <10>: ETime Intrinsic (function). - (line 22) * wraparound, timings <11>: ETime Intrinsic (subroutine). - (line 22) * wraparound, timings <12>: DTime Intrinsic (subroutine). ! (line 25) ! * wraparound, timings: CPU_Time Intrinsic. (line 19) * wraparound, Y10K <1>: Time Intrinsic (VXT). - (line 18) * wraparound, Y10K <2>: IDate Intrinsic (UNIX). - (line 20) * wraparound, Y10K <3>: FDate Intrinsic (function). - (line 21) * wraparound, Y10K <4>: FDate Intrinsic (subroutine). - (line 22) * wraparound, Y10K: Date_and_Time Intrinsic. - (line 39) * wraparound, Y2K: IDate Intrinsic (VXT). - (line 23) * writes, flushing: Output Assumed To Flush. - (line 6) * writing code: Collected Fortran Wisdom. - (line 6) * x86 floating-point: Floating-point precision. - (line 6) * x86 FPU stack: Inconsistent Calling Sequences. ! (line 6) ! * XOr intrinsic: XOr Intrinsic. (line 6) * Y10K compliance <1>: Time Intrinsic (VXT). - (line 18) * Y10K compliance <2>: Year 10000 (Y10K) Problems. - (line 6) * Y10K compliance <3>: IDate Intrinsic (UNIX). - (line 20) * Y10K compliance <4>: FDate Intrinsic (function). - (line 21) * Y10K compliance <5>: FDate Intrinsic (subroutine). - (line 22) * Y10K compliance: Date_and_Time Intrinsic. ! (line 39) ! * Y2K compliance <1>: Y2KBAD. (line 6) * Y2K compliance <2>: IDate Intrinsic (VXT). ! (line 23) ! * Y2K compliance <3>: Date Intrinsic. (line 19) * Y2K compliance: Year 2000 (Y2K) Problems. - (line 6) * y2kbuggy: Year 2000 (Y2K) Problems. - (line 28) * Year 10000 compliance <1>: Time Intrinsic (VXT). - (line 18) * Year 10000 compliance <2>: Year 10000 (Y10K) Problems. - (line 6) * Year 10000 compliance <3>: IDate Intrinsic (UNIX). - (line 20) * Year 10000 compliance <4>: FDate Intrinsic (function). - (line 21) * Year 10000 compliance <5>: FDate Intrinsic (subroutine). - (line 22) * Year 10000 compliance: Date_and_Time Intrinsic. ! (line 39) ! * Year 2000 compliance <1>: Y2KBAD. (line 6) * Year 2000 compliance <2>: IDate Intrinsic (VXT). ! (line 23) ! * Year 2000 compliance <3>: Date Intrinsic. (line 19) * Year 2000 compliance: Year 2000 (Y2K) Problems. ! (line 6) ! * Z edit descriptor <1>: Fortran 90 Features. (line 68) ! * Z edit descriptor: I/O. (line 16) ! * ZAbs intrinsic: ZAbs Intrinsic. (line 6) ! * ZCos intrinsic: ZCos Intrinsic. (line 6) * zero byte, trailing: Character and Hollerith Constants. - (line 6) * zero-initialized variables: Variables Assumed To Be Zero. ! (line 6) ! * zero-length CHARACTER: Character Type. (line 14) * zero-trip DO loops: Fortran Dialect Options. ! (line 128) ! * ZExp intrinsic: ZExp Intrinsic. (line 6) ! * ZExt intrinsic: ZExt Intrinsic. (line 6) ! * ZLog intrinsic: ZLog Intrinsic. (line 6) ! * ZSin intrinsic: ZSin Intrinsic. (line 6) ! * ZSqRt intrinsic: ZSqRt Intrinsic. (line 6)  Tag Table: Node: Top2363 ! Node: Copying4317 ! Node: GNU Free Documentation License23485 ! Node: Contributors45887 ! Node: Funding49275 ! Node: Funding GNU Fortran51784 ! Node: Getting Started53000 ! Node: What is GNU Fortran?55250 ! Node: G77 and GCC65139 ! Node: Invoking G7766343 ! Node: Option Summary68282 ! Node: Overall Options73097 ! Node: Shorthand Options79690 ! Node: Fortran Dialect Options81992 ! Node: Warning Options93254 ! Node: Debugging Options102176 ! Node: Optimize Options103771 ! Ref: Optimize Options-Footnote-1109794 ! Node: Preprocessor Options110487 ! Node: Directory Options111673 ! Node: Code Gen Options112990 ! Node: Environment Variables127904 ! Node: News128366 ! Node: Changes183235 ! Node: Language211629 ! Node: Direction of Language Development213831 ! Node: Standard Support220076 ! Node: No Passing External Assumed-length220802 ! Node: No Passing Dummy Assumed-length221288 ! Node: No Pathological Implied-DO221812 ! Node: No Useless Implied-DO222508 ! Node: Conformance223248 ! Node: Notation Used225276 ! Node: Terms and Concepts229485 ! Node: Syntactic Items230002 ! Node: Statements Comments Lines230693 ! Node: Scope of Names and Labels232567 ! Node: Characters Lines Sequence233006 ! Node: Character Set233617 ! Node: Lines234627 ! Node: Continuation Line237112 ! Node: Statements238076 ! Node: Statement Labels239041 ! Node: Order239742 ! Node: INCLUDE240636 ! Node: Cpp-style directives243417 ! Node: Data Types and Constants243881 ! Node: Types247407 ! Node: Double Notation248505 ! Node: Star Notation249590 ! Node: Kind Notation252548 ! Node: Constants260981 ! Node: Integer Type262506 ! Node: Character Type263113 ! Node: Expressions263886 ! Node: %LOC()264307 ! Node: Specification Statements267049 ! Node: NAMELIST267511 ! Node: DOUBLE COMPLEX268271 ! Node: Control Statements268534 ! Node: DO WHILE269033 ! Node: END DO269349 ! Node: Construct Names270367 ! Node: CYCLE and EXIT271118 ! Node: Functions and Subroutines273893 ! Node: %VAL()274546 ! Node: %REF()275924 ! Node: %DESCR()277766 ! Node: Generics and Specifics279913 ! Node: REAL() and AIMAG() of Complex287126 ! Node: CMPLX() of DOUBLE PRECISION288970 ! Node: MIL-STD 1753290707 ! Node: f77/f2c Intrinsics291060 ! Node: Table of Intrinsic Functions291641 ! Node: Abort Intrinsic308364 ! Node: Abs Intrinsic308647 ! Node: Access Intrinsic309529 ! Node: AChar Intrinsic310384 ! Node: ACos Intrinsic310925 ! Node: AdjustL Intrinsic311405 ! Node: AdjustR Intrinsic311745 ! Node: AImag Intrinsic312086 ! Node: AInt Intrinsic312910 ! Node: Alarm Intrinsic313557 ! Node: All Intrinsic314410 ! Node: Allocated Intrinsic314739 ! Node: ALog Intrinsic315085 ! Node: ALog10 Intrinsic315496 ! Node: AMax0 Intrinsic315915 ! Node: AMax1 Intrinsic316421 ! Node: AMin0 Intrinsic316895 ! Node: AMin1 Intrinsic317400 ! Node: AMod Intrinsic317873 ! Node: And Intrinsic318320 ! Node: ANInt Intrinsic318847 ! Node: Any Intrinsic319632 ! Node: ASin Intrinsic319956 ! Node: Associated Intrinsic320435 ! Node: ATan Intrinsic320786 ! Node: ATan2 Intrinsic321273 ! Node: BesJ0 Intrinsic321845 ! Node: BesJ1 Intrinsic322327 ! Node: BesJN Intrinsic322809 ! Node: BesY0 Intrinsic323361 ! Node: BesY1 Intrinsic323844 ! Node: BesYN Intrinsic324327 ! Node: Bit_Size Intrinsic324883 ! Node: BTest Intrinsic325563 ! Node: CAbs Intrinsic326304 ! Node: CCos Intrinsic326712 ! Node: Ceiling Intrinsic327125 ! Node: CExp Intrinsic327464 ! Node: Char Intrinsic327877 ! Node: ChDir Intrinsic (subroutine)329152 ! Node: ChMod Intrinsic (subroutine)330176 ! Node: CLog Intrinsic331467 ! Node: Cmplx Intrinsic331892 ! Node: Complex Intrinsic332714 ! Node: Conjg Intrinsic334181 ! Node: Cos Intrinsic334626 ! Node: CosH Intrinsic335110 ! Node: Count Intrinsic335506 ! Node: CPU_Time Intrinsic335841 ! Node: CShift Intrinsic336653 ! Node: CSin Intrinsic336992 ! Node: CSqRt Intrinsic337405 ! Node: CTime Intrinsic (subroutine)337836 ! Node: CTime Intrinsic (function)338612 ! Node: DAbs Intrinsic339267 ! Node: DACos Intrinsic339684 ! Node: DASin Intrinsic340096 ! Node: DATan Intrinsic340509 ! Node: DATan2 Intrinsic340923 ! Node: Date_and_Time Intrinsic341399 ! Node: DbesJ0 Intrinsic342784 ! Node: DbesJ1 Intrinsic343198 ! Node: DbesJN Intrinsic343605 ! Node: DbesY0 Intrinsic344082 ! Node: DbesY1 Intrinsic344489 ! Node: DbesYN Intrinsic344896 ! Node: Dble Intrinsic345371 ! Node: DCos Intrinsic346098 ! Node: DCosH Intrinsic346503 ! Node: DDiM Intrinsic346914 ! Node: DErF Intrinsic347367 ! Node: DErFC Intrinsic347757 ! Node: DExp Intrinsic348153 ! Node: Digits Intrinsic348560 ! Node: DiM Intrinsic348894 ! Node: DInt Intrinsic349414 ! Node: DLog Intrinsic349819 ! Node: DLog10 Intrinsic350225 ! Node: DMax1 Intrinsic350644 ! Node: DMin1 Intrinsic351119 ! Node: DMod Intrinsic351592 ! Node: DNInt Intrinsic352041 ! Node: Dot_Product Intrinsic352461 ! Node: DProd Intrinsic352818 ! Node: DSign Intrinsic353221 ! Node: DSin Intrinsic353681 ! Node: DSinH Intrinsic354087 ! Node: DSqRt Intrinsic354499 ! Node: DTan Intrinsic354911 ! Node: DTanH Intrinsic355317 ! Node: DTime Intrinsic (subroutine)355742 ! Node: EOShift Intrinsic357034 ! Node: Epsilon Intrinsic357390 ! Node: ErF Intrinsic357731 ! Node: ErFC Intrinsic358158 ! Node: ETime Intrinsic (subroutine)358739 ! Node: ETime Intrinsic (function)359923 ! Node: Exit Intrinsic360984 ! Node: Exp Intrinsic361514 ! Node: Exponent Intrinsic361997 ! Node: FDate Intrinsic (subroutine)362355 ! Node: FDate Intrinsic (function)363288 ! Node: FGet Intrinsic (subroutine)364083 ! Node: FGetC Intrinsic (subroutine)364943 ! Node: Float Intrinsic365843 ! Node: Floor Intrinsic366266 ! Node: Flush Intrinsic366601 ! Node: FNum Intrinsic367203 ! Node: FPut Intrinsic (subroutine)367674 ! Node: FPutC Intrinsic (subroutine)368494 ! Node: Fraction Intrinsic369364 ! Node: FSeek Intrinsic369724 ! Node: FStat Intrinsic (subroutine)370472 ! Node: FStat Intrinsic (function)372019 ! Node: FTell Intrinsic (subroutine)373331 ! Node: FTell Intrinsic (function)374027 ! Node: GError Intrinsic374567 ! Node: GetArg Intrinsic374964 ! Node: GetCWD Intrinsic (subroutine)375655 ! Node: GetCWD Intrinsic (function)376533 ! Node: GetEnv Intrinsic377175 ! Node: GetGId Intrinsic377785 ! Node: GetLog Intrinsic378114 ! Node: GetPId Intrinsic378675 ! Node: GetUId Intrinsic379006 ! Node: GMTime Intrinsic379334 ! Node: HostNm Intrinsic (subroutine)380365 ! Node: HostNm Intrinsic (function)381477 ! Node: Huge Intrinsic382342 ! Node: IAbs Intrinsic382684 ! Node: IAChar Intrinsic383098 ! Node: IAnd Intrinsic383661 ! Node: IArgC Intrinsic384172 ! Node: IBClr Intrinsic384571 ! Node: IBits Intrinsic385105 ! Node: IBSet Intrinsic385842 ! Node: IChar Intrinsic386367 ! Node: IDate Intrinsic (UNIX)387609 ! Node: IDiM Intrinsic388474 ! Node: IDInt Intrinsic388946 ! Node: IDNInt Intrinsic389362 ! Node: IEOr Intrinsic389784 ! Node: IErrNo Intrinsic390305 ! Node: IFix Intrinsic390655 ! Node: Imag Intrinsic391066 ! Node: ImagPart Intrinsic392094 ! Node: Index Intrinsic393143 ! Node: Int Intrinsic393719 ! Node: Int2 Intrinsic394457 ! Node: Int8 Intrinsic395189 ! Node: IOr Intrinsic395921 ! Node: IRand Intrinsic396424 ! Node: IsaTty Intrinsic397367 ! Node: IShft Intrinsic397814 ! Node: IShftC Intrinsic398667 ! Node: ISign Intrinsic399619 ! Node: ITime Intrinsic400092 ! Node: Kill Intrinsic (subroutine)400517 ! Node: Kind Intrinsic401376 ! Node: LBound Intrinsic401720 ! Node: Len Intrinsic402056 ! Node: Len_Trim Intrinsic402715 ! Node: LGe Intrinsic403150 ! Node: LGt Intrinsic404586 ! Node: Link Intrinsic (subroutine)405514 ! Node: LLe Intrinsic406501 ! Node: LLt Intrinsic407429 ! Node: LnBlnk Intrinsic408346 ! Node: Loc Intrinsic408772 ! Node: Log Intrinsic409226 ! Node: Log10 Intrinsic409840 ! Node: Logical Intrinsic410405 ! Node: Long Intrinsic410747 ! Node: LShift Intrinsic411294 ! Node: LStat Intrinsic (subroutine)412353 ! Node: LStat Intrinsic (function)414187 ! Node: LTime Intrinsic415772 ! Node: MatMul Intrinsic416799 ! Node: Max Intrinsic417136 ! Node: Max0 Intrinsic417710 ! Node: Max1 Intrinsic418184 ! Node: MaxExponent Intrinsic418691 ! Node: MaxLoc Intrinsic419050 ! Node: MaxVal Intrinsic419396 ! Node: MClock Intrinsic419737 ! Node: MClock8 Intrinsic420658 ! Node: Merge Intrinsic421869 ! Node: Min Intrinsic422204 ! Node: Min0 Intrinsic422778 ! Node: Min1 Intrinsic423252 ! Node: MinExponent Intrinsic423759 ! Node: MinLoc Intrinsic424118 ! Node: MinVal Intrinsic424464 ! Node: Mod Intrinsic424802 ! Node: Modulo Intrinsic425348 ! Node: MvBits Intrinsic425686 ! Node: Nearest Intrinsic426575 ! Node: NInt Intrinsic426918 ! Node: Not Intrinsic427779 ! Node: Or Intrinsic428197 ! Node: Pack Intrinsic428718 ! Node: PError Intrinsic429047 ! Node: Precision Intrinsic429524 ! Node: Present Intrinsic429878 ! Node: Product Intrinsic430227 ! Node: Radix Intrinsic430572 ! Node: Rand Intrinsic430908 ! Node: Random_Number Intrinsic431818 ! Node: Random_Seed Intrinsic432190 ! Node: Range Intrinsic432557 ! Node: Real Intrinsic432897 ! Node: RealPart Intrinsic433926 ! Node: Rename Intrinsic (subroutine)434982 ! Node: Repeat Intrinsic435976 ! Node: Reshape Intrinsic436331 ! Node: RRSpacing Intrinsic436679 ! Node: RShift Intrinsic437033 ! Node: Scale Intrinsic438054 ! Node: Scan Intrinsic438389 ! Node: Second Intrinsic (function)438732 ! Node: Second Intrinsic (subroutine)439586 ! Node: Selected_Int_Kind Intrinsic440584 ! Node: Selected_Real_Kind Intrinsic440994 ! Node: Set_Exponent Intrinsic441400 ! Node: Shape Intrinsic441776 ! Node: Short Intrinsic442118 ! Node: Sign Intrinsic442836 ! Node: Signal Intrinsic (subroutine)443459 ! Node: Sin Intrinsic445698 ! Node: SinH Intrinsic446196 ! Node: Sleep Intrinsic446592 ! Node: Sngl Intrinsic446957 ! Node: Spacing Intrinsic447369 ! Node: Spread Intrinsic447712 ! Node: SqRt Intrinsic448052 ! Node: SRand Intrinsic448679 ! Node: Stat Intrinsic (subroutine)449079 ! Node: Stat Intrinsic (function)450716 ! Node: Sum Intrinsic452102 ! Node: SymLnk Intrinsic (subroutine)452453 ! Node: System Intrinsic (subroutine)453507 ! Node: System_Clock Intrinsic454469 ! Node: Tan Intrinsic455616 ! Node: TanH Intrinsic456099 ! Node: Time Intrinsic (UNIX)456504 ! Node: Time8 Intrinsic457512 ! Node: Tiny Intrinsic458714 ! Node: Transfer Intrinsic459048 ! Node: Transpose Intrinsic459398 ! Node: Trim Intrinsic459751 ! Node: TtyNam Intrinsic (subroutine)460100 ! Node: TtyNam Intrinsic (function)460825 ! Node: UBound Intrinsic461417 ! Node: UMask Intrinsic (subroutine)461781 ! Node: Unlink Intrinsic (subroutine)462501 ! Node: Unpack Intrinsic463421 ! Node: Verify Intrinsic463775 ! Node: XOr Intrinsic464113 ! Node: ZAbs Intrinsic464652 ! Node: ZCos Intrinsic465044 ! Node: ZExp Intrinsic465440 ! Node: ZLog Intrinsic465836 ! Node: ZSin Intrinsic466232 ! Node: ZSqRt Intrinsic466629 ! Node: Scope and Classes of Names467009 ! Node: Underscores in Symbol Names467498 ! Node: I/O467756 ! Node: Fortran 90 Features468536 ! Node: Other Dialects471345 ! Node: Source Form472505 ! Node: Carriage Returns473725 ! Node: Tabs474063 ! Node: Short Lines474945 ! Node: Long Lines475928 ! Node: Ampersands476548 ! Node: Trailing Comment476811 ! Node: Debug Line477592 ! Node: Dollar Signs478266 ! Node: Case Sensitivity478557 ! Node: VXT Fortran487163 ! Node: Double Quote Meaning488351 ! Node: Exclamation Point489288 ! Node: Fortran 90490340 ! Node: Pedantic Compilation491397 ! Node: Distensions495366 ! Node: Ugly Implicit Argument Conversion496335 ! Node: Ugly Assumed-Size Arrays496958 ! Node: Ugly Complex Part Extraction498688 ! Node: Ugly Null Arguments500319 ! Node: Ugly Conversion of Initializers501931 ! Node: Ugly Integer Conversions503705 ! Node: Ugly Assigned Labels504822 ! Node: Compiler506762 ! Node: Compiler Limits507403 ! Node: Run-time Environment Limits508301 ! Node: Timer Wraparounds510250 ! Node: Year 2000 (Y2K) Problems511540 ! Node: Array Size516057 ! Node: Character-variable Length517253 ! Node: Year 10000 (Y10K) Problems517773 ! Node: Compiler Types518330 ! Node: Compiler Constants523048 ! Node: Compiler Intrinsics523914 ! Node: Intrinsic Groups524848 ! Node: Other Intrinsics528300 ! Node: ACosD Intrinsic535909 ! Node: AIMax0 Intrinsic536205 ! Node: AIMin0 Intrinsic536529 ! Node: AJMax0 Intrinsic536854 ! Node: AJMin0 Intrinsic537179 ! Node: ASinD Intrinsic537503 ! Node: ATan2D Intrinsic537824 ! Node: ATanD Intrinsic538147 ! Node: BITest Intrinsic538468 ! Node: BJTest Intrinsic538792 ! Node: CDAbs Intrinsic539118 ! Node: CDCos Intrinsic539512 ! Node: CDExp Intrinsic539908 ! Node: CDLog Intrinsic540304 ! Node: CDSin Intrinsic540700 ! Node: CDSqRt Intrinsic541097 ! Node: ChDir Intrinsic (function)541511 ! Node: ChMod Intrinsic (function)542360 ! Node: CosD Intrinsic543494 ! Node: DACosD Intrinsic543823 ! Node: DASinD Intrinsic544148 ! Node: DATan2D Intrinsic544476 ! Node: DATanD Intrinsic544807 ! Node: Date Intrinsic545133 ! Node: DbleQ Intrinsic545873 ! Node: DCmplx Intrinsic546194 ! Node: DConjg Intrinsic547846 ! Node: DCosD Intrinsic548252 ! Node: DFloat Intrinsic548575 ! Node: DFlotI Intrinsic548968 ! Node: DFlotJ Intrinsic549295 ! Node: DImag Intrinsic549621 ! Node: DReal Intrinsic550019 ! Node: DSinD Intrinsic551187 ! Node: DTanD Intrinsic551508 ! Node: DTime Intrinsic (function)551840 ! Node: FGet Intrinsic (function)553091 ! Node: FGetC Intrinsic (function)553885 ! Node: FloatI Intrinsic554722 ! Node: FloatJ Intrinsic555059 ! Node: FPut Intrinsic (function)555395 ! Node: FPutC Intrinsic (function)556152 ! Node: IDate Intrinsic (VXT)556966 ! Node: IIAbs Intrinsic558094 ! Node: IIAnd Intrinsic558421 ! Node: IIBClr Intrinsic558743 ! Node: IIBits Intrinsic559069 ! Node: IIBSet Intrinsic559396 ! Node: IIDiM Intrinsic559722 ! Node: IIDInt Intrinsic560045 ! Node: IIDNnt Intrinsic560371 ! Node: IIEOr Intrinsic560697 ! Node: IIFix Intrinsic561019 ! Node: IInt Intrinsic561339 ! Node: IIOr Intrinsic561655 ! Node: IIQint Intrinsic561972 ! Node: IIQNnt Intrinsic562297 ! Node: IIShftC Intrinsic562625 ! Node: IISign Intrinsic562956 ! Node: IMax0 Intrinsic563283 ! Node: IMax1 Intrinsic563605 ! Node: IMin0 Intrinsic563926 ! Node: IMin1 Intrinsic564247 ! Node: IMod Intrinsic564567 ! Node: INInt Intrinsic564884 ! Node: INot Intrinsic565203 ! Node: IZExt Intrinsic565520 ! Node: JIAbs Intrinsic565840 ! Node: JIAnd Intrinsic566161 ! Node: JIBClr Intrinsic566483 ! Node: JIBits Intrinsic566809 ! Node: JIBSet Intrinsic567136 ! Node: JIDiM Intrinsic567462 ! Node: JIDInt Intrinsic567785 ! Node: JIDNnt Intrinsic568111 ! Node: JIEOr Intrinsic568437 ! Node: JIFix Intrinsic568759 ! Node: JInt Intrinsic569079 ! Node: JIOr Intrinsic569395 ! Node: JIQint Intrinsic569712 ! Node: JIQNnt Intrinsic570037 ! Node: JIShft Intrinsic570364 ! Node: JIShftC Intrinsic570692 ! Node: JISign Intrinsic571023 ! Node: JMax0 Intrinsic571350 ! Node: JMax1 Intrinsic571672 ! Node: JMin0 Intrinsic571993 ! Node: JMin1 Intrinsic572314 ! Node: JMod Intrinsic572634 ! Node: JNInt Intrinsic572951 ! Node: JNot Intrinsic573270 ! Node: JZExt Intrinsic573587 ! Node: Kill Intrinsic (function)573917 ! Node: Link Intrinsic (function)574619 ! Node: QAbs Intrinsic575451 ! Node: QACos Intrinsic575778 ! Node: QACosD Intrinsic576099 ! Node: QASin Intrinsic576424 ! Node: QASinD Intrinsic576747 ! Node: QATan Intrinsic577072 ! Node: QATan2 Intrinsic577397 ! Node: QATan2D Intrinsic577726 ! Node: QATanD Intrinsic578059 ! Node: QCos Intrinsic578387 ! Node: QCosD Intrinsic578707 ! Node: QCosH Intrinsic579029 ! Node: QDiM Intrinsic579351 ! Node: QExp Intrinsic579669 ! Node: QExt Intrinsic579986 ! Node: QExtD Intrinsic580304 ! Node: QFloat Intrinsic580627 ! Node: QInt Intrinsic580953 ! Node: QLog Intrinsic581272 ! Node: QLog10 Intrinsic581591 ! Node: QMax1 Intrinsic581917 ! Node: QMin1 Intrinsic582241 ! Node: QMod Intrinsic582563 ! Node: QNInt Intrinsic582882 ! Node: QSin Intrinsic583203 ! Node: QSinD Intrinsic583522 ! Node: QSinH Intrinsic583844 ! Node: QSqRt Intrinsic584167 ! Node: QTan Intrinsic584489 ! Node: QTanD Intrinsic584808 ! Node: QTanH Intrinsic585130 ! Node: Rename Intrinsic (function)585465 ! Node: Secnds Intrinsic586292 ! Node: Signal Intrinsic (function)586914 ! Node: SinD Intrinsic589768 ! Node: SnglQ Intrinsic590099 ! Node: SymLnk Intrinsic (function)590433 ! Node: System Intrinsic (function)591323 ! Node: TanD Intrinsic592673 ! Node: Time Intrinsic (VXT)593009 ! Node: UMask Intrinsic (function)593786 ! Node: Unlink Intrinsic (function)594417 ! Node: ZExt Intrinsic595168 ! Node: Other Compilers595475 ! Node: Dropping f2c Compatibility597999 ! Node: Compilers Other Than f2c601078 ! Node: Other Languages602883 ! Node: Interoperating with C and C++603151 ! Node: C Interfacing Tools604191 ! Node: C Access to Type Information605130 ! Node: f2c Skeletons and Prototypes605828 ! Ref: f2c Skeletons and Prototypes-Footnote-1607286 ! Node: C++ Considerations607540 ! Node: Startup Code608218 ! Node: Debugging and Interfacing613018 ! Node: Main Program Unit615708 ! Node: Procedures618209 ! Node: Functions620874 ! Node: Names622499 ! Node: Common Blocks625649 ! Node: Local Equivalence Areas625920 ! Node: Complex Variables626911 ! Node: Arrays628038 ! Node: Adjustable Arrays631378 ! Node: Alternate Entry Points634244 ! Node: Alternate Returns640955 ! Node: Assigned Statement Labels641865 ! Node: Run-time Library Errors643719 ! Node: Collected Fortran Wisdom645680 ! Node: Advantages Over f2c647119 ! Node: Language Extensions648107 ! Node: Diagnostic Abilities649292 ! Node: Compiler Options649694 ! Node: Compiler Speed650753 ! Node: Program Speed651474 ! Node: Ease of Debugging653070 ! Node: Character and Hollerith Constants655190 ! Node: Block Data and Libraries656172 ! Node: Loops659508 ! Node: Working Programs664741 ! Node: Not My Type665492 ! Node: Variables Assumed To Be Zero667434 ! Node: Variables Assumed To Be Saved668500 ! Node: Unwanted Variables669882 ! Node: Unused Arguments670773 ! Node: Surprising Interpretations of Code671247 ! Node: Aliasing Assumed To Work672105 ! Node: Output Assumed To Flush678309 ! Node: Large File Unit Numbers681093 ! Node: Floating-point precision683256 ! Node: Inconsistent Calling Sequences684530 ! Node: Overly Convenient Options685523 ! Node: Faster Programs688836 ! Node: Aligned Data689289 ! Node: Prefer Automatic Uninitialized Variables693993 ! Node: Avoid f2c Compatibility695370 ! Node: Use Submodel Options695850 ! Node: Trouble696866 ! Node: But-bugs698192 ! Node: Signal 11 and Friends699972 ! Node: Cannot Link Fortran Programs702063 ! Node: Large Common Blocks703357 ! Node: Debugger Problems703794 ! Node: NeXTStep Problems704520 ! Node: Stack Overflow706357 ! Node: Nothing Happens709257 ! Node: Strange Behavior at Run Time710882 ! Node: Floating-point Errors713381 ! Node: Known Bugs719378 ! Node: Missing Features726454 ! Node: Better Source Model728388 ! Node: Fortran 90 Support730168 ! Node: Intrinsics in PARAMETER Statements731280 ! Node: Arbitrary Concatenation732042 ! Node: SELECT CASE on CHARACTER Type732456 ! Node: RECURSIVE Keyword732754 ! Node: Increasing Precision/Range733192 ! Node: Popular Non-standard Types734741 ! Node: Full Support for Compiler Types735092 ! Node: Array Bounds Expressions735739 ! Node: POINTER Statements736199 ! Node: Sensible Non-standard Constructs737095 ! Node: READONLY Keyword739433 ! Node: FLUSH Statement740356 ! Node: Expressions in FORMAT Statements740739 ! Node: Explicit Assembler Code741927 ! Node: Q Edit Descriptor742229 ! Node: Old-style PARAMETER Statements742746 ! Node: TYPE and ACCEPT I/O Statements743493 ! Node: STRUCTURE UNION RECORD MAP744072 ! Node: OPEN CLOSE and INQUIRE Keywords744571 ! Node: ENCODE and DECODE745564 ! Node: AUTOMATIC Statement746672 ! Node: Suppressing Space Padding747932 ! Node: Fortran Preprocessor749172 ! Node: Bit Operations on Floating-point Data749758 ! Node: Really Ugly Character Assignments750304 ! Node: POSIX Standard750692 ! Node: Floating-point Exception Handling750945 ! Node: Nonportable Conversions752355 ! Node: Large Automatic Arrays752911 ! Node: Support for Threads753331 ! Node: Enabling Debug Lines753769 ! Node: Better Warnings754159 ! Node: Gracefully Handle Sensible Bad Code755808 ! Node: Non-standard Conversions756565 ! Node: Non-standard Intrinsics756921 ! Node: Modifying DO Variable757350 ! Node: Better Pedantic Compilation758039 ! Node: Warn About Implicit Conversions758680 ! Node: Invalid Use of Hollerith Constant759280 ! Node: Dummy Array Without Dimensioning Dummy759836 ! Node: Invalid FORMAT Specifiers760762 ! Node: Ambiguous Dialects761176 ! Node: Unused Labels761600 ! Node: Informational Messages761835 ! Node: Uninitialized Variables at Run Time762252 ! Node: Portable Unformatted Files762871 ! Ref: Portable Unformatted Files-Footnote-1765840 ! Node: Better List-directed I/O765868 ! Node: Default to Console I/O766786 ! Node: Labels Visible to Debugger767447 ! Node: Disappointments767861 ! Node: Mangling of Names768506 ! Node: Multiple Definitions of External Names769367 ! Node: Limitation on Implicit Declarations770741 ! Node: Non-bugs771036 ! Node: Backslash in Constants772168 ! Node: Initializing Before Specifying777068 ! Node: Context-Sensitive Intrinsicness778221 ! Node: Context-Sensitive Constants780128 ! Node: Equivalence Versus Equality783095 ! Node: Order of Side Effects786149 ! Node: Warnings and Errors787888 ! Node: Open Questions789293 ! Node: Bugs789765 ! Node: Bug Criteria790456 ! Node: Bug Reporting796600 ! Node: Service796968 ! Node: Adding Options797434 ! Node: Projects802030 ! Node: Efficiency802876 ! Node: Better Optimization805780 ! Node: Simplify Porting809157 ! Node: More Extensions810919 ! Node: Machine Model814014 ! Node: Internals Documentation815307 ! Node: Internals Improvements815621 ! Node: Better Diagnostics819172 ! Node: Front End820096 ! Node: Overview of Sources820877 ! Node: Overview of Translation Process828162 ! Node: g77stripcard832447 ! Node: lex.c834935 ! Node: sta.c844486 ! Node: sti.c844611 ! Node: stq.c844736 ! Node: stb.c844861 ! Node: expr.c844987 ! Node: stc.c845115 ! Node: std.c845241 ! Node: ste.c845366 ! Node: Gotchas (Transforming)845510 ! Node: TBD (Transforming)853744 ! Node: Philosophy of Code Generation856453 ! Node: Two-pass Design862364 ! Node: Two-pass Code863528 ! Node: Why Two Passes864272 ! Node: Challenges Posed870325 ! Node: Transforming Statements872811 ! Node: Statements Needing Temporaries873668 ! Node: Transforming DO WHILE876443 ! Node: Transforming Iterative DO877617 ! Node: Transforming Block IF878457 ! Node: Transforming SELECT CASE879828 ! Node: Transforming Expressions883036 ! Node: Internal Naming Conventions885032 ! Node: Diagnostics888038 ! Node: CMPAMBIG889439 ! Node: EXPIMP895867 ! Node: INTGLOB897114 ! Node: LEX899369 ! Node: GLOBALS904836 ! Node: LINKFAIL907511 ! Node: Y2KBAD908145 ! Node: Keyword Index908506  End Tag Table --- 24552,27476 ---- Keyword Index ************* * Menu: ! * ! <1>: LEX. ! * ! <2>: Exclamation Point. ! * ! <3>: Trailing Comment. ! * ! <4>: Character Set. * !: Statements Comments Lines. ! * ": Character Set. * # <1>: Cpp-style directives. ! * #: Character Set. ! * #define: Overall Options. ! * #if: Overall Options. ! * #include: Overall Options. ! * $: Dollar Signs. ! * %: Character Set. ! * %DESCR() construct: %DESCR(). ! * %LOC() construct: %LOC(). ! * %REF() construct: %REF(). ! * %VAL() construct: %VAL(). ! * &: Character Set. ! * *: LEX. ! * *N notation <1>: Compiler Types. ! * *N notation: Star Notation. ! * --driver option <1>: Changes. ! * --driver option: News. * -falias-check option <1>: Aliasing Assumed To Work. ! * -falias-check option: Code Gen Options. * -fargument-alias option <1>: Aliasing Assumed To Work. ! * -fargument-alias option: Code Gen Options. * -fargument-noalias option <1>: Aliasing Assumed To Work. ! * -fargument-noalias option: Code Gen Options. * -fbadu77-intrinsics-delete option: Fortran Dialect Options. * -fbadu77-intrinsics-disable option: Fortran Dialect Options. * -fbadu77-intrinsics-enable option: Fortran Dialect Options. * -fbadu77-intrinsics-hide option: Fortran Dialect Options. ! * -fbounds-check option: Code Gen Options. ! * -fcaller-saves option: Optimize Options. * -fcase-initcap option: Fortran Dialect Options. * -fcase-lower option: Fortran Dialect Options. * -fcase-preserve option: Fortran Dialect Options. * -fcase-strict-lower option: Fortran Dialect Options. * -fcase-strict-upper option: Fortran Dialect Options. * -fcase-upper option: Fortran Dialect Options. ! * -fdelayed-branch option: Optimize Options. * -fdollar-ok option: Fortran Dialect Options. ! * -femulate-complex option: Code Gen Options. ! * -fexpensive-optimizations option: Optimize Options. * -ff2c-intrinsics-delete option: Fortran Dialect Options. * -ff2c-intrinsics-disable option: Fortran Dialect Options. * -ff2c-intrinsics-enable option: Fortran Dialect Options. * -ff2c-intrinsics-hide option: Fortran Dialect Options. ! * -ff2c-library option: Code Gen Options. ! * -ff66 option: Shorthand Options. ! * -ff77 option: Shorthand Options. ! * -ff90: Fortran 90 Features. * -ff90 option: Fortran Dialect Options. * -ff90-intrinsics-delete option: Fortran Dialect Options. * -ff90-intrinsics-disable option: Fortran Dialect Options. * -ff90-intrinsics-enable option: Fortran Dialect Options. * -ff90-intrinsics-hide option: Fortran Dialect Options. ! * -ffast-math option: Optimize Options. ! * -ffinite-math-only option: Optimize Options. * -ffixed-line-length-N option: Fortran Dialect Options. ! * -fflatten-arrays option: Code Gen Options. ! * -ffloat-store option: Optimize Options. ! * -fforce-addr option: Optimize Options. ! * -fforce-mem option: Optimize Options. ! * -ffortran-bounds-check option: Code Gen Options. ! * -ffree-form: Fortran 90 Features. * -ffree-form option: Fortran Dialect Options. * -fgnu-intrinsics-delete option: Fortran Dialect Options. * -fgnu-intrinsics-disable option: Fortran Dialect Options. * -fgnu-intrinsics-enable option: Fortran Dialect Options. * -fgnu-intrinsics-hide option: Fortran Dialect Options. * -fGROUP-intrinsics-hide option: Overly Convenient Options. * -finit-local-zero option <1>: Overly Convenient Options. ! * -finit-local-zero option: Code Gen Options. * -fintrin-case-any option: Fortran Dialect Options. * -fintrin-case-initcap option: Fortran Dialect Options. * -fintrin-case-lower option: Fortran Dialect Options. * -fintrin-case-upper option: Fortran Dialect Options. * -fmatch-case-any option: Fortran Dialect Options. * -fmatch-case-initcap option: Fortran Dialect Options. * -fmatch-case-lower option: Fortran Dialect Options. * -fmatch-case-upper option: Fortran Dialect Options. * -fmil-intrinsics-delete option: Fortran Dialect Options. * -fmil-intrinsics-disable option: Fortran Dialect Options. * -fmil-intrinsics-enable option: Fortran Dialect Options. * -fmil-intrinsics-hide option: Fortran Dialect Options. * -fno-argument-noalias-global option <1>: Aliasing Assumed To Work. ! * -fno-argument-noalias-global option: Code Gen Options. * -fno-automatic option <1>: Overly Convenient Options. ! * -fno-automatic option: Code Gen Options. * -fno-backslash option: Fortran Dialect Options. ! * -fno-common option: Code Gen Options. * -fno-f2c option <1>: Avoid f2c Compatibility. ! * -fno-f2c option: Code Gen Options. ! * -fno-f77 option: Shorthand Options. * -fno-fixed-form option: Fortran Dialect Options. ! * -fno-globals option: Code Gen Options. ! * -fno-ident option: Code Gen Options. ! * -fno-inline option: Optimize Options. ! * -fno-move-all-movables option: Optimize Options. ! * -fno-reduce-all-givs option: Optimize Options. ! * -fno-rerun-loop-opt option: Optimize Options. * -fno-second-underscore: f2c Skeletons and Prototypes. ! * -fno-second-underscore option <1>: Names. ! * -fno-second-underscore option: Code Gen Options. ! * -fno-silent option: Overall Options. ! * -fno-trapping-math option: Optimize Options. ! * -fno-ugly option: Shorthand Options. * -fno-ugly-args option: Fortran Dialect Options. * -fno-ugly-init option: Fortran Dialect Options. ! * -fno-underscoring option <1>: Names. ! * -fno-underscoring option: Code Gen Options. * -fonetrip option: Fortran Dialect Options. ! * -fpack-struct option: Code Gen Options. ! * -fpcc-struct-return option: Code Gen Options. ! * -fpedantic option: Warning Options. ! * -fPIC option: News. ! * -freg-struct-return option: Code Gen Options. ! * -frerun-cse-after-loop option: Optimize Options. ! * -fschedule-insns option: Optimize Options. ! * -fschedule-insns2 option: Optimize Options. ! * -fset-g77-defaults option: Overall Options. ! * -fshort-double option: Code Gen Options. * -fsource-case-lower option: Fortran Dialect Options. * -fsource-case-preserve option: Fortran Dialect Options. * -fsource-case-upper option: Fortran Dialect Options. ! * -fstrength-reduce option: Optimize Options. * -fsymbol-case-any option: Fortran Dialect Options. * -fsymbol-case-initcap option: Fortran Dialect Options. * -fsymbol-case-lower option: Fortran Dialect Options. * -fsymbol-case-upper option: Fortran Dialect Options. ! * -fsyntax-only option: Warning Options. * -ftypeless-boz option: Fortran Dialect Options. ! * -fugly option: Shorthand Options. * -fugly-assign option: Fortran Dialect Options. * -fugly-assumed option: Fortran Dialect Options. * -fugly-comma option: Fortran Dialect Options. * -fugly-complex option: Fortran Dialect Options. * -fugly-logint option: Fortran Dialect Options. * -funix-intrinsics-delete option: Fortran Dialect Options. * -funix-intrinsics-disable option: Fortran Dialect Options. * -funix-intrinsics-enable option: Fortran Dialect Options. * -funix-intrinsics-hide option: Fortran Dialect Options. ! * -funroll-all-loops option: Optimize Options. ! * -funroll-loops option: Optimize Options. ! * -funsafe-math-optimizations option: Optimize Options. ! * -fversion option: Overall Options. * -fvxt option: Fortran Dialect Options. * -fvxt-intrinsics-delete option: Fortran Dialect Options. * -fvxt-intrinsics-disable option: Fortran Dialect Options. * -fvxt-intrinsics-enable option: Fortran Dialect Options. * -fvxt-intrinsics-hide option: Fortran Dialect Options. ! * -fzeros option: Code Gen Options. ! * -g option: Debugging Options. ! * -I- option: Directory Options. * -i8: Increasing Precision/Range. ! * -Idir option: Directory Options. ! * -malign-double <1>: Changes. ! * -malign-double: News. ! * -malign-double option <1>: Aligned Data. ! * -malign-double option: Optimize Options. ! * -Nl option: Compiler Limits. ! * -Nx option: Compiler Limits. ! * -O2: News. ! * -pedantic option: Warning Options. ! * -pedantic-errors option: Warning Options. * -qrealsize=8: Increasing Precision/Range. * -r8: Increasing Precision/Range. ! * -u option: Warning Options. ! * -v option: G77 and GCC. ! * -W option: Warning Options. ! * -w option: Warning Options. ! * -Waggregate-return option: Warning Options. ! * -Wall option: Warning Options. ! * -Wcomment option: Warning Options. ! * -Wconversion option: Warning Options. ! * -Werror option: Warning Options. ! * -Wformat option: Warning Options. ! * -Wid-clash-LEN option: Warning Options. ! * -Wimplicit option: Warning Options. ! * -Wlarger-than-LEN option: Warning Options. ! * -Wno-globals option: Warning Options. ! * -Wparentheses option: Warning Options. ! * -Wredundant-decls option: Warning Options. ! * -Wshadow option: Warning Options. ! * -Wsurprising option: Warning Options. ! * -Wswitch option: Warning Options. ! * -Wswitch-default option: Warning Options. ! * -Wswitch-enum option: Warning Options. ! * -Wtraditional option: Warning Options. ! * -Wuninitialized option: Warning Options. ! * -Wunused option: Warning Options. ! * -x f77-cpp-input option: LEX. * .EQV., with integer operands: Equivalence Versus Equality. ! * .F filename suffix: Overall Options. ! * .f filename suffix: Overall Options. ! * .FOR filename suffix: Overall Options. ! * .for filename suffix: Overall Options. ! * .FPP filename suffix: Overall Options. ! * .fpp filename suffix: Overall Options. ! * .gdbinit: Main Program Unit. ! * .r filename suffix: Overall Options. ! * /* <1>: Trailing Comment. ! * /*: Overall Options. ! * /WARNINGS=DECLARATIONS switch: Warning Options. * 80-bit spills: Floating-point Errors. ! * ; <1>: Character Set. * ;: Statements Comments Lines. ! * <: Character Set. ! * <> edit descriptor: I/O. ! * >: Character Set. ! * ?: Character Set. ! * \: Character Set. ! * _: Character Set. ! * Abort intrinsic: Abort Intrinsic. ! * Abs intrinsic: Abs Intrinsic. * ACCEPT statement: TYPE and ACCEPT I/O Statements. ! * Access intrinsic: Access Intrinsic. ! * AChar intrinsic: AChar Intrinsic. ! * ACos intrinsic: ACos Intrinsic. ! * ACosD intrinsic: ACosD Intrinsic. ! * adding options: Adding Options. ! * adjustable arrays: Adjustable Arrays. ! * AdjustL intrinsic: AdjustL Intrinsic. ! * AdjustR intrinsic: AdjustR Intrinsic. ! * AImag intrinsic <1>: AImag Intrinsic. * AImag intrinsic: REAL() and AIMAG() of Complex. ! * AIMax0 intrinsic: AIMax0 Intrinsic. ! * AIMin0 intrinsic: AIMin0 Intrinsic. ! * AInt intrinsic: AInt Intrinsic. ! * AJMax0 intrinsic: AJMax0 Intrinsic. ! * AJMin0 intrinsic: AJMin0 Intrinsic. ! * Alarm intrinsic: Alarm Intrinsic. ! * aliasing <1>: Known Bugs. * aliasing: Aliasing Assumed To Work. ! * aligned data: Aligned Data. ! * aligned stack: Aligned Data. ! * alignment <1>: Aligned Data. ! * alignment <2>: Changes. ! * alignment: News. ! * All intrinsic: All Intrinsic. ! * all warnings: Warning Options. ! * Allocated intrinsic: Allocated Intrinsic. ! * ALog intrinsic: ALog Intrinsic. ! * ALog10 intrinsic: ALog10 Intrinsic. ! * Alpha, support: Known Bugs. * alternate entry points: Alternate Entry Points. ! * alternate returns: Alternate Returns. * ALWAYS_FLUSH: Output Assumed To Flush. ! * AMax0 intrinsic: AMax0 Intrinsic. ! * AMax1 intrinsic: AMax1 Intrinsic. ! * AMin0 intrinsic: AMin0 Intrinsic. ! * AMin1 intrinsic: AMin1 Intrinsic. ! * AMod intrinsic: AMod Intrinsic. ! * ampersand: Character Set. ! * ampersand continuation line: Ampersands. * And intrinsic <1>: Bit Operations on Floating-point Data. ! * And intrinsic: And Intrinsic. ! * ANInt intrinsic: ANInt Intrinsic. * ANS carriage control: OPEN CLOSE and INQUIRE Keywords. ! * ANSI FORTRAN 77 standard: Language. ! * ANSI FORTRAN 77 support: Standard Support. * anti-aliasing: Aliasing Assumed To Work. ! * Any intrinsic: Any Intrinsic. ! * arguments, null: Ugly Null Arguments. ! * arguments, omitting: Ugly Null Arguments. ! * arguments, unused <1>: Unused Arguments. ! * arguments, unused: Warning Options. ! * array bounds checking: Code Gen Options. * array bounds, adjustable: Array Bounds Expressions. * array elements, in adjustable array bounds: Array Bounds Expressions. ! * array ordering: Arrays. ! * array performance: Code Gen Options. ! * array size: Array Size. ! * arrays: Arrays. ! * arrays, adjustable: Adjustable Arrays. * arrays, assumed-size: Ugly Assumed-Size Arrays. * arrays, automatic <1>: Large Automatic Arrays. ! * arrays, automatic <2>: Stack Overflow. * arrays, automatic <3>: Overly Convenient Options. ! * arrays, automatic: Adjustable Arrays. ! * arrays, dimensioning <1>: Adjustable Arrays. ! * arrays, dimensioning: Array Size. ! * arrays, flattening: Code Gen Options. * as command: What is GNU Fortran?. ! * ASin intrinsic: ASin Intrinsic. ! * ASinD intrinsic: ASinD Intrinsic. * assembler: What is GNU Fortran?. * assembly code: What is GNU Fortran?. ! * assembly code, invalid: Bug Criteria. * ASSIGN statement <1>: Assigned Statement Labels. * ASSIGN statement: Ugly Assigned Labels. * assigned labels: Ugly Assigned Labels. * assigned statement labels: Assigned Statement Labels. * Associated intrinsic: Associated Intrinsic. * association, storage: Aliasing Assumed To Work. * assumed-size arrays: Ugly Assumed-Size Arrays. ! * asterisk: LEX. ! * ATan intrinsic: ATan Intrinsic. ! * ATan2 intrinsic: ATan2 Intrinsic. ! * ATan2D intrinsic: ATan2D Intrinsic. ! * ATanD intrinsic: ATanD Intrinsic. * automatic arrays <1>: Large Automatic Arrays. ! * automatic arrays <2>: Stack Overflow. * automatic arrays <3>: Overly Convenient Options. ! * automatic arrays: Adjustable Arrays. ! * AUTOMATIC statement: AUTOMATIC Statement. ! * automatic variables: AUTOMATIC Statement. * back end, gcc <1>: Philosophy of Code Generation. * back end, gcc: What is GNU Fortran?. * backslash <1>: Backslash in Constants. ! * backslash <2>: Character Set. * backslash: Fortran Dialect Options. * badu77 intrinsics: Fortran Dialect Options. ! * badu77 intrinsics group: Intrinsic Groups. * basic concepts: What is GNU Fortran?. * Bear-poking: Philosophy of Code Generation. ! * beginners: Getting Started. ! * BesJ0 intrinsic: BesJ0 Intrinsic. ! * BesJ1 intrinsic: BesJ1 Intrinsic. ! * BesJN intrinsic: BesJN Intrinsic. ! * BesY0 intrinsic: BesY0 Intrinsic. ! * BesY1 intrinsic: BesY1 Intrinsic. ! * BesYN intrinsic: BesYN Intrinsic. * binary data: Portable Unformatted Files. ! * Bit_Size intrinsic: Bit_Size Intrinsic. ! * BITest intrinsic: BITest Intrinsic. ! * BJTest intrinsic: BJTest Intrinsic. ! * blank <1>: Lines. ! * blank: Character Set. * block data: Multiple Definitions of External Names. * block data and libraries: Block Data and Libraries. * BLOCK DATA statement <1>: Multiple Definitions of External Names. * BLOCK DATA statement: Block Data and Libraries. ! * bounds checking: Code Gen Options. ! * BTest intrinsic: BTest Intrinsic. ! * bug criteria: Bug Criteria. ! * bugs: Bugs. * bugs, finding: What is GNU Fortran?. ! * bugs, known: Trouble. * bus error <1>: Strange Behavior at Run Time. ! * bus error: NeXTStep Problems. ! * but-bugs: But-bugs. * byte ordering: Portable Unformatted Files. * C library: Strange Behavior at Run Time. ! * C preprocessor: Overall Options. * C routines calling Fortran: Debugging and Interfacing. ! * C++: C++ Considerations. * C++, linking with: Interoperating with C and C++. * C, linking with: Interoperating with C and C++. ! * CAbs intrinsic: CAbs Intrinsic. * calling C routines: Debugging and Interfacing. * card image: Fortran Dialect Options. * carriage control: OPEN CLOSE and INQUIRE Keywords. ! * carriage returns: Carriage Returns. ! * case sensitivity: Case Sensitivity. * cc1 program: What is GNU Fortran?. * cc1plus program: What is GNU Fortran?. ! * CCos intrinsic: CCos Intrinsic. ! * CDAbs intrinsic: CDAbs Intrinsic. ! * CDCos intrinsic: CDCos Intrinsic. ! * CDExp intrinsic: CDExp Intrinsic. ! * CDLog intrinsic: CDLog Intrinsic. ! * CDSin intrinsic: CDSin Intrinsic. ! * CDSqRt intrinsic: CDSqRt Intrinsic. ! * Ceiling intrinsic: Ceiling Intrinsic. ! * CExp intrinsic: CExp Intrinsic. ! * cfortran.h: C Interfacing Tools. ! * changes, user-visible: Changes. ! * Char intrinsic: Char Intrinsic. ! * character assignments: Fortran 90 Features. * character constants <1>: Character and Hollerith Constants. * character constants <2>: Ugly Conversion of Initializers. * character constants <3>: Double Quote Meaning. * character constants: Fortran Dialect Options. * character set: Fortran Dialect Options. * CHARACTER*(*): Arbitrary Concatenation. ! * CHARACTER, null: Character Type. * character-variable length: Character-variable Length. ! * characters: Character Set. ! * characters, comma: Ugly Null Arguments. ! * characters, comment <1>: LEX. ! * characters, comment <2>: Exclamation Point. ! * characters, comment <3>: Trailing Comment. * characters, comment: Statements Comments Lines. ! * characters, continuation <1>: LEX. ! * characters, continuation <2>: Exclamation Point. * characters, continuation: Statements Comments Lines. * ChDir intrinsic <1>: ChDir Intrinsic (function). * ChDir intrinsic: ChDir Intrinsic (subroutine). ! * checking subscripts: Code Gen Options. ! * checking substrings: Code Gen Options. ! * checks, of internal consistency: Overall Options. * ChMod intrinsic <1>: ChMod Intrinsic (function). * ChMod intrinsic: ChMod Intrinsic (subroutine). ! * CLog intrinsic: CLog Intrinsic. ! * close angle: Character Set. ! * close bracket: Character Set. * CLOSE statement: OPEN CLOSE and INQUIRE Keywords. ! * Cmplx intrinsic <1>: Cmplx Intrinsic. * Cmplx intrinsic: CMPLX() of DOUBLE PRECISION. ! * code generation, conventions: Code Gen Options. ! * code generation, improving: Better Optimization. * code generator <1>: Philosophy of Code Generation. * code generator: What is GNU Fortran?. * code, assembly: What is GNU Fortran?. ! * code, displaying main source: Known Bugs. * code, in-line: What is GNU Fortran?. * code, legacy: Collected Fortran Wisdom. * code, machine: What is GNU Fortran?. ! * code, source <1>: Case Sensitivity. ! * code, source <2>: Source Form. ! * code, source <3>: Lines. * code, source: What is GNU Fortran?. * code, user: Cannot Link Fortran Programs. * code, writing: Collected Fortran Wisdom. ! * column-major ordering: Arrays. ! * columns 73 through 80: Better Source Model. ! * comma, trailing: Ugly Null Arguments. ! * command options: Invoking G77. * commands, as: What is GNU Fortran?. ! * commands, g77 <1>: G77 and GCC. * commands, g77: What is GNU Fortran?. ! * commands, gcc <1>: G77 and GCC. * commands, gcc: What is GNU Fortran?. * commands, gdb: What is GNU Fortran?. * commands, ld: What is GNU Fortran?. ! * comment <1>: LEX. ! * comment <2>: Trailing Comment. * comment: Statements Comments Lines. ! * comment character: Exclamation Point. * comment line, debug <1>: Enabling Debug Lines. ! * comment line, debug: Debug Line. ! * common blocks <1>: Mangling of Names. ! * common blocks <2>: Known Bugs. ! * common blocks: Common Blocks. ! * common blocks, large: Large Common Blocks. ! * COMMON layout: Aligned Data. * COMMON statement <1>: Multiple Definitions of External Names. ! * COMMON statement: Common Blocks. * comparing logical expressions: Equivalence Versus Equality. * compatibility, f2c <1>: Avoid f2c Compatibility. * compatibility, f2c <2>: Block Data and Libraries. ! * compatibility, f2c <3>: Code Gen Options. ! * compatibility, f2c <4>: Shorthand Options. ! * compatibility, f2c: Overall Options. ! * compatibility, f77: Shorthand Options. * compatibility, FORTRAN 66 <1>: Fortran Dialect Options. ! * compatibility, FORTRAN 66: Shorthand Options. ! * compatibility, FORTRAN 77: Standard Support. ! * compatibility, Fortran 90: Fortran 90. ! * compilation, in-line <1>: GLOBALS. ! * compilation, in-line <2>: Code Gen Options. ! * compilation, in-line: Optimize Options. * compilation, pedantic: Pedantic Compilation. ! * compilation, status: Overall Options. ! * compiler bugs, reporting: Bug Reporting. ! * compiler limits: Compiler Limits. ! * compiler memory usage: Known Bugs. ! * compiler speed: Known Bugs. * compilers: What is GNU Fortran?. ! * compiling programs: G77 and GCC. ! * Complex intrinsic: Complex Intrinsic. * COMPLEX intrinsics: Fortran Dialect Options. ! * complex performance: Known Bugs. ! * COMPLEX statement: Complex Variables. * complex values: Ugly Complex Part Extraction. ! * complex variables: Complex Variables. ! * COMPLEX(KIND=1) type: Compiler Types. ! * COMPLEX(KIND=2) type: Compiler Types. * components of g77: What is GNU Fortran?. * concatenation: Arbitrary Concatenation. * concepts, basic: What is GNU Fortran?. * conformance, IEEE 754 <1>: Floating-point precision. ! * conformance, IEEE 754: Optimize Options. ! * Conjg intrinsic: Conjg Intrinsic. ! * consistency checks: Overall Options. ! * constants <1>: Compiler Constants. ! * constants: Constants. * constants, character <1>: Character and Hollerith Constants. * constants, character <2>: Ugly Conversion of Initializers. * constants, character: Double Quote Meaning. * constants, context-sensitive: Context-Sensitive Constants. * constants, Hollerith <1>: Character and Hollerith Constants. * constants, Hollerith <2>: Ugly Conversion of Initializers. * constants, Hollerith: Ugly Implicit Argument Conversion. ! * constants, integer: Known Bugs. * constants, octal: Double Quote Meaning. * constants, prefix-radix: Fortran Dialect Options. * constants, types: Fortran Dialect Options. ! * construct names: Construct Names. * context-sensitive constants: Context-Sensitive Constants. * context-sensitive intrinsics: Context-Sensitive Intrinsicness. ! * continuation character <1>: LEX. ! * continuation character <2>: Exclamation Point. * continuation character: Statements Comments Lines. ! * continuation line, ampersand: Ampersands. ! * continuation line, number of: Continuation Line. ! * contributors: Contributors. * conversions, nonportable: Nonportable Conversions. ! * core dump: Bug Criteria. ! * Cos intrinsic: Cos Intrinsic. ! * CosD intrinsic: CosD Intrinsic. ! * CosH intrinsic: CosH Intrinsic. ! * Count intrinsic: Count Intrinsic. ! * cpp preprocessor: Overall Options. ! * cpp program <1>: LEX. * cpp program <2>: Preprocessor Options. ! * cpp program <3>: Overall Options. * cpp program: What is GNU Fortran?. ! * CPU_Time intrinsic: CPU_Time Intrinsic. ! * Cray pointers: POINTER Statements. ! * credits: Contributors. ! * CShift intrinsic: CShift Intrinsic. ! * CSin intrinsic: CSin Intrinsic. ! * CSqRt intrinsic: CSqRt Intrinsic. * CTime intrinsic <1>: CTime Intrinsic (function). * CTime intrinsic: CTime Intrinsic (subroutine). ! * CYCLE statement: CYCLE and EXIT. ! * DAbs intrinsic: DAbs Intrinsic. ! * DACos intrinsic: DACos Intrinsic. ! * DACosD intrinsic: DACosD Intrinsic. ! * DASin intrinsic: DASin Intrinsic. ! * DASinD intrinsic: DASinD Intrinsic. ! * DATA statement <1>: Known Bugs. ! * DATA statement: Code Gen Options. ! * data types: Compiler Types. ! * data, aligned: Aligned Data. * data, overwritten: Strange Behavior at Run Time. ! * DATan intrinsic: DATan Intrinsic. ! * DATan2 intrinsic: DATan2 Intrinsic. ! * DATan2D intrinsic: DATan2D Intrinsic. ! * DATanD intrinsic: DATanD Intrinsic. ! * Date intrinsic: Date Intrinsic. * Date_and_Time intrinsic: Date_and_Time Intrinsic. * date_y2kbuggy_0: Year 2000 (Y2K) Problems. ! * DbesJ0 intrinsic: DbesJ0 Intrinsic. ! * DbesJ1 intrinsic: DbesJ1 Intrinsic. ! * DbesJN intrinsic: DbesJN Intrinsic. ! * DbesY0 intrinsic: DbesY0 Intrinsic. ! * DbesY1 intrinsic: DbesY1 Intrinsic. ! * DbesYN intrinsic: DbesYN Intrinsic. ! * Dble intrinsic: Dble Intrinsic. ! * DbleQ intrinsic: DbleQ Intrinsic. ! * DCmplx intrinsic: DCmplx Intrinsic. ! * DConjg intrinsic: DConjg Intrinsic. ! * DCos intrinsic: DCos Intrinsic. ! * DCosD intrinsic: DCosD Intrinsic. ! * DCosH intrinsic: DCosH Intrinsic. ! * DDiM intrinsic: DDiM Intrinsic. * debug line <1>: Enabling Debug Lines. ! * debug line: Debug Line. ! * debugger <1>: Known Bugs. * debugger: What is GNU Fortran?. ! * debugging <1>: Names. ! * debugging <2>: Main Program Unit. * debugging: Debugging and Interfacing. ! * debugging information options: Debugging Options. ! * debugging main source code: Known Bugs. ! * DECODE statement: ENCODE and DECODE. ! * deleted intrinsics: Intrinsic Groups. ! * DErF intrinsic: DErF Intrinsic. ! * DErFC intrinsic: DErFC Intrinsic. ! * DExp intrinsic: DExp Intrinsic. ! * DFloat intrinsic: DFloat Intrinsic. ! * DFlotI intrinsic: DFlotI Intrinsic. ! * DFlotJ intrinsic: DFlotJ Intrinsic. ! * diagnostics: Diagnostics. * diagnostics, incorrect: What is GNU Fortran?. * dialect options: Fortran Dialect Options. * Digital Fortran features: Fortran Dialect Options. ! * Digits intrinsic: Digits Intrinsic. ! * DiM intrinsic: DiM Intrinsic. ! * DImag intrinsic: DImag Intrinsic. * DIMENSION statement <1>: Array Bounds Expressions. ! * DIMENSION statement <2>: Adjustable Arrays. ! * DIMENSION statement: Arrays. * DIMENSION X(1): Ugly Assumed-Size Arrays. ! * dimensioning arrays: Adjustable Arrays. ! * DInt intrinsic: DInt Intrinsic. * direction of language development: Direction of Language Development. ! * directive, INCLUDE <1>: Directory Options. * directive, INCLUDE: Preprocessor Options. ! * directory, options: Directory Options. ! * directory, search paths for inclusion: Directory Options. ! * disabled intrinsics: Intrinsic Groups. * disk full: Output Assumed To Flush. ! * displaying main source code: Known Bugs. * disposition of files: OPEN CLOSE and INQUIRE Keywords. ! * distensions: Distensions. ! * DLog intrinsic: DLog Intrinsic. ! * DLog10 intrinsic: DLog10 Intrinsic. ! * DMax1 intrinsic: DMax1 Intrinsic. ! * DMin1 intrinsic: DMin1 Intrinsic. ! * DMod intrinsic: DMod Intrinsic. ! * DNInt intrinsic: DNInt Intrinsic. ! * DNRM2: News. ! * DO: DO WHILE. * DO loops, one-trip: Fortran Dialect Options. * DO loops, zero-trip: Fortran Dialect Options. ! * DO statement <1>: Loops. ! * DO statement: Warning Options. ! * DO WHILE <1>: DO WHILE. ! * DO WHILE: Optimize Options. ! * dollar sign <1>: Dollar Signs. ! * dollar sign <2>: I/O. * dollar sign: Fortran Dialect Options. * Dot_Product intrinsic: Dot_Product Intrinsic. ! * DOUBLE COMPLEX: DOUBLE COMPLEX. ! * DOUBLE COMPLEX type: Compiler Types. ! * DOUBLE PRECISION type: Compiler Types. ! * double quote: Character Set. ! * double quoted character constants <1>: Fortran 90 Features. ! * double quoted character constants: Character Type. * double quotes: Double Quote Meaning. ! * double-precision performance <1>: Changes. ! * double-precision performance: News. ! * DProd intrinsic: DProd Intrinsic. ! * DReal intrinsic: DReal Intrinsic. * driver, gcc command as: What is GNU Fortran?. ! * DSign intrinsic: DSign Intrinsic. ! * DSin intrinsic: DSin Intrinsic. ! * DSinD intrinsic: DSinD Intrinsic. ! * DSinH intrinsic: DSinH Intrinsic. ! * DSqRt intrinsic: DSqRt Intrinsic. ! * DTan intrinsic: DTan Intrinsic. ! * DTanD intrinsic: DTanD Intrinsic. ! * DTanH intrinsic: DTanH Intrinsic. * DTime intrinsic <1>: DTime Intrinsic (function). * DTime intrinsic: DTime Intrinsic (subroutine). ! * dummies, unused: Warning Options. ! * edit descriptor, <>: I/O. ! * edit descriptor, O: I/O. ! * edit descriptor, Q: Q Edit Descriptor. ! * edit descriptor, Z <1>: Fortran 90 Features. ! * edit descriptor, Z: I/O. ! * effecting IMPLICIT NONE: Warning Options. ! * efficiency: Efficiency. ! * ELF support: News. ! * empty CHARACTER strings: Character Type. ! * enabled intrinsics: Intrinsic Groups. ! * ENCODE statement: ENCODE and DECODE. ! * END DO: END DO. * entry points: Alternate Entry Points. * ENTRY statement: Alternate Entry Points. * environment variables: Environment Variables. ! * EOShift intrinsic: EOShift Intrinsic. ! * Epsilon intrinsic: Epsilon Intrinsic. ! * equivalence areas <1>: Known Bugs. * equivalence areas: Local Equivalence Areas. * EQUIVALENCE statement: Local Equivalence Areas. ! * ErF intrinsic: ErF Intrinsic. ! * ErFC intrinsic: ErFC Intrinsic. ! * error messages <1>: Warnings and Errors. * error messages: Run-time Library Errors. * error messages, incorrect: What is GNU Fortran?. * error values: Run-time Library Errors. ! * errors, linker: Large Common Blocks. * ETime intrinsic <1>: ETime Intrinsic (function). * ETime intrinsic: ETime Intrinsic (subroutine). * exceptions, floating-point: Floating-point Exception Handling. ! * exclamation point <1>: LEX. ! * exclamation point <2>: Exclamation Point. ! * exclamation point <3>: Trailing Comment. ! * exclamation point <4>: Character Set. * exclamation point: Statements Comments Lines. * executable file: What is GNU Fortran?. ! * Exit intrinsic: Exit Intrinsic. ! * EXIT statement: CYCLE and EXIT. ! * Exp intrinsic: Exp Intrinsic. ! * Exponent intrinsic: Exponent Intrinsic. * extended-source option: Fortran Dialect Options. ! * extensions, file name: Overall Options. ! * extensions, from Fortran 90: Fortran 90 Features. ! * extensions, more: More Extensions. ! * extensions, VXT: VXT Fortran. ! * external names: Mangling of Names. ! * extra warnings: Warning Options. * f2c: Increasing Precision/Range. * f2c compatibility <1>: Avoid f2c Compatibility. * f2c compatibility <2>: Block Data and Libraries. * f2c compatibility <3>: Debugging and Interfacing. ! * f2c compatibility <4>: Code Gen Options. ! * f2c compatibility <5>: Shorthand Options. ! * f2c compatibility: Overall Options. * f2c intrinsics: Fortran Dialect Options. ! * f2c intrinsics group: Intrinsic Groups. ! * f77 compatibility: Shorthand Options. * f77 support: Backslash in Constants. * f771, program: What is GNU Fortran?. ! * f90 intrinsics group: Intrinsic Groups. ! * fatal signal: Bug Criteria. * FDate intrinsic <1>: FDate Intrinsic (function). * FDate intrinsic: FDate Intrinsic (subroutine). * FDL, GNU Free Documentation License: GNU Free Documentation License. * features, language: Direction of Language Development. ! * features, ugly <1>: Distensions. ! * features, ugly: Shorthand Options. ! * FFE <1>: Front End. * FFE: What is GNU Fortran?. * fflush(): Output Assumed To Flush. * FGet intrinsic <1>: FGet Intrinsic (function). * FGet intrinsic: FGet Intrinsic (subroutine). * FGetC intrinsic <1>: FGetC Intrinsic (function). * FGetC intrinsic: FGetC Intrinsic (subroutine). * file format not recognized: What is GNU Fortran?. * file formats: Portable Unformatted Files. ! * file name extension: Overall Options. ! * file name suffix: Overall Options. ! * file type: Overall Options. ! * file, source <1>: Source Form. ! * file, source <2>: Lines. * file, source: What is GNU Fortran?. * files, executable: What is GNU Fortran?. ! * fixed form <1>: Source Form. ! * fixed form <2>: Lines. * fixed form: Fortran Dialect Options. ! * Float intrinsic: Float Intrinsic. ! * FloatI intrinsic: FloatI Intrinsic. * floating-point errors: Floating-point Errors. * floating-point, errors: Inconsistent Calling Sequences. * floating-point, exceptions: Floating-point Exception Handling. * floating-point, precision <1>: Floating-point precision. ! * floating-point, precision: Optimize Options. ! * FloatJ intrinsic: FloatJ Intrinsic. ! * Floor intrinsic: Floor Intrinsic. ! * Flush intrinsic: Flush Intrinsic. * flushing output: Output Assumed To Flush. ! * FNum intrinsic: FNum Intrinsic. * FORM='PRINT': OPEN CLOSE and INQUIRE Keywords. ! * FORMAT descriptors <1>: Fortran 90 Features. ! * FORMAT descriptors: I/O. ! * FORMAT statement <1>: Q Edit Descriptor. * FORMAT statement: Expressions in FORMAT Statements. * FORTRAN 66 <1>: Fortran Dialect Options. ! * FORTRAN 66: Shorthand Options. ! * FORTRAN 77 compatibility: Standard Support. ! * Fortran 90: Fortran 90 Features. ! * Fortran 90, compatibility: Fortran 90. * Fortran 90, features: Fortran Dialect Options. * Fortran 90, intrinsics: Fortran Dialect Options. ! * Fortran 90, support: Fortran 90 Support. ! * Fortran preprocessor: Overall Options. ! * forward references: GLOBALS. * FPE handling: Floating-point Exception Handling. * FPut intrinsic <1>: FPut Intrinsic (function). * FPut intrinsic: FPut Intrinsic (subroutine). * FPutC intrinsic <1>: FPutC Intrinsic (function). * FPutC intrinsic: FPutC Intrinsic (subroutine). ! * Fraction intrinsic: Fraction Intrinsic. ! * free form <1>: Source Form. ! * free form <2>: Lines. * free form: Fortran Dialect Options. ! * front end, g77 <1>: Front End. * front end, g77: What is GNU Fortran?. ! * FSeek intrinsic: FSeek Intrinsic. ! * FSF, funding the: Funding GNU Fortran. * FStat intrinsic <1>: FStat Intrinsic (function). * FStat intrinsic: FStat Intrinsic (subroutine). * FTell intrinsic <1>: FTell Intrinsic (function). * FTell intrinsic: FTell Intrinsic (subroutine). * function references, in adjustable array bounds: Array Bounds Expressions. ! * FUNCTION statement <1>: Functions. ! * FUNCTION statement: Procedures. ! * functions: Functions. ! * functions, mistyped: Not My Type. ! * funding improvements: Funding GNU Fortran. ! * funding the FSF: Funding GNU Fortran. ! * g77 options, --driver <1>: Changes. ! * g77 options, --driver: News. ! * g77 options, -v: G77 and GCC. ! * g77, command <1>: G77 and GCC. * g77, command: What is GNU Fortran?. * g77, components of: What is GNU Fortran?. ! * g77, front end <1>: Front End. * g77, front end: What is GNU Fortran?. ! * g77, modifying: Overall Options. * G77_date_y2kbuggy_0: Year 2000 (Y2K) Problems. * G77_vxtidate_y2kbuggy_0: Year 2000 (Y2K) Problems. * GBE <1>: Philosophy of Code Generation. * GBE: What is GNU Fortran?. * GBEL: Philosophy of Code Generation. * gcc, back end <1>: Philosophy of Code Generation. * gcc, back end: What is GNU Fortran?. ! * gcc, command <1>: G77 and GCC. * gcc, command: What is GNU Fortran?. * gcc, command as driver: What is GNU Fortran?. * gcc, not recognizing Fortran source: What is GNU Fortran?. * gdb, command: What is GNU Fortran?. ! * gdb, support: Debugger Problems. * generic intrinsics: Generics and Specifics. ! * GError intrinsic: GError Intrinsic. ! * GetArg intrinsic <1>: Main Program Unit. ! * GetArg intrinsic: GetArg Intrinsic. * GetCWD intrinsic <1>: GetCWD Intrinsic (function). * GetCWD intrinsic: GetCWD Intrinsic (subroutine). ! * GetEnv intrinsic: GetEnv Intrinsic. ! * GetGId intrinsic: GetGId Intrinsic. ! * GetLog intrinsic: GetLog Intrinsic. ! * GetPId intrinsic: GetPId Intrinsic. ! * getting started: Getting Started. ! * GetUId intrinsic: GetUId Intrinsic. ! * global names, warning <1>: Code Gen Options. ! * global names, warning: Warning Options. ! * GMTime intrinsic: GMTime Intrinsic. * GNU Back End (GBE) <1>: Philosophy of Code Generation. * GNU Back End (GBE): What is GNU Fortran?. * GNU Back End Language (GBEL): Philosophy of Code Generation. ! * GNU Fortran command options: Invoking G77. ! * GNU Fortran Front End (FFE) <1>: Front End. * GNU Fortran Front End (FFE): What is GNU Fortran?. ! * gnu intrinsics group: Intrinsic Groups. * GOTO statement: Assigned Statement Labels. ! * groups of intrinsics: Intrinsic Groups. * hardware errors: Signal 11 and Friends. ! * hash mark: Character Set. * HDF: Portable Unformatted Files. ! * hidden intrinsics: Intrinsic Groups. * Hollerith constants <1>: Character and Hollerith Constants. * Hollerith constants <2>: Ugly Conversion of Initializers. * Hollerith constants <3>: Ugly Implicit Argument Conversion. * Hollerith constants: Fortran Dialect Options. ! * horizontal tab: Tabs. * HostNm intrinsic <1>: HostNm Intrinsic (function). * HostNm intrinsic: HostNm Intrinsic (subroutine). ! * Huge intrinsic: Huge Intrinsic. * I/O, errors: Run-time Library Errors. * I/O, flushing: Output Assumed To Flush. ! * IAbs intrinsic: IAbs Intrinsic. ! * IAChar intrinsic: IAChar Intrinsic. ! * IAnd intrinsic: IAnd Intrinsic. ! * IArgC intrinsic <1>: Main Program Unit. ! * IArgC intrinsic: IArgC Intrinsic. ! * IBClr intrinsic: IBClr Intrinsic. ! * IBits intrinsic: IBits Intrinsic. ! * IBSet intrinsic: IBSet Intrinsic. ! * IChar intrinsic: IChar Intrinsic. * IDate intrinsic <1>: IDate Intrinsic (VXT). * IDate intrinsic: IDate Intrinsic (UNIX). ! * IDiM intrinsic: IDiM Intrinsic. ! * IDInt intrinsic: IDInt Intrinsic. ! * IDNInt intrinsic: IDNInt Intrinsic. * IEEE 754 conformance <1>: Floating-point precision. ! * IEEE 754 conformance: Optimize Options. ! * IEOr intrinsic: IEOr Intrinsic. ! * IErrNo intrinsic: IErrNo Intrinsic. ! * IFix intrinsic: IFix Intrinsic. ! * IIAbs intrinsic: IIAbs Intrinsic. ! * IIAnd intrinsic: IIAnd Intrinsic. ! * IIBClr intrinsic: IIBClr Intrinsic. ! * IIBits intrinsic: IIBits Intrinsic. ! * IIBSet intrinsic: IIBSet Intrinsic. ! * IIDiM intrinsic: IIDiM Intrinsic. ! * IIDInt intrinsic: IIDInt Intrinsic. ! * IIDNnt intrinsic: IIDNnt Intrinsic. ! * IIEOr intrinsic: IIEOr Intrinsic. ! * IIFix intrinsic: IIFix Intrinsic. ! * IInt intrinsic: IInt Intrinsic. ! * IIOr intrinsic: IIOr Intrinsic. ! * IIQint intrinsic: IIQint Intrinsic. ! * IIQNnt intrinsic: IIQNnt Intrinsic. ! * IIShftC intrinsic: IIShftC Intrinsic. ! * IISign intrinsic: IISign Intrinsic. * illegal unit number: Large File Unit Numbers. ! * Imag intrinsic: Imag Intrinsic. ! * imaginary part <1>: Complex Variables. * imaginary part: Ugly Complex Part Extraction. ! * ImagPart intrinsic: ImagPart Intrinsic. ! * IMax0 intrinsic: IMax0 Intrinsic. ! * IMax1 intrinsic: IMax1 Intrinsic. ! * IMin0 intrinsic: IMin0 Intrinsic. ! * IMin1 intrinsic: IMin1 Intrinsic. ! * IMod intrinsic: IMod Intrinsic. * IMPLICIT CHARACTER*(*) statement: Limitation on Implicit Declarations. ! * implicit declaration, warning: Warning Options. ! * IMPLICIT NONE, similar effect: Warning Options. ! * implicit typing: Not My Type. ! * improvements, funding: Funding GNU Fortran. ! * in-line code <1>: GLOBALS. ! * in-line code <2>: Code Gen Options. ! * in-line code <3>: Optimize Options. * in-line code: What is GNU Fortran?. ! * INCLUDE directive <1>: INCLUDE. ! * INCLUDE directive <2>: Directory Options. * INCLUDE directive: Preprocessor Options. ! * inclusion, directory search paths for: Directory Options. * inconsistent floating-point results: Floating-point Errors. * incorrect diagnostics: What is GNU Fortran?. * incorrect error messages: What is GNU Fortran?. * incorrect use of language: What is GNU Fortran?. * increasing maximum unit number: Large File Unit Numbers. * increasing precision: Increasing Precision/Range. * increasing range: Increasing Precision/Range. ! * Index intrinsic: Index Intrinsic. ! * indexed (iterative) DO: Optimize Options. * infinite spaces printed: Strange Behavior at Run Time. ! * INInt intrinsic: INInt Intrinsic. ! * initialization, bug: Known Bugs. ! * initialization, of local variables: Code Gen Options. ! * initialization, run-time: Startup Code. * initialization, statement placement: Initializing Before Specifying. ! * INot intrinsic: INot Intrinsic. * INQUIRE statement: OPEN CLOSE and INQUIRE Keywords. ! * installation trouble: Trouble. ! * Int intrinsic: Int Intrinsic. ! * Int2 intrinsic: Int2 Intrinsic. ! * Int8 intrinsic: Int8 Intrinsic. ! * integer constants: Known Bugs. ! * INTEGER(KIND=1) type: Compiler Types. ! * INTEGER(KIND=2) type: Compiler Types. ! * INTEGER(KIND=3) type: Compiler Types. ! * INTEGER(KIND=6) type: Compiler Types. * INTEGER*2 support: Popular Non-standard Types. * INTEGER*8 support: Full Support for Compiler Types. ! * Intel x86: News. * interfacing: Debugging and Interfacing. ! * internal consistency checks: Overall Options. ! * intrinsics, Abort: Abort Intrinsic. ! * intrinsics, Abs: Abs Intrinsic. ! * intrinsics, Access: Access Intrinsic. ! * intrinsics, AChar: AChar Intrinsic. ! * intrinsics, ACos: ACos Intrinsic. ! * intrinsics, ACosD: ACosD Intrinsic. ! * intrinsics, AdjustL: AdjustL Intrinsic. ! * intrinsics, AdjustR: AdjustR Intrinsic. ! * intrinsics, AImag <1>: AImag Intrinsic. * intrinsics, AImag: REAL() and AIMAG() of Complex. ! * intrinsics, AIMax0: AIMax0 Intrinsic. ! * intrinsics, AIMin0: AIMin0 Intrinsic. ! * intrinsics, AInt: AInt Intrinsic. ! * intrinsics, AJMax0: AJMax0 Intrinsic. ! * intrinsics, AJMin0: AJMin0 Intrinsic. ! * intrinsics, Alarm: Alarm Intrinsic. ! * intrinsics, All: All Intrinsic. ! * intrinsics, Allocated: Allocated Intrinsic. ! * intrinsics, ALog: ALog Intrinsic. ! * intrinsics, ALog10: ALog10 Intrinsic. ! * intrinsics, AMax0: AMax0 Intrinsic. ! * intrinsics, AMax1: AMax1 Intrinsic. ! * intrinsics, AMin0: AMin0 Intrinsic. ! * intrinsics, AMin1: AMin1 Intrinsic. ! * intrinsics, AMod: AMod Intrinsic. * intrinsics, And <1>: Bit Operations on Floating-point Data. ! * intrinsics, And: And Intrinsic. ! * intrinsics, ANInt: ANInt Intrinsic. ! * intrinsics, Any: Any Intrinsic. ! * intrinsics, ASin: ASin Intrinsic. ! * intrinsics, ASinD: ASinD Intrinsic. * intrinsics, Associated: Associated Intrinsic. ! * intrinsics, ATan: ATan Intrinsic. ! * intrinsics, ATan2: ATan2 Intrinsic. ! * intrinsics, ATan2D: ATan2D Intrinsic. ! * intrinsics, ATanD: ATanD Intrinsic. * intrinsics, badu77: Fortran Dialect Options. ! * intrinsics, BesJ0: BesJ0 Intrinsic. ! * intrinsics, BesJ1: BesJ1 Intrinsic. ! * intrinsics, BesJN: BesJN Intrinsic. ! * intrinsics, BesY0: BesY0 Intrinsic. ! * intrinsics, BesY1: BesY1 Intrinsic. ! * intrinsics, BesYN: BesYN Intrinsic. ! * intrinsics, Bit_Size: Bit_Size Intrinsic. ! * intrinsics, BITest: BITest Intrinsic. ! * intrinsics, BJTest: BJTest Intrinsic. ! * intrinsics, BTest: BTest Intrinsic. ! * intrinsics, CAbs: CAbs Intrinsic. ! * intrinsics, CCos: CCos Intrinsic. ! * intrinsics, CDAbs: CDAbs Intrinsic. ! * intrinsics, CDCos: CDCos Intrinsic. ! * intrinsics, CDExp: CDExp Intrinsic. ! * intrinsics, CDLog: CDLog Intrinsic. ! * intrinsics, CDSin: CDSin Intrinsic. ! * intrinsics, CDSqRt: CDSqRt Intrinsic. ! * intrinsics, Ceiling: Ceiling Intrinsic. ! * intrinsics, CExp: CExp Intrinsic. ! * intrinsics, Char: Char Intrinsic. * intrinsics, ChDir <1>: ChDir Intrinsic (function). * intrinsics, ChDir: ChDir Intrinsic (subroutine). * intrinsics, ChMod <1>: ChMod Intrinsic (function). * intrinsics, ChMod: ChMod Intrinsic (subroutine). ! * intrinsics, CLog: CLog Intrinsic. ! * intrinsics, Cmplx <1>: Cmplx Intrinsic. * intrinsics, Cmplx: CMPLX() of DOUBLE PRECISION. ! * intrinsics, Complex: Complex Intrinsic. * intrinsics, COMPLEX: Fortran Dialect Options. ! * intrinsics, Conjg: Conjg Intrinsic. * intrinsics, context-sensitive: Context-Sensitive Intrinsicness. ! * intrinsics, Cos: Cos Intrinsic. ! * intrinsics, CosD: CosD Intrinsic. ! * intrinsics, CosH: CosH Intrinsic. ! * intrinsics, Count: Count Intrinsic. ! * intrinsics, CPU_Time: CPU_Time Intrinsic. ! * intrinsics, CShift: CShift Intrinsic. ! * intrinsics, CSin: CSin Intrinsic. ! * intrinsics, CSqRt: CSqRt Intrinsic. * intrinsics, CTime <1>: CTime Intrinsic (function). * intrinsics, CTime: CTime Intrinsic (subroutine). ! * intrinsics, DAbs: DAbs Intrinsic. ! * intrinsics, DACos: DACos Intrinsic. ! * intrinsics, DACosD: DACosD Intrinsic. ! * intrinsics, DASin: DASin Intrinsic. ! * intrinsics, DASinD: DASinD Intrinsic. ! * intrinsics, DATan: DATan Intrinsic. ! * intrinsics, DATan2: DATan2 Intrinsic. ! * intrinsics, DATan2D: DATan2D Intrinsic. ! * intrinsics, DATanD: DATanD Intrinsic. ! * intrinsics, Date: Date Intrinsic. * intrinsics, Date_and_Time: Date_and_Time Intrinsic. ! * intrinsics, DbesJ0: DbesJ0 Intrinsic. ! * intrinsics, DbesJ1: DbesJ1 Intrinsic. ! * intrinsics, DbesJN: DbesJN Intrinsic. ! * intrinsics, DbesY0: DbesY0 Intrinsic. ! * intrinsics, DbesY1: DbesY1 Intrinsic. ! * intrinsics, DbesYN: DbesYN Intrinsic. ! * intrinsics, Dble: Dble Intrinsic. ! * intrinsics, DbleQ: DbleQ Intrinsic. ! * intrinsics, DCmplx: DCmplx Intrinsic. ! * intrinsics, DConjg: DConjg Intrinsic. ! * intrinsics, DCos: DCos Intrinsic. ! * intrinsics, DCosD: DCosD Intrinsic. ! * intrinsics, DCosH: DCosH Intrinsic. ! * intrinsics, DDiM: DDiM Intrinsic. ! * intrinsics, deleted: Intrinsic Groups. ! * intrinsics, DErF: DErF Intrinsic. ! * intrinsics, DErFC: DErFC Intrinsic. ! * intrinsics, DExp: DExp Intrinsic. ! * intrinsics, DFloat: DFloat Intrinsic. ! * intrinsics, DFlotI: DFlotI Intrinsic. ! * intrinsics, DFlotJ: DFlotJ Intrinsic. ! * intrinsics, Digits: Digits Intrinsic. ! * intrinsics, DiM: DiM Intrinsic. ! * intrinsics, DImag: DImag Intrinsic. ! * intrinsics, DInt: DInt Intrinsic. ! * intrinsics, disabled: Intrinsic Groups. ! * intrinsics, DLog: DLog Intrinsic. ! * intrinsics, DLog10: DLog10 Intrinsic. ! * intrinsics, DMax1: DMax1 Intrinsic. ! * intrinsics, DMin1: DMin1 Intrinsic. ! * intrinsics, DMod: DMod Intrinsic. ! * intrinsics, DNInt: DNInt Intrinsic. * intrinsics, Dot_Product: Dot_Product Intrinsic. ! * intrinsics, DProd: DProd Intrinsic. ! * intrinsics, DReal: DReal Intrinsic. ! * intrinsics, DSign: DSign Intrinsic. ! * intrinsics, DSin: DSin Intrinsic. ! * intrinsics, DSinD: DSinD Intrinsic. ! * intrinsics, DSinH: DSinH Intrinsic. ! * intrinsics, DSqRt: DSqRt Intrinsic. ! * intrinsics, DTan: DTan Intrinsic. ! * intrinsics, DTanD: DTanD Intrinsic. ! * intrinsics, DTanH: DTanH Intrinsic. * intrinsics, DTime <1>: DTime Intrinsic (function). * intrinsics, DTime: DTime Intrinsic (subroutine). ! * intrinsics, enabled: Intrinsic Groups. ! * intrinsics, EOShift: EOShift Intrinsic. ! * intrinsics, Epsilon: Epsilon Intrinsic. ! * intrinsics, ErF: ErF Intrinsic. ! * intrinsics, ErFC: ErFC Intrinsic. * intrinsics, ETime <1>: ETime Intrinsic (function). * intrinsics, ETime: ETime Intrinsic (subroutine). ! * intrinsics, Exit: Exit Intrinsic. ! * intrinsics, Exp: Exp Intrinsic. ! * intrinsics, Exponent: Exponent Intrinsic. * intrinsics, f2c: Fortran Dialect Options. * intrinsics, FDate <1>: FDate Intrinsic (function). * intrinsics, FDate: FDate Intrinsic (subroutine). * intrinsics, FGet <1>: FGet Intrinsic (function). * intrinsics, FGet: FGet Intrinsic (subroutine). * intrinsics, FGetC <1>: FGetC Intrinsic (function). * intrinsics, FGetC: FGetC Intrinsic (subroutine). ! * intrinsics, Float: Float Intrinsic. ! * intrinsics, FloatI: FloatI Intrinsic. ! * intrinsics, FloatJ: FloatJ Intrinsic. ! * intrinsics, Floor: Floor Intrinsic. ! * intrinsics, Flush: Flush Intrinsic. ! * intrinsics, FNum: FNum Intrinsic. * intrinsics, Fortran 90: Fortran Dialect Options. * intrinsics, FPut <1>: FPut Intrinsic (function). * intrinsics, FPut: FPut Intrinsic (subroutine). * intrinsics, FPutC <1>: FPutC Intrinsic (function). * intrinsics, FPutC: FPutC Intrinsic (subroutine). ! * intrinsics, Fraction: Fraction Intrinsic. ! * intrinsics, FSeek: FSeek Intrinsic. * intrinsics, FStat <1>: FStat Intrinsic (function). * intrinsics, FStat: FStat Intrinsic (subroutine). * intrinsics, FTell <1>: FTell Intrinsic (function). * intrinsics, FTell: FTell Intrinsic (subroutine). * intrinsics, generic: Generics and Specifics. ! * intrinsics, GError: GError Intrinsic. ! * intrinsics, GetArg <1>: Main Program Unit. ! * intrinsics, GetArg: GetArg Intrinsic. * intrinsics, GetCWD <1>: GetCWD Intrinsic (function). * intrinsics, GetCWD: GetCWD Intrinsic (subroutine). ! * intrinsics, GetEnv: GetEnv Intrinsic. ! * intrinsics, GetGId: GetGId Intrinsic. ! * intrinsics, GetLog: GetLog Intrinsic. ! * intrinsics, GetPId: GetPId Intrinsic. ! * intrinsics, GetUId: GetUId Intrinsic. ! * intrinsics, GMTime: GMTime Intrinsic. ! * intrinsics, groups: Intrinsic Groups. ! * intrinsics, groups of: Intrinsic Groups. ! * intrinsics, hidden: Intrinsic Groups. * intrinsics, HostNm <1>: HostNm Intrinsic (function). * intrinsics, HostNm: HostNm Intrinsic (subroutine). ! * intrinsics, Huge: Huge Intrinsic. ! * intrinsics, IAbs: IAbs Intrinsic. ! * intrinsics, IAChar: IAChar Intrinsic. ! * intrinsics, IAnd: IAnd Intrinsic. ! * intrinsics, IArgC <1>: Main Program Unit. ! * intrinsics, IArgC: IArgC Intrinsic. ! * intrinsics, IBClr: IBClr Intrinsic. ! * intrinsics, IBits: IBits Intrinsic. ! * intrinsics, IBSet: IBSet Intrinsic. ! * intrinsics, IChar: IChar Intrinsic. * intrinsics, IDate <1>: IDate Intrinsic (VXT). * intrinsics, IDate: IDate Intrinsic (UNIX). ! * intrinsics, IDiM: IDiM Intrinsic. ! * intrinsics, IDInt: IDInt Intrinsic. ! * intrinsics, IDNInt: IDNInt Intrinsic. ! * intrinsics, IEOr: IEOr Intrinsic. ! * intrinsics, IErrNo: IErrNo Intrinsic. ! * intrinsics, IFix: IFix Intrinsic. ! * intrinsics, IIAbs: IIAbs Intrinsic. ! * intrinsics, IIAnd: IIAnd Intrinsic. ! * intrinsics, IIBClr: IIBClr Intrinsic. ! * intrinsics, IIBits: IIBits Intrinsic. ! * intrinsics, IIBSet: IIBSet Intrinsic. ! * intrinsics, IIDiM: IIDiM Intrinsic. ! * intrinsics, IIDInt: IIDInt Intrinsic. ! * intrinsics, IIDNnt: IIDNnt Intrinsic. ! * intrinsics, IIEOr: IIEOr Intrinsic. ! * intrinsics, IIFix: IIFix Intrinsic. ! * intrinsics, IInt: IInt Intrinsic. ! * intrinsics, IIOr: IIOr Intrinsic. ! * intrinsics, IIQint: IIQint Intrinsic. ! * intrinsics, IIQNnt: IIQNnt Intrinsic. ! * intrinsics, IIShftC: IIShftC Intrinsic. ! * intrinsics, IISign: IISign Intrinsic. ! * intrinsics, Imag: Imag Intrinsic. ! * intrinsics, ImagPart: ImagPart Intrinsic. ! * intrinsics, IMax0: IMax0 Intrinsic. ! * intrinsics, IMax1: IMax1 Intrinsic. ! * intrinsics, IMin0: IMin0 Intrinsic. ! * intrinsics, IMin1: IMin1 Intrinsic. ! * intrinsics, IMod: IMod Intrinsic. ! * intrinsics, Index: Index Intrinsic. ! * intrinsics, INInt: INInt Intrinsic. ! * intrinsics, INot: INot Intrinsic. ! * intrinsics, Int: Int Intrinsic. ! * intrinsics, Int2: Int2 Intrinsic. ! * intrinsics, Int8: Int8 Intrinsic. ! * intrinsics, IOr: IOr Intrinsic. ! * intrinsics, IRand: IRand Intrinsic. ! * intrinsics, IsaTty: IsaTty Intrinsic. ! * intrinsics, IShft: IShft Intrinsic. ! * intrinsics, IShftC: IShftC Intrinsic. ! * intrinsics, ISign: ISign Intrinsic. ! * intrinsics, ITime: ITime Intrinsic. ! * intrinsics, IZExt: IZExt Intrinsic. ! * intrinsics, JIAbs: JIAbs Intrinsic. ! * intrinsics, JIAnd: JIAnd Intrinsic. ! * intrinsics, JIBClr: JIBClr Intrinsic. ! * intrinsics, JIBits: JIBits Intrinsic. ! * intrinsics, JIBSet: JIBSet Intrinsic. ! * intrinsics, JIDiM: JIDiM Intrinsic. ! * intrinsics, JIDInt: JIDInt Intrinsic. ! * intrinsics, JIDNnt: JIDNnt Intrinsic. ! * intrinsics, JIEOr: JIEOr Intrinsic. ! * intrinsics, JIFix: JIFix Intrinsic. ! * intrinsics, JInt: JInt Intrinsic. ! * intrinsics, JIOr: JIOr Intrinsic. ! * intrinsics, JIQint: JIQint Intrinsic. ! * intrinsics, JIQNnt: JIQNnt Intrinsic. ! * intrinsics, JIShft: JIShft Intrinsic. ! * intrinsics, JIShftC: JIShftC Intrinsic. ! * intrinsics, JISign: JISign Intrinsic. ! * intrinsics, JMax0: JMax0 Intrinsic. ! * intrinsics, JMax1: JMax1 Intrinsic. ! * intrinsics, JMin0: JMin0 Intrinsic. ! * intrinsics, JMin1: JMin1 Intrinsic. ! * intrinsics, JMod: JMod Intrinsic. ! * intrinsics, JNInt: JNInt Intrinsic. ! * intrinsics, JNot: JNot Intrinsic. ! * intrinsics, JZExt: JZExt Intrinsic. * intrinsics, Kill <1>: Kill Intrinsic (function). * intrinsics, Kill: Kill Intrinsic (subroutine). ! * intrinsics, Kind: Kind Intrinsic. ! * intrinsics, LBound: LBound Intrinsic. ! * intrinsics, Len: Len Intrinsic. ! * intrinsics, Len_Trim: Len_Trim Intrinsic. ! * intrinsics, LGe: LGe Intrinsic. ! * intrinsics, LGt: LGt Intrinsic. * intrinsics, Link <1>: Link Intrinsic (function). * intrinsics, Link: Link Intrinsic (subroutine). ! * intrinsics, LLe: LLe Intrinsic. ! * intrinsics, LLt: LLt Intrinsic. ! * intrinsics, LnBlnk: LnBlnk Intrinsic. ! * intrinsics, Loc: Loc Intrinsic. ! * intrinsics, Log: Log Intrinsic. ! * intrinsics, Log10: Log10 Intrinsic. ! * intrinsics, Logical: Logical Intrinsic. ! * intrinsics, Long: Long Intrinsic. ! * intrinsics, LShift: LShift Intrinsic. * intrinsics, LStat <1>: LStat Intrinsic (function). * intrinsics, LStat: LStat Intrinsic (subroutine). ! * intrinsics, LTime: LTime Intrinsic. ! * intrinsics, MatMul: MatMul Intrinsic. ! * intrinsics, Max: Max Intrinsic. ! * intrinsics, Max0: Max0 Intrinsic. ! * intrinsics, Max1: Max1 Intrinsic. * intrinsics, MaxExponent: MaxExponent Intrinsic. ! * intrinsics, MaxLoc: MaxLoc Intrinsic. ! * intrinsics, MaxVal: MaxVal Intrinsic. ! * intrinsics, MClock: MClock Intrinsic. ! * intrinsics, MClock8: MClock8 Intrinsic. ! * intrinsics, Merge: Merge Intrinsic. * intrinsics, MIL-STD 1753: Fortran Dialect Options. ! * intrinsics, Min: Min Intrinsic. ! * intrinsics, Min0: Min0 Intrinsic. ! * intrinsics, Min1: Min1 Intrinsic. * intrinsics, MinExponent: MinExponent Intrinsic. ! * intrinsics, MinLoc: MinLoc Intrinsic. ! * intrinsics, MinVal: MinVal Intrinsic. ! * intrinsics, Mod: Mod Intrinsic. ! * intrinsics, Modulo: Modulo Intrinsic. ! * intrinsics, MvBits: MvBits Intrinsic. ! * intrinsics, Nearest: Nearest Intrinsic. ! * intrinsics, NInt: NInt Intrinsic. ! * intrinsics, Not: Not Intrinsic. * intrinsics, Or <1>: Bit Operations on Floating-point Data. ! * intrinsics, Or: Or Intrinsic. ! * intrinsics, others: Other Intrinsics. ! * intrinsics, Pack: Pack Intrinsic. ! * intrinsics, PError: PError Intrinsic. ! * intrinsics, Precision: Precision Intrinsic. ! * intrinsics, Present: Present Intrinsic. ! * intrinsics, Product: Product Intrinsic. ! * intrinsics, QAbs: QAbs Intrinsic. ! * intrinsics, QACos: QACos Intrinsic. ! * intrinsics, QACosD: QACosD Intrinsic. ! * intrinsics, QASin: QASin Intrinsic. ! * intrinsics, QASinD: QASinD Intrinsic. ! * intrinsics, QATan: QATan Intrinsic. ! * intrinsics, QATan2: QATan2 Intrinsic. ! * intrinsics, QATan2D: QATan2D Intrinsic. ! * intrinsics, QATanD: QATanD Intrinsic. ! * intrinsics, QCos: QCos Intrinsic. ! * intrinsics, QCosD: QCosD Intrinsic. ! * intrinsics, QCosH: QCosH Intrinsic. ! * intrinsics, QDiM: QDiM Intrinsic. ! * intrinsics, QExp: QExp Intrinsic. ! * intrinsics, QExt: QExt Intrinsic. ! * intrinsics, QExtD: QExtD Intrinsic. ! * intrinsics, QFloat: QFloat Intrinsic. ! * intrinsics, QInt: QInt Intrinsic. ! * intrinsics, QLog: QLog Intrinsic. ! * intrinsics, QLog10: QLog10 Intrinsic. ! * intrinsics, QMax1: QMax1 Intrinsic. ! * intrinsics, QMin1: QMin1 Intrinsic. ! * intrinsics, QMod: QMod Intrinsic. ! * intrinsics, QNInt: QNInt Intrinsic. ! * intrinsics, QSin: QSin Intrinsic. ! * intrinsics, QSinD: QSinD Intrinsic. ! * intrinsics, QSinH: QSinH Intrinsic. ! * intrinsics, QSqRt: QSqRt Intrinsic. ! * intrinsics, QTan: QTan Intrinsic. ! * intrinsics, QTanD: QTanD Intrinsic. ! * intrinsics, QTanH: QTanH Intrinsic. ! * intrinsics, Radix: Radix Intrinsic. ! * intrinsics, Rand: Rand Intrinsic. * intrinsics, Random_Number: Random_Number Intrinsic. * intrinsics, Random_Seed: Random_Seed Intrinsic. ! * intrinsics, Range: Range Intrinsic. ! * intrinsics, Real <1>: Real Intrinsic. * intrinsics, Real: REAL() and AIMAG() of Complex. ! * intrinsics, RealPart: RealPart Intrinsic. * intrinsics, Rename <1>: Rename Intrinsic (function). * intrinsics, Rename: Rename Intrinsic (subroutine). ! * intrinsics, Repeat: Repeat Intrinsic. ! * intrinsics, Reshape: Reshape Intrinsic. ! * intrinsics, RRSpacing: RRSpacing Intrinsic. ! * intrinsics, RShift: RShift Intrinsic. ! * intrinsics, Scale: Scale Intrinsic. ! * intrinsics, Scan: Scan Intrinsic. ! * intrinsics, Secnds: Secnds Intrinsic. * intrinsics, Second <1>: Second Intrinsic (subroutine). * intrinsics, Second: Second Intrinsic (function). * intrinsics, Selected_Int_Kind: Selected_Int_Kind Intrinsic. * intrinsics, Selected_Real_Kind: Selected_Real_Kind Intrinsic. * intrinsics, Set_Exponent: Set_Exponent Intrinsic. ! * intrinsics, Shape: Shape Intrinsic. * intrinsics, Shift: Bit Operations on Floating-point Data. ! * intrinsics, Short: Short Intrinsic. ! * intrinsics, Sign: Sign Intrinsic. * intrinsics, Signal <1>: Signal Intrinsic (function). * intrinsics, Signal: Signal Intrinsic (subroutine). ! * intrinsics, Sin: Sin Intrinsic. ! * intrinsics, SinD: SinD Intrinsic. ! * intrinsics, SinH: SinH Intrinsic. ! * intrinsics, Sleep: Sleep Intrinsic. ! * intrinsics, Sngl: Sngl Intrinsic. ! * intrinsics, SnglQ: SnglQ Intrinsic. ! * intrinsics, Spacing: Spacing Intrinsic. ! * intrinsics, Spread: Spread Intrinsic. ! * intrinsics, SqRt: SqRt Intrinsic. ! * intrinsics, SRand: SRand Intrinsic. * intrinsics, Stat <1>: Stat Intrinsic (function). * intrinsics, Stat: Stat Intrinsic (subroutine). ! * intrinsics, Sum: Sum Intrinsic. * intrinsics, SymLnk <1>: SymLnk Intrinsic (function). * intrinsics, SymLnk: SymLnk Intrinsic (subroutine). * intrinsics, System <1>: System Intrinsic (function). * intrinsics, System: System Intrinsic (subroutine). * intrinsics, System_Clock: System_Clock Intrinsic. * intrinsics, table of: Table of Intrinsic Functions. ! * intrinsics, Tan: Tan Intrinsic. ! * intrinsics, TanD: TanD Intrinsic. ! * intrinsics, TanH: TanH Intrinsic. * intrinsics, Time <1>: Time Intrinsic (VXT). * intrinsics, Time: Time Intrinsic (UNIX). ! * intrinsics, Time8: Time8 Intrinsic. ! * intrinsics, Tiny: Tiny Intrinsic. ! * intrinsics, Transfer: Transfer Intrinsic. ! * intrinsics, Transpose: Transpose Intrinsic. ! * intrinsics, Trim: Trim Intrinsic. * intrinsics, TtyNam <1>: TtyNam Intrinsic (function). * intrinsics, TtyNam: TtyNam Intrinsic (subroutine). ! * intrinsics, UBound: UBound Intrinsic. * intrinsics, UMask <1>: UMask Intrinsic (function). * intrinsics, UMask: UMask Intrinsic (subroutine). * intrinsics, UNIX: Fortran Dialect Options. * intrinsics, Unlink <1>: Unlink Intrinsic (function). * intrinsics, Unlink: Unlink Intrinsic (subroutine). ! * intrinsics, Unpack: Unpack Intrinsic. ! * intrinsics, Verify: Verify Intrinsic. * intrinsics, VXT: Fortran Dialect Options. ! * intrinsics, XOr: XOr Intrinsic. ! * intrinsics, ZAbs: ZAbs Intrinsic. ! * intrinsics, ZCos: ZCos Intrinsic. ! * intrinsics, ZExp: ZExp Intrinsic. ! * intrinsics, ZExt: ZExt Intrinsic. ! * intrinsics, ZLog: ZLog Intrinsic. ! * intrinsics, ZSin: ZSin Intrinsic. ! * intrinsics, ZSqRt: ZSqRt Intrinsic. ! * Introduction: Top. ! * invalid assembly code: Bug Criteria. ! * invalid input: Bug Criteria. ! * IOr intrinsic: IOr Intrinsic. * IOSTAT=: Run-time Library Errors. ! * IRand intrinsic: IRand Intrinsic. ! * IsaTty intrinsic: IsaTty Intrinsic. ! * IShft intrinsic: IShft Intrinsic. ! * IShftC intrinsic: IShftC Intrinsic. ! * ISign intrinsic: ISign Intrinsic. ! * iterative DO: Optimize Options. ! * ITime intrinsic: ITime Intrinsic. * ix86 floating-point: Floating-point precision. * ix86 FPU stack: Inconsistent Calling Sequences. ! * IZExt intrinsic: IZExt Intrinsic. * JCB002 program: Generics and Specifics. ! * JCB003 program: CMPAMBIG. ! * JIAbs intrinsic: JIAbs Intrinsic. ! * JIAnd intrinsic: JIAnd Intrinsic. ! * JIBClr intrinsic: JIBClr Intrinsic. ! * JIBits intrinsic: JIBits Intrinsic. ! * JIBSet intrinsic: JIBSet Intrinsic. ! * JIDiM intrinsic: JIDiM Intrinsic. ! * JIDInt intrinsic: JIDInt Intrinsic. ! * JIDNnt intrinsic: JIDNnt Intrinsic. ! * JIEOr intrinsic: JIEOr Intrinsic. ! * JIFix intrinsic: JIFix Intrinsic. ! * JInt intrinsic: JInt Intrinsic. ! * JIOr intrinsic: JIOr Intrinsic. ! * JIQint intrinsic: JIQint Intrinsic. ! * JIQNnt intrinsic: JIQNnt Intrinsic. ! * JIShft intrinsic: JIShft Intrinsic. ! * JIShftC intrinsic: JIShftC Intrinsic. ! * JISign intrinsic: JISign Intrinsic. ! * JMax0 intrinsic: JMax0 Intrinsic. ! * JMax1 intrinsic: JMax1 Intrinsic. ! * JMin0 intrinsic: JMin0 Intrinsic. ! * JMin1 intrinsic: JMin1 Intrinsic. ! * JMod intrinsic: JMod Intrinsic. ! * JNInt intrinsic: JNInt Intrinsic. ! * JNot intrinsic: JNot Intrinsic. ! * JZExt intrinsic: JZExt Intrinsic. ! * keywords, RECURSIVE: RECURSIVE Keyword. * Kill intrinsic <1>: Kill Intrinsic (function). * Kill intrinsic: Kill Intrinsic (subroutine). ! * Kind intrinsic: Kind Intrinsic. ! * KIND= notation: Kind Notation. ! * known causes of trouble: Trouble. ! * lack of recursion: RECURSIVE Keyword. * language, dialect options: Fortran Dialect Options. * language, features: Direction of Language Development. * language, incorrect use of: What is GNU Fortran?. ! * large aggregate areas: Known Bugs. ! * large common blocks: Large Common Blocks. ! * layout of COMMON blocks: Aligned Data. ! * LBound intrinsic: LBound Intrinsic. * ld command: What is GNU Fortran?. * ld, can't find _main: Cannot Link Fortran Programs. * ld, can't find strange names: Cannot Link Fortran Programs. * ld, error linking user code: Cannot Link Fortran Programs. ! * ld, errors: Large Common Blocks. ! * left angle: Character Set. ! * left bracket: Character Set. * legacy code: Collected Fortran Wisdom. ! * Len intrinsic: Len Intrinsic. ! * Len_Trim intrinsic: Len_Trim Intrinsic. * length of source lines: Fortran Dialect Options. ! * letters, lowercase: Case Sensitivity. ! * letters, uppercase: Case Sensitivity. ! * LGe intrinsic: LGe Intrinsic. ! * LGt intrinsic: LGt Intrinsic. * libc, non-ANSI or non-default: Strange Behavior at Run Time. * libf2c library: What is GNU Fortran?. * libg2c library: What is GNU Fortran?. * libraries: What is GNU Fortran?. * libraries, containing BLOCK DATA: Block Data and Libraries. * libraries, libf2c: What is GNU Fortran?. * libraries, libg2c: What is GNU Fortran?. ! * limits, array dimensions: Compiler Limits. ! * limits, array size: Array Size. ! * limits, compiler: Compiler Limits. ! * limits, continuation lines <1>: Compiler Limits. ! * limits, continuation lines: Continuation Line. ! * limits, lengths of names <1>: Compiler Limits. ! * limits, lengths of names: Syntactic Items. * limits, lengths of source lines: Fortran Dialect Options. ! * limits, multi-dimension arrays: Array Size. * limits, on character-variable length: Character-variable Length. ! * limits, rank: Compiler Limits. * limits, run-time library: Run-time Environment Limits. ! * limits, timings <1>: Secnds Intrinsic. * limits, timings <2>: DTime Intrinsic (function). ! * limits, timings <3>: Time8 Intrinsic. * limits, timings <4>: Time Intrinsic (UNIX). * limits, timings <5>: System_Clock Intrinsic. * limits, timings <6>: Second Intrinsic (subroutine). * limits, timings <7>: Second Intrinsic (function). ! * limits, timings <8>: MClock8 Intrinsic. ! * limits, timings <9>: MClock Intrinsic. * limits, timings <10>: ETime Intrinsic (function). * limits, timings <11>: ETime Intrinsic (subroutine). * limits, timings <12>: DTime Intrinsic (subroutine). ! * limits, timings: CPU_Time Intrinsic. * limits, Y10K <1>: Time Intrinsic (VXT). * limits, Y10K <2>: IDate Intrinsic (UNIX). * limits, Y10K <3>: FDate Intrinsic (function). * limits, Y10K <4>: FDate Intrinsic (subroutine). * limits, Y10K: Date_and_Time Intrinsic. * limits, Y2K: IDate Intrinsic (VXT). ! * lines: Lines. ! * lines, continuation: Continuation Line. * lines, length: Fortran Dialect Options. ! * lines, long: Long Lines. ! * lines, short: Short Lines. * Link intrinsic <1>: Link Intrinsic (function). * Link intrinsic: Link Intrinsic (subroutine). * linking: What is GNU Fortran?. * linking against non-standard library: Strange Behavior at Run Time. * linking error for user code: Cannot Link Fortran Programs. * linking error, user code: Cannot Link Fortran Programs. * linking with C: Interoperating with C and C++. ! * linking, errors: Large Common Blocks. ! * LLe intrinsic: LLe Intrinsic. ! * LLt intrinsic: LLt Intrinsic. ! * LnBlnk intrinsic: LnBlnk Intrinsic. ! * Loc intrinsic: Loc Intrinsic. * local equivalence areas: Local Equivalence Areas. ! * Log intrinsic: Log Intrinsic. ! * Log10 intrinsic: Log10 Intrinsic. * logical expressions, comparing: Equivalence Versus Equality. ! * Logical intrinsic: Logical Intrinsic. ! * LOGICAL(KIND=1) type: Compiler Types. ! * LOGICAL(KIND=2) type: Compiler Types. ! * LOGICAL(KIND=3) type: Compiler Types. ! * LOGICAL(KIND=6) type: Compiler Types. * LOGICAL*1 support: Popular Non-standard Types. ! * Long intrinsic: Long Intrinsic. ! * long source lines: Long Lines. ! * long time: Timer Wraparounds. ! * loops, optimizing: Optimize Options. ! * loops, speeding up: Optimize Options. ! * loops, unrolling: Optimize Options. ! * lowercase letters: Case Sensitivity. ! * LShift intrinsic: LShift Intrinsic. * LStat intrinsic <1>: LStat Intrinsic (function). * LStat intrinsic: LStat Intrinsic (subroutine). ! * LTime intrinsic: LTime Intrinsic. * machine code: What is GNU Fortran?. ! * macro options: Shorthand Options. ! * main program unit, debugging: Main Program Unit. ! * main(): Main Program Unit. ! * MAIN__(): Main Program Unit. ! * Makefile example: Bug Criteria. * MAP statement: STRUCTURE UNION RECORD MAP. ! * MatMul intrinsic: MatMul Intrinsic. ! * Max intrinsic: Max Intrinsic. ! * Max0 intrinsic: Max0 Intrinsic. ! * Max1 intrinsic: Max1 Intrinsic. * MaxExponent intrinsic: MaxExponent Intrinsic. ! * maximum number of dimensions: Compiler Limits. ! * maximum rank: Compiler Limits. * maximum unit number: Large File Unit Numbers. ! * MaxLoc intrinsic: MaxLoc Intrinsic. ! * MaxVal intrinsic: MaxVal Intrinsic. ! * MClock intrinsic: MClock Intrinsic. ! * MClock8 intrinsic: MClock8 Intrinsic. ! * memory usage, of compiler: Known Bugs. ! * Merge intrinsic: Merge Intrinsic. * messages, run-time: Run-time Library Errors. ! * messages, warning: Warning Options. ! * messages, warning and error: Warnings and Errors. ! * mil intrinsics group: Intrinsic Groups. ! * MIL-STD 1753 <1>: MIL-STD 1753. ! * MIL-STD 1753 <2>: END DO. ! * MIL-STD 1753 <3>: DO WHILE. * MIL-STD 1753: Fortran Dialect Options. ! * Min intrinsic: Min Intrinsic. ! * Min0 intrinsic: Min0 Intrinsic. ! * Min1 intrinsic: Min1 Intrinsic. * MinExponent intrinsic: MinExponent Intrinsic. ! * MinLoc intrinsic: MinLoc Intrinsic. ! * MinVal intrinsic: MinVal Intrinsic. * mistakes: What is GNU Fortran?. ! * mistyped functions: Not My Type. ! * mistyped variables: Not My Type. ! * Mod intrinsic: Mod Intrinsic. ! * modifying g77: Overall Options. ! * Modulo intrinsic: Modulo Intrinsic. ! * multi-dimension arrays: Array Size. ! * MvBits intrinsic: MvBits Intrinsic. * MXUNIT: Large File Unit Numbers. ! * name space: Mangling of Names. ! * NAMELIST statement: NAMELIST. * naming conflicts: Multiple Definitions of External Names. ! * naming issues: Mangling of Names. ! * naming programs: Nothing Happens. * NaN values: Floating-point Exception Handling. ! * Nearest intrinsic: Nearest Intrinsic. ! * negative forms of options: Invoking G77. ! * negative time: Timer Wraparounds. * Netlib <1>: Increasing Precision/Range. ! * Netlib: C Interfacing Tools. * network file system: Output Assumed To Flush. ! * new users: Getting Started. ! * newbies: Getting Started. ! * NeXTStep problems: NeXTStep Problems. * NFS: Output Assumed To Flush. ! * NInt intrinsic: NInt Intrinsic. * nonportable conversions: Nonportable Conversions. ! * Not intrinsic: Not Intrinsic. ! * nothing happens: Nothing Happens. ! * null arguments: Ugly Null Arguments. * null byte, trailing: Character and Hollerith Constants. ! * null CHARACTER strings: Character Type. ! * number of continuation lines: Continuation Line. ! * number of dimensions, maximum: Compiler Limits. ! * number of trips: Loops. ! * O edit descriptor: I/O. * octal constants: Double Quote Meaning. ! * omitting arguments: Ugly Null Arguments. * one-trip DO loops: Fortran Dialect Options. ! * open angle: Character Set. ! * open bracket: Character Set. * OPEN statement: OPEN CLOSE and INQUIRE Keywords. ! * optimization, better: Better Optimization. ! * optimization, for Pentium: Aligned Data. ! * optimize options: Optimize Options. ! * options, --driver <1>: Changes. ! * options, --driver: News. * options, -falias-check <1>: Aliasing Assumed To Work. ! * options, -falias-check: Code Gen Options. * options, -fargument-alias <1>: Aliasing Assumed To Work. ! * options, -fargument-alias: Code Gen Options. * options, -fargument-noalias <1>: Aliasing Assumed To Work. ! * options, -fargument-noalias: Code Gen Options. * options, -fbadu77-intrinsics-delete: Fortran Dialect Options. * options, -fbadu77-intrinsics-disable: Fortran Dialect Options. * options, -fbadu77-intrinsics-enable: Fortran Dialect Options. * options, -fbadu77-intrinsics-hide: Fortran Dialect Options. ! * options, -fcaller-saves: Optimize Options. * options, -fcase-initcap: Fortran Dialect Options. * options, -fcase-lower: Fortran Dialect Options. * options, -fcase-preserve: Fortran Dialect Options. * options, -fcase-strict-lower: Fortran Dialect Options. * options, -fcase-strict-upper: Fortran Dialect Options. * options, -fcase-upper: Fortran Dialect Options. ! * options, -fdelayed-branch: Optimize Options. * options, -fdollar-ok: Fortran Dialect Options. ! * options, -femulate-complex: Code Gen Options. ! * options, -fexpensive-optimizations: Optimize Options. * options, -ff2c-intrinsics-delete: Fortran Dialect Options. * options, -ff2c-intrinsics-disable: Fortran Dialect Options. * options, -ff2c-intrinsics-enable: Fortran Dialect Options. * options, -ff2c-intrinsics-hide: Fortran Dialect Options. ! * options, -ff2c-library: Code Gen Options. ! * options, -ff66: Shorthand Options. ! * options, -ff77: Shorthand Options. * options, -ff90: Fortran Dialect Options. * options, -ff90-intrinsics-delete: Fortran Dialect Options. * options, -ff90-intrinsics-disable: Fortran Dialect Options. * options, -ff90-intrinsics-enable: Fortran Dialect Options. * options, -ff90-intrinsics-hide: Fortran Dialect Options. ! * options, -ffast-math: Optimize Options. ! * options, -ffinite-math-only: Optimize Options. * options, -ffixed-line-length-N: Fortran Dialect Options. ! * options, -ffloat-store: Optimize Options. ! * options, -fforce-addr: Optimize Options. ! * options, -fforce-mem: Optimize Options. * options, -ffree-form: Fortran Dialect Options. * options, -fgnu-intrinsics-delete: Fortran Dialect Options. * options, -fgnu-intrinsics-disable: Fortran Dialect Options. * options, -fgnu-intrinsics-enable: Fortran Dialect Options. * options, -fgnu-intrinsics-hide: Fortran Dialect Options. * options, -fGROUP-intrinsics-hide: Overly Convenient Options. * options, -finit-local-zero <1>: Overly Convenient Options. ! * options, -finit-local-zero: Code Gen Options. * options, -fintrin-case-any: Fortran Dialect Options. * options, -fintrin-case-initcap: Fortran Dialect Options. * options, -fintrin-case-lower: Fortran Dialect Options. * options, -fintrin-case-upper: Fortran Dialect Options. * options, -fmatch-case-any: Fortran Dialect Options. * options, -fmatch-case-initcap: Fortran Dialect Options. * options, -fmatch-case-lower: Fortran Dialect Options. * options, -fmatch-case-upper: Fortran Dialect Options. * options, -fmil-intrinsics-delete: Fortran Dialect Options. * options, -fmil-intrinsics-disable: Fortran Dialect Options. * options, -fmil-intrinsics-enable: Fortran Dialect Options. * options, -fmil-intrinsics-hide: Fortran Dialect Options. * options, -fno-argument-noalias-global <1>: Aliasing Assumed To Work. ! * options, -fno-argument-noalias-global: Code Gen Options. * options, -fno-automatic <1>: Overly Convenient Options. ! * options, -fno-automatic: Code Gen Options. * options, -fno-backslash: Fortran Dialect Options. ! * options, -fno-common: Code Gen Options. * options, -fno-f2c <1>: Avoid f2c Compatibility. ! * options, -fno-f2c: Code Gen Options. ! * options, -fno-f77: Shorthand Options. * options, -fno-fixed-form: Fortran Dialect Options. ! * options, -fno-globals: Code Gen Options. ! * options, -fno-ident: Code Gen Options. ! * options, -fno-inline: Optimize Options. ! * options, -fno-move-all-movables: Optimize Options. ! * options, -fno-reduce-all-givs: Optimize Options. ! * options, -fno-rerun-loop-opt: Optimize Options. ! * options, -fno-second-underscore: Code Gen Options. ! * options, -fno-silent: Overall Options. ! * options, -fno-trapping-math: Optimize Options. ! * options, -fno-ugly: Shorthand Options. * options, -fno-ugly-args: Fortran Dialect Options. * options, -fno-ugly-init: Fortran Dialect Options. ! * options, -fno-underscoring <1>: Names. ! * options, -fno-underscoring: Code Gen Options. * options, -fonetrip: Fortran Dialect Options. ! * options, -fpack-struct: Code Gen Options. ! * options, -fpcc-struct-return: Code Gen Options. ! * options, -fpedantic: Warning Options. ! * options, -fPIC: News. ! * options, -freg-struct-return: Code Gen Options. ! * options, -frerun-cse-after-loop: Optimize Options. ! * options, -fschedule-insns: Optimize Options. ! * options, -fschedule-insns2: Optimize Options. ! * options, -fset-g77-defaults: Overall Options. ! * options, -fshort-double: Code Gen Options. * options, -fsource-case-lower: Fortran Dialect Options. * options, -fsource-case-preserve: Fortran Dialect Options. * options, -fsource-case-upper: Fortran Dialect Options. ! * options, -fstrength-reduce: Optimize Options. * options, -fsymbol-case-any: Fortran Dialect Options. * options, -fsymbol-case-initcap: Fortran Dialect Options. * options, -fsymbol-case-lower: Fortran Dialect Options. * options, -fsymbol-case-upper: Fortran Dialect Options. ! * options, -fsyntax-only: Warning Options. * options, -ftypeless-boz: Fortran Dialect Options. ! * options, -fugly: Shorthand Options. * options, -fugly-assign: Fortran Dialect Options. * options, -fugly-assumed: Fortran Dialect Options. * options, -fugly-comma: Fortran Dialect Options. * options, -fugly-complex: Fortran Dialect Options. * options, -fugly-logint: Fortran Dialect Options. * options, -funix-intrinsics-delete: Fortran Dialect Options. * options, -funix-intrinsics-disable: Fortran Dialect Options. * options, -funix-intrinsics-enable: Fortran Dialect Options. * options, -funix-intrinsics-hide: Fortran Dialect Options. ! * options, -funroll-all-loops: Optimize Options. ! * options, -funroll-loops: Optimize Options. ! * options, -funsafe-math-optimizations: Optimize Options. ! * options, -fversion: Overall Options. * options, -fvxt: Fortran Dialect Options. * options, -fvxt-intrinsics-delete: Fortran Dialect Options. * options, -fvxt-intrinsics-disable: Fortran Dialect Options. * options, -fvxt-intrinsics-enable: Fortran Dialect Options. * options, -fvxt-intrinsics-hide: Fortran Dialect Options. ! * options, -fzeros: Code Gen Options. ! * options, -g: Debugging Options. ! * options, -I-: Directory Options. ! * options, -Idir: Directory Options. ! * options, -malign-double <1>: Aligned Data. ! * options, -malign-double: Optimize Options. ! * options, -Nl: Compiler Limits. ! * options, -Nx: Compiler Limits. ! * options, -pedantic: Warning Options. ! * options, -pedantic-errors: Warning Options. ! * options, -v: G77 and GCC. ! * options, -W: Warning Options. ! * options, -w: Warning Options. ! * options, -Waggregate-return: Warning Options. ! * options, -Wall: Warning Options. ! * options, -Wcomment: Warning Options. ! * options, -Wconversion: Warning Options. ! * options, -Werror: Warning Options. ! * options, -Wformat: Warning Options. ! * options, -Wid-clash-LEN: Warning Options. ! * options, -Wimplicit: Warning Options. ! * options, -Wlarger-than-LEN: Warning Options. ! * options, -Wno-globals: Warning Options. ! * options, -Wparentheses: Warning Options. ! * options, -Wredundant-decls: Warning Options. ! * options, -Wshadow: Warning Options. ! * options, -Wsurprising: Warning Options. ! * options, -Wswitch: Warning Options. ! * options, -Wswitch-default: Warning Options. ! * options, -Wswitch-enum: Warning Options. ! * options, -Wtraditional: Warning Options. ! * options, -Wuninitialized: Warning Options. ! * options, -Wunused: Warning Options. ! * options, -x f77-cpp-input: LEX. ! * options, adding: Adding Options. ! * options, code generation: Code Gen Options. ! * options, debugging: Debugging Options. * options, dialect: Fortran Dialect Options. ! * options, directory search: Directory Options. ! * options, GNU Fortran command: Invoking G77. ! * options, macro: Shorthand Options. ! * options, negative forms: Invoking G77. ! * options, optimization: Optimize Options. ! * options, overall: Overall Options. * options, overly convenient: Overly Convenient Options. * options, preprocessor: Preprocessor Options. ! * options, shorthand: Shorthand Options. ! * options, warnings: Warning Options. * Or intrinsic <1>: Bit Operations on Floating-point Data. ! * Or intrinsic: Or Intrinsic. * order of evaluation, side effects: Order of Side Effects. ! * ordering, array: Arrays. ! * other intrinsics: Other Intrinsics. * output, flushing: Output Assumed To Flush. ! * overall options: Overall Options. ! * overflow: Warning Options. * overlapping arguments: Aliasing Assumed To Work. * overlays: Aliasing Assumed To Work. * overly convenient options: Overly Convenient Options. * overwritten data: Strange Behavior at Run Time. ! * Pack intrinsic: Pack Intrinsic. ! * padding: Known Bugs. ! * parallel processing: Support for Threads. * PARAMETER statement <1>: Old-style PARAMETER Statements. * PARAMETER statement: Intrinsics in PARAMETER Statements. ! * parameters, unused: Warning Options. ! * paths, search: Directory Options. * PDB: Portable Unformatted Files. * pedantic compilation: Pedantic Compilation. ! * Pentium optimizations: Aligned Data. ! * percent sign: Character Set. ! * PError intrinsic: PError Intrinsic. * placing initialization statements: Initializing Before Specifying. ! * POINTER statement: POINTER Statements. * pointers <1>: Ugly Assigned Labels. ! * pointers: Kind Notation. * Poking the bear: Philosophy of Code Generation. ! * porting, simplify: Simplify Porting. ! * pound sign: Character Set. ! * Precision intrinsic: Precision Intrinsic. * precision, increasing: Increasing Precision/Range. * prefix-radix constants: Fortran Dialect Options. ! * preprocessor <1>: LEX. * preprocessor <2>: Cpp-style directives. ! * preprocessor <3>: Overall Options. * preprocessor: What is GNU Fortran?. * preprocessor options: Preprocessor Options. ! * Present intrinsic: Present Intrinsic. ! * printing compilation status: Overall Options. ! * printing main source: Known Bugs. ! * printing version information <1>: Overall Options. * printing version information: What is GNU Fortran?. ! * procedures: Procedures. ! * Product intrinsic: Product Intrinsic. ! * PROGRAM statement: Main Program Unit. * programs, cc1: What is GNU Fortran?. * programs, cc1plus: What is GNU Fortran?. ! * programs, compiling: G77 and GCC. ! * programs, cpp <1>: LEX. * programs, cpp <2>: Preprocessor Options. ! * programs, cpp <3>: Overall Options. * programs, cpp: What is GNU Fortran?. * programs, f771: What is GNU Fortran?. ! * programs, ratfor: Overall Options. ! * programs, speeding up: Faster Programs. ! * programs, test: Nothing Happens. ! * projects: Projects. ! * Q edit descriptor: Q Edit Descriptor. ! * QAbs intrinsic: QAbs Intrinsic. ! * QACos intrinsic: QACos Intrinsic. ! * QACosD intrinsic: QACosD Intrinsic. ! * QASin intrinsic: QASin Intrinsic. ! * QASinD intrinsic: QASinD Intrinsic. ! * QATan intrinsic: QATan Intrinsic. ! * QATan2 intrinsic: QATan2 Intrinsic. ! * QATan2D intrinsic: QATan2D Intrinsic. ! * QATanD intrinsic: QATanD Intrinsic. ! * QCos intrinsic: QCos Intrinsic. ! * QCosD intrinsic: QCosD Intrinsic. ! * QCosH intrinsic: QCosH Intrinsic. ! * QDiM intrinsic: QDiM Intrinsic. ! * QExp intrinsic: QExp Intrinsic. ! * QExt intrinsic: QExt Intrinsic. ! * QExtD intrinsic: QExtD Intrinsic. ! * QFloat intrinsic: QFloat Intrinsic. ! * QInt intrinsic: QInt Intrinsic. ! * QLog intrinsic: QLog Intrinsic. ! * QLog10 intrinsic: QLog10 Intrinsic. ! * QMax1 intrinsic: QMax1 Intrinsic. ! * QMin1 intrinsic: QMin1 Intrinsic. ! * QMod intrinsic: QMod Intrinsic. ! * QNInt intrinsic: QNInt Intrinsic. ! * QSin intrinsic: QSin Intrinsic. ! * QSinD intrinsic: QSinD Intrinsic. ! * QSinH intrinsic: QSinH Intrinsic. ! * QSqRt intrinsic: QSqRt Intrinsic. ! * QTan intrinsic: QTan Intrinsic. ! * QTanD intrinsic: QTanD Intrinsic. ! * QTanH intrinsic: QTanH Intrinsic. ! * question mark: Character Set. * questionable instructions: What is GNU Fortran?. ! * Radix intrinsic: Radix Intrinsic. ! * Rand intrinsic: Rand Intrinsic. * Random_Number intrinsic: Random_Number Intrinsic. * Random_Seed intrinsic: Random_Seed Intrinsic. ! * range checking: Code Gen Options. ! * Range intrinsic: Range Intrinsic. * range, increasing: Increasing Precision/Range. ! * rank, maximum: Compiler Limits. ! * ratfor: Overall Options. ! * Ratfor preprocessor: Overall Options. ! * READONLY: READONLY Keyword. * reads and writes, scheduling: Aliasing Assumed To Work. ! * Real intrinsic <1>: Real Intrinsic. * Real intrinsic: REAL() and AIMAG() of Complex. * real part: Ugly Complex Part Extraction. ! * REAL(KIND=1) type: Compiler Types. ! * REAL(KIND=2) type: Compiler Types. * REAL*16 support: Full Support for Compiler Types. ! * RealPart intrinsic: RealPart Intrinsic. ! * recent versions <1>: Changes. ! * recent versions: News. * RECORD statement: STRUCTURE UNION RECORD MAP. ! * recursion, lack of: RECURSIVE Keyword. ! * RECURSIVE keyword: RECURSIVE Keyword. ! * reference works: Language. * Rename intrinsic <1>: Rename Intrinsic (function). * Rename intrinsic: Rename Intrinsic (subroutine). ! * Repeat intrinsic: Repeat Intrinsic. ! * reporting bugs: Bugs. ! * reporting compilation status: Overall Options. ! * Reshape intrinsic: Reshape Intrinsic. * results, inconsistent: Floating-point Errors. ! * RETURN statement <1>: Alternate Returns. ! * RETURN statement: Functions. ! * return type of functions: Functions. ! * right angle: Character Set. ! * right bracket: Character Set. * rounding errors: Floating-point Errors. ! * row-major ordering: Arrays. ! * RRSpacing intrinsic: RRSpacing Intrinsic. ! * RShift intrinsic: RShift Intrinsic. * run-time, dynamic allocation: Arbitrary Concatenation. ! * run-time, initialization: Startup Code. * run-time, library: What is GNU Fortran?. ! * run-time, options: Code Gen Options. ! * SAVE statement: Code Gen Options. * saved variables: Variables Assumed To Be Saved. ! * Scale intrinsic: Scale Intrinsic. ! * Scan intrinsic: Scan Intrinsic. * scheduling of reads and writes: Aliasing Assumed To Work. * scope <1>: Scope and Classes of Names. * scope: Scope of Names and Labels. ! * search path: Directory Options. ! * search paths, for included files: Directory Options. ! * Secnds intrinsic: Secnds Intrinsic. * Second intrinsic <1>: Second Intrinsic (subroutine). * Second intrinsic: Second Intrinsic (function). * segmentation violation <1>: Strange Behavior at Run Time. ! * segmentation violation <2>: Stack Overflow. ! * segmentation violation: NeXTStep Problems. * Selected_Int_Kind intrinsic: Selected_Int_Kind Intrinsic. * Selected_Real_Kind intrinsic: Selected_Real_Kind Intrinsic. ! * semicolon <1>: Character Set. * semicolon: Statements Comments Lines. ! * sequence numbers: Better Source Model. * Set_Exponent intrinsic: Set_Exponent Intrinsic. ! * Shape intrinsic: Shape Intrinsic. ! * SHARED: READONLY Keyword. * Shift intrinsic: Bit Operations on Floating-point Data. ! * Short intrinsic: Short Intrinsic. ! * short source lines: Short Lines. ! * short time: Timer Wraparounds. ! * shorthand options: Shorthand Options. * side effects, order of evaluation: Order of Side Effects. ! * Sign intrinsic: Sign Intrinsic. * signal 11: Signal 11 and Friends. * Signal intrinsic <1>: Signal Intrinsic (function). * Signal intrinsic: Signal Intrinsic (subroutine). ! * signature of procedures: Procedures. ! * simplify porting: Simplify Porting. ! * Sin intrinsic: Sin Intrinsic. ! * SinD intrinsic: SinD Intrinsic. ! * SinH intrinsic: SinH Intrinsic. ! * Sleep intrinsic: Sleep Intrinsic. ! * Sngl intrinsic: Sngl Intrinsic. ! * SnglQ intrinsic: SnglQ Intrinsic. * Solaris: Strange Behavior at Run Time. ! * source code <1>: Case Sensitivity. ! * source code <2>: Source Form. ! * source code <3>: Lines. * source code: What is GNU Fortran?. * source file: What is GNU Fortran?. ! * source file format <1>: Case Sensitivity. ! * source file format <2>: Source Form. ! * source file format <3>: Lines. * source file format: Fortran Dialect Options. ! * source format <1>: Source Form. ! * source format: Lines. ! * source lines, long: Long Lines. ! * source lines, short: Short Lines. ! * space <1>: Lines. ! * space: Character Set. * space, endless printing of: Strange Behavior at Run Time. ! * space, padding with: Short Lines. ! * Spacing intrinsic: Spacing Intrinsic. ! * SPC <1>: Lines. ! * SPC: Character Set. ! * speed, of compiler: Known Bugs. ! * speed, of loops: Optimize Options. ! * speed, of programs: Faster Programs. * spills of floating-point results: Floating-point Errors. ! * Spread intrinsic: Spread Intrinsic. ! * SqRt intrinsic: SqRt Intrinsic. ! * SRand intrinsic: SRand Intrinsic. ! * stack, 387 coprocessor: News. ! * stack, aligned: Aligned Data. ! * stack, overflow: Stack Overflow. ! * standard, ANSI FORTRAN 77: Language. ! * standard, support for: Standard Support. ! * startup code: Startup Code. * Stat intrinsic <1>: Stat Intrinsic (function). * Stat intrinsic: Stat Intrinsic (subroutine). * statement labels, assigned: Assigned Statement Labels. * statements, ACCEPT: TYPE and ACCEPT I/O Statements. * statements, ASSIGN <1>: Assigned Statement Labels. * statements, ASSIGN: Ugly Assigned Labels. ! * statements, AUTOMATIC: AUTOMATIC Statement. * statements, BLOCK DATA <1>: Multiple Definitions of External Names. * statements, BLOCK DATA: Block Data and Libraries. * statements, CLOSE: OPEN CLOSE and INQUIRE Keywords. * statements, COMMON <1>: Multiple Definitions of External Names. ! * statements, COMMON: Common Blocks. ! * statements, COMPLEX: Complex Variables. ! * statements, CYCLE: CYCLE and EXIT. ! * statements, DATA <1>: Known Bugs. ! * statements, DATA: Code Gen Options. ! * statements, DECODE: ENCODE and DECODE. * statements, DIMENSION <1>: Array Bounds Expressions. ! * statements, DIMENSION <2>: Adjustable Arrays. ! * statements, DIMENSION: Arrays. ! * statements, DO <1>: Loops. ! * statements, DO: Warning Options. ! * statements, ENCODE: ENCODE and DECODE. * statements, ENTRY: Alternate Entry Points. * statements, EQUIVALENCE: Local Equivalence Areas. ! * statements, EXIT: CYCLE and EXIT. * statements, FORMAT: Expressions in FORMAT Statements. ! * statements, FUNCTION <1>: Functions. ! * statements, FUNCTION: Procedures. * statements, GOTO: Assigned Statement Labels. * statements, IMPLICIT CHARACTER*(*): Limitation on Implicit Declarations. * statements, INQUIRE: OPEN CLOSE and INQUIRE Keywords. * statements, MAP: STRUCTURE UNION RECORD MAP. ! * statements, NAMELIST: NAMELIST. * statements, OPEN: OPEN CLOSE and INQUIRE Keywords. * statements, PARAMETER <1>: Old-style PARAMETER Statements. * statements, PARAMETER: Intrinsics in PARAMETER Statements. ! * statements, POINTER: POINTER Statements. ! * statements, PROGRAM: Main Program Unit. * statements, RECORD: STRUCTURE UNION RECORD MAP. ! * statements, RETURN <1>: Alternate Returns. ! * statements, RETURN: Functions. ! * statements, SAVE: Code Gen Options. * statements, separated by semicolon: Statements Comments Lines. * statements, STRUCTURE: STRUCTURE UNION RECORD MAP. ! * statements, SUBROUTINE <1>: Alternate Returns. ! * statements, SUBROUTINE: Procedures. * statements, TYPE: TYPE and ACCEPT I/O Statements. * statements, UNION: STRUCTURE UNION RECORD MAP. ! * STATIC: AUTOMATIC Statement. * static variables: Variables Assumed To Be Saved. ! * status, compilation: Overall Options. * storage association: Aliasing Assumed To Work. ! * strings, empty: Character Type. * STRUCTURE statement: STRUCTURE UNION RECORD MAP. ! * structures: Known Bugs. * submodels: Use Submodel Options. ! * SUBROUTINE statement <1>: Alternate Returns. ! * SUBROUTINE statement: Procedures. ! * subroutines: Alternate Returns. ! * subscript checking: Code Gen Options. ! * substring checking: Code Gen Options. ! * suffixes, file name: Overall Options. ! * Sum intrinsic: Sum Intrinsic. ! * support, Alpha: Known Bugs. ! * support, ELF: News. * support, f77: Backslash in Constants. ! * support, FORTRAN 77: Standard Support. ! * support, Fortran 90: Fortran 90 Support. ! * support, gdb: Debugger Problems. ! * suppressing warnings: Warning Options. ! * symbol names <1>: Names. * symbol names: Fortran Dialect Options. * symbol names, scope and classes: Scope and Classes of Names. ! * symbol names, transforming: Code Gen Options. ! * symbol names, underscores: Code Gen Options. * SymLnk intrinsic <1>: SymLnk Intrinsic (function). * SymLnk intrinsic: SymLnk Intrinsic (subroutine). * synchronous write errors: Output Assumed To Flush. ! * syntax checking: Warning Options. * System intrinsic <1>: System Intrinsic (function). * System intrinsic: System Intrinsic (subroutine). * System_Clock intrinsic: System_Clock Intrinsic. ! * tab character: Tabs. * table of intrinsics: Table of Intrinsic Functions. ! * Tan intrinsic: Tan Intrinsic. ! * TanD intrinsic: TanD Intrinsic. ! * TanH intrinsic: TanH Intrinsic. ! * test programs: Nothing Happens. ! * textbooks: Language. ! * threads: Support for Threads. * Time intrinsic <1>: Time Intrinsic (VXT). * Time intrinsic: Time Intrinsic (UNIX). ! * Time8 intrinsic: Time8 Intrinsic. ! * Tiny intrinsic: Tiny Intrinsic. * Toolpack: Increasing Precision/Range. ! * trailing comma: Ugly Null Arguments. ! * trailing comment <1>: LEX. ! * trailing comment <2>: Trailing Comment. * trailing comment: Statements Comments Lines. * trailing null byte: Character and Hollerith Constants. ! * Transfer intrinsic: Transfer Intrinsic. ! * transforming symbol names <1>: Names. ! * transforming symbol names: Code Gen Options. * translation of user programs: What is GNU Fortran?. ! * Transpose intrinsic: Transpose Intrinsic. ! * Trim intrinsic: Trim Intrinsic. ! * trips, number of: Loops. * truncation, of floating-point values: Floating-point Errors. ! * truncation, of long lines: Long Lines. * TtyNam intrinsic <1>: TtyNam Intrinsic (function). * TtyNam intrinsic: TtyNam Intrinsic (subroutine). * TYPE statement: TYPE and ACCEPT I/O Statements. ! * types, COMPLEX(KIND=1): Compiler Types. ! * types, COMPLEX(KIND=2): Compiler Types. ! * types, constants <1>: Compiler Constants. ! * types, constants <2>: Constants. * types, constants: Fortran Dialect Options. ! * types, DOUBLE COMPLEX: Compiler Types. ! * types, DOUBLE PRECISION: Compiler Types. ! * types, file: Overall Options. * types, Fortran/C: C Access to Type Information. ! * types, INTEGER(KIND=1): Compiler Types. ! * types, INTEGER(KIND=2): Compiler Types. ! * types, INTEGER(KIND=3): Compiler Types. ! * types, INTEGER(KIND=6): Compiler Types. * types, INTEGER*2: Popular Non-standard Types. * types, INTEGER*8: Full Support for Compiler Types. ! * types, LOGICAL(KIND=1): Compiler Types. ! * types, LOGICAL(KIND=2): Compiler Types. ! * types, LOGICAL(KIND=3): Compiler Types. ! * types, LOGICAL(KIND=6): Compiler Types. * types, LOGICAL*1: Popular Non-standard Types. ! * types, of data: Compiler Types. ! * types, REAL(KIND=1): Compiler Types. ! * types, REAL(KIND=2): Compiler Types. * types, REAL*16: Full Support for Compiler Types. ! * UBound intrinsic: UBound Intrinsic. ! * ugly features <1>: Distensions. ! * ugly features: Shorthand Options. * UMask intrinsic <1>: UMask Intrinsic (function). * UMask intrinsic: UMask Intrinsic (subroutine). ! * undefined behavior: Bug Criteria. ! * undefined function value: Bug Criteria. * undefined reference (_main): Cannot Link Fortran Programs. ! * underscore <1>: Mangling of Names. * underscore <2>: Underscores in Symbol Names. ! * underscore <3>: Character Set. ! * underscore: Code Gen Options. * unformatted files: Portable Unformatted Files. * uninitialized variables <1>: Variables Assumed To Be Zero. ! * uninitialized variables <2>: Code Gen Options. ! * uninitialized variables: Warning Options. * UNION statement: STRUCTURE UNION RECORD MAP. * unit numbers: Large File Unit Numbers. ! * UNIX f77: Shorthand Options. * UNIX intrinsics: Fortran Dialect Options. * Unlink intrinsic <1>: Unlink Intrinsic (function). * Unlink intrinsic: Unlink Intrinsic (subroutine). ! * Unpack intrinsic: Unpack Intrinsic. * unrecognized file format: What is GNU Fortran?. * unresolved reference (various): Cannot Link Fortran Programs. ! * unrolling loops: Optimize Options. ! * UNSAVE: AUTOMATIC Statement. ! * unsupported warnings: Warning Options. ! * unused arguments <1>: Unused Arguments. ! * unused arguments: Warning Options. ! * unused dummies: Warning Options. ! * unused parameters: Warning Options. ! * unused variables: Warning Options. ! * uppercase letters: Case Sensitivity. ! * user-visible changes: Changes. * variables, assumed to be zero: Variables Assumed To Be Zero. ! * variables, automatic: AUTOMATIC Statement. ! * variables, initialization of: Code Gen Options. ! * variables, mistyped: Not My Type. * variables, retaining values across calls: Variables Assumed To Be Saved. ! * variables, uninitialized <1>: Code Gen Options. ! * variables, uninitialized: Warning Options. ! * variables, unused: Warning Options. ! * Verify intrinsic: Verify Intrinsic. ! * version information, printing <1>: Overall Options. * version information, printing: What is GNU Fortran?. ! * versions, recent <1>: Changes. ! * versions, recent: News. ! * VXT extensions <1>: VXT Fortran. * VXT extensions: Fortran Dialect Options. * VXT intrinsics: Fortran Dialect Options. * vxtidate_y2kbuggy_0: Year 2000 (Y2K) Problems. * warnings: What is GNU Fortran?. ! * warnings vs errors: Warnings and Errors. ! * warnings, all: Warning Options. ! * warnings, extra: Warning Options. ! * warnings, global names <1>: Code Gen Options. ! * warnings, global names: Warning Options. ! * warnings, implicit declaration: Warning Options. ! * warnings, suppressing: Warning Options. ! * warnings, unsupported: Warning Options. * wisdom: Collected Fortran Wisdom. * wraparound: Run-time Environment Limits. ! * wraparound, timings <1>: Secnds Intrinsic. * wraparound, timings <2>: DTime Intrinsic (function). ! * wraparound, timings <3>: Time8 Intrinsic. * wraparound, timings <4>: Time Intrinsic (UNIX). * wraparound, timings <5>: System_Clock Intrinsic. * wraparound, timings <6>: Second Intrinsic (subroutine). * wraparound, timings <7>: Second Intrinsic (function). ! * wraparound, timings <8>: MClock8 Intrinsic. ! * wraparound, timings <9>: MClock Intrinsic. * wraparound, timings <10>: ETime Intrinsic (function). * wraparound, timings <11>: ETime Intrinsic (subroutine). * wraparound, timings <12>: DTime Intrinsic (subroutine). ! * wraparound, timings: CPU_Time Intrinsic. * wraparound, Y10K <1>: Time Intrinsic (VXT). * wraparound, Y10K <2>: IDate Intrinsic (UNIX). * wraparound, Y10K <3>: FDate Intrinsic (function). * wraparound, Y10K <4>: FDate Intrinsic (subroutine). * wraparound, Y10K: Date_and_Time Intrinsic. * wraparound, Y2K: IDate Intrinsic (VXT). * writes, flushing: Output Assumed To Flush. * writing code: Collected Fortran Wisdom. * x86 floating-point: Floating-point precision. * x86 FPU stack: Inconsistent Calling Sequences. ! * XOr intrinsic: XOr Intrinsic. * Y10K compliance <1>: Time Intrinsic (VXT). * Y10K compliance <2>: Year 10000 (Y10K) Problems. * Y10K compliance <3>: IDate Intrinsic (UNIX). * Y10K compliance <4>: FDate Intrinsic (function). * Y10K compliance <5>: FDate Intrinsic (subroutine). * Y10K compliance: Date_and_Time Intrinsic. ! * Y2K compliance <1>: Y2KBAD. * Y2K compliance <2>: IDate Intrinsic (VXT). ! * Y2K compliance <3>: Date Intrinsic. * Y2K compliance: Year 2000 (Y2K) Problems. * y2kbuggy: Year 2000 (Y2K) Problems. * Year 10000 compliance <1>: Time Intrinsic (VXT). * Year 10000 compliance <2>: Year 10000 (Y10K) Problems. * Year 10000 compliance <3>: IDate Intrinsic (UNIX). * Year 10000 compliance <4>: FDate Intrinsic (function). * Year 10000 compliance <5>: FDate Intrinsic (subroutine). * Year 10000 compliance: Date_and_Time Intrinsic. ! * Year 2000 compliance <1>: Y2KBAD. * Year 2000 compliance <2>: IDate Intrinsic (VXT). ! * Year 2000 compliance <3>: Date Intrinsic. * Year 2000 compliance: Year 2000 (Y2K) Problems. ! * Z edit descriptor <1>: Fortran 90 Features. ! * Z edit descriptor: I/O. ! * ZAbs intrinsic: ZAbs Intrinsic. ! * ZCos intrinsic: ZCos Intrinsic. * zero byte, trailing: Character and Hollerith Constants. * zero-initialized variables: Variables Assumed To Be Zero. ! * zero-length CHARACTER: Character Type. * zero-trip DO loops: Fortran Dialect Options. ! * ZExp intrinsic: ZExp Intrinsic. ! * ZExt intrinsic: ZExt Intrinsic. ! * ZLog intrinsic: ZLog Intrinsic. ! * ZSin intrinsic: ZSin Intrinsic. ! * ZSqRt intrinsic: ZSqRt Intrinsic.  Tag Table: Node: Top2363 ! Node: Copying4320 ! Node: GNU Free Documentation License23520 ! Node: Contributors45929 ! Node: Funding49320 ! Node: Funding GNU Fortran51832 ! Node: Getting Started53047 ! Node: What is GNU Fortran?55296 ! Node: G77 and GCC65184 ! Node: Invoking G7766387 ! Node: Option Summary68325 ! Node: Overall Options73183 ! Node: Shorthand Options79771 ! Node: Fortran Dialect Options82068 ! Node: Warning Options93325 ! Node: Debugging Options102242 ! Node: Optimize Options103832 ! Ref: Optimize Options-Footnote-1109850 ! Node: Preprocessor Options110543 ! Node: Directory Options111724 ! Node: Code Gen Options113036 ! Node: Environment Variables127943 ! Node: News128398 ! Node: Changes183269 ! Node: Language211668 ! Node: Direction of Language Development213869 ! Node: Standard Support220109 ! Node: No Passing External Assumed-length220830 ! Node: No Passing Dummy Assumed-length221307 ! Node: No Pathological Implied-DO221822 ! Node: No Useless Implied-DO222509 ! Node: Conformance223240 ! Node: Notation Used225263 ! Node: Terms and Concepts229469 ! Node: Syntactic Items229981 ! Node: Statements Comments Lines230663 ! Node: Scope of Names and Labels232528 ! Node: Characters Lines Sequence232958 ! Node: Character Set233564 ! Node: Lines234565 ! Node: Continuation Line237041 ! Node: Statements237996 ! Node: Statement Labels238952 ! Node: Order239644 ! Node: INCLUDE240529 ! Node: Cpp-style directives243301 ! Node: Data Types and Constants243756 ! Node: Types247277 ! Node: Double Notation248366 ! Node: Star Notation249438 ! Node: Kind Notation252383 ! Node: Constants260803 ! Node: Integer Type262319 ! Node: Character Type262917 ! Node: Expressions263681 ! Node: %LOC()264097 ! Node: Specification Statements266827 ! Node: NAMELIST267284 ! Node: DOUBLE COMPLEX268035 ! Node: Control Statements268289 ! Node: DO WHILE268781 ! Node: END DO269086 ! Node: Construct Names270093 ! Node: CYCLE and EXIT270833 ! Node: Functions and Subroutines273597 ! Node: %VAL()274243 ! Node: %REF()275607 ! Node: %DESCR()277435 ! Node: Generics and Specifics279568 ! Node: REAL() and AIMAG() of Complex286770 ! Node: CMPLX() of DOUBLE PRECISION288603 ! Node: MIL-STD 1753290329 ! Node: f77/f2c Intrinsics290671 ! Node: Table of Intrinsic Functions291241 ! Node: Abort Intrinsic307953 ! Node: Abs Intrinsic308217 ! Node: Access Intrinsic309080 ! Node: AChar Intrinsic309916 ! Node: ACos Intrinsic310438 ! Node: AdjustL Intrinsic310899 ! Node: AdjustR Intrinsic311224 ! Node: AImag Intrinsic311550 ! Node: AInt Intrinsic312355 ! Node: Alarm Intrinsic312983 ! Node: All Intrinsic313815 ! Node: Allocated Intrinsic314127 ! Node: ALog Intrinsic314456 ! Node: ALog10 Intrinsic314846 ! Node: AMax0 Intrinsic315244 ! Node: AMax1 Intrinsic315729 ! Node: AMin0 Intrinsic316182 ! Node: AMin1 Intrinsic316666 ! Node: AMod Intrinsic317118 ! Node: And Intrinsic317544 ! Node: ANInt Intrinsic318050 ! Node: Any Intrinsic318814 ! Node: ASin Intrinsic319121 ! Node: Associated Intrinsic319579 ! Node: ATan Intrinsic319913 ! Node: ATan2 Intrinsic320379 ! Node: BesJ0 Intrinsic320930 ! Node: BesJ1 Intrinsic321391 ! Node: BesJN Intrinsic321852 ! Node: BesY0 Intrinsic322383 ! Node: BesY1 Intrinsic322845 ! Node: BesYN Intrinsic323307 ! Node: Bit_Size Intrinsic323842 ! Node: BTest Intrinsic324501 ! Node: CAbs Intrinsic325221 ! Node: CCos Intrinsic325608 ! Node: Ceiling Intrinsic326000 ! Node: CExp Intrinsic326322 ! Node: Char Intrinsic326714 ! Node: ChDir Intrinsic (subroutine)327968 ! Node: ChMod Intrinsic (subroutine)328971 ! Node: CLog Intrinsic330241 ! Node: Cmplx Intrinsic330645 ! Node: Complex Intrinsic331446 ! Node: Conjg Intrinsic332892 ! Node: Cos Intrinsic333316 ! Node: CosH Intrinsic333779 ! Node: Count Intrinsic334154 ! Node: CPU_Time Intrinsic334472 ! Node: CShift Intrinsic335263 ! Node: CSin Intrinsic335585 ! Node: CSqRt Intrinsic335977 ! Node: CTime Intrinsic (subroutine)336387 ! Node: CTime Intrinsic (function)337142 ! Node: DAbs Intrinsic337776 ! Node: DACos Intrinsic338172 ! Node: DASin Intrinsic338563 ! Node: DATan Intrinsic338955 ! Node: DATan2 Intrinsic339348 ! Node: Date_and_Time Intrinsic339803 ! Node: DbesJ0 Intrinsic341167 ! Node: DbesJ1 Intrinsic341560 ! Node: DbesJN Intrinsic341946 ! Node: DbesY0 Intrinsic342402 ! Node: DbesY1 Intrinsic342788 ! Node: DbesYN Intrinsic343174 ! Node: Dble Intrinsic343628 ! Node: DCos Intrinsic344334 ! Node: DCosH Intrinsic344718 ! Node: DDiM Intrinsic345108 ! Node: DErF Intrinsic345540 ! Node: DErFC Intrinsic345909 ! Node: DExp Intrinsic346284 ! Node: Digits Intrinsic346670 ! Node: DiM Intrinsic346987 ! Node: DInt Intrinsic347486 ! Node: DLog Intrinsic347870 ! Node: DLog10 Intrinsic348255 ! Node: DMax1 Intrinsic348653 ! Node: DMin1 Intrinsic349107 ! Node: DMod Intrinsic349559 ! Node: DNInt Intrinsic349987 ! Node: Dot_Product Intrinsic350386 ! Node: DProd Intrinsic350726 ! Node: DSign Intrinsic351108 ! Node: DSin Intrinsic351547 ! Node: DSinH Intrinsic351932 ! Node: DSqRt Intrinsic352323 ! Node: DTan Intrinsic352714 ! Node: DTanH Intrinsic353099 ! Node: DTime Intrinsic (subroutine)353503 ! Node: EOShift Intrinsic354774 ! Node: Epsilon Intrinsic355113 ! Node: ErF Intrinsic355437 ! Node: ErFC Intrinsic355843 ! Node: ETime Intrinsic (subroutine)356403 ! Node: ETime Intrinsic (function)357566 ! Node: Exit Intrinsic358606 ! Node: Exp Intrinsic359115 ! Node: Exponent Intrinsic359577 ! Node: FDate Intrinsic (subroutine)359916 ! Node: FDate Intrinsic (function)360826 ! Node: FGet Intrinsic (subroutine)361598 ! Node: FGetC Intrinsic (subroutine)362435 ! Node: Float Intrinsic363312 ! Node: Floor Intrinsic363712 ! Node: Flush Intrinsic364028 ! Node: FNum Intrinsic364607 ! Node: FPut Intrinsic (subroutine)365055 ! Node: FPutC Intrinsic (subroutine)365852 ! Node: Fraction Intrinsic366699 ! Node: FSeek Intrinsic367040 ! Node: FStat Intrinsic (subroutine)367765 ! Node: FStat Intrinsic (function)369289 ! Node: FTell Intrinsic (subroutine)370578 ! Node: FTell Intrinsic (function)371251 ! Node: GError Intrinsic371768 ! Node: GetArg Intrinsic372142 ! Node: GetCWD Intrinsic (subroutine)372810 ! Node: GetCWD Intrinsic (function)373665 ! Node: GetEnv Intrinsic374284 ! Node: GetGId Intrinsic374871 ! Node: GetLog Intrinsic375177 ! Node: GetPId Intrinsic375715 ! Node: GetUId Intrinsic376023 ! Node: GMTime Intrinsic376328 ! Node: HostNm Intrinsic (subroutine)377336 ! Node: HostNm Intrinsic (function)378425 ! Node: Huge Intrinsic379267 ! Node: IAbs Intrinsic379590 ! Node: IAChar Intrinsic379981 ! Node: IAnd Intrinsic380521 ! Node: IArgC Intrinsic381009 ! Node: IBClr Intrinsic381385 ! Node: IBits Intrinsic381896 ! Node: IBSet Intrinsic382610 ! Node: IChar Intrinsic383112 ! Node: IDate Intrinsic (UNIX)384331 ! Node: IDiM Intrinsic385173 ! Node: IDInt Intrinsic385622 ! Node: IDNInt Intrinsic386015 ! Node: IEOr Intrinsic386414 ! Node: IErrNo Intrinsic386912 ! Node: IFix Intrinsic387239 ! Node: Imag Intrinsic387627 ! Node: ImagPart Intrinsic388632 ! Node: Index Intrinsic389658 ! Node: Int Intrinsic390211 ! Node: Int2 Intrinsic390926 ! Node: Int8 Intrinsic391635 ! Node: IOr Intrinsic392344 ! Node: IRand Intrinsic392824 ! Node: IsaTty Intrinsic393744 ! Node: IShft Intrinsic394168 ! Node: IShftC Intrinsic394998 ! Node: ISign Intrinsic395927 ! Node: ITime Intrinsic396377 ! Node: Kill Intrinsic (subroutine)396779 ! Node: Kind Intrinsic397615 ! Node: LBound Intrinsic397940 ! Node: Len Intrinsic398257 ! Node: Len_Trim Intrinsic398893 ! Node: LGe Intrinsic399305 ! Node: LGt Intrinsic400718 ! Node: Link Intrinsic (subroutine)401623 ! Node: LLe Intrinsic402587 ! Node: LLt Intrinsic403492 ! Node: LnBlnk Intrinsic404386 ! Node: Loc Intrinsic404789 ! Node: Log Intrinsic405220 ! Node: Log10 Intrinsic405811 ! Node: Logical Intrinsic406353 ! Node: Long Intrinsic406676 ! Node: LShift Intrinsic407200 ! Node: LStat Intrinsic (subroutine)408236 ! Node: LStat Intrinsic (function)410047 ! Node: LTime Intrinsic411609 ! Node: MatMul Intrinsic412613 ! Node: Max Intrinsic412931 ! Node: Max0 Intrinsic413482 ! Node: Max1 Intrinsic413933 ! Node: MaxExponent Intrinsic414417 ! Node: MaxLoc Intrinsic414757 ! Node: MaxVal Intrinsic415084 ! Node: MClock Intrinsic415406 ! Node: MClock8 Intrinsic416304 ! Node: Merge Intrinsic417492 ! Node: Min Intrinsic417808 ! Node: Min0 Intrinsic418359 ! Node: Min1 Intrinsic418810 ! Node: MinExponent Intrinsic419294 ! Node: MinLoc Intrinsic419634 ! Node: MinVal Intrinsic419961 ! Node: Mod Intrinsic420280 ! Node: Modulo Intrinsic420803 ! Node: MvBits Intrinsic421122 ! Node: Nearest Intrinsic421988 ! Node: NInt Intrinsic422312 ! Node: Not Intrinsic423150 ! Node: Or Intrinsic423545 ! Node: Pack Intrinsic424043 ! Node: PError Intrinsic424353 ! Node: Precision Intrinsic424807 ! Node: Present Intrinsic425142 ! Node: Product Intrinsic425472 ! Node: Radix Intrinsic425798 ! Node: Rand Intrinsic426115 ! Node: Random_Number Intrinsic427002 ! Node: Random_Seed Intrinsic427355 ! Node: Range Intrinsic427703 ! Node: Real Intrinsic428024 ! Node: RealPart Intrinsic429030 ! Node: Rename Intrinsic (subroutine)430063 ! Node: Repeat Intrinsic431034 ! Node: Reshape Intrinsic431370 ! Node: RRSpacing Intrinsic431699 ! Node: RShift Intrinsic432034 ! Node: Scale Intrinsic433032 ! Node: Scan Intrinsic433348 ! Node: Second Intrinsic (function)433672 ! Node: Second Intrinsic (subroutine)434503 ! Node: Selected_Int_Kind Intrinsic435478 ! Node: Selected_Real_Kind Intrinsic435869 ! Node: Set_Exponent Intrinsic436256 ! Node: Shape Intrinsic436613 ! Node: Short Intrinsic436936 ! Node: Sign Intrinsic437631 ! Node: Signal Intrinsic (subroutine)438231 ! Node: Sin Intrinsic440447 ! Node: SinH Intrinsic440922 ! Node: Sleep Intrinsic441295 ! Node: Sngl Intrinsic441637 ! Node: Spacing Intrinsic442026 ! Node: Spread Intrinsic442350 ! Node: SqRt Intrinsic442671 ! Node: SRand Intrinsic443275 ! Node: Stat Intrinsic (subroutine)443652 ! Node: Stat Intrinsic (function)445266 ! Node: Sum Intrinsic446629 ! Node: SymLnk Intrinsic (subroutine)446961 ! Node: System Intrinsic (subroutine)447992 ! Node: System_Clock Intrinsic448931 ! Node: Tan Intrinsic450055 ! Node: TanH Intrinsic450515 ! Node: Time Intrinsic (UNIX)450897 ! Node: Time8 Intrinsic451882 ! Node: Tiny Intrinsic453061 ! Node: Transfer Intrinsic453376 ! Node: Transpose Intrinsic453707 ! Node: Trim Intrinsic454041 ! Node: TtyNam Intrinsic (subroutine)454371 ! Node: TtyNam Intrinsic (function)455073 ! Node: UBound Intrinsic455642 ! Node: UMask Intrinsic (subroutine)455987 ! Node: Unlink Intrinsic (subroutine)456684 ! Node: Unpack Intrinsic457581 ! Node: Verify Intrinsic457916 ! Node: XOr Intrinsic458235 ! Node: ZAbs Intrinsic458751 ! Node: ZCos Intrinsic459120 ! Node: ZExp Intrinsic459493 ! Node: ZLog Intrinsic459866 ! Node: ZSin Intrinsic460239 ! Node: ZSqRt Intrinsic460613 ! Node: Scope and Classes of Names460970 ! Node: Underscores in Symbol Names461452 ! Node: I/O461699 ! Node: Fortran 90 Features462472 ! Node: Other Dialects465274 ! Node: Source Form466433 ! Node: Carriage Returns467648 ! Node: Tabs467977 ! Node: Short Lines468850 ! Node: Long Lines469824 ! Node: Ampersands470435 ! Node: Trailing Comment470689 ! Node: Debug Line471465 ! Node: Dollar Signs472134 ! Node: Case Sensitivity472420 ! Node: VXT Fortran481036 ! Node: Double Quote Meaning482219 ! Node: Exclamation Point483147 ! Node: Fortran 90484190 ! Node: Pedantic Compilation485242 ! Node: Distensions489206 ! Node: Ugly Implicit Argument Conversion490170 ! Node: Ugly Assumed-Size Arrays490784 ! Node: Ugly Complex Part Extraction492505 ! Node: Ugly Null Arguments494127 ! Node: Ugly Conversion of Initializers495730 ! Node: Ugly Integer Conversions497495 ! Node: Ugly Assigned Labels498603 ! Node: Compiler500534 ! Node: Compiler Limits501172 ! Node: Run-time Environment Limits502063 ! Node: Timer Wraparounds504005 ! Node: Year 2000 (Y2K) Problems505284 ! Node: Array Size509790 ! Node: Character-variable Length510975 ! Node: Year 10000 (Y10K) Problems511484 ! Node: Compiler Types512030 ! Node: Compiler Constants516741 ! Node: Compiler Intrinsics517600 ! Node: Intrinsic Groups518527 ! Node: Other Intrinsics521968 ! Node: ACosD Intrinsic529566 ! Node: AIMax0 Intrinsic529847 ! Node: AIMin0 Intrinsic530156 ! Node: AJMax0 Intrinsic530466 ! Node: AJMin0 Intrinsic530776 ! Node: ASinD Intrinsic531085 ! Node: ATan2D Intrinsic531391 ! Node: ATanD Intrinsic531699 ! Node: BITest Intrinsic532005 ! Node: BJTest Intrinsic532314 ! Node: CDAbs Intrinsic532623 ! Node: CDCos Intrinsic532996 ! Node: CDExp Intrinsic533371 ! Node: CDLog Intrinsic533746 ! Node: CDSin Intrinsic534121 ! Node: CDSqRt Intrinsic534497 ! Node: ChDir Intrinsic (function)534890 ! Node: ChMod Intrinsic (function)535718 ! Node: CosD Intrinsic536831 ! Node: DACosD Intrinsic537143 ! Node: DASinD Intrinsic537451 ! Node: DATan2D Intrinsic537762 ! Node: DATanD Intrinsic538076 ! Node: Date Intrinsic538385 ! Node: DbleQ Intrinsic539104 ! Node: DCmplx Intrinsic539408 ! Node: DConjg Intrinsic541039 ! Node: DCosD Intrinsic541424 ! Node: DFloat Intrinsic541730 ! Node: DFlotI Intrinsic542102 ! Node: DFlotJ Intrinsic542412 ! Node: DImag Intrinsic542721 ! Node: DReal Intrinsic543098 ! Node: DSinD Intrinsic544245 ! Node: DTanD Intrinsic544549 ! Node: DTime Intrinsic (function)544864 ! Node: FGet Intrinsic (function)546094 ! Node: FGetC Intrinsic (function)546867 ! Node: FloatI Intrinsic547683 ! Node: FloatJ Intrinsic548003 ! Node: FPut Intrinsic (function)548322 ! Node: FPutC Intrinsic (function)549058 ! Node: IDate Intrinsic (VXT)549851 ! Node: IIAbs Intrinsic550958 ! Node: IIAnd Intrinsic551268 ! Node: IIBClr Intrinsic551573 ! Node: IIBits Intrinsic551882 ! Node: IIBSet Intrinsic552192 ! Node: IIDiM Intrinsic552501 ! Node: IIDInt Intrinsic552807 ! Node: IIDNnt Intrinsic553116 ! Node: IIEOr Intrinsic553425 ! Node: IIFix Intrinsic553730 ! Node: IInt Intrinsic554033 ! Node: IIOr Intrinsic554332 ! Node: IIQint Intrinsic554632 ! Node: IIQNnt Intrinsic554940 ! Node: IIShftC Intrinsic555251 ! Node: IISign Intrinsic555565 ! Node: IMax0 Intrinsic555875 ! Node: IMax1 Intrinsic556180 ! Node: IMin0 Intrinsic556484 ! Node: IMin1 Intrinsic556788 ! Node: IMod Intrinsic557091 ! Node: INInt Intrinsic557391 ! Node: INot Intrinsic557693 ! Node: IZExt Intrinsic557993 ! Node: JIAbs Intrinsic558296 ! Node: JIAnd Intrinsic558600 ! Node: JIBClr Intrinsic558905 ! Node: JIBits Intrinsic559214 ! Node: JIBSet Intrinsic559524 ! Node: JIDiM Intrinsic559833 ! Node: JIDInt Intrinsic560139 ! Node: JIDNnt Intrinsic560448 ! Node: JIEOr Intrinsic560757 ! Node: JIFix Intrinsic561062 ! Node: JInt Intrinsic561365 ! Node: JIOr Intrinsic561664 ! Node: JIQint Intrinsic561964 ! Node: JIQNnt Intrinsic562272 ! Node: JIShft Intrinsic562582 ! Node: JIShftC Intrinsic562893 ! Node: JISign Intrinsic563207 ! Node: JMax0 Intrinsic563517 ! Node: JMax1 Intrinsic563822 ! Node: JMin0 Intrinsic564126 ! Node: JMin1 Intrinsic564430 ! Node: JMod Intrinsic564733 ! Node: JNInt Intrinsic565033 ! Node: JNot Intrinsic565335 ! Node: JZExt Intrinsic565635 ! Node: Kill Intrinsic (function)565948 ! Node: Link Intrinsic (function)566629 ! Node: QAbs Intrinsic567440 ! Node: QACos Intrinsic567750 ! Node: QACosD Intrinsic568054 ! Node: QASin Intrinsic568362 ! Node: QASinD Intrinsic568668 ! Node: QATan Intrinsic568976 ! Node: QATan2 Intrinsic569282 ! Node: QATan2D Intrinsic569592 ! Node: QATanD Intrinsic569906 ! Node: QCos Intrinsic570215 ! Node: QCosD Intrinsic570516 ! Node: QCosH Intrinsic570819 ! Node: QDiM Intrinsic571122 ! Node: QExp Intrinsic571421 ! Node: QExt Intrinsic571719 ! Node: QExtD Intrinsic572018 ! Node: QFloat Intrinsic572322 ! Node: QInt Intrinsic572629 ! Node: QLog Intrinsic572929 ! Node: QLog10 Intrinsic573229 ! Node: QMax1 Intrinsic573536 ! Node: QMin1 Intrinsic573841 ! Node: QMod Intrinsic574144 ! Node: QNInt Intrinsic574444 ! Node: QSin Intrinsic574746 ! Node: QSinD Intrinsic575046 ! Node: QSinH Intrinsic575349 ! Node: QSqRt Intrinsic575653 ! Node: QTan Intrinsic575956 ! Node: QTanD Intrinsic576256 ! Node: QTanH Intrinsic576559 ! Node: Rename Intrinsic (function)576875 ! Node: Secnds Intrinsic577679 ! Node: Signal Intrinsic (function)578278 ! Node: SinD Intrinsic581109 ! Node: SnglQ Intrinsic581421 ! Node: SymLnk Intrinsic (function)581736 ! Node: System Intrinsic (function)582603 ! Node: TanD Intrinsic583930 ! Node: Time Intrinsic (VXT)584247 ! Node: UMask Intrinsic (function)585001 ! Node: Unlink Intrinsic (function)585609 ! Node: ZExt Intrinsic586337 ! Node: Other Compilers586625 ! Node: Dropping f2c Compatibility589145 ! Node: Compilers Other Than f2c592217 ! Node: Other Languages594015 ! Node: Interoperating with C and C++594280 ! Node: C Interfacing Tools595313 ! Node: C Access to Type Information596241 ! Node: f2c Skeletons and Prototypes596928 ! Ref: f2c Skeletons and Prototypes-Footnote-1598375 ! Node: C++ Considerations598629 ! Node: Startup Code599296 ! Node: Debugging and Interfacing604085 ! Node: Main Program Unit606772 ! Node: Procedures609266 ! Node: Functions611924 ! Node: Names613542 ! Node: Common Blocks616685 ! Node: Local Equivalence Areas616949 ! Node: Complex Variables617933 ! Node: Arrays619053 ! Node: Adjustable Arrays622386 ! Node: Alternate Entry Points625245 ! Node: Alternate Returns631947 ! Node: Assigned Statement Labels632848 ! Node: Run-time Library Errors634693 ! Node: Collected Fortran Wisdom636645 ! Node: Advantages Over f2c638081 ! Node: Language Extensions639062 ! Node: Diagnostic Abilities640236 ! Node: Compiler Options640627 ! Node: Compiler Speed641675 ! Node: Program Speed642385 ! Node: Ease of Debugging643970 ! Node: Character and Hollerith Constants646079 ! Node: Block Data and Libraries647051 ! Node: Loops650380 ! Node: Working Programs655606 ! Node: Not My Type656350 ! Node: Variables Assumed To Be Zero658281 ! Node: Variables Assumed To Be Saved659335 ! Node: Unwanted Variables660705 ! Node: Unused Arguments661585 ! Node: Surprising Interpretations of Code662048 ! Node: Aliasing Assumed To Work662895 ! Node: Output Assumed To Flush669093 ! Node: Large File Unit Numbers671866 ! Node: Floating-point precision674018 ! Node: Inconsistent Calling Sequences675279 ! Node: Overly Convenient Options676259 ! Node: Faster Programs679565 ! Node: Aligned Data680011 ! Node: Prefer Automatic Uninitialized Variables684704 ! Node: Avoid f2c Compatibility686070 ! Node: Use Submodel Options686538 ! Node: Trouble687542 ! Node: But-bugs688866 ! Node: Signal 11 and Friends690639 ! Node: Cannot Link Fortran Programs692719 ! Node: Large Common Blocks694002 ! Node: Debugger Problems694428 ! Node: NeXTStep Problems695143 ! Node: Stack Overflow696969 ! Node: Nothing Happens699858 ! Node: Strange Behavior at Run Time701472 ! Node: Floating-point Errors703960 ! Node: Known Bugs709946 ! Node: Missing Features717012 ! Node: Better Source Model718939 ! Node: Fortran 90 Support720708 ! Node: Intrinsics in PARAMETER Statements721809 ! Node: Arbitrary Concatenation722560 ! Node: SELECT CASE on CHARACTER Type722963 ! Node: RECURSIVE Keyword723250 ! Node: Increasing Precision/Range723677 ! Node: Popular Non-standard Types725215 ! Node: Full Support for Compiler Types725554 ! Node: Array Bounds Expressions726190 ! Node: POINTER Statements726637 ! Node: Sensible Non-standard Constructs727520 ! Node: READONLY Keyword729846 ! Node: FLUSH Statement730756 ! Node: Expressions in FORMAT Statements731126 ! Node: Explicit Assembler Code732301 ! Node: Q Edit Descriptor732590 ! Node: Old-style PARAMETER Statements733094 ! Node: TYPE and ACCEPT I/O Statements733828 ! Node: STRUCTURE UNION RECORD MAP734394 ! Node: OPEN CLOSE and INQUIRE Keywords734880 ! Node: ENCODE and DECODE735860 ! Node: AUTOMATIC Statement736955 ! Node: Suppressing Space Padding738202 ! Node: Fortran Preprocessor739429 ! Node: Bit Operations on Floating-point Data740002 ! Node: Really Ugly Character Assignments740535 ! Node: POSIX Standard740910 ! Node: Floating-point Exception Handling741150 ! Node: Nonportable Conversions742552 ! Node: Large Automatic Arrays743095 ! Node: Support for Threads743502 ! Node: Enabling Debug Lines743927 ! Node: Better Warnings744304 ! Node: Gracefully Handle Sensible Bad Code745940 ! Node: Non-standard Conversions746684 ! Node: Non-standard Intrinsics747027 ! Node: Modifying DO Variable747443 ! Node: Better Pedantic Compilation748119 ! Node: Warn About Implicit Conversions748747 ! Node: Invalid Use of Hollerith Constant749334 ! Node: Dummy Array Without Dimensioning Dummy749877 ! Node: Invalid FORMAT Specifiers750790 ! Node: Ambiguous Dialects751191 ! Node: Unused Labels751602 ! Node: Informational Messages751824 ! Node: Uninitialized Variables at Run Time752227 ! Node: Portable Unformatted Files752833 ! Ref: Portable Unformatted Files-Footnote-1755789 ! Node: Better List-directed I/O755817 ! Node: Default to Console I/O756722 ! Node: Labels Visible to Debugger757370 ! Node: Disappointments757771 ! Node: Mangling of Names758409 ! Node: Multiple Definitions of External Names759259 ! Node: Limitation on Implicit Declarations760622 ! Node: Non-bugs760906 ! Node: Backslash in Constants762031 ! Node: Initializing Before Specifying766920 ! Node: Context-Sensitive Intrinsicness768062 ! Node: Context-Sensitive Constants769958 ! Node: Equivalence Versus Equality772914 ! Node: Order of Side Effects775957 ! Node: Warnings and Errors777685 ! Node: Open Questions779083 ! Node: Bugs779552 ! Node: Bug Criteria780240 ! Node: Bug Reporting786477 ! Node: Service786838 ! Node: Adding Options787301 ! Node: Projects791894 ! Node: Efficiency792737 ! Node: Better Optimization795634 ! Node: Simplify Porting799004 ! Node: More Extensions800759 ! Node: Machine Model803847 ! Node: Internals Documentation805133 ! Node: Internals Improvements805440 ! Node: Better Diagnostics808984 ! Node: Front End809901 ! Node: Overview of Sources810679 ! Node: Overview of Translation Process817957 ! Node: g77stripcard822235 ! Node: lex.c824712 ! Node: sta.c834252 ! Node: sti.c834363 ! Node: stq.c834474 ! Node: stb.c834585 ! Node: expr.c834697 ! Node: stc.c834811 ! Node: std.c834923 ! Node: ste.c835034 ! Node: Gotchas (Transforming)835162 ! Node: TBD (Transforming)843281 ! Node: Philosophy of Code Generation845977 ! Node: Two-pass Design851881 ! Node: Two-pass Code853038 ! Node: Why Two Passes853771 ! Node: Challenges Posed859839 ! Node: Transforming Statements862323 ! Node: Statements Needing Temporaries863173 ! Node: Transforming DO WHILE865937 ! Node: Transforming Iterative DO867120 ! Node: Transforming Block IF867949 ! Node: Transforming SELECT CASE869314 ! Node: Transforming Expressions872536 ! Node: Internal Naming Conventions874525 ! Node: Diagnostics877524 ! Node: CMPAMBIG878922 ! Node: EXPIMP885339 ! Node: INTGLOB886575 ! Node: LEX888819 ! Node: GLOBALS894274 ! Node: LINKFAIL896938 ! Node: Y2KBAD897562 ! Node: Keyword Index897912  End Tag Table diff -Nrc3pad gcc-3.4.3/gcc/doc/gcc.1 gcc-3.4.4/gcc/doc/gcc.1 *** gcc-3.4.3/gcc/doc/gcc.1 Fri Nov 5 04:19:24 2004 --- gcc-3.4.4/gcc/doc/gcc.1 Thu May 19 10:02:19 2005 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2004-11-05" "gcc-3.4.3" "GNU" .SH "NAME" gcc \- GNU project C and C++ compiler .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2005-05-19" "gcc-3.4.4" "GNU" .SH "NAME" gcc \- GNU project C and C++ compiler .SH "SYNOPSIS" *************** in the following sections. *** 217,223 **** \&\-Weffc++ \-Wno\-deprecated \&\-Wno\-non\-template\-friend \-Wold\-style\-cast \&\-Woverloaded\-virtual \-Wno\-pmf\-conversions ! \&\-Wsign\-promo \-Wsynth\fR .IP "\fIObjective-C Language Options\fR" 4 .IX Item "Objective-C Language Options" \&\fB\-fconstant\-string\-class=\fR\fIclass-name\fR --- 217,223 ---- \&\-Weffc++ \-Wno\-deprecated \&\-Wno\-non\-template\-friend \-Wold\-style\-cast \&\-Woverloaded\-virtual \-Wno\-pmf\-conversions ! \&\-Wsign\-promo\fR .IP "\fIObjective-C Language Options\fR" 4 .IX Item "Objective-C Language Options" \&\fB\-fconstant\-string\-class=\fR\fIclass-name\fR *************** in the following sections. *** 436,442 **** \&\-mpowerpc\-gfxopt \-mno\-powerpc\-gfxopt \&\-mnew\-mnemonics \-mold\-mnemonics \&\-mfull\-toc \-mminimal\-toc \-mno\-fp\-in\-toc \-mno\-sum\-in\-toc ! \&\-m64 \-m32 \-mxl\-call \-mno\-xl\-call \-mpe \&\-malign\-power \-malign\-natural \&\-msoft\-float \-mhard\-float \-mmultiple \-mno\-multiple \&\-mstring \-mno\-string \-mupdate \-mno\-update --- 436,442 ---- \&\-mpowerpc\-gfxopt \-mno\-powerpc\-gfxopt \&\-mnew\-mnemonics \-mold\-mnemonics \&\-mfull\-toc \-mminimal\-toc \-mno\-fp\-in\-toc \-mno\-sum\-in\-toc ! \&\-m64 \-m32 \-mxl\-compat \-mno\-xl\-compat \-mpe \&\-malign\-power \-malign\-natural \&\-msoft\-float \-mhard\-float \-mmultiple \-mno\-multiple \&\-mstring \-mno\-string \-mupdate \-mno\-update *************** in the following sections. *** 620,627 **** \&\-mconstant\-gp \-mauto\-pic \-minline\-float\-divide\-min\-latency \&\-minline\-float\-divide\-max\-throughput \&\-minline\-int\-divide\-min\-latency ! \&\-minline\-int\-divide\-max\-throughput \-mno\-dwarf2\-asm ! \&\-mfixed\-range=\fR\fIregister-range\fR .Sp \&\fID30V Options\fR \&\fB\-mextmem \-mextmemory \-monchip \-mno\-asm\-optimize --- 620,630 ---- \&\-mconstant\-gp \-mauto\-pic \-minline\-float\-divide\-min\-latency \&\-minline\-float\-divide\-max\-throughput \&\-minline\-int\-divide\-min\-latency ! \&\-minline\-int\-divide\-max\-throughput ! \&\-minline\-sqrt\-min\-latency \-minline\-sqrt\-max\-throughput ! \&\-mno\-dwarf2\-asm \-mearly\-stop\-bits ! \&\-mfixed\-range=\fR\fIregister-range\fR \fB\-mtls\-size=\fR\fItls-size\fR ! \&\fB\-mtune=\fR\fIcpu-type\fR \fB\-mt \-pthread \-milp32 \-mlp64\fR .Sp \&\fID30V Options\fR \&\fB\-mextmem \-mextmemory \-monchip \-mno\-asm\-optimize *************** Warn when overload resolution chooses a *** 1578,1587 **** enumerated type to a signed type, over a conversion to an unsigned type of the same size. Previous versions of G++ would try to preserve unsignedness, but the standard mandates the current behavior. - .IP "\fB\-Wsynth\fR (\*(C+ only)" 4 - .IX Item "-Wsynth ( only)" - Warn when G++'s synthesis behavior does not match that of cfront. For - instance: .Sp .Vb 4 \& struct A { --- 1581,1586 ---- *************** order to make tracer effective. *** 4424,4429 **** --- 4423,4433 ---- .IP "\fBmax-cse-path-length\fR" 4 .IX Item "max-cse-path-length" Maximum number of basic blocks on path that cse considers. + .IP "\fBmax-last-value-rtl\fR" 4 + .IX Item "max-last-value-rtl" + The maximum size measured as number of RTLs that can be recorded in an + expression in combiner for a pseudo register as last known value of that + register. The default is 10000. .IP "\fBggc-min-expand\fR" 4 .IX Item "ggc-min-expand" \&\s-1GCC\s0 uses a garbage collector to manage its own memory allocation. This *************** These \fB\-m\fR options are supported on *** 5744,5750 **** .PD Specify \fB\-mapp\-regs\fR to generate output using the global registers 2 through 4, which the \s-1SPARC\s0 \s-1SVR4\s0 \s-1ABI\s0 reserves for applications. This ! is the default. .Sp To be fully \s-1SVR4\s0 \s-1ABI\s0 compliant at the cost of some performance loss, specify \fB\-mno\-app\-regs\fR. You should compile libraries and system --- 5748,5754 ---- .PD Specify \fB\-mapp\-regs\fR to generate output using the global registers 2 through 4, which the \s-1SPARC\s0 \s-1SVR4\s0 \s-1ABI\s0 reserves for applications. This ! is the default, except on Solaris. .Sp To be fully \s-1SVR4\s0 \s-1ABI\s0 compliant at the cost of some performance loss, specify \fB\-mno\-app\-regs\fR. You should compile libraries and system *************** on \s-1SPARC\-V9\s0 processors in 64\-bi *** 5968,5974 **** .IP "\fB\-mlittle\-endian\fR" 4 .IX Item "-mlittle-endian" Generate code for a processor running in little-endian mode. It is only ! available for a few configurations and most notably not on Solaris. .IP "\fB\-m32\fR" 4 .IX Item "-m32" .PD 0 --- 5972,5978 ---- .IP "\fB\-mlittle\-endian\fR" 4 .IX Item "-mlittle-endian" Generate code for a processor running in little-endian mode. It is only ! available for a few configurations and most notably not on Solaris and Linux. .IP "\fB\-m32\fR" 4 .IX Item "-m32" .PD 0 *************** Supported values for \fIcpu_type\fR are *** 6532,6538 **** \&\fB601\fR, \fB602\fR, \fB603\fR, \fB603e\fR, \fB604\fR, \&\fB604e\fR, \fB620\fR, \fB630\fR, \fB740\fR, \fB7400\fR, \&\fB7450\fR, \fB750\fR, \fB801\fR, \fB821\fR, \fB823\fR, ! \&\fB860\fR, \fB970\fR, \fBcommon\fR, \fBec603e\fR, \fBG3\fR, \&\fBG4\fR, \fBG5\fR, \fBpower\fR, \fBpower2\fR, \fBpower3\fR, \&\fBpower4\fR, \fBpower5\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBrios\fR, \fBrios1\fR, \fBrios2\fR, \fBrsc\fR, and \fBrs64a\fR. --- 6536,6542 ---- \&\fB601\fR, \fB602\fR, \fB603\fR, \fB603e\fR, \fB604\fR, \&\fB604e\fR, \fB620\fR, \fB630\fR, \fB740\fR, \fB7400\fR, \&\fB7450\fR, \fB750\fR, \fB801\fR, \fB821\fR, \fB823\fR, ! \&\fB860\fR, \fB970\fR, \fB8540\fR, \fBcommon\fR, \fBec603e\fR, \fBG3\fR, \&\fBG4\fR, \fBG5\fR, \fBpower\fR, \fBpower2\fR, \fBpower3\fR, \&\fBpower4\fR, \fBpower5\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBrios\fR, \fBrios1\fR, \fBrios2\fR, \fBrsc\fR, and \fBrs64a\fR. *************** Enable 64\-bit \s-1AIX\s0 \s-1ABI\s0 and *** 6665,6679 **** Specifying \fB\-maix64\fR implies \fB\-mpowerpc64\fR and \&\fB\-mpowerpc\fR, while \fB\-maix32\fR disables the 64\-bit \s-1ABI\s0 and implies \fB\-mno\-powerpc64\fR. \s-1GCC\s0 defaults to \fB\-maix32\fR. ! .IP "\fB\-mxl\-call\fR" 4 ! .IX Item "-mxl-call" .PD 0 ! .IP "\fB\-mno\-xl\-call\fR" 4 ! .IX Item "-mno-xl-call" .PD ! On \s-1AIX\s0, pass floating-point arguments to prototyped functions beyond the ! register save area (\s-1RSA\s0) on the stack in addition to argument FPRs. The ! \&\s-1AIX\s0 calling convention was extended but not initially documented to handle an obscure K&R C case of calling a function that takes the address of its arguments with fewer arguments than declared. \s-1AIX\s0 \s-1XL\s0 compilers access floating point arguments which do not fit in the --- 6669,6687 ---- Specifying \fB\-maix64\fR implies \fB\-mpowerpc64\fR and \&\fB\-mpowerpc\fR, while \fB\-maix32\fR disables the 64\-bit \s-1ABI\s0 and implies \fB\-mno\-powerpc64\fR. \s-1GCC\s0 defaults to \fB\-maix32\fR. ! .IP "\fB\-mxl\-compat\fR" 4 ! .IX Item "-mxl-compat" .PD 0 ! .IP "\fB\-mno\-xl\-compat\fR" 4 ! .IX Item "-mno-xl-compat" .PD ! Produce code that conforms more closely to \s-1IBM\s0 \s-1XLC\s0 semantics when using ! AIX-compatible \s-1ABI\s0. Pass floating-point arguments to prototyped ! functions beyond the register save area (\s-1RSA\s0) on the stack in addition ! to argument FPRs. Do not assume that most significant double in 128 ! bit long double value is properly rounded when comparing values. ! .Sp ! The \s-1AIX\s0 calling convention was extended but not initially documented to handle an obscure K&R C case of calling a function that takes the address of its arguments with fewer arguments than declared. \s-1AIX\s0 \s-1XL\s0 compilers access floating point arguments which do not fit in the *************** using the minimum latency algorithm. *** 9391,9396 **** --- 9399,9412 ---- .IX Item "-minline-int-divide-max-throughput" Generate code for inline divides of integer values using the maximum throughput algorithm. + .IP "\fB\-minline\-sqrt\-min\-latency\fR" 4 + .IX Item "-minline-sqrt-min-latency" + Generate code for inline square roots + using the minimum latency algorithm. + .IP "\fB\-minline\-sqrt\-max\-throughput\fR" 4 + .IX Item "-minline-sqrt-max-throughput" + Generate code for inline square roots + using the maximum throughput algorithm. .IP "\fB\-mno\-dwarf2\-asm\fR" 4 .IX Item "-mno-dwarf2-asm" .PD 0 *************** using the maximum throughput algorithm. *** 9399,9411 **** .PD Don't (or do) generate assembler code for the \s-1DWARF2\s0 line number debugging info. This may be useful when not using the \s-1GNU\s0 assembler. - .IP "\fB\-mfixed\-range=\fR\fIregister-range\fR" 4 - .IX Item "-mfixed-range=register-range" - Generate code treating the given register range as fixed registers. - A fixed register is one that the register allocator can not use. This is - useful when compiling kernel code. A register range is specified as - two registers separated by a dash. Multiple register ranges can be - specified separated by a comma. .IP "\fB\-mearly\-stop\-bits\fR" 4 .IX Item "-mearly-stop-bits" .PD 0 --- 9415,9420 ---- *************** specified separated by a comma. *** 9415,9420 **** --- 9424,9464 ---- Allow stop bits to be placed earlier than immediately preceding the instruction that triggered the stop bit. This can improve instruction scheduling, but does not always do so. + .IP "\fB\-mfixed\-range=\fR\fIregister-range\fR" 4 + .IX Item "-mfixed-range=register-range" + Generate code treating the given register range as fixed registers. + A fixed register is one that the register allocator can not use. This is + useful when compiling kernel code. A register range is specified as + two registers separated by a dash. Multiple register ranges can be + specified separated by a comma. + .IP "\fB\-mtls\-size=\fR\fItls-size\fR" 4 + .IX Item "-mtls-size=tls-size" + Specify bit size of immediate \s-1TLS\s0 offsets. Valid values are 14, 22, and + 64. + .IP "\fB\-mtune\-arch=\fR\fIcpu-type\fR" 4 + .IX Item "-mtune-arch=cpu-type" + Tune the instruction scheduling for a particular \s-1CPU\s0, Valid values are + itanium, itanium1, merced, itanium2, and mckinley. + .IP "\fB\-mt\fR" 4 + .IX Item "-mt" + .PD 0 + .IP "\fB\-pthread\fR" 4 + .IX Item "-pthread" + .PD + Add support for multithreading using the \s-1POSIX\s0 threads library. This + option sets flags for both the preprocessor and linker. It does + not affect the thread safety of object code produced by the compiler or + that of libraries supplied with it. These are HP-UX specific flags. + .IP "\fB\-milp32\fR" 4 + .IX Item "-milp32" + .PD 0 + .IP "\fB\-mlp64\fR" 4 + .IX Item "-mlp64" + .PD + Generate code for a 32\-bit or 64\-bit environment. + The 32\-bit environment sets int, long and pointer to 32 bits. + The 64\-bit environment sets int to 32 bits and long and pointer + to 64 bits. These are HP-UX specific flags. .PP \fID30V Options\fR .IX Subsection "D30V Options" *************** for contributors to \s-1GCC\s0. *** 10654,10660 **** .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, ! 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 or --- 10698,10704 ---- .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, ! 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 or diff -Nrc3pad gcc-3.4.3/gcc/doc/gcc.info gcc-3.4.4/gcc/doc/gcc.info *** gcc-3.4.3/gcc/doc/gcc.info Fri Nov 5 04:19:19 2004 --- gcc-3.4.4/gcc/doc/gcc.info Thu May 19 10:02:14 2005 *************** *** 1,7 **** ! This is doc/gcc.info, produced by makeinfo version 4.7 from ! /home/mitchell/scratch/gcc-3.4.3/gcc-3.4.3/gcc/doc/gcc.texi. ! Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document --- 1,7 ---- ! This is doc/gcc.info, produced by makeinfo version 4.2 from ! /scratch/mitchell/gcc-releases/gcc-3.4.4/gcc-3.4.4/gcc/doc/gcc.texi. ! Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document *************** included in the section entitled "GNU Fr *** 21,34 **** You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. - INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * gcc: (gcc). The GNU Compiler Collection. END-INFO-DIR-ENTRY This file documents the use of the GNU compilers. ! Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document --- 21,33 ---- You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. INFO-DIR-SECTION Programming START-INFO-DIR-ENTRY * gcc: (gcc). The GNU Compiler Collection. END-INFO-DIR-ENTRY This file documents the use of the GNU compilers. ! Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document *************** included in the section entitled "GNU Fr *** 49,64 **** software. Copies published by the Free Software Foundation raise funds for GNU development. -  File: gcc.info, Node: Top, Next: G++ and GCC, Up: (DIR) Introduction ************ ! This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to GCC version 3.4.3. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. --- 48,62 ---- software. Copies published by the Free Software Foundation raise funds for GNU development.  File: gcc.info, Node: Top, Next: G++ and GCC, Up: (DIR) Introduction ************ ! This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to GCC version 3.4.4. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. *************** front ends for new languages, are docume *** 93,102 ****  File: gcc.info, Node: G++ and GCC, Next: Standards, Prev: Top, Up: Top ! 1 Programming Languages Supported by GCC ! **************************************** ! GCC stands for "GNU Compiler Collection". GCC is an integrated distribution of compilers for several major programming languages. These languages currently include C, C++, Objective-C, Java, Fortran, and Ada. --- 91,100 ----  File: gcc.info, Node: G++ and GCC, Next: Standards, Prev: Top, Up: Top ! Programming Languages Supported by GCC ! ************************************** ! GCC stands for "GNU Compiler Collection". GCC is an integrated distribution of compilers for several major programming languages. These languages currently include C, C++, Objective-C, Java, Fortran, and Ada. *************** which is an integral feature of the C, C *** 135,144 ****  File: gcc.info, Node: Standards, Next: Invoking GCC, Prev: G++ and GCC, Up: Top ! 2 Language Standards Supported by GCC ! ************************************* ! For each language compiled by GCC for which there is a standard, GCC attempts to follow one or more versions of that standard, possibly with some exceptions, and possibly with some extensions. --- 133,142 ----  File: gcc.info, Node: Standards, Next: Invoking GCC, Prev: G++ and GCC, Up: Top ! Language Standards Supported by GCC ! *********************************** ! For each language compiled by GCC for which there is a standard, GCC attempts to follow one or more versions of that standard, possibly with some exceptions, and possibly with some extensions. *************** details of compatibility between `gcj' a *** 274,283 ****  File: gcc.info, Node: Invoking GCC, Next: C Implementation, Prev: Standards, Up: Top ! 3 GCC Command Options ! ********************* ! When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage. For example, the `-c' option says not to run the linker. Then the output consists of object files output --- 272,281 ----  File: gcc.info, Node: Invoking GCC, Next: C Implementation, Prev: Standards, Up: Top ! GCC Command Options ! ******************* ! When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage. For example, the `-c' option says not to run the linker. Then the output consists of object files output *************** these two forms, whichever one is not th *** 348,518 ****  File: gcc.info, Node: Option Summary, Next: Overall Options, Up: Invoking GCC ! 3.1 Option Summary ! ================== ! Here is a summary of all the options, grouped by type. Explanations are ! in the following sections. _Overall Options_ *Note Options Controlling the Kind of Output: Overall Options. ! -c -S -E -o FILE -pipe -pass-exit-codes -x LANGUAGE -v -### --help --target-help --version _C Language Options_ *Note Options Controlling C Dialect: C Dialect Options. ! -ansi -std=STANDARD -aux-info FILENAME ! -fno-asm -fno-builtin -fno-builtin-FUNCTION ! -fhosted -ffreestanding -fms-extensions ! -trigraphs -no-integrated-cpp -traditional -traditional-cpp ! -fallow-single-precision -fcond-mismatch ! -fsigned-bitfields -fsigned-char ! -funsigned-bitfields -funsigned-char -fwritable-strings _C++ Language Options_ *Note Options Controlling C++ Dialect: C++ Dialect Options. ! -fabi-version=N -fno-access-control -fcheck-new ! -fconserve-space -fno-const-strings ! -fno-elide-constructors ! -fno-enforce-eh-specs ! -ffor-scope -fno-for-scope -fno-gnu-keywords ! -fno-implicit-templates ! -fno-implicit-inline-templates ! -fno-implement-inlines -fms-extensions ! -fno-nonansi-builtins -fno-operator-names ! -fno-optional-diags -fpermissive ! -frepo -fno-rtti -fstats -ftemplate-depth-N ! -fuse-cxa-atexit -fno-weak -nostdinc++ ! -fno-default-inline -Wabi -Wctor-dtor-privacy ! -Wnon-virtual-dtor -Wreorder ! -Weffc++ -Wno-deprecated ! -Wno-non-template-friend -Wold-style-cast ! -Woverloaded-virtual -Wno-pmf-conversions ! -Wsign-promo -Wsynth _Objective-C Language Options_ *Note Options Controlling Objective-C Dialect: Objective-C Dialect Options. ! -fconstant-string-class=CLASS-NAME ! -fgnu-runtime -fnext-runtime ! -fno-nil-receivers ! -fobjc-exceptions ! -freplace-objc-classes ! -fzero-link ! -gen-decls -Wno-protocol -Wselector -Wundeclared-selector _Language Independent Options_ *Note Options to Control Diagnostic Messages Formatting: Language Independent Options. ! -fmessage-length=N -fdiagnostics-show-location=[once|every-line] _Warning Options_ *Note Options to Request or Suppress Warnings: Warning Options. ! -fsyntax-only -pedantic -pedantic-errors ! -w -Wextra -Wall -Waggregate-return ! -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment ! -Wconversion -Wno-deprecated-declarations ! -Wdisabled-optimization -Wno-div-by-zero -Wendif-labels ! -Werror -Werror-implicit-function-declaration ! -Wfloat-equal -Wformat -Wformat=2 ! -Wno-format-extra-args -Wformat-nonliteral ! -Wformat-security -Wformat-y2k ! -Wimplicit -Wimplicit-function-declaration -Wimplicit-int ! -Wimport -Wno-import -Winit-self -Winline ! -Wno-invalid-offsetof -Winvalid-pch ! -Wlarger-than-LEN -Wlong-long ! -Wmain -Wmissing-braces ! -Wmissing-format-attribute -Wmissing-noreturn ! -Wno-multichar -Wnonnull -Wpacked -Wpadded ! -Wparentheses -Wpointer-arith -Wredundant-decls ! -Wreturn-type -Wsequence-point -Wshadow ! -Wsign-compare -Wstrict-aliasing ! -Wswitch -Wswitch-default -Wswitch-enum ! -Wsystem-headers -Wtrigraphs -Wundef -Wuninitialized ! -Wunknown-pragmas -Wunreachable-code ! -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings _C-only Warning Options_ ! -Wbad-function-cast -Wmissing-declarations ! -Wmissing-prototypes -Wnested-externs -Wold-style-definition ! -Wstrict-prototypes -Wtraditional -Wdeclaration-after-statement _Debugging Options_ *Note Options for Debugging Your Program or GCC: Debugging Options. ! -dLETTERS -dumpspecs -dumpmachine -dumpversion ! -fdump-unnumbered -fdump-translation-unit[-N] ! -fdump-class-hierarchy[-N] ! -fdump-tree-original[-N] ! -fdump-tree-optimized[-N] ! -fdump-tree-inlined[-N] ! -feliminate-dwarf2-dups -feliminate-unused-debug-types ! -feliminate-unused-debug-symbols -fmem-report -fprofile-arcs ! -frandom-seed=STRING -fsched-verbose=N ! -ftest-coverage -ftime-report ! -g -gLEVEL -gcoff -gdwarf-2 ! -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ ! -p -pg -print-file-name=LIBRARY -print-libgcc-file-name ! -print-multi-directory -print-multi-lib ! -print-prog-name=PROGRAM -print-search-dirs -Q -save-temps -time _Optimization Options_ *Note Options that Control Optimization: Optimize Options. ! -falign-functions=N -falign-jumps=N ! -falign-labels=N -falign-loops=N ! -fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize ! -fbranch-target-load-optimize2 -fcaller-saves -fcprop-registers ! -fcse-follow-jumps -fcse-skip-blocks -fdata-sections ! -fdelayed-branch -fdelete-null-pointer-checks ! -fexpensive-optimizations -ffast-math -ffloat-store ! -fforce-addr -fforce-mem -ffunction-sections ! -fgcse -fgcse-lm -fgcse-sm -fgcse-las -floop-optimize ! -fcrossjumping -fif-conversion -fif-conversion2 ! -finline-functions -finline-limit=N -fkeep-inline-functions ! -fkeep-static-consts -fmerge-constants -fmerge-all-constants ! -fmove-all-movables -fnew-ra -fno-branch-count-reg ! -fno-default-inline -fno-defer-pop ! -fno-function-cse -fno-guess-branch-probability ! -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 ! -funsafe-math-optimizations -ffinite-math-only ! -fno-trapping-math -fno-zero-initialized-in-bss ! -fomit-frame-pointer -foptimize-register-move ! -foptimize-sibling-calls -fprefetch-loop-arrays ! -fprofile-generate -fprofile-use ! -freduce-all-givs -fregmove -frename-registers ! -freorder-blocks -freorder-functions ! -frerun-cse-after-loop -frerun-loop-opt ! -frounding-math -fschedule-insns -fschedule-insns2 ! -fno-sched-interblock -fno-sched-spec -fsched-spec-load ! -fsched-spec-load-dangerous ! -fsched-stalled-insns=N -sched-stalled-insns-dep=N ! -fsched2-use-superblocks ! -fsched2-use-traces -fsignaling-nans ! -fsingle-precision-constant ! -fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps ! -funroll-all-loops -funroll-loops -fpeel-loops ! -funswitch-loops -fold-unroll-loops -fold-unroll-all-loops --param NAME=VALUE -O -O0 -O1 -O2 -O3 -Os _Preprocessor Options_ *Note Options Controlling the Preprocessor: Preprocessor Options. ! -AQUESTION=ANSWER ! -A-QUESTION[=ANSWER] ! -C -dD -dI -dM -dN ! -DMACRO[=DEFN] -E -H ! -idirafter DIR ! -include FILE -imacros FILE ! -iprefix FILE -iwithprefix DIR ! -iwithprefixbefore DIR -isystem DIR ! -M -MM -MF -MG -MP -MQ -MT -nostdinc ! -P -fworking-directory -remap ! -trigraphs -undef -UMACRO -Wp,OPTION -Xpreprocessor OPTION _Assembler Option_ --- 346,516 ----  File: gcc.info, Node: Option Summary, Next: Overall Options, Up: Invoking GCC ! Option Summary ! ============== ! Here is a summary of all the options, grouped by type. Explanations ! are in the following sections. _Overall Options_ *Note Options Controlling the Kind of Output: Overall Options. ! -c -S -E -o FILE -pipe -pass-exit-codes -x LANGUAGE -v -### --help --target-help --version _C Language Options_ *Note Options Controlling C Dialect: C Dialect Options. ! -ansi -std=STANDARD -aux-info FILENAME ! -fno-asm -fno-builtin -fno-builtin-FUNCTION ! -fhosted -ffreestanding -fms-extensions ! -trigraphs -no-integrated-cpp -traditional -traditional-cpp ! -fallow-single-precision -fcond-mismatch ! -fsigned-bitfields -fsigned-char ! -funsigned-bitfields -funsigned-char -fwritable-strings _C++ Language Options_ *Note Options Controlling C++ Dialect: C++ Dialect Options. ! -fabi-version=N -fno-access-control -fcheck-new ! -fconserve-space -fno-const-strings ! -fno-elide-constructors ! -fno-enforce-eh-specs ! -ffor-scope -fno-for-scope -fno-gnu-keywords ! -fno-implicit-templates ! -fno-implicit-inline-templates ! -fno-implement-inlines -fms-extensions ! -fno-nonansi-builtins -fno-operator-names ! -fno-optional-diags -fpermissive ! -frepo -fno-rtti -fstats -ftemplate-depth-N ! -fuse-cxa-atexit -fno-weak -nostdinc++ ! -fno-default-inline -Wabi -Wctor-dtor-privacy ! -Wnon-virtual-dtor -Wreorder ! -Weffc++ -Wno-deprecated ! -Wno-non-template-friend -Wold-style-cast ! -Woverloaded-virtual -Wno-pmf-conversions ! -Wsign-promo _Objective-C Language Options_ *Note Options Controlling Objective-C Dialect: Objective-C Dialect Options. ! -fconstant-string-class=CLASS-NAME ! -fgnu-runtime -fnext-runtime ! -fno-nil-receivers ! -fobjc-exceptions ! -freplace-objc-classes ! -fzero-link ! -gen-decls -Wno-protocol -Wselector -Wundeclared-selector _Language Independent Options_ *Note Options to Control Diagnostic Messages Formatting: Language Independent Options. ! -fmessage-length=N -fdiagnostics-show-location=[once|every-line] _Warning Options_ *Note Options to Request or Suppress Warnings: Warning Options. ! -fsyntax-only -pedantic -pedantic-errors ! -w -Wextra -Wall -Waggregate-return ! -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment ! -Wconversion -Wno-deprecated-declarations ! -Wdisabled-optimization -Wno-div-by-zero -Wendif-labels ! -Werror -Werror-implicit-function-declaration ! -Wfloat-equal -Wformat -Wformat=2 ! -Wno-format-extra-args -Wformat-nonliteral ! -Wformat-security -Wformat-y2k ! -Wimplicit -Wimplicit-function-declaration -Wimplicit-int ! -Wimport -Wno-import -Winit-self -Winline ! -Wno-invalid-offsetof -Winvalid-pch ! -Wlarger-than-LEN -Wlong-long ! -Wmain -Wmissing-braces ! -Wmissing-format-attribute -Wmissing-noreturn ! -Wno-multichar -Wnonnull -Wpacked -Wpadded ! -Wparentheses -Wpointer-arith -Wredundant-decls ! -Wreturn-type -Wsequence-point -Wshadow ! -Wsign-compare -Wstrict-aliasing ! -Wswitch -Wswitch-default -Wswitch-enum ! -Wsystem-headers -Wtrigraphs -Wundef -Wuninitialized ! -Wunknown-pragmas -Wunreachable-code ! -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings _C-only Warning Options_ ! -Wbad-function-cast -Wmissing-declarations ! -Wmissing-prototypes -Wnested-externs -Wold-style-definition ! -Wstrict-prototypes -Wtraditional -Wdeclaration-after-statement _Debugging Options_ *Note Options for Debugging Your Program or GCC: Debugging Options. ! -dLETTERS -dumpspecs -dumpmachine -dumpversion ! -fdump-unnumbered -fdump-translation-unit[-N] ! -fdump-class-hierarchy[-N] ! -fdump-tree-original[-N] ! -fdump-tree-optimized[-N] ! -fdump-tree-inlined[-N] ! -feliminate-dwarf2-dups -feliminate-unused-debug-types ! -feliminate-unused-debug-symbols -fmem-report -fprofile-arcs ! -frandom-seed=STRING -fsched-verbose=N ! -ftest-coverage -ftime-report ! -g -gLEVEL -gcoff -gdwarf-2 ! -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ ! -p -pg -print-file-name=LIBRARY -print-libgcc-file-name ! -print-multi-directory -print-multi-lib ! -print-prog-name=PROGRAM -print-search-dirs -Q -save-temps -time _Optimization Options_ *Note Options that Control Optimization: Optimize Options. ! -falign-functions=N -falign-jumps=N ! -falign-labels=N -falign-loops=N ! -fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize ! -fbranch-target-load-optimize2 -fcaller-saves -fcprop-registers ! -fcse-follow-jumps -fcse-skip-blocks -fdata-sections ! -fdelayed-branch -fdelete-null-pointer-checks ! -fexpensive-optimizations -ffast-math -ffloat-store ! -fforce-addr -fforce-mem -ffunction-sections ! -fgcse -fgcse-lm -fgcse-sm -fgcse-las -floop-optimize ! -fcrossjumping -fif-conversion -fif-conversion2 ! -finline-functions -finline-limit=N -fkeep-inline-functions ! -fkeep-static-consts -fmerge-constants -fmerge-all-constants ! -fmove-all-movables -fnew-ra -fno-branch-count-reg ! -fno-default-inline -fno-defer-pop ! -fno-function-cse -fno-guess-branch-probability ! -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 ! -funsafe-math-optimizations -ffinite-math-only ! -fno-trapping-math -fno-zero-initialized-in-bss ! -fomit-frame-pointer -foptimize-register-move ! -foptimize-sibling-calls -fprefetch-loop-arrays ! -fprofile-generate -fprofile-use ! -freduce-all-givs -fregmove -frename-registers ! -freorder-blocks -freorder-functions ! -frerun-cse-after-loop -frerun-loop-opt ! -frounding-math -fschedule-insns -fschedule-insns2 ! -fno-sched-interblock -fno-sched-spec -fsched-spec-load ! -fsched-spec-load-dangerous ! -fsched-stalled-insns=N -sched-stalled-insns-dep=N ! -fsched2-use-superblocks ! -fsched2-use-traces -fsignaling-nans ! -fsingle-precision-constant ! -fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps ! -funroll-all-loops -funroll-loops -fpeel-loops ! -funswitch-loops -fold-unroll-loops -fold-unroll-all-loops --param NAME=VALUE -O -O0 -O1 -O2 -O3 -Os _Preprocessor Options_ *Note Options Controlling the Preprocessor: Preprocessor Options. ! -AQUESTION=ANSWER ! -A-QUESTION[=ANSWER] ! -C -dD -dI -dM -dN ! -DMACRO[=DEFN] -E -H ! -idirafter DIR ! -include FILE -imacros FILE ! -iprefix FILE -iwithprefix DIR ! -iwithprefixbefore DIR -isystem DIR ! -M -MM -MF -MG -MP -MQ -MT -nostdinc ! -P -fworking-directory -remap ! -trigraphs -undef -UMACRO -Wp,OPTION -Xpreprocessor OPTION _Assembler Option_ *************** _Assembler Option_ *** 521,530 **** _Linker Options_ *Note Options for Linking: Link Options. ! OBJECT-FILE-NAME -lLIBRARY ! -nostartfiles -nodefaultlibs -nostdlib -pie ! -s -static -static-libgcc -shared -shared-libgcc -symbolic ! -Wl,OPTION -Xlinker OPTION -u SYMBOL _Directory Options_ --- 519,528 ---- _Linker Options_ *Note Options for Linking: Link Options. ! OBJECT-FILE-NAME -lLIBRARY ! -nostartfiles -nodefaultlibs -nostdlib -pie ! -s -static -static-libgcc -shared -shared-libgcc -symbolic ! -Wl,OPTION -Xlinker OPTION -u SYMBOL _Directory Options_ *************** _Machine Dependent Options_ *** 539,739 **** *Note Hardware Models and Configurations: Submodel Options. _M680x0 Options_ ! -m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 ! -m68060 -mcpu32 -m5200 -m68881 -mbitfield -mc68000 -mc68020 ! -mnobitfield -mrtd -mshort -msoft-float -mpcrel ! -malign-int -mstrict-align -msep-data -mno-sep-data -mshared-library-id=n -mid-shared-library -mno-id-shared-library _M68hc1x Options_ ! -m6811 -m6812 -m68hc11 -m68hc12 -m68hcs12 ! -mauto-incdec -minmax -mlong-calls -mshort -msoft-reg-count=COUNT _VAX Options_ -mg -mgnu -munix _SPARC Options_ ! -mcpu=CPU-TYPE ! -mtune=CPU-TYPE ! -mcmodel=CODE-MODEL ! -m32 -m64 -mapp-regs -mno-app-regs ! -mfaster-structs -mno-faster-structs ! -mflat -mno-flat -mfpu -mno-fpu ! -mhard-float -msoft-float ! -mhard-quad-float -msoft-quad-float ! -mimpure-text -mno-impure-text -mlittle-endian ! -mstack-bias -mno-stack-bias ! -munaligned-doubles -mno-unaligned-doubles ! -mv8plus -mno-v8plus -mvis -mno-vis ! -mcypress -mf930 -mf934 -msparclite -msupersparc -mv8 -threads -pthreads _ARM Options_ ! -mapcs-frame -mno-apcs-frame ! -mapcs-26 -mapcs-32 ! -mapcs-stack-check -mno-apcs-stack-check ! -mapcs-float -mno-apcs-float ! -mapcs-reentrant -mno-apcs-reentrant ! -msched-prolog -mno-sched-prolog ! -mlittle-endian -mbig-endian -mwords-little-endian ! -malignment-traps -mno-alignment-traps ! -msoft-float -mhard-float -mfpe ! -mthumb-interwork -mno-thumb-interwork ! -mcpu=NAME -march=NAME -mfpe=NAME ! -mstructure-size-boundary=N ! -mabort-on-noreturn ! -mlong-calls -mno-long-calls ! -msingle-pic-base -mno-single-pic-base ! -mpic-register=REG ! -mnop-fun-dllimport ! -mcirrus-fix-invalid-insns -mno-cirrus-fix-invalid-insns ! -mpoke-function-name ! -mthumb -marm ! -mtpcs-frame -mtpcs-leaf-frame -mcaller-super-interworking -mcallee-super-interworking _MN10300 Options_ ! -mmult-bug -mno-mult-bug ! -mam33 -mno-am33 ! -mam33-2 -mno-am33-2 -mno-crt0 -mrelax _M32R/D Options_ ! -m32r2 -m32rx -m32r ! -mdebug ! -malign-loops -mno-align-loops ! -missue-rate=NUMBER ! -mbranch-cost=NUMBER ! -mmodel=CODE-SIZE-MODEL-TYPE ! -msdata=SDATA-TYPE ! -mno-flush-func -mflush-func=NAME ! -mno-flush-trap -mflush-trap=NUMBER -G NUM _RS/6000 and PowerPC Options_ ! -mcpu=CPU-TYPE ! -mtune=CPU-TYPE ! -mpower -mno-power -mpower2 -mno-power2 ! -mpowerpc -mpowerpc64 -mno-powerpc ! -maltivec -mno-altivec ! -mpowerpc-gpopt -mno-powerpc-gpopt ! -mpowerpc-gfxopt -mno-powerpc-gfxopt ! -mnew-mnemonics -mold-mnemonics ! -mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc ! -m64 -m32 -mxl-call -mno-xl-call -mpe ! -malign-power -malign-natural ! -msoft-float -mhard-float -mmultiple -mno-multiple ! -mstring -mno-string -mupdate -mno-update ! -mfused-madd -mno-fused-madd -mbit-align -mno-bit-align ! -mstrict-align -mno-strict-align -mrelocatable ! -mno-relocatable -mrelocatable-lib -mno-relocatable-lib ! -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian ! -mdynamic-no-pic ! -mprioritize-restricted-insns=PRIORITY ! -msched-costly-dep=DEPENDENCE_TYPE ! -minsert-sched-nops=SCHEME ! -mcall-sysv -mcall-netbsd ! -maix-struct-return -msvr4-struct-return ! -mabi=altivec -mabi=no-altivec ! -mabi=spe -mabi=no-spe ! -misel=yes -misel=no ! -mspe=yes -mspe=no ! -mfloat-gprs=yes -mfloat-gprs=no ! -mprototype -mno-prototype ! -msim -mmvme -mads -myellowknife -memb -msdata -msdata=OPT -mvxworks -mwindiss -G NUM -pthread _Darwin Options_ ! -all_load -allowable_client -arch -arch_errors_fatal ! -arch_only -bind_at_load -bundle -bundle_loader ! -client_name -compatibility_version -current_version ! -dependency-file -dylib_file -dylinker_install_name ! -dynamic -dynamiclib -exported_symbols_list ! -filelist -flat_namespace -force_cpusubtype_ALL ! -force_flat_namespace -headerpad_max_install_names ! -image_base -init -install_name -keep_private_externs ! -multi_module -multiply_defined -multiply_defined_unused ! -noall_load -nofixprebinding -nomultidefs -noprebind -noseglinkedit ! -pagezero_size -prebind -prebind_all_twolevel_modules ! -private_bundle -read_only_relocs -sectalign ! -sectobjectsymbols -whyload -seg1addr ! -sectcreate -sectobjectsymbols -sectorder ! -seg_addr_table -seg_addr_table_filename -seglinkedit ! -segprot -segs_read_only_addr -segs_read_write_addr ! -single_module -static -sub_library -sub_umbrella ! -twolevel_namespace -umbrella -undefined ! -unexported_symbols_list -weak_reference_mismatches -whatsloaded _MIPS Options_ ! -EL -EB -march=ARCH -mtune=ARCH ! -mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 -mips64 ! -mips16 -mno-mips16 -mabi=ABI -mabicalls -mno-abicalls ! -mxgot -mno-xgot -membedded-pic -mno-embedded-pic ! -mgp32 -mgp64 -mfp32 -mfp64 -mhard-float -msoft-float ! -msingle-float -mdouble-float -mint64 -mlong64 -mlong32 ! -GNUM -membedded-data -mno-embedded-data ! -muninit-const-in-rodata -mno-uninit-const-in-rodata ! -msplit-addresses -mno-split-addresses ! -mexplicit-relocs -mno-explicit-relocs ! -mrnames -mno-rnames ! -mcheck-zero-division -mno-check-zero-division ! -mmemcpy -mno-memcpy -mlong-calls -mno-long-calls ! -mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp ! -mfix-sb1 -mno-fix-sb1 -mflush-func=FUNC -mno-flush-func -mbranch-likely -mno-branch-likely _i386 and x86-64 Options_ ! -mtune=CPU-TYPE -march=CPU-TYPE ! -mfpmath=UNIT ! -masm=DIALECT -mno-fancy-math-387 ! -mno-fp-ret-in-387 -msoft-float -msvr3-shlib ! -mno-wide-multiply -mrtd -malign-double ! -mpreferred-stack-boundary=NUM ! -mmmx -msse -msse2 -msse3 -m3dnow ! -mthreads -mno-align-stringops -minline-all-stringops ! -mpush-args -maccumulate-outgoing-args -m128bit-long-double ! -m96bit-long-double -mregparm=NUM -momit-leaf-frame-pointer ! -mno-red-zone -mno-tls-direct-seg-refs ! -mcmodel=CODE-MODEL -m32 -m64 _HPPA Options_ ! -march=ARCHITECTURE-TYPE ! -mbig-switch -mdisable-fpregs -mdisable-indexing ! -mfast-indirect-calls -mgas -mgnu-ld -mhp-ld ! -mjump-in-delay -mlinker-opt -mlong-calls ! -mlong-load-store -mno-big-switch -mno-disable-fpregs ! -mno-disable-indexing -mno-fast-indirect-calls -mno-gas ! -mno-jump-in-delay -mno-long-load-store ! -mno-portable-runtime -mno-soft-float ! -mno-space-regs -msoft-float -mpa-risc-1-0 ! -mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime ! -mschedule=CPU-TYPE -mspace-regs -msio -mwsio -nolibdld -static -threads _Intel 960 Options_ ! -mCPU-TYPE -masm-compat -mclean-linkage ! -mcode-align -mcomplex-addr -mleaf-procedures ! -mic-compat -mic2.0-compat -mic3.0-compat ! -mintel-asm -mno-clean-linkage -mno-code-align ! -mno-complex-addr -mno-leaf-procedures ! -mno-old-align -mno-strict-align -mno-tail-call ! -mnumerics -mold-align -msoft-float -mstrict-align -mtail-call _DEC Alpha Options_ ! -mno-fp-regs -msoft-float -malpha-as -mgas ! -mieee -mieee-with-inexact -mieee-conformant ! -mfp-trap-mode=MODE -mfp-rounding-mode=MODE ! -mtrap-precision=MODE -mbuild-constants ! -mcpu=CPU-TYPE -mtune=CPU-TYPE ! -mbwx -mmax -mfix -mcix ! -mfloat-vax -mfloat-ieee ! -mexplicit-relocs -msmall-data -mlarge-data ! -msmall-text -mlarge-text -mmemory-latency=TIME _DEC Alpha/VMS Options_ --- 537,737 ---- *Note Hardware Models and Configurations: Submodel Options. _M680x0 Options_ ! -m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 ! -m68060 -mcpu32 -m5200 -m68881 -mbitfield -mc68000 -mc68020 ! -mnobitfield -mrtd -mshort -msoft-float -mpcrel ! -malign-int -mstrict-align -msep-data -mno-sep-data -mshared-library-id=n -mid-shared-library -mno-id-shared-library _M68hc1x Options_ ! -m6811 -m6812 -m68hc11 -m68hc12 -m68hcs12 ! -mauto-incdec -minmax -mlong-calls -mshort -msoft-reg-count=COUNT _VAX Options_ -mg -mgnu -munix _SPARC Options_ ! -mcpu=CPU-TYPE ! -mtune=CPU-TYPE ! -mcmodel=CODE-MODEL ! -m32 -m64 -mapp-regs -mno-app-regs ! -mfaster-structs -mno-faster-structs ! -mflat -mno-flat -mfpu -mno-fpu ! -mhard-float -msoft-float ! -mhard-quad-float -msoft-quad-float ! -mimpure-text -mno-impure-text -mlittle-endian ! -mstack-bias -mno-stack-bias ! -munaligned-doubles -mno-unaligned-doubles ! -mv8plus -mno-v8plus -mvis -mno-vis ! -mcypress -mf930 -mf934 -msparclite -msupersparc -mv8 -threads -pthreads _ARM Options_ ! -mapcs-frame -mno-apcs-frame ! -mapcs-26 -mapcs-32 ! -mapcs-stack-check -mno-apcs-stack-check ! -mapcs-float -mno-apcs-float ! -mapcs-reentrant -mno-apcs-reentrant ! -msched-prolog -mno-sched-prolog ! -mlittle-endian -mbig-endian -mwords-little-endian ! -malignment-traps -mno-alignment-traps ! -msoft-float -mhard-float -mfpe ! -mthumb-interwork -mno-thumb-interwork ! -mcpu=NAME -march=NAME -mfpe=NAME ! -mstructure-size-boundary=N ! -mabort-on-noreturn ! -mlong-calls -mno-long-calls ! -msingle-pic-base -mno-single-pic-base ! -mpic-register=REG ! -mnop-fun-dllimport ! -mcirrus-fix-invalid-insns -mno-cirrus-fix-invalid-insns ! -mpoke-function-name ! -mthumb -marm ! -mtpcs-frame -mtpcs-leaf-frame -mcaller-super-interworking -mcallee-super-interworking _MN10300 Options_ ! -mmult-bug -mno-mult-bug ! -mam33 -mno-am33 ! -mam33-2 -mno-am33-2 -mno-crt0 -mrelax _M32R/D Options_ ! -m32r2 -m32rx -m32r ! -mdebug ! -malign-loops -mno-align-loops ! -missue-rate=NUMBER ! -mbranch-cost=NUMBER ! -mmodel=CODE-SIZE-MODEL-TYPE ! -msdata=SDATA-TYPE ! -mno-flush-func -mflush-func=NAME ! -mno-flush-trap -mflush-trap=NUMBER -G NUM _RS/6000 and PowerPC Options_ ! -mcpu=CPU-TYPE ! -mtune=CPU-TYPE ! -mpower -mno-power -mpower2 -mno-power2 ! -mpowerpc -mpowerpc64 -mno-powerpc ! -maltivec -mno-altivec ! -mpowerpc-gpopt -mno-powerpc-gpopt ! -mpowerpc-gfxopt -mno-powerpc-gfxopt ! -mnew-mnemonics -mold-mnemonics ! -mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc ! -m64 -m32 -mxl-compat -mno-xl-compat -mpe ! -malign-power -malign-natural ! -msoft-float -mhard-float -mmultiple -mno-multiple ! -mstring -mno-string -mupdate -mno-update ! -mfused-madd -mno-fused-madd -mbit-align -mno-bit-align ! -mstrict-align -mno-strict-align -mrelocatable ! -mno-relocatable -mrelocatable-lib -mno-relocatable-lib ! -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian ! -mdynamic-no-pic ! -mprioritize-restricted-insns=PRIORITY ! -msched-costly-dep=DEPENDENCE_TYPE ! -minsert-sched-nops=SCHEME ! -mcall-sysv -mcall-netbsd ! -maix-struct-return -msvr4-struct-return ! -mabi=altivec -mabi=no-altivec ! -mabi=spe -mabi=no-spe ! -misel=yes -misel=no ! -mspe=yes -mspe=no ! -mfloat-gprs=yes -mfloat-gprs=no ! -mprototype -mno-prototype ! -msim -mmvme -mads -myellowknife -memb -msdata -msdata=OPT -mvxworks -mwindiss -G NUM -pthread _Darwin Options_ ! -all_load -allowable_client -arch -arch_errors_fatal ! -arch_only -bind_at_load -bundle -bundle_loader ! -client_name -compatibility_version -current_version ! -dependency-file -dylib_file -dylinker_install_name ! -dynamic -dynamiclib -exported_symbols_list ! -filelist -flat_namespace -force_cpusubtype_ALL ! -force_flat_namespace -headerpad_max_install_names ! -image_base -init -install_name -keep_private_externs ! -multi_module -multiply_defined -multiply_defined_unused ! -noall_load -nofixprebinding -nomultidefs -noprebind -noseglinkedit ! -pagezero_size -prebind -prebind_all_twolevel_modules ! -private_bundle -read_only_relocs -sectalign ! -sectobjectsymbols -whyload -seg1addr ! -sectcreate -sectobjectsymbols -sectorder ! -seg_addr_table -seg_addr_table_filename -seglinkedit ! -segprot -segs_read_only_addr -segs_read_write_addr ! -single_module -static -sub_library -sub_umbrella ! -twolevel_namespace -umbrella -undefined ! -unexported_symbols_list -weak_reference_mismatches -whatsloaded _MIPS Options_ ! -EL -EB -march=ARCH -mtune=ARCH ! -mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 -mips64 ! -mips16 -mno-mips16 -mabi=ABI -mabicalls -mno-abicalls ! -mxgot -mno-xgot -membedded-pic -mno-embedded-pic ! -mgp32 -mgp64 -mfp32 -mfp64 -mhard-float -msoft-float ! -msingle-float -mdouble-float -mint64 -mlong64 -mlong32 ! -GNUM -membedded-data -mno-embedded-data ! -muninit-const-in-rodata -mno-uninit-const-in-rodata ! -msplit-addresses -mno-split-addresses ! -mexplicit-relocs -mno-explicit-relocs ! -mrnames -mno-rnames ! -mcheck-zero-division -mno-check-zero-division ! -mmemcpy -mno-memcpy -mlong-calls -mno-long-calls ! -mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp ! -mfix-sb1 -mno-fix-sb1 -mflush-func=FUNC -mno-flush-func -mbranch-likely -mno-branch-likely _i386 and x86-64 Options_ ! -mtune=CPU-TYPE -march=CPU-TYPE ! -mfpmath=UNIT ! -masm=DIALECT -mno-fancy-math-387 ! -mno-fp-ret-in-387 -msoft-float -msvr3-shlib ! -mno-wide-multiply -mrtd -malign-double ! -mpreferred-stack-boundary=NUM ! -mmmx -msse -msse2 -msse3 -m3dnow ! -mthreads -mno-align-stringops -minline-all-stringops ! -mpush-args -maccumulate-outgoing-args -m128bit-long-double ! -m96bit-long-double -mregparm=NUM -momit-leaf-frame-pointer ! -mno-red-zone -mno-tls-direct-seg-refs ! -mcmodel=CODE-MODEL -m32 -m64 _HPPA Options_ ! -march=ARCHITECTURE-TYPE ! -mbig-switch -mdisable-fpregs -mdisable-indexing ! -mfast-indirect-calls -mgas -mgnu-ld -mhp-ld ! -mjump-in-delay -mlinker-opt -mlong-calls ! -mlong-load-store -mno-big-switch -mno-disable-fpregs ! -mno-disable-indexing -mno-fast-indirect-calls -mno-gas ! -mno-jump-in-delay -mno-long-load-store ! -mno-portable-runtime -mno-soft-float ! -mno-space-regs -msoft-float -mpa-risc-1-0 ! -mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime ! -mschedule=CPU-TYPE -mspace-regs -msio -mwsio -nolibdld -static -threads _Intel 960 Options_ ! -mCPU-TYPE -masm-compat -mclean-linkage ! -mcode-align -mcomplex-addr -mleaf-procedures ! -mic-compat -mic2.0-compat -mic3.0-compat ! -mintel-asm -mno-clean-linkage -mno-code-align ! -mno-complex-addr -mno-leaf-procedures ! -mno-old-align -mno-strict-align -mno-tail-call ! -mnumerics -mold-align -msoft-float -mstrict-align -mtail-call _DEC Alpha Options_ ! -mno-fp-regs -msoft-float -malpha-as -mgas ! -mieee -mieee-with-inexact -mieee-conformant ! -mfp-trap-mode=MODE -mfp-rounding-mode=MODE ! -mtrap-precision=MODE -mbuild-constants ! -mcpu=CPU-TYPE -mtune=CPU-TYPE ! -mbwx -mmax -mfix -mcix ! -mfloat-vax -mfloat-ieee ! -mexplicit-relocs -msmall-data -mlarge-data ! -msmall-text -mlarge-text -mmemory-latency=TIME _DEC Alpha/VMS Options_ *************** _Machine Dependent Options_ *** 743,884 **** -mrelax -mh -ms -mn -mint32 -malign-300 _SH Options_ ! -m1 -m2 -m2e -m3 -m3e ! -m4-nofpu -m4-single-only -m4-single -m4 ! -m5-64media -m5-64media-nofpu ! -m5-32media -m5-32media-nofpu ! -m5-compact -m5-compact-nofpu ! -mb -ml -mdalign -mrelax ! -mbigtable -mfmovd -mhitachi -mnomacsave ! -mieee -misize -mpadstruct -mspace -mprefergot -musermode _System V Options_ -Qy -Qn -YP,PATHS -Ym,DIR _ARC Options_ ! -EB -EL ! -mmangle-cpu -mcpu=CPU -mtext=TEXT-SECTION -mdata=DATA-SECTION -mrodata=READONLY-DATA-SECTION _TMS320C3x/C4x Options_ ! -mcpu=CPU -mbig -msmall -mregparm -mmemparm ! -mfast-fix -mmpyi -mbk -mti -mdp-isr-reload ! -mrpts=COUNT -mrptb -mdb -mloop-unsigned -mparallel-insns -mparallel-mpy -mpreserve-float _V850 Options_ ! -mlong-calls -mno-long-calls -mep -mno-ep ! -mprolog-function -mno-prolog-function -mspace ! -mtda=N -msda=N -mzda=N ! -mapp-regs -mno-app-regs ! -mdisable-callt -mno-disable-callt ! -mv850e1 ! -mv850e -mv850 -mbig-switch _NS32K Options_ ! -m32032 -m32332 -m32532 -m32081 -m32381 ! -mmult-add -mnomult-add -msoft-float -mrtd -mnortd ! -mregparam -mnoregparam -msb -mnosb -mbitfield -mnobitfield -mhimem -mnohimem _AVR Options_ ! -mmcu=MCU -msize -minit-stack=N -mno-interrupts -mcall-prologues -mno-tablejump -mtiny-stack _MCore Options_ ! -mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates ! -mno-relax-immediates -mwide-bitfields -mno-wide-bitfields ! -m4byte-functions -mno-4byte-functions -mcallgraph-data ! -mno-callgraph-data -mslow-bytes -mno-slow-bytes -mno-lsim -mlittle-endian -mbig-endian -m210 -m340 -mstack-increment _MMIX Options_ ! -mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu ! -mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols ! -melf -mbranch-predict -mno-branch-predict -mbase-addresses -mno-base-addresses -msingle-exit -mno-single-exit _IA-64 Options_ ! -mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic ! -mvolatile-asm-stop -mb-step -mregister-names -mno-sdata ! -mconstant-gp -mauto-pic -minline-float-divide-min-latency ! -minline-float-divide-max-throughput ! -minline-int-divide-min-latency ! -minline-int-divide-max-throughput -mno-dwarf2-asm ! -mfixed-range=REGISTER-RANGE _D30V Options_ ! -mextmem -mextmemory -monchip -mno-asm-optimize -masm-optimize -mbranch-cost=N -mcond-exec=N _S/390 and zSeries Options_ ! -mtune=CPU-TYPE -march=CPU-TYPE ! -mhard-float -msoft-float -mbackchain -mno-backchain ! -msmall-exec -mno-small-exec -mmvcle -mno-mvcle -m64 -m31 -mdebug -mno-debug -mesa -mzarch -mfused-madd -mno-fused-madd _CRIS Options_ ! -mcpu=CPU -march=CPU -mtune=CPU ! -mmax-stack-frame=N -melinux-stacksize=N ! -metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects ! -mstack-align -mdata-align -mconst-align ! -m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt ! -melf -maout -melinux -mlinux -sim -sim2 -mmul-bug-workaround -mno-mul-bug-workaround _PDP-11 Options_ ! -mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 ! -mbcopy -mbcopy-builtin -mint32 -mno-int16 ! -mint16 -mno-int32 -mfloat32 -mno-float64 ! -mfloat64 -mno-float32 -mabshi -mno-abshi ! -mbranch-expensive -mbranch-cheap -msplit -mno-split -munix-asm -mdec-asm _Xstormy16 Options_ -msim _Xtensa Options_ ! -mconst16 -mno-const16 ! -mfused-madd -mno-fused-madd ! -mtext-section-literals -mno-text-section-literals ! -mtarget-align -mno-target-align -mlongcalls -mno-longcalls _FRV Options_ ! -mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 ! -mhard-float -msoft-float ! -malloc-cc -mfixed-cc -mdword -mno-dword ! -mdouble -mno-double ! -mmedia -mno-media -mmuladd -mno-muladd ! -mlibrary-pic -macc-4 -macc-8 ! -mpack -mno-pack -mno-eflags -mcond-move -mno-cond-move ! -mscc -mno-scc -mcond-exec -mno-cond-exec ! -mvliw-branch -mno-vliw-branch ! -mmulti-cond-exec -mno-multi-cond-exec -mnested-cond-exec ! -mno-nested-cond-exec -mtomcat-stats -mcpu=CPU _Code Generation Options_ *Note Options for Code Generation Conventions: Code Gen Options. ! -fcall-saved-REG -fcall-used-REG ! -ffixed-REG -fexceptions ! -fnon-call-exceptions -funwind-tables ! -fasynchronous-unwind-tables ! -finhibit-size-directive -finstrument-functions ! -fno-common -fno-ident ! -fpcc-struct-return -fpic -fPIC -fpie -fPIE ! -freg-struct-return -fshared-data -fshort-enums ! -fshort-double -fshort-wchar ! -fverbose-asm -fpack-struct -fstack-check ! -fstack-limit-register=REG -fstack-limit-symbol=SYM ! -fargument-alias -fargument-noalias ! -fargument-noalias-global -fleading-underscore ! -ftls-model=MODEL -ftrapv -fwrapv -fbounds-check - * Menu: * Overall Options:: Controlling the kind of output: --- 741,884 ---- -mrelax -mh -ms -mn -mint32 -malign-300 _SH Options_ ! -m1 -m2 -m2e -m3 -m3e ! -m4-nofpu -m4-single-only -m4-single -m4 ! -m5-64media -m5-64media-nofpu ! -m5-32media -m5-32media-nofpu ! -m5-compact -m5-compact-nofpu ! -mb -ml -mdalign -mrelax ! -mbigtable -mfmovd -mhitachi -mnomacsave ! -mieee -misize -mpadstruct -mspace -mprefergot -musermode _System V Options_ -Qy -Qn -YP,PATHS -Ym,DIR _ARC Options_ ! -EB -EL ! -mmangle-cpu -mcpu=CPU -mtext=TEXT-SECTION -mdata=DATA-SECTION -mrodata=READONLY-DATA-SECTION _TMS320C3x/C4x Options_ ! -mcpu=CPU -mbig -msmall -mregparm -mmemparm ! -mfast-fix -mmpyi -mbk -mti -mdp-isr-reload ! -mrpts=COUNT -mrptb -mdb -mloop-unsigned -mparallel-insns -mparallel-mpy -mpreserve-float _V850 Options_ ! -mlong-calls -mno-long-calls -mep -mno-ep ! -mprolog-function -mno-prolog-function -mspace ! -mtda=N -msda=N -mzda=N ! -mapp-regs -mno-app-regs ! -mdisable-callt -mno-disable-callt ! -mv850e1 ! -mv850e -mv850 -mbig-switch _NS32K Options_ ! -m32032 -m32332 -m32532 -m32081 -m32381 ! -mmult-add -mnomult-add -msoft-float -mrtd -mnortd ! -mregparam -mnoregparam -msb -mnosb -mbitfield -mnobitfield -mhimem -mnohimem _AVR Options_ ! -mmcu=MCU -msize -minit-stack=N -mno-interrupts -mcall-prologues -mno-tablejump -mtiny-stack _MCore Options_ ! -mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates ! -mno-relax-immediates -mwide-bitfields -mno-wide-bitfields ! -m4byte-functions -mno-4byte-functions -mcallgraph-data ! -mno-callgraph-data -mslow-bytes -mno-slow-bytes -mno-lsim -mlittle-endian -mbig-endian -m210 -m340 -mstack-increment _MMIX Options_ ! -mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu ! -mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols ! -melf -mbranch-predict -mno-branch-predict -mbase-addresses -mno-base-addresses -msingle-exit -mno-single-exit _IA-64 Options_ ! -mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic ! -mvolatile-asm-stop -mb-step -mregister-names -mno-sdata ! -mconstant-gp -mauto-pic -minline-float-divide-min-latency ! -minline-float-divide-max-throughput ! -minline-int-divide-min-latency ! -minline-int-divide-max-throughput ! -minline-sqrt-min-latency -minline-sqrt-max-throughput ! -mno-dwarf2-asm -mearly-stop-bits ! -mfixed-range=REGISTER-RANGE -mtls-size=TLS-SIZE ! -mtune=CPU-TYPE -mt -pthread -milp32 -mlp64 _D30V Options_ ! -mextmem -mextmemory -monchip -mno-asm-optimize -masm-optimize -mbranch-cost=N -mcond-exec=N _S/390 and zSeries Options_ ! -mtune=CPU-TYPE -march=CPU-TYPE ! -mhard-float -msoft-float -mbackchain -mno-backchain ! -msmall-exec -mno-small-exec -mmvcle -mno-mvcle -m64 -m31 -mdebug -mno-debug -mesa -mzarch -mfused-madd -mno-fused-madd _CRIS Options_ ! -mcpu=CPU -march=CPU -mtune=CPU ! -mmax-stack-frame=N -melinux-stacksize=N ! -metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects ! -mstack-align -mdata-align -mconst-align ! -m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt ! -melf -maout -melinux -mlinux -sim -sim2 -mmul-bug-workaround -mno-mul-bug-workaround _PDP-11 Options_ ! -mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 ! -mbcopy -mbcopy-builtin -mint32 -mno-int16 ! -mint16 -mno-int32 -mfloat32 -mno-float64 ! -mfloat64 -mno-float32 -mabshi -mno-abshi ! -mbranch-expensive -mbranch-cheap -msplit -mno-split -munix-asm -mdec-asm _Xstormy16 Options_ -msim _Xtensa Options_ ! -mconst16 -mno-const16 ! -mfused-madd -mno-fused-madd ! -mtext-section-literals -mno-text-section-literals ! -mtarget-align -mno-target-align -mlongcalls -mno-longcalls _FRV Options_ ! -mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 ! -mhard-float -msoft-float ! -malloc-cc -mfixed-cc -mdword -mno-dword ! -mdouble -mno-double ! -mmedia -mno-media -mmuladd -mno-muladd ! -mlibrary-pic -macc-4 -macc-8 ! -mpack -mno-pack -mno-eflags -mcond-move -mno-cond-move ! -mscc -mno-scc -mcond-exec -mno-cond-exec ! -mvliw-branch -mno-vliw-branch ! -mmulti-cond-exec -mno-multi-cond-exec -mnested-cond-exec ! -mno-nested-cond-exec -mtomcat-stats -mcpu=CPU _Code Generation Options_ *Note Options for Code Generation Conventions: Code Gen Options. ! -fcall-saved-REG -fcall-used-REG ! -ffixed-REG -fexceptions ! -fnon-call-exceptions -funwind-tables ! -fasynchronous-unwind-tables ! -finhibit-size-directive -finstrument-functions ! -fno-common -fno-ident ! -fpcc-struct-return -fpic -fPIC -fpie -fPIE ! -freg-struct-return -fshared-data -fshort-enums ! -fshort-double -fshort-wchar ! -fverbose-asm -fpack-struct -fstack-check ! -fstack-limit-register=REG -fstack-limit-symbol=SYM ! -fargument-alias -fargument-noalias ! -fargument-noalias-global -fleading-underscore ! -ftls-model=MODEL -ftrapv -fwrapv -fbounds-check * Menu: * Overall Options:: Controlling the kind of output: *************** _Code Generation Options_ *** 904,913 ****  File: gcc.info, Node: Overall Options, Next: Invoking G++, Prev: Option Summary, Up: Invoking GCC ! 3.2 Options Controlling the Kind of Output ! ========================================== ! Compilation can involve up to four stages: preprocessing, compilation proper, assembly and linking, always in that order. GCC is capable of preprocessing and compiling several files either into several assembler input files, or into one assembler input file; then each assembler --- 904,913 ----  File: gcc.info, Node: Overall Options, Next: Invoking G++, Prev: Option Summary, Up: Invoking GCC ! Options Controlling the Kind of Output ! ====================================== ! Compilation can involve up to four stages: preprocessing, compilation proper, assembly and linking, always in that order. GCC is capable of preprocessing and compiling several files either into several assembler input files, or into one assembler input file; then each assembler *************** do nothing at all. *** 1104,1113 ****  File: gcc.info, Node: Invoking G++, Next: C Dialect Options, Prev: Overall Options, Up: Invoking GCC ! 3.3 Compiling C++ Programs ! ========================== ! C++ source files conventionally use one of the suffixes `.C', `.cc', `.cpp', `.CPP', `.c++', `.cp', or `.cxx'; C++ header files often use `.hh' or `.H'; and preprocessed C++ files use the suffix `.ii'. GCC recognizes files with these names and compiles them as C++ programs --- 1104,1113 ----  File: gcc.info, Node: Invoking G++, Next: C Dialect Options, Prev: Overall Options, Up: Invoking GCC ! Compiling C++ Programs ! ====================== ! C++ source files conventionally use one of the suffixes `.C', `.cc', `.cpp', `.CPP', `.c++', `.cp', or `.cxx'; C++ header files often use `.hh' or `.H'; and preprocessed C++ files use the suffix `.ii'. GCC recognizes files with these names and compiles them as C++ programs *************** meaningful only for C++ programs. *** 1136,1145 ****  File: gcc.info, Node: C Dialect Options, Next: C++ Dialect Options, Prev: Invoking G++, Up: Invoking GCC ! 3.4 Options Controlling C Dialect ! ================================= ! The following options control the dialect of C (or languages derived from C, such as C++ and Objective-C) that the compiler accepts: `-ansi' --- 1136,1145 ----  File: gcc.info, Node: C Dialect Options, Next: C++ Dialect Options, Prev: Invoking G++, Up: Invoking GCC ! Options Controlling C Dialect ! ============================= ! The following options control the dialect of C (or languages derived from C, such as C++ and Objective-C) that the compiler accepts: `-ansi' *************** from C, such as C++ and Objective-C) tha *** 1381,1393 ****  File: gcc.info, Node: C++ Dialect Options, Next: Objective-C Dialect Options, Prev: C Dialect Options, Up: Invoking GCC ! 3.5 Options Controlling C++ Dialect ! =================================== ! This section describes the command-line options that are only meaningful ! for C++ programs; but you can also use most of the GNU compiler options ! regardless of what language your program is in. For example, you might ! compile a file `firstClass.C' like this: g++ -g -frepo -O -c firstClass.C --- 1381,1393 ----  File: gcc.info, Node: C++ Dialect Options, Next: Objective-C Dialect Options, Prev: C Dialect Options, Up: Invoking GCC ! Options Controlling C++ Dialect ! =============================== ! This section describes the command-line options that are only ! meaningful for C++ programs; but you can also use most of the GNU ! compiler options regardless of what language your program is in. For ! example, you might compile a file `firstClass.C' like this: g++ -g -frepo -O -c firstClass.C *************** have meanings only for C++ programs: *** 1624,1635 **** example: struct A {}; ! struct B { A a; virtual void f (); }; ! struct C : public B, public A {}; G++ will place the `A' base class of `C' at a nonzero offset; --- 1624,1635 ---- example: struct A {}; ! struct B { A a; virtual void f (); }; ! struct C : public B, public A {}; G++ will place the `A' base class of `C' at a nonzero offset; *************** have meanings only for C++ programs: *** 1641,1647 **** template void f(typename Q::X) {} ! template