diff -Nrc3pad gcc-3.3/gcc/f/BUGS gcc-3.3.1/gcc/f/BUGS *** gcc-3.3/gcc/f/BUGS 2003-05-14 02:47:28.000000000 +0000 --- gcc-3.3.1/gcc/f/BUGS 2003-08-04 14:59:04.000000000 +0000 *************** _Note:_ This file is automatically gener *** 2,20 **** `bugs0.texi' and `bugs.texi'. `BUGS' is _not_ a source file, although it is normally included within source distributions. ! This file lists known bugs in the GCC-3.3 version of the GNU Fortran ! compiler. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Free ! Software Foundation, Inc. You may copy, distribute, and modify it ! freely as long as you preserve this copyright notice and permission ! notice. Known Bugs In GNU Fortran ************************* This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.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. For information on bugs in _other_ versions of `g77', see --- 2,20 ---- `bugs0.texi' and `bugs.texi'. `BUGS' is _not_ a source file, although it is normally included within source distributions. ! This file lists known bugs in the GCC-3.3.1 version of the GNU ! Fortran compiler. Copyright (C) ! 1995,1996,1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. ! You may copy, distribute, and modify it freely as long as you preserve ! this copyright notice and permission notice. Known Bugs In GNU Fortran ************************* This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.3.1 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. For information on bugs in _other_ versions of `g77', see diff -Nrc3pad gcc-3.3/gcc/f/ChangeLog gcc-3.3.1/gcc/f/ChangeLog *** gcc-3.3/gcc/f/ChangeLog 2003-05-14 00:10:00.000000000 +0000 --- gcc-3.3.1/gcc/f/ChangeLog 2003-08-04 12:48:48.000000000 +0000 *************** *** 1,3 **** --- 1,50 ---- + 2003-08-04 Release Manager + + * GCC 3.3.1 Released. + + 2003-08-04 Release Manager + + * GCC 3.3.1 Released. + + 2003-07-09 Toon Moene + + PR Fortran/11301 + * com.c (ffecom_sym_transform_): finish_decl should have + the same last argument as start_decl. + + Tue Jul 8 15:18:14 2003 Andreas Schwab + + * Make-lang.in (f/g77.dvi): Replace PWD with PWD_COMMAND. + + 2003-07-05 Toon Moene + + PR Fortran/11301 + * com.c (ffecom_sym_transform_): Only install + FFEINFO_whereGLOBAL symbols in the global binding + level if not -fno-globals. + + 2003-06-13 Richard Henderson + + PR debug/9864 + * com.c (ffecom_sym_transform_): Install FFEINFO_whereGLOBAL + symbols in the global binding level. + + 2003-05-18 Toon Moene + + PR fortran/10726 + * intdoc.in: Fix documentation of IDATE. + * intdoc.texi: Regenerate. + * news.texi: Update due to the above. + + 2003-05-16 Wolfgang Bangerth + + * g77.texi: Remove most of the preface of the bugs section. + + 2003-05-15 Wolfgang Bangerth + + * g77.texi: Remove most of the bug reporting instructions and + merge them into bugs.html. + 2003-05-13 Release Manager * GCC 3.3 Released. diff -Nrc3pad gcc-3.3/gcc/f/com.c gcc-3.3.1/gcc/f/com.c *** gcc-3.3/gcc/f/com.c 2003-03-24 07:44:49.000000000 +0000 --- gcc-3.3.1/gcc/f/com.c 2003-07-09 19:04:40.000000000 +0000 *************** ffecom_sym_transform_ (ffesymbol s) *** 8091,8098 **** DECL_EXTERNAL (t) = 1; TREE_PUBLIC (t) = 1; ! t = start_decl (t, FALSE); ! finish_decl (t, NULL_TREE, FALSE); if ((g != NULL) && ((ffeglobal_type (g) == FFEGLOBAL_typeSUBR) --- 8091,8098 ---- DECL_EXTERNAL (t) = 1; TREE_PUBLIC (t) = 1; ! t = start_decl (t, ffe_is_globals ()); ! finish_decl (t, NULL_TREE, ffe_is_globals ()); if ((g != NULL) && ((ffeglobal_type (g) == FFEGLOBAL_typeSUBR) diff -Nrc3pad gcc-3.3/gcc/f/g77.1 gcc-3.3.1/gcc/f/g77.1 *** gcc-3.3/gcc/f/g77.1 2003-05-14 00:32:08.000000000 +0000 --- gcc-3.3.1/gcc/f/g77.1 2003-08-04 13:10:51.000000000 +0000 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "2003-05-14" "gcc-3.3" "GNU" .SH "NAME" g77 \- GNU project Fortran 77 compiler .SH "SYNOPSIS" --- 129,135 ---- .\" ======================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "2003-08-04" "gcc-3.3.1" "GNU" .SH "NAME" g77 \- GNU project Fortran 77 compiler .SH "SYNOPSIS" diff -Nrc3pad gcc-3.3/gcc/f/g77.info gcc-3.3.1/gcc/f/g77.info *** gcc-3.3/gcc/f/g77.info 2003-05-14 00:31:48.000000000 +0000 --- gcc-3.3.1/gcc/f/g77.info 2003-08-04 13:10:33.000000000 +0000 *************** *** 1,7 **** This is g77.info, produced by makeinfo version 4.2 from g77.texi. ! Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 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 --- 1,7 ---- This is g77.info, produced by makeinfo version 4.2 from g77.texi. ! Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 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 *************** START-INFO-DIR-ENTRY *** 25,37 **** * 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.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 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 --- 25,37 ---- * 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.3.1 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 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 *************** Introduction *** 62,68 **** 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.3 version of `g77'. * Menu: --- 62,68 ---- 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.3.1 version of `g77'. * Menu: *************** clarify how they differ from other versi *** 2939,2952 **** getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available at `http://gcc.gnu.org/onlinedocs/g77/News.html'. ! The following information was last updated on 2003-04-11: In `GCC' 3.3 versus `GCC' 3.2: ============================== --- 2939,2952 ---- getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3.1 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available at `http://gcc.gnu.org/onlinedocs/g77/News.html'. ! The following information was last updated on 2003-05-18: In `GCC' 3.3 versus `GCC' 3.2: ============================== *************** In `GCC' 3.3 versus `GCC' 3.2: *** 3005,3010 **** --- 3005,3014 ---- `10197' Direct access files not unformatted by default + `10726' + Documentation for function IDATE Intrinsic (UNIX) is wrong + [fixed in 3.3.1]. + * Richard Henderson () analyzed and improved the handling of (no-)aliasing information for dummy arguments and improved the optimization of induction variables in unrolled loops. *************** clarify how they differ from other versi *** 4252,4261 **** getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2003-04-11: In `GCC' 3.3 versus `GCC' 3.2: ============================== --- 4256,4265 ---- getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3.1 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2003-05-18: In `GCC' 3.3 versus `GCC' 3.2: ============================== *************** In `GCC' 3.3 versus `GCC' 3.2: *** 4314,4319 **** --- 4318,4327 ---- `10197' Direct access files not unformatted by default + `10726' + Documentation for function IDATE Intrinsic (UNIX) is wrong + [fixed in 3.3.1]. + * Richard Henderson () analyzed and improved the handling of (no-)aliasing information for dummy arguments and improved the optimization of induction variables in unrolled loops. *************** Intrinsic groups: `unix'. *** 10542,10550 **** Description: ! Fills TARRAY with the numerical values at the current local time of ! day, month (in the range 1-12), and year in elements 1, 2, and 3, ! respectively. The year has four significant digits. Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to --- 10550,10559 ---- Description: ! Fills TARRAY with the numerical values at the current local time. ! The day (in the range 1-31), month (in the range 1-12), and year appear ! in elements 1, 2, and 3 of TARRAY, respectively. The year has four ! significant digits. Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to *************** Intrinsic groups: `vxt'. *** 15839,15852 **** Description: Returns the numerical values of the current local time. The month ! (in the range 1-12) is returned in M, the day (in the range 1-7) in D, and the year in Y (in the range 0-99). ! This intrinsic is not recommended, due to the year 2000 approaching. ! Therefore, programs making use of this intrinsic might not be Year 2000 ! (Y2K) compliant. For example, the date might appear, to such programs, ! to wrap around (change from a larger value to a smaller one) as of the ! Year 2000. *Note IDate Intrinsic (UNIX)::, for information on obtaining more digits for the current date. --- 15848,15862 ---- Description: Returns the numerical values of the current local time. The month ! (in the range 1-12) is returned in M, the day (in the range 1-31) in D, and the year in Y (in the range 0-99). ! This intrinsic is not recommended, due to the fact that its return ! value for year wraps around century boundaries (change from a larger ! value to a smaller one). Therefore, programs making use of this ! intrinsic, for instance, might not be Year 2000 (Y2K) compliant. For ! example, the date might appear, to such programs, to wrap around as of ! the Year 2000. *Note IDate Intrinsic (UNIX)::, for information on obtaining more digits for the current date. *************** Known Bugs In GNU Fortran *** 19844,19852 **** ========================= This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.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. For information on bugs in _other_ versions of `g77', see *Note News --- 19854,19862 ---- ========================= This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.3.1 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. For information on bugs in _other_ versions of `g77', see *Note News *************** reliable. *** 21554,21577 **** is already known. *Note Trouble::. If it isn't known, then you should report the problem. - Reporting a bug might help you by bringing a solution to your - problem, or it might not. (If it does not, look in the service - directory; see *Note Service::.) In any case, the principal function - of a bug report is to help the entire community by making the next - version of GNU Fortran work better. Bug reports are your contribution - to the maintenance of GNU Fortran. - - Since the maintainers are very overloaded, we cannot respond to every - bug report. However, if the bug has not been fixed, we are likely to - send you a patch and ask you to tell us whether it works. - - In order for a bug report to serve its purpose, you must include the - information that makes for fixing the bug. - * Menu: * Criteria: Bug Criteria. Have you really found a bug? - * Where: Bug Lists. Where to send your bug report. * Reporting: Bug Reporting. How to report a bug effectively. *Note Known Causes of Trouble with GNU Fortran: Trouble, for --- 21564,21572 ---- *************** information on problems we already know *** 21581,21587 **** where to ask for help.  ! File: g77.info, Node: Bug Criteria, Next: Bug Lists, Up: Bugs Have You Found a Bug? ===================== --- 21576,21582 ---- where to ask for help.  ! File: g77.info, Node: Bug Criteria, Next: Bug Reporting, Up: Bugs Have You Found a Bug? ===================== *************** the code you're compiling with `g77': *** 21732,22034 **** than other compilers.  ! File: g77.info, Node: Bug Lists, Next: Bug Reporting, Prev: Bug Criteria, Up: Bugs ! ! Where to Report Bugs ! ==================== ! ! Send bug reports for GNU Fortran to . ! ! Often people think of posting bug reports to a newsgroup instead of ! mailing them. This sometimes appears to work, but it has one problem ! which can be crucial: a newsgroup posting does not contain a mail path ! back to the sender. Thus, if maintainers need more information, they ! might be unable to reach you. For this reason, you should always send ! bug reports by mail to the proper mailing list. ! ! As a last resort, send bug reports on paper to: ! ! GNU Compiler Bugs ! Free Software Foundation ! 59 Temple Place - Suite 330 ! Boston, MA 02111-1307, USA ! !  ! File: g77.info, Node: Bug Reporting, Prev: Bug Lists, Up: Bugs How to Report Bugs ================== ! The fundamental principle of reporting bugs usefully is this: ! *report all the facts*. If you are not sure whether to state a fact or ! leave it out, state it! ! ! Often people omit facts because they think they know what causes the ! problem and they conclude that some details don't matter. Thus, you ! might assume that the name of the variable you use in an example does ! not matter. Well, probably it doesn't, but one cannot be sure. ! Perhaps the bug is a stray memory reference which happens to fetch from ! the location where that name is stored in memory; perhaps, if the name ! were different, the contents of that location would fool the compiler ! into doing the right thing despite the bug. Play it safe and give a ! specific, complete example. That is the easiest thing for you to do, ! and the most helpful. ! ! Keep in mind that the purpose of a bug report is to enable someone to ! fix the bug if it is not known. It isn't very important what happens if ! the bug is already known. Therefore, always write your bug reports on ! the assumption that the bug is not known. ! ! Sometimes people give a few sketchy facts and ask, "Does this ring a ! bell?" This cannot help us fix a bug, so it is rarely helpful. We ! respond by asking for enough details to enable us to investigate. You ! might as well expedite matters by sending them to begin with. ! (Besides, there are enough bells ringing around here as it is.) ! ! Try to make your bug report self-contained. If we have to ask you ! for more information, it is best if you include all the previous ! information in your response, as well as the information that was ! missing. ! ! Please report each bug in a separate message. This makes it easier ! for us to track which bugs have been fixed and to forward your bugs ! reports to the appropriate maintainer. ! ! Do not compress and encode any part of your bug report using programs ! such as `uuencode'. If you do so it will slow down the processing of ! your bug. If you must submit multiple large files, use `shar', which ! allows us to read your message without having to run any decompression ! programs. ! ! (As a special exception for GNU Fortran bug-reporting, at least for ! now, if you are sending more than a few lines of code, if your ! program's source file format contains "interesting" things like ! trailing spaces or strange characters, or if you need to include binary ! data files, it is acceptable to put all the files together in a `tar' ! archive, and, whether you need to do that, it is acceptable to then ! compress the single file (`tar' archive or source file) using `gzip' ! and encode it via `uuencode'. Do not use any MIME stuff--the current ! maintainer can't decode this. Using `compress' instead of `gzip' is ! acceptable, assuming you have licensed the use of the patented ! algorithm in `compress' from Unisys.) ! ! To enable someone to investigate the bug, you should include all ! these things: ! ! * The version of GNU Fortran. You can get this by running `g77' ! with the `-v' option. (Ignore any error messages that might be ! displayed when the linker is run.) ! ! Without this, we won't know whether there is any point in looking ! for the bug in the current version of GNU Fortran. ! ! * A complete input file that will reproduce the bug. ! ! If your source file(s) require preprocessing (for example, their ! names have suffixes like `.F', `.fpp', `.FPP', and `.r'), and the ! bug is in the compiler proper (`f771') or in a subsequent phase of ! processing, run your source file through the C preprocessor by ! doing `g77 -E SOURCEFILE > NEWFILE'. Then, include the contents ! of NEWFILE in the bug report. (When you do this, use the same ! preprocessor options--such as `-I', `-D', and `-U'--that you used ! in actual compilation.) ! ! A single statement is not enough of an example. In order to ! compile it, it must be embedded in a complete file of compiler ! input. The bug might depend on the details of how this is done. ! ! Without a real example one can compile, all anyone can do about ! your bug report is wish you luck. It would be futile to try to ! guess how to provoke the bug. For example, bugs in register ! allocation and reloading can depend on every little detail of the ! source and include files that trigger them. ! ! * Note that you should include with your bug report any files ! included by the source file (via the `#include' or `INCLUDE' ! directive) that you send, and any files they include, and so on. ! ! It is not necessary to replace the `#include' and `INCLUDE' ! directives with the actual files in the version of the source file ! that you send, but it might make submitting the bug report easier ! in the end. However, be sure to _reproduce_ the bug using the ! _exact_ version of the source material you submit, to avoid ! wild-goose chases. ! ! * The command arguments you gave GNU Fortran to compile that example ! and observe the bug. For example, did you use `-O'? To guarantee ! you won't omit something important, list all the options. ! ! If we were to try to guess the arguments, we would probably guess ! wrong and then we would not encounter the bug. ! ! * The type of machine you are using, and the operating system name ! and version number. (Much of this information is printed by `g77 ! -v'--if you include that, send along any additional info you have ! that you don't see clearly represented in that output.) ! ! * The operands you gave to the `configure' command when you installed ! the compiler. ! ! * A complete list of any modifications you have made to the compiler ! source. (We don't promise to investigate the bug unless it ! happens in an unmodified compiler. But if you've made ! modifications and don't tell us, then you are sending us on a ! wild-goose chase.) ! ! Be precise about these changes. A description in English is not ! enough--send a context diff for them. ! ! Adding files of your own (such as a machine description for a ! machine we don't support) is a modification of the compiler source. ! ! * Details of any other deviations from the standard procedure for ! installing GNU Fortran. ! ! * A description of what behavior you observe that you believe is ! incorrect. For example, "The compiler gets a fatal signal," or, ! "The assembler instruction at line 208 in the output is incorrect." ! ! Of course, if the bug is that the compiler gets a fatal signal, ! then one can't miss it. But if the bug is incorrect output, the ! maintainer might not notice unless it is glaringly wrong. None of ! us has time to study all the assembler code from a 50-line Fortran ! program just on the chance that one instruction might be wrong. ! We need _you_ to do this part! ! ! Even if the problem you experience is a fatal signal, you should ! still say so explicitly. Suppose something strange is going on, ! such as, your copy of the compiler is out of synch, or you have ! encountered a bug in the C library on your system. (This has ! happened!) Your copy might crash and the copy here would not. If ! you said to expect a crash, then when the compiler here fails to ! crash, we would know that the bug was not happening. If you don't ! say to expect a crash, then we would not know whether the bug was ! happening. We would not be able to draw any conclusion from our ! observations. ! ! If the problem is a diagnostic when building GNU Fortran with some ! other compiler, say whether it is a warning or an error. ! ! Often the observed symptom is incorrect output when your program ! is run. Sad to say, this is not enough information unless the ! program is short and simple. None of us has time to study a large ! program to figure out how it would work if compiled correctly, ! much less which line of it was compiled wrong. So you will have ! to do that. Tell us which source line it is, and what incorrect ! result happens when that line is executed. A person who ! understands the program can find this as easily as finding a bug ! in the program itself. ! ! * If you send examples of assembler code output from GNU Fortran, ! please use `-g' when you make them. The debugging information ! includes source line numbers which are essential for correlating ! the output with the input. ! ! * If you wish to mention something in the GNU Fortran source, refer ! to it by context, not by line number. ! ! The line numbers in the development sources don't match those in ! your sources. Your line numbers would convey no convenient ! information to the maintainers. ! ! * Additional information from a debugger might enable someone to ! find a problem on a machine which he does not have available. ! However, you need to think when you collect this information if ! you want it to have any chance of being useful. ! ! For example, many people send just a backtrace, but that is never ! useful by itself. A simple backtrace with arguments conveys little ! about GNU Fortran because the compiler is largely data-driven; the ! same functions are called over and over for different RTL insns, ! doing different things depending on the details of the insn. ! ! Most of the arguments listed in the backtrace are useless because ! they are pointers to RTL list structure. The numeric values of the ! pointers, which the debugger prints in the backtrace, have no ! significance whatever; all that matters is the contents of the ! objects they point to (and most of the contents are other such ! pointers). ! ! In addition, most compiler passes consist of one or more loops that ! scan the RTL insn sequence. The most vital piece of information ! about such a loop--which insn it has reached--is usually in a ! local variable, not in an argument. ! ! What you need to provide in addition to a backtrace are the values ! of the local variables for several stack frames up. When a local ! variable or an argument is an RTX, first print its value and then ! use the GDB command `pr' to print the RTL expression that it points ! to. (If GDB doesn't run on your machine, use your debugger to call ! the function `debug_rtx' with the RTX as an argument.) In ! general, whenever a variable is a pointer, its value is no use ! without the data it points to. ! ! Here are some things that are not necessary: ! ! * A description of the envelope of the bug. ! ! Often people who encounter a bug spend a lot of time investigating ! which changes to the input file will make the bug go away and which ! changes will not affect it. ! ! This is often time consuming and not very useful, because the way ! we will find the bug is by running a single example under the ! debugger with breakpoints, not by pure deduction from a series of ! examples. You might as well save your time for something else. ! ! Of course, if you can find a simpler example to report _instead_ of ! the original one, that is a convenience. Errors in the output ! will be easier to spot, running under the debugger will take less ! time, etc. Most GNU Fortran bugs involve just one function, so ! the most straightforward way to simplify an example is to delete ! all the function definitions except the one where the bug occurs. ! Those earlier in the file may be replaced by external declarations ! if the crucial function depends on them. (Exception: inline ! functions might affect compilation of functions defined later in ! the file.) ! ! However, simplification is not vital; if you don't want to do this, ! report the bug anyway and send the entire test case you used. ! ! * In particular, some people insert conditionals `#ifdef BUG' around ! a statement which, if removed, makes the bug not happen. These ! are just clutter; we won't pay any attention to them anyway. ! Besides, you should send us preprocessor output, and that can't ! have conditionals. ! ! * A patch for the bug. ! ! A patch for the bug is useful if it is a good one. But don't omit ! the necessary information, such as the test case, on the ! assumption that a patch is all we need. We might see problems ! with your patch and decide to fix the problem another way, or we ! might not understand it at all. ! ! Sometimes with a program as complicated as GNU Fortran it is very ! hard to construct an example that will make the program follow a ! certain path through the code. If you don't send the example, we ! won't be able to construct one, so we won't be able to verify that ! the bug is fixed. ! ! And if we can't understand what bug you are trying to fix, or why ! your patch should be an improvement, we won't install it. A test ! case will help us to understand. ! ! See `http://gcc.gnu.org/contribute.html' for guidelines on how to ! make it easy for us to understand and install your patches. ! ! * A guess about what the bug is or what it depends on. ! ! Such guesses are usually wrong. Even the maintainer can't guess ! right about such things without first using the debugger to find ! the facts. ! ! * A core dump file. ! ! We have no way of examining a core dump for your type of machine ! unless we have an identical system--and if we do have one, we ! should be able to reproduce the crash ourselves.  File: g77.info, Node: Service, Next: Adding Options, Prev: Bugs, Up: Top --- 21727,21741 ---- than other compilers.  ! 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.  File: g77.info, Node: Service, Next: Adding Options, Prev: Bugs, Up: Top *************** Keyword Index *** 24848,24854 **** * #define: Overall Options. * #if: Overall Options. * #include: Overall Options. - * #include directive: Bug Reporting. * $: Dollar Signs. * %: Character Set. * %DESCR() construct: %DESCR(). --- 24555,24560 ---- *************** Keyword Index *** 25153,25159 **** * backslash <1>: Backslash in Constants. * backslash <2>: Character Set. * backslash: Fortran Dialect Options. - * backtrace for bug reports: Bug Reporting. * badu77 intrinsics: Fortran Dialect Options. * badu77 intrinsics group: Intrinsic Groups. * basic concepts: What is GNU Fortran?. --- 24859,24864 ---- *************** Keyword Index *** 25178,25184 **** * bounds checking: Code Gen Options. * BTest intrinsic: BTest Intrinsic. * bug criteria: Bug Criteria. - * bug report mailing lists: Bug Lists. * bugs: Bugs. * bugs, finding: What is GNU Fortran?. * bugs, known: Trouble. --- 24883,24888 ---- *************** Keyword Index *** 25349,25357 **** * Count intrinsic: Count Intrinsic. * cpp preprocessor: Overall Options. * cpp program <1>: LEX. ! * cpp program <2>: Bug Reporting. ! * cpp program <3>: Preprocessor Options. ! * cpp program <4>: Overall Options. * cpp program: What is GNU Fortran?. * CPU_Time intrinsic: CPU_Time Intrinsic. * Cray pointers: POINTER Statements. --- 25053,25060 ---- * 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. *************** Keyword Index *** 25395,25401 **** * DDiM intrinsic: DDiM Intrinsic. * debug line <1>: Enabling Debug Lines. * debug line: Debug Line. - * debug_rtx: Bug Reporting. * debugger <1>: Known Bugs. * debugger: What is GNU Fortran?. * debugging <1>: Names. --- 25098,25103 ---- *************** Keyword Index *** 25425,25433 **** * dimensioning arrays: Adjustable Arrays. * DInt intrinsic: DInt Intrinsic. * direction of language development: Direction of Language Development. ! * directive, #include: Bug Reporting. ! * directive, INCLUDE <1>: Bug Reporting. ! * directive, INCLUDE <2>: Directory Options. * directive, INCLUDE: Preprocessor Options. * directory, options: Directory Options. * directory, search paths for inclusion: Directory Options. --- 25127,25133 ---- * 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. *************** Keyword Index *** 25728,25738 **** * in-line code <2>: Code Gen Options. * in-line code <3>: Optimize Options. * in-line code: What is GNU Fortran?. ! * INCLUDE directive <1>: Bug Reporting. ! * INCLUDE directive <2>: INCLUDE. ! * INCLUDE directive <3>: Directory Options. * INCLUDE directive: Preprocessor Options. - * included files: Bug Reporting. * inclusion, directory search paths for: Directory Options. * inconsistent floating-point results: Floating-point Errors. * incorrect diagnostics: What is GNU Fortran?. --- 25428,25436 ---- * 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?. *************** Keyword Index *** 26626,26634 **** * precision, increasing: Increasing Precision/Range. * prefix-radix constants: Fortran Dialect Options. * preprocessor <1>: LEX. ! * preprocessor <2>: Bug Reporting. ! * preprocessor <3>: Cpp-style directives. ! * preprocessor <4>: Overall Options. * preprocessor: What is GNU Fortran?. * preprocessor options: Preprocessor Options. * Present intrinsic: Present Intrinsic. --- 26324,26331 ---- * 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. *************** Keyword Index *** 26643,26651 **** * programs, cc1plus: What is GNU Fortran?. * programs, compiling: G77 and GCC. * programs, cpp <1>: LEX. ! * programs, cpp <2>: Bug Reporting. ! * programs, cpp <3>: Preprocessor Options. ! * programs, cpp <4>: Overall Options. * programs, cpp: What is GNU Fortran?. * programs, f771: What is GNU Fortran?. * programs, ratfor: Overall Options. --- 26340,26347 ---- * 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. *************** Keyword Index *** 27069,27773 ****  Tag Table: ! Node: Top2280 ! Node: Copying4235 ! Node: GNU Free Documentation License23435 ! Node: Contributors45844 ! Node: Funding49123 ! Node: Funding GNU Fortran51635 ! Node: Getting Started52849 ! Node: What is GNU Fortran?55098 ! Node: G77 and GCC64986 ! Node: Invoking G7766204 ! Node: Option Summary68142 ! Node: Overall Options73000 ! Node: Shorthand Options79740 ! Node: Fortran Dialect Options82037 ! Node: Warning Options93294 ! Node: Debugging Options102211 ! Node: Optimize Options103801 ! Ref: Optimize Options-Footnote-1109819 ! Node: Preprocessor Options110512 ! Node: Directory Options111693 ! Node: Code Gen Options113005 ! Node: Environment Variables127912 ! Node: News128367 ! Node: Changes182665 ! Node: Language210406 ! Node: Direction of Language Development212609 ! Node: Standard Support218849 ! Node: No Passing External Assumed-length219570 ! Node: No Passing Dummy Assumed-length220047 ! Node: No Pathological Implied-DO220562 ! Node: No Useless Implied-DO221249 ! Node: Conformance221980 ! Node: Notation Used224003 ! Node: Terms and Concepts228209 ! Node: Syntactic Items228721 ! Node: Statements Comments Lines229403 ! Node: Scope of Names and Labels231268 ! Node: Characters Lines Sequence231698 ! Node: Character Set232304 ! Node: Lines233305 ! Node: Continuation Line235781 ! Node: Statements236736 ! Node: Statement Labels237692 ! Node: Order238384 ! Node: INCLUDE239269 ! Node: Cpp-style directives242041 ! Node: Data Types and Constants242496 ! Node: Types246017 ! Node: Double Notation247106 ! Node: Star Notation248178 ! Node: Kind Notation251123 ! Node: Constants259543 ! Node: Integer Type261059 ! Node: Character Type261657 ! Node: Expressions262421 ! Node: %LOC()262837 ! Node: Specification Statements265567 ! Node: NAMELIST266024 ! Node: DOUBLE COMPLEX266775 ! Node: Control Statements267029 ! Node: DO WHILE267521 ! Node: END DO267826 ! Node: Construct Names268833 ! Node: CYCLE and EXIT269573 ! Node: Functions and Subroutines272337 ! Node: %VAL()272983 ! Node: %REF()274347 ! Node: %DESCR()276175 ! Node: Generics and Specifics278308 ! Node: REAL() and AIMAG() of Complex285510 ! Node: CMPLX() of DOUBLE PRECISION287343 ! Node: MIL-STD 1753289069 ! Node: f77/f2c Intrinsics289411 ! Node: Table of Intrinsic Functions289981 ! Node: Abort Intrinsic306693 ! Node: Abs Intrinsic306957 ! Node: Access Intrinsic307820 ! Node: AChar Intrinsic308656 ! Node: ACos Intrinsic309178 ! Node: AdjustL Intrinsic309639 ! Node: AdjustR Intrinsic309964 ! Node: AImag Intrinsic310290 ! Node: AInt Intrinsic311095 ! Node: Alarm Intrinsic311723 ! Node: All Intrinsic312555 ! Node: Allocated Intrinsic312867 ! Node: ALog Intrinsic313196 ! Node: ALog10 Intrinsic313586 ! Node: AMax0 Intrinsic313984 ! Node: AMax1 Intrinsic314469 ! Node: AMin0 Intrinsic314922 ! Node: AMin1 Intrinsic315406 ! Node: AMod Intrinsic315858 ! Node: And Intrinsic316284 ! Node: ANInt Intrinsic316790 ! Node: Any Intrinsic317554 ! Node: ASin Intrinsic317861 ! Node: Associated Intrinsic318319 ! Node: ATan Intrinsic318653 ! Node: ATan2 Intrinsic319119 ! Node: BesJ0 Intrinsic319670 ! Node: BesJ1 Intrinsic320131 ! Node: BesJN Intrinsic320592 ! Node: BesY0 Intrinsic321123 ! Node: BesY1 Intrinsic321585 ! Node: BesYN Intrinsic322047 ! Node: Bit_Size Intrinsic322582 ! Node: BTest Intrinsic323241 ! Node: CAbs Intrinsic323961 ! Node: CCos Intrinsic324348 ! Node: Ceiling Intrinsic324740 ! Node: CExp Intrinsic325062 ! Node: Char Intrinsic325454 ! Node: ChDir Intrinsic (subroutine)326708 ! Node: ChMod Intrinsic (subroutine)327711 ! Node: CLog Intrinsic328981 ! Node: Cmplx Intrinsic329385 ! Node: Complex Intrinsic330186 ! Node: Conjg Intrinsic331632 ! Node: Cos Intrinsic332056 ! Node: CosH Intrinsic332519 ! Node: Count Intrinsic332894 ! Node: CPU_Time Intrinsic333212 ! Node: CShift Intrinsic334003 ! Node: CSin Intrinsic334325 ! Node: CSqRt Intrinsic334717 ! Node: CTime Intrinsic (subroutine)335127 ! Node: CTime Intrinsic (function)335882 ! Node: DAbs Intrinsic336516 ! Node: DACos Intrinsic336912 ! Node: DASin Intrinsic337303 ! Node: DATan Intrinsic337695 ! Node: DATan2 Intrinsic338088 ! Node: Date_and_Time Intrinsic338543 ! Node: DbesJ0 Intrinsic339907 ! Node: DbesJ1 Intrinsic340300 ! Node: DbesJN Intrinsic340686 ! Node: DbesY0 Intrinsic341142 ! Node: DbesY1 Intrinsic341528 ! Node: DbesYN Intrinsic341914 ! Node: Dble Intrinsic342368 ! Node: DCos Intrinsic343074 ! Node: DCosH Intrinsic343458 ! Node: DDiM Intrinsic343848 ! Node: DErF Intrinsic344280 ! Node: DErFC Intrinsic344649 ! Node: DExp Intrinsic345024 ! Node: Digits Intrinsic345410 ! Node: DiM Intrinsic345727 ! Node: DInt Intrinsic346226 ! Node: DLog Intrinsic346610 ! Node: DLog10 Intrinsic346995 ! Node: DMax1 Intrinsic347393 ! Node: DMin1 Intrinsic347847 ! Node: DMod Intrinsic348299 ! Node: DNInt Intrinsic348727 ! Node: Dot_Product Intrinsic349126 ! Node: DProd Intrinsic349466 ! Node: DSign Intrinsic349848 ! Node: DSin Intrinsic350287 ! Node: DSinH Intrinsic350672 ! Node: DSqRt Intrinsic351063 ! Node: DTan Intrinsic351454 ! Node: DTanH Intrinsic351839 ! Node: DTime Intrinsic (subroutine)352243 ! Node: EOShift Intrinsic353514 ! Node: Epsilon Intrinsic353853 ! Node: ErF Intrinsic354177 ! Node: ErFC Intrinsic354583 ! Node: ETime Intrinsic (subroutine)355143 ! Node: ETime Intrinsic (function)356306 ! Node: Exit Intrinsic357346 ! Node: Exp Intrinsic357855 ! Node: Exponent Intrinsic358317 ! Node: FDate Intrinsic (subroutine)358656 ! Node: FDate Intrinsic (function)359566 ! Node: FGet Intrinsic (subroutine)360338 ! Node: FGetC Intrinsic (subroutine)361175 ! Node: Float Intrinsic362052 ! Node: Floor Intrinsic362452 ! Node: Flush Intrinsic362768 ! Node: FNum Intrinsic363347 ! Node: FPut Intrinsic (subroutine)363795 ! Node: FPutC Intrinsic (subroutine)364592 ! Node: Fraction Intrinsic365439 ! Node: FSeek Intrinsic365780 ! Node: FStat Intrinsic (subroutine)366505 ! Node: FStat Intrinsic (function)368029 ! Node: FTell Intrinsic (subroutine)369318 ! Node: FTell Intrinsic (function)369991 ! Node: GError Intrinsic370508 ! Node: GetArg Intrinsic370882 ! Node: GetCWD Intrinsic (subroutine)371550 ! Node: GetCWD Intrinsic (function)372405 ! Node: GetEnv Intrinsic373024 ! Node: GetGId Intrinsic373611 ! Node: GetLog Intrinsic373917 ! Node: GetPId Intrinsic374455 ! Node: GetUId Intrinsic374763 ! Node: GMTime Intrinsic375068 ! Node: HostNm Intrinsic (subroutine)376076 ! Node: HostNm Intrinsic (function)377165 ! Node: Huge Intrinsic378007 ! Node: IAbs Intrinsic378330 ! Node: IAChar Intrinsic378721 ! Node: IAnd Intrinsic379261 ! Node: IArgC Intrinsic379749 ! Node: IBClr Intrinsic380125 ! Node: IBits Intrinsic380636 ! Node: IBSet Intrinsic381350 ! Node: IChar Intrinsic381852 ! Node: IDate Intrinsic (UNIX)383071 ! Node: IDiM Intrinsic383874 ! Node: IDInt Intrinsic384323 ! Node: IDNInt Intrinsic384716 ! Node: IEOr Intrinsic385115 ! Node: IErrNo Intrinsic385613 ! Node: IFix Intrinsic385940 ! Node: Imag Intrinsic386328 ! Node: ImagPart Intrinsic387333 ! Node: Index Intrinsic388359 ! Node: Int Intrinsic388912 ! Node: Int2 Intrinsic389627 ! Node: Int8 Intrinsic390336 ! Node: IOr Intrinsic391045 ! Node: IRand Intrinsic391525 ! Node: IsaTty Intrinsic392445 ! Node: IShft Intrinsic392869 ! Node: IShftC Intrinsic393699 ! Node: ISign Intrinsic394628 ! Node: ITime Intrinsic395078 ! Node: Kill Intrinsic (subroutine)395480 ! Node: Kind Intrinsic396316 ! Node: LBound Intrinsic396641 ! Node: Len Intrinsic396958 ! Node: Len_Trim Intrinsic397594 ! Node: LGe Intrinsic398006 ! Node: LGt Intrinsic399419 ! Node: Link Intrinsic (subroutine)400324 ! Node: LLe Intrinsic401288 ! Node: LLt Intrinsic402193 ! Node: LnBlnk Intrinsic403087 ! Node: Loc Intrinsic403490 ! Node: Log Intrinsic403921 ! Node: Log10 Intrinsic404512 ! Node: Logical Intrinsic405054 ! Node: Long Intrinsic405377 ! Node: LShift Intrinsic405901 ! Node: LStat Intrinsic (subroutine)406937 ! Node: LStat Intrinsic (function)408748 ! Node: LTime Intrinsic410310 ! Node: MatMul Intrinsic411314 ! Node: Max Intrinsic411632 ! Node: Max0 Intrinsic412183 ! Node: Max1 Intrinsic412634 ! Node: MaxExponent Intrinsic413118 ! Node: MaxLoc Intrinsic413458 ! Node: MaxVal Intrinsic413785 ! Node: MClock Intrinsic414107 ! Node: MClock8 Intrinsic415005 ! Node: Merge Intrinsic416193 ! Node: Min Intrinsic416509 ! Node: Min0 Intrinsic417060 ! Node: Min1 Intrinsic417511 ! Node: MinExponent Intrinsic417995 ! Node: MinLoc Intrinsic418335 ! Node: MinVal Intrinsic418662 ! Node: Mod Intrinsic418981 ! Node: Modulo Intrinsic419504 ! Node: MvBits Intrinsic419823 ! Node: Nearest Intrinsic420689 ! Node: NInt Intrinsic421013 ! Node: Not Intrinsic421851 ! Node: Or Intrinsic422246 ! Node: Pack Intrinsic422744 ! Node: PError Intrinsic423054 ! Node: Precision Intrinsic423508 ! Node: Present Intrinsic423843 ! Node: Product Intrinsic424173 ! Node: Radix Intrinsic424499 ! Node: Rand Intrinsic424816 ! Node: Random_Number Intrinsic425703 ! Node: Random_Seed Intrinsic426056 ! Node: Range Intrinsic426404 ! Node: Real Intrinsic426725 ! Node: RealPart Intrinsic427731 ! Node: Rename Intrinsic (subroutine)428764 ! Node: Repeat Intrinsic429735 ! Node: Reshape Intrinsic430071 ! Node: RRSpacing Intrinsic430400 ! Node: RShift Intrinsic430735 ! Node: Scale Intrinsic431733 ! Node: Scan Intrinsic432049 ! Node: Second Intrinsic (function)432373 ! Node: Second Intrinsic (subroutine)433204 ! Node: Selected_Int_Kind Intrinsic434179 ! Node: Selected_Real_Kind Intrinsic434570 ! Node: Set_Exponent Intrinsic434957 ! Node: Shape Intrinsic435314 ! Node: Short Intrinsic435637 ! Node: Sign Intrinsic436332 ! Node: Signal Intrinsic (subroutine)436932 ! Node: Sin Intrinsic439146 ! Node: SinH Intrinsic439621 ! Node: Sleep Intrinsic439994 ! Node: Sngl Intrinsic440336 ! Node: Spacing Intrinsic440725 ! Node: Spread Intrinsic441049 ! Node: SqRt Intrinsic441370 ! Node: SRand Intrinsic441974 ! Node: Stat Intrinsic (subroutine)442351 ! Node: Stat Intrinsic (function)443965 ! Node: Sum Intrinsic445328 ! Node: SymLnk Intrinsic (subroutine)445660 ! Node: System Intrinsic (subroutine)446691 ! Node: System_Clock Intrinsic447630 ! Node: Tan Intrinsic448754 ! Node: TanH Intrinsic449214 ! Node: Time Intrinsic (UNIX)449596 ! Node: Time8 Intrinsic450581 ! Node: Tiny Intrinsic451760 ! Node: Transfer Intrinsic452075 ! Node: Transpose Intrinsic452406 ! Node: Trim Intrinsic452740 ! Node: TtyNam Intrinsic (subroutine)453070 ! Node: TtyNam Intrinsic (function)453772 ! Node: UBound Intrinsic454341 ! Node: UMask Intrinsic (subroutine)454686 ! Node: Unlink Intrinsic (subroutine)455383 ! Node: Unpack Intrinsic456280 ! Node: Verify Intrinsic456615 ! Node: XOr Intrinsic456934 ! Node: ZAbs Intrinsic457450 ! Node: ZCos Intrinsic457819 ! Node: ZExp Intrinsic458192 ! Node: ZLog Intrinsic458565 ! Node: ZSin Intrinsic458938 ! Node: ZSqRt Intrinsic459312 ! Node: Scope and Classes of Names459669 ! Node: Underscores in Symbol Names460151 ! Node: I/O460398 ! Node: Fortran 90 Features461171 ! Node: Other Dialects463973 ! Node: Source Form465132 ! Node: Carriage Returns466347 ! Node: Tabs466676 ! Node: Short Lines467549 ! Node: Long Lines468523 ! Node: Ampersands469134 ! Node: Trailing Comment469388 ! Node: Debug Line470164 ! Node: Dollar Signs470833 ! Node: Case Sensitivity471119 ! Node: VXT Fortran479735 ! Node: Double Quote Meaning480918 ! Node: Exclamation Point481846 ! Node: Fortran 90482889 ! Node: Pedantic Compilation483941 ! Node: Distensions487905 ! Node: Ugly Implicit Argument Conversion488869 ! Node: Ugly Assumed-Size Arrays489483 ! Node: Ugly Complex Part Extraction491204 ! Node: Ugly Null Arguments492826 ! Node: Ugly Conversion of Initializers494429 ! Node: Ugly Integer Conversions496194 ! Node: Ugly Assigned Labels497302 ! Node: Compiler499233 ! Node: Compiler Limits499871 ! Node: Run-time Environment Limits500762 ! Node: Timer Wraparounds502704 ! Node: Year 2000 (Y2K) Problems503983 ! Node: Array Size508489 ! Node: Character-variable Length509674 ! Node: Year 10000 (Y10K) Problems510183 ! Node: Compiler Types510729 ! Node: Compiler Constants515440 ! Node: Compiler Intrinsics516299 ! Node: Intrinsic Groups517226 ! Node: Other Intrinsics520667 ! Node: ACosD Intrinsic528265 ! Node: AIMax0 Intrinsic528546 ! Node: AIMin0 Intrinsic528855 ! Node: AJMax0 Intrinsic529165 ! Node: AJMin0 Intrinsic529475 ! Node: ASinD Intrinsic529784 ! Node: ATan2D Intrinsic530090 ! Node: ATanD Intrinsic530398 ! Node: BITest Intrinsic530704 ! Node: BJTest Intrinsic531013 ! Node: CDAbs Intrinsic531322 ! Node: CDCos Intrinsic531695 ! Node: CDExp Intrinsic532070 ! Node: CDLog Intrinsic532445 ! Node: CDSin Intrinsic532820 ! Node: CDSqRt Intrinsic533196 ! Node: ChDir Intrinsic (function)533589 ! Node: ChMod Intrinsic (function)534417 ! Node: CosD Intrinsic535530 ! Node: DACosD Intrinsic535842 ! Node: DASinD Intrinsic536150 ! Node: DATan2D Intrinsic536461 ! Node: DATanD Intrinsic536775 ! Node: Date Intrinsic537084 ! Node: DbleQ Intrinsic537803 ! Node: DCmplx Intrinsic538107 ! Node: DConjg Intrinsic539738 ! Node: DCosD Intrinsic540123 ! Node: DFloat Intrinsic540429 ! Node: DFlotI Intrinsic540801 ! Node: DFlotJ Intrinsic541111 ! Node: DImag Intrinsic541420 ! Node: DReal Intrinsic541797 ! Node: DSinD Intrinsic542944 ! Node: DTanD Intrinsic543248 ! Node: DTime Intrinsic (function)543563 ! Node: FGet Intrinsic (function)544793 ! Node: FGetC Intrinsic (function)545566 ! Node: FloatI Intrinsic546382 ! Node: FloatJ Intrinsic546702 ! Node: FPut Intrinsic (function)547021 ! Node: FPutC Intrinsic (function)547757 ! Node: IDate Intrinsic (VXT)548550 ! Node: IIAbs Intrinsic549594 ! Node: IIAnd Intrinsic549904 ! Node: IIBClr Intrinsic550209 ! Node: IIBits Intrinsic550518 ! Node: IIBSet Intrinsic550828 ! Node: IIDiM Intrinsic551137 ! Node: IIDInt Intrinsic551443 ! Node: IIDNnt Intrinsic551752 ! Node: IIEOr Intrinsic552061 ! Node: IIFix Intrinsic552366 ! Node: IInt Intrinsic552669 ! Node: IIOr Intrinsic552968 ! Node: IIQint Intrinsic553268 ! Node: IIQNnt Intrinsic553576 ! Node: IIShftC Intrinsic553887 ! Node: IISign Intrinsic554201 ! Node: IMax0 Intrinsic554511 ! Node: IMax1 Intrinsic554816 ! Node: IMin0 Intrinsic555120 ! Node: IMin1 Intrinsic555424 ! Node: IMod Intrinsic555727 ! Node: INInt Intrinsic556027 ! Node: INot Intrinsic556329 ! Node: IZExt Intrinsic556629 ! Node: JIAbs Intrinsic556932 ! Node: JIAnd Intrinsic557236 ! Node: JIBClr Intrinsic557541 ! Node: JIBits Intrinsic557850 ! Node: JIBSet Intrinsic558160 ! Node: JIDiM Intrinsic558469 ! Node: JIDInt Intrinsic558775 ! Node: JIDNnt Intrinsic559084 ! Node: JIEOr Intrinsic559393 ! Node: JIFix Intrinsic559698 ! Node: JInt Intrinsic560001 ! Node: JIOr Intrinsic560300 ! Node: JIQint Intrinsic560600 ! Node: JIQNnt Intrinsic560908 ! Node: JIShft Intrinsic561218 ! Node: JIShftC Intrinsic561529 ! Node: JISign Intrinsic561843 ! Node: JMax0 Intrinsic562153 ! Node: JMax1 Intrinsic562458 ! Node: JMin0 Intrinsic562762 ! Node: JMin1 Intrinsic563066 ! Node: JMod Intrinsic563369 ! Node: JNInt Intrinsic563669 ! Node: JNot Intrinsic563971 ! Node: JZExt Intrinsic564271 ! Node: Kill Intrinsic (function)564584 ! Node: Link Intrinsic (function)565265 ! Node: QAbs Intrinsic566076 ! Node: QACos Intrinsic566386 ! Node: QACosD Intrinsic566690 ! Node: QASin Intrinsic566998 ! Node: QASinD Intrinsic567304 ! Node: QATan Intrinsic567612 ! Node: QATan2 Intrinsic567918 ! Node: QATan2D Intrinsic568228 ! Node: QATanD Intrinsic568542 ! Node: QCos Intrinsic568851 ! Node: QCosD Intrinsic569152 ! Node: QCosH Intrinsic569455 ! Node: QDiM Intrinsic569758 ! Node: QExp Intrinsic570057 ! Node: QExt Intrinsic570355 ! Node: QExtD Intrinsic570654 ! Node: QFloat Intrinsic570958 ! Node: QInt Intrinsic571265 ! Node: QLog Intrinsic571565 ! Node: QLog10 Intrinsic571865 ! Node: QMax1 Intrinsic572172 ! Node: QMin1 Intrinsic572477 ! Node: QMod Intrinsic572780 ! Node: QNInt Intrinsic573080 ! Node: QSin Intrinsic573382 ! Node: QSinD Intrinsic573682 ! Node: QSinH Intrinsic573985 ! Node: QSqRt Intrinsic574289 ! Node: QTan Intrinsic574592 ! Node: QTanD Intrinsic574892 ! Node: QTanH Intrinsic575195 ! Node: Rename Intrinsic (function)575511 ! Node: Secnds Intrinsic576315 ! Node: Signal Intrinsic (function)576914 ! Node: SinD Intrinsic579743 ! Node: SnglQ Intrinsic580055 ! Node: SymLnk Intrinsic (function)580370 ! Node: System Intrinsic (function)581237 ! Node: TanD Intrinsic582564 ! Node: Time Intrinsic (VXT)582881 ! Node: UMask Intrinsic (function)583635 ! Node: Unlink Intrinsic (function)584243 ! Node: ZExt Intrinsic584971 ! Node: Other Compilers585259 ! Node: Dropping f2c Compatibility587779 ! Node: Compilers Other Than f2c590851 ! Node: Other Languages592649 ! Node: Interoperating with C and C++592914 ! Node: C Interfacing Tools593947 ! Node: C Access to Type Information594875 ! Node: f2c Skeletons and Prototypes595562 ! Ref: f2c Skeletons and Prototypes-Footnote-1597009 ! Node: C++ Considerations597263 ! Node: Startup Code597930 ! Node: Debugging and Interfacing602719 ! Node: Main Program Unit605406 ! Node: Procedures607900 ! Node: Functions610558 ! Node: Names612176 ! Node: Common Blocks615319 ! Node: Local Equivalence Areas615583 ! Node: Complex Variables616567 ! Node: Arrays617687 ! Node: Adjustable Arrays621020 ! Node: Alternate Entry Points623879 ! Node: Alternate Returns630581 ! Node: Assigned Statement Labels631482 ! Node: Run-time Library Errors633327 ! Node: Collected Fortran Wisdom635279 ! Node: Advantages Over f2c636715 ! Node: Language Extensions637696 ! Node: Diagnostic Abilities638870 ! Node: Compiler Options639261 ! Node: Compiler Speed640309 ! Node: Program Speed641019 ! Node: Ease of Debugging642604 ! Node: Character and Hollerith Constants645034 ! Node: Block Data and Libraries646006 ! Node: Loops649335 ! Node: Working Programs654561 ! Node: Not My Type655305 ! Node: Variables Assumed To Be Zero657236 ! Node: Variables Assumed To Be Saved658290 ! Node: Unwanted Variables659660 ! Node: Unused Arguments660540 ! Node: Surprising Interpretations of Code661003 ! Node: Aliasing Assumed To Work661850 ! Node: Output Assumed To Flush668048 ! Node: Large File Unit Numbers670821 ! Node: Floating-point precision672973 ! Node: Inconsistent Calling Sequences674234 ! Node: Overly Convenient Options675214 ! Node: Faster Programs678520 ! Node: Aligned Data678966 ! Node: Prefer Automatic Uninitialized Variables683843 ! Node: Avoid f2c Compatibility685209 ! Node: Use Submodel Options685677 ! Node: Trouble686681 ! Node: But-bugs688143 ! Node: Signal 11 and Friends689916 ! Node: Cannot Link Fortran Programs691996 ! Node: Large Common Blocks693279 ! Node: Debugger Problems693705 ! Node: NeXTStep Problems694420 ! Node: Stack Overflow696246 ! Node: Nothing Happens699135 ! Node: Strange Behavior at Run Time700749 ! Node: Floating-point Errors703237 ! Node: Known Bugs709531 ! Node: Missing Features716820 ! Node: Better Source Model718747 ! Node: Fortran 90 Support720516 ! Node: Intrinsics in PARAMETER Statements721617 ! Node: Arbitrary Concatenation722368 ! Node: SELECT CASE on CHARACTER Type722771 ! Node: RECURSIVE Keyword723058 ! Node: Increasing Precision/Range723485 ! Node: Popular Non-standard Types725023 ! Node: Full Support for Compiler Types725362 ! Node: Array Bounds Expressions725998 ! Node: POINTER Statements726445 ! Node: Sensible Non-standard Constructs727328 ! Node: READONLY Keyword729654 ! Node: FLUSH Statement730564 ! Node: Expressions in FORMAT Statements730934 ! Node: Explicit Assembler Code732109 ! Node: Q Edit Descriptor732398 ! Node: Old-style PARAMETER Statements732902 ! Node: TYPE and ACCEPT I/O Statements733636 ! Node: STRUCTURE UNION RECORD MAP734202 ! Node: OPEN CLOSE and INQUIRE Keywords734688 ! Node: ENCODE and DECODE735668 ! Node: AUTOMATIC Statement736763 ! Node: Suppressing Space Padding738010 ! Node: Fortran Preprocessor739237 ! Node: Bit Operations on Floating-point Data739810 ! Node: Really Ugly Character Assignments740343 ! Node: POSIX Standard740718 ! Node: Floating-point Exception Handling740958 ! Node: Nonportable Conversions742360 ! Node: Large Automatic Arrays742903 ! Node: Support for Threads743310 ! Node: Enabling Debug Lines743735 ! Node: Better Warnings744112 ! Node: Gracefully Handle Sensible Bad Code745748 ! Node: Non-standard Conversions746492 ! Node: Non-standard Intrinsics746835 ! Node: Modifying DO Variable747251 ! Node: Better Pedantic Compilation747927 ! Node: Warn About Implicit Conversions748555 ! Node: Invalid Use of Hollerith Constant749142 ! Node: Dummy Array Without Dimensioning Dummy749685 ! Node: Invalid FORMAT Specifiers750598 ! Node: Ambiguous Dialects750999 ! Node: Unused Labels751410 ! Node: Informational Messages751632 ! Node: Uninitialized Variables at Run Time752035 ! Node: Portable Unformatted Files752641 ! Ref: Portable Unformatted Files-Footnote-1755597 ! Node: Better List-directed I/O755625 ! Node: Default to Console I/O756530 ! Node: Labels Visible to Debugger757178 ! Node: Disappointments757579 ! Node: Mangling of Names758217 ! Node: Multiple Definitions of External Names759067 ! Node: Limitation on Implicit Declarations760430 ! Node: Non-bugs760714 ! Node: Backslash in Constants761839 ! Node: Initializing Before Specifying766728 ! Node: Context-Sensitive Intrinsicness767870 ! Node: Context-Sensitive Constants769766 ! Node: Equivalence Versus Equality772722 ! Node: Order of Side Effects775765 ! Node: Warnings and Errors777493 ! Node: Open Questions778891 ! Node: Bugs779360 ! Node: Bug Criteria780799 ! Node: Bug Lists787032 ! Node: Bug Reporting787821 ! Node: Service801437 ! Node: Adding Options801903 ! Node: Projects806496 ! Node: Efficiency807431 ! Node: Better Optimization810328 ! Node: Simplify Porting813698 ! Node: More Extensions815453 ! Node: Machine Model818541 ! Node: Internals Documentation819827 ! Node: Internals Improvements820134 ! Node: Better Diagnostics823678 ! Node: Front End824595 ! Node: Overview of Sources825373 ! Node: Overview of Translation Process832762 ! Node: g77stripcard837040 ! Node: lex.c839517 ! Node: sta.c849057 ! Node: sti.c849168 ! Node: stq.c849279 ! Node: stb.c849390 ! Node: expr.c849502 ! Node: stc.c849616 ! Node: std.c849728 ! Node: ste.c849839 ! Node: Gotchas (Transforming)849967 ! Node: TBD (Transforming)858086 ! Node: Philosophy of Code Generation860782 ! Node: Two-pass Design866686 ! Node: Two-pass Code867843 ! Node: Why Two Passes868576 ! Node: Challenges Posed874644 ! Node: Transforming Statements877128 ! Node: Statements Needing Temporaries877978 ! Node: Transforming DO WHILE880742 ! Node: Transforming Iterative DO881925 ! Node: Transforming Block IF882754 ! Node: Transforming SELECT CASE884119 ! Node: Transforming Expressions887341 ! Node: Internal Naming Conventions889330 ! Node: Diagnostics892329 ! Node: CMPAMBIG893727 ! Node: EXPIMP900144 ! Node: INTGLOB901380 ! Node: LEX903624 ! Node: GLOBALS909079 ! Node: LINKFAIL911743 ! Node: Y2KBAD912367 ! Node: Keyword Index912717  End Tag Table --- 26765,27468 ----  Tag Table: ! Node: Top2292 ! Node: Copying4249 ! Node: GNU Free Documentation License23449 ! Node: Contributors45858 ! Node: Funding49137 ! Node: Funding GNU Fortran51649 ! Node: Getting Started52863 ! Node: What is GNU Fortran?55112 ! Node: G77 and GCC65000 ! Node: Invoking G7766218 ! Node: Option Summary68156 ! Node: Overall Options73014 ! Node: Shorthand Options79754 ! Node: Fortran Dialect Options82051 ! Node: Warning Options93308 ! Node: Debugging Options102225 ! Node: Optimize Options103815 ! Ref: Optimize Options-Footnote-1109833 ! Node: Preprocessor Options110526 ! Node: Directory Options111707 ! Node: Code Gen Options113019 ! Node: Environment Variables127926 ! Node: News128381 ! Node: Changes182791 ! Node: Language210644 ! Node: Direction of Language Development212847 ! Node: Standard Support219087 ! Node: No Passing External Assumed-length219808 ! Node: No Passing Dummy Assumed-length220285 ! Node: No Pathological Implied-DO220800 ! Node: No Useless Implied-DO221487 ! Node: Conformance222218 ! Node: Notation Used224241 ! Node: Terms and Concepts228447 ! Node: Syntactic Items228959 ! Node: Statements Comments Lines229641 ! Node: Scope of Names and Labels231506 ! Node: Characters Lines Sequence231936 ! Node: Character Set232542 ! Node: Lines233543 ! Node: Continuation Line236019 ! Node: Statements236974 ! Node: Statement Labels237930 ! Node: Order238622 ! Node: INCLUDE239507 ! Node: Cpp-style directives242279 ! Node: Data Types and Constants242734 ! Node: Types246255 ! Node: Double Notation247344 ! Node: Star Notation248416 ! Node: Kind Notation251361 ! Node: Constants259781 ! Node: Integer Type261297 ! Node: Character Type261895 ! Node: Expressions262659 ! Node: %LOC()263075 ! Node: Specification Statements265805 ! Node: NAMELIST266262 ! Node: DOUBLE COMPLEX267013 ! Node: Control Statements267267 ! Node: DO WHILE267759 ! Node: END DO268064 ! Node: Construct Names269071 ! Node: CYCLE and EXIT269811 ! Node: Functions and Subroutines272575 ! Node: %VAL()273221 ! Node: %REF()274585 ! Node: %DESCR()276413 ! Node: Generics and Specifics278546 ! Node: REAL() and AIMAG() of Complex285748 ! Node: CMPLX() of DOUBLE PRECISION287581 ! Node: MIL-STD 1753289307 ! Node: f77/f2c Intrinsics289649 ! Node: Table of Intrinsic Functions290219 ! Node: Abort Intrinsic306931 ! Node: Abs Intrinsic307195 ! Node: Access Intrinsic308058 ! Node: AChar Intrinsic308894 ! Node: ACos Intrinsic309416 ! Node: AdjustL Intrinsic309877 ! Node: AdjustR Intrinsic310202 ! Node: AImag Intrinsic310528 ! Node: AInt Intrinsic311333 ! Node: Alarm Intrinsic311961 ! Node: All Intrinsic312793 ! Node: Allocated Intrinsic313105 ! Node: ALog Intrinsic313434 ! Node: ALog10 Intrinsic313824 ! Node: AMax0 Intrinsic314222 ! Node: AMax1 Intrinsic314707 ! Node: AMin0 Intrinsic315160 ! Node: AMin1 Intrinsic315644 ! Node: AMod Intrinsic316096 ! Node: And Intrinsic316522 ! Node: ANInt Intrinsic317028 ! Node: Any Intrinsic317792 ! Node: ASin Intrinsic318099 ! Node: Associated Intrinsic318557 ! Node: ATan Intrinsic318891 ! Node: ATan2 Intrinsic319357 ! Node: BesJ0 Intrinsic319908 ! Node: BesJ1 Intrinsic320369 ! Node: BesJN Intrinsic320830 ! Node: BesY0 Intrinsic321361 ! Node: BesY1 Intrinsic321823 ! Node: BesYN Intrinsic322285 ! Node: Bit_Size Intrinsic322820 ! Node: BTest Intrinsic323479 ! Node: CAbs Intrinsic324199 ! Node: CCos Intrinsic324586 ! Node: Ceiling Intrinsic324978 ! Node: CExp Intrinsic325300 ! Node: Char Intrinsic325692 ! Node: ChDir Intrinsic (subroutine)326946 ! Node: ChMod Intrinsic (subroutine)327949 ! Node: CLog Intrinsic329219 ! Node: Cmplx Intrinsic329623 ! Node: Complex Intrinsic330424 ! Node: Conjg Intrinsic331870 ! Node: Cos Intrinsic332294 ! Node: CosH Intrinsic332757 ! Node: Count Intrinsic333132 ! Node: CPU_Time Intrinsic333450 ! Node: CShift Intrinsic334241 ! Node: CSin Intrinsic334563 ! Node: CSqRt Intrinsic334955 ! Node: CTime Intrinsic (subroutine)335365 ! Node: CTime Intrinsic (function)336120 ! Node: DAbs Intrinsic336754 ! Node: DACos Intrinsic337150 ! Node: DASin Intrinsic337541 ! Node: DATan Intrinsic337933 ! Node: DATan2 Intrinsic338326 ! Node: Date_and_Time Intrinsic338781 ! Node: DbesJ0 Intrinsic340145 ! Node: DbesJ1 Intrinsic340538 ! Node: DbesJN Intrinsic340924 ! Node: DbesY0 Intrinsic341380 ! Node: DbesY1 Intrinsic341766 ! Node: DbesYN Intrinsic342152 ! Node: Dble Intrinsic342606 ! Node: DCos Intrinsic343312 ! Node: DCosH Intrinsic343696 ! Node: DDiM Intrinsic344086 ! Node: DErF Intrinsic344518 ! Node: DErFC Intrinsic344887 ! Node: DExp Intrinsic345262 ! Node: Digits Intrinsic345648 ! Node: DiM Intrinsic345965 ! Node: DInt Intrinsic346464 ! Node: DLog Intrinsic346848 ! Node: DLog10 Intrinsic347233 ! Node: DMax1 Intrinsic347631 ! Node: DMin1 Intrinsic348085 ! Node: DMod Intrinsic348537 ! Node: DNInt Intrinsic348965 ! Node: Dot_Product Intrinsic349364 ! Node: DProd Intrinsic349704 ! Node: DSign Intrinsic350086 ! Node: DSin Intrinsic350525 ! Node: DSinH Intrinsic350910 ! Node: DSqRt Intrinsic351301 ! Node: DTan Intrinsic351692 ! Node: DTanH Intrinsic352077 ! Node: DTime Intrinsic (subroutine)352481 ! Node: EOShift Intrinsic353752 ! Node: Epsilon Intrinsic354091 ! Node: ErF Intrinsic354415 ! Node: ErFC Intrinsic354821 ! Node: ETime Intrinsic (subroutine)355381 ! Node: ETime Intrinsic (function)356544 ! Node: Exit Intrinsic357584 ! Node: Exp Intrinsic358093 ! Node: Exponent Intrinsic358555 ! Node: FDate Intrinsic (subroutine)358894 ! Node: FDate Intrinsic (function)359804 ! Node: FGet Intrinsic (subroutine)360576 ! Node: FGetC Intrinsic (subroutine)361413 ! Node: Float Intrinsic362290 ! Node: Floor Intrinsic362690 ! Node: Flush Intrinsic363006 ! Node: FNum Intrinsic363585 ! Node: FPut Intrinsic (subroutine)364033 ! Node: FPutC Intrinsic (subroutine)364830 ! Node: Fraction Intrinsic365677 ! Node: FSeek Intrinsic366018 ! Node: FStat Intrinsic (subroutine)366743 ! Node: FStat Intrinsic (function)368267 ! Node: FTell Intrinsic (subroutine)369556 ! Node: FTell Intrinsic (function)370229 ! Node: GError Intrinsic370746 ! Node: GetArg Intrinsic371120 ! Node: GetCWD Intrinsic (subroutine)371788 ! Node: GetCWD Intrinsic (function)372643 ! Node: GetEnv Intrinsic373262 ! Node: GetGId Intrinsic373849 ! Node: GetLog Intrinsic374155 ! Node: GetPId Intrinsic374693 ! Node: GetUId Intrinsic375001 ! Node: GMTime Intrinsic375306 ! Node: HostNm Intrinsic (subroutine)376314 ! Node: HostNm Intrinsic (function)377403 ! Node: Huge Intrinsic378245 ! Node: IAbs Intrinsic378568 ! Node: IAChar Intrinsic378959 ! Node: IAnd Intrinsic379499 ! Node: IArgC Intrinsic379987 ! Node: IBClr Intrinsic380363 ! Node: IBits Intrinsic380874 ! Node: IBSet Intrinsic381588 ! Node: IChar Intrinsic382090 ! Node: IDate Intrinsic (UNIX)383309 ! Node: IDiM Intrinsic384151 ! Node: IDInt Intrinsic384600 ! Node: IDNInt Intrinsic384993 ! Node: IEOr Intrinsic385392 ! Node: IErrNo Intrinsic385890 ! Node: IFix Intrinsic386217 ! Node: Imag Intrinsic386605 ! Node: ImagPart Intrinsic387610 ! Node: Index Intrinsic388636 ! Node: Int Intrinsic389189 ! Node: Int2 Intrinsic389904 ! Node: Int8 Intrinsic390613 ! Node: IOr Intrinsic391322 ! Node: IRand Intrinsic391802 ! Node: IsaTty Intrinsic392722 ! Node: IShft Intrinsic393146 ! Node: IShftC Intrinsic393976 ! Node: ISign Intrinsic394905 ! Node: ITime Intrinsic395355 ! Node: Kill Intrinsic (subroutine)395757 ! Node: Kind Intrinsic396593 ! Node: LBound Intrinsic396918 ! Node: Len Intrinsic397235 ! Node: Len_Trim Intrinsic397871 ! Node: LGe Intrinsic398283 ! Node: LGt Intrinsic399696 ! Node: Link Intrinsic (subroutine)400601 ! Node: LLe Intrinsic401565 ! Node: LLt Intrinsic402470 ! Node: LnBlnk Intrinsic403364 ! Node: Loc Intrinsic403767 ! Node: Log Intrinsic404198 ! Node: Log10 Intrinsic404789 ! Node: Logical Intrinsic405331 ! Node: Long Intrinsic405654 ! Node: LShift Intrinsic406178 ! Node: LStat Intrinsic (subroutine)407214 ! Node: LStat Intrinsic (function)409025 ! Node: LTime Intrinsic410587 ! Node: MatMul Intrinsic411591 ! Node: Max Intrinsic411909 ! Node: Max0 Intrinsic412460 ! Node: Max1 Intrinsic412911 ! Node: MaxExponent Intrinsic413395 ! Node: MaxLoc Intrinsic413735 ! Node: MaxVal Intrinsic414062 ! Node: MClock Intrinsic414384 ! Node: MClock8 Intrinsic415282 ! Node: Merge Intrinsic416470 ! Node: Min Intrinsic416786 ! Node: Min0 Intrinsic417337 ! Node: Min1 Intrinsic417788 ! Node: MinExponent Intrinsic418272 ! Node: MinLoc Intrinsic418612 ! Node: MinVal Intrinsic418939 ! Node: Mod Intrinsic419258 ! Node: Modulo Intrinsic419781 ! Node: MvBits Intrinsic420100 ! Node: Nearest Intrinsic420966 ! Node: NInt Intrinsic421290 ! Node: Not Intrinsic422128 ! Node: Or Intrinsic422523 ! Node: Pack Intrinsic423021 ! Node: PError Intrinsic423331 ! Node: Precision Intrinsic423785 ! Node: Present Intrinsic424120 ! Node: Product Intrinsic424450 ! Node: Radix Intrinsic424776 ! Node: Rand Intrinsic425093 ! Node: Random_Number Intrinsic425980 ! Node: Random_Seed Intrinsic426333 ! Node: Range Intrinsic426681 ! Node: Real Intrinsic427002 ! Node: RealPart Intrinsic428008 ! Node: Rename Intrinsic (subroutine)429041 ! Node: Repeat Intrinsic430012 ! Node: Reshape Intrinsic430348 ! Node: RRSpacing Intrinsic430677 ! Node: RShift Intrinsic431012 ! Node: Scale Intrinsic432010 ! Node: Scan Intrinsic432326 ! Node: Second Intrinsic (function)432650 ! Node: Second Intrinsic (subroutine)433481 ! Node: Selected_Int_Kind Intrinsic434456 ! Node: Selected_Real_Kind Intrinsic434847 ! Node: Set_Exponent Intrinsic435234 ! Node: Shape Intrinsic435591 ! Node: Short Intrinsic435914 ! Node: Sign Intrinsic436609 ! Node: Signal Intrinsic (subroutine)437209 ! Node: Sin Intrinsic439423 ! Node: SinH Intrinsic439898 ! Node: Sleep Intrinsic440271 ! Node: Sngl Intrinsic440613 ! Node: Spacing Intrinsic441002 ! Node: Spread Intrinsic441326 ! Node: SqRt Intrinsic441647 ! Node: SRand Intrinsic442251 ! Node: Stat Intrinsic (subroutine)442628 ! Node: Stat Intrinsic (function)444242 ! Node: Sum Intrinsic445605 ! Node: SymLnk Intrinsic (subroutine)445937 ! Node: System Intrinsic (subroutine)446968 ! Node: System_Clock Intrinsic447907 ! Node: Tan Intrinsic449031 ! Node: TanH Intrinsic449491 ! Node: Time Intrinsic (UNIX)449873 ! Node: Time8 Intrinsic450858 ! Node: Tiny Intrinsic452037 ! Node: Transfer Intrinsic452352 ! Node: Transpose Intrinsic452683 ! Node: Trim Intrinsic453017 ! Node: TtyNam Intrinsic (subroutine)453347 ! Node: TtyNam Intrinsic (function)454049 ! Node: UBound Intrinsic454618 ! Node: UMask Intrinsic (subroutine)454963 ! Node: Unlink Intrinsic (subroutine)455660 ! Node: Unpack Intrinsic456557 ! Node: Verify Intrinsic456892 ! Node: XOr Intrinsic457211 ! Node: ZAbs Intrinsic457727 ! Node: ZCos Intrinsic458096 ! Node: ZExp Intrinsic458469 ! Node: ZLog Intrinsic458842 ! Node: ZSin Intrinsic459215 ! Node: ZSqRt Intrinsic459589 ! Node: Scope and Classes of Names459946 ! Node: Underscores in Symbol Names460428 ! Node: I/O460675 ! Node: Fortran 90 Features461448 ! Node: Other Dialects464250 ! Node: Source Form465409 ! Node: Carriage Returns466624 ! Node: Tabs466953 ! Node: Short Lines467826 ! Node: Long Lines468800 ! Node: Ampersands469411 ! Node: Trailing Comment469665 ! Node: Debug Line470441 ! Node: Dollar Signs471110 ! Node: Case Sensitivity471396 ! Node: VXT Fortran480012 ! Node: Double Quote Meaning481195 ! Node: Exclamation Point482123 ! Node: Fortran 90483166 ! Node: Pedantic Compilation484218 ! Node: Distensions488182 ! Node: Ugly Implicit Argument Conversion489146 ! Node: Ugly Assumed-Size Arrays489760 ! Node: Ugly Complex Part Extraction491481 ! Node: Ugly Null Arguments493103 ! Node: Ugly Conversion of Initializers494706 ! Node: Ugly Integer Conversions496471 ! Node: Ugly Assigned Labels497579 ! Node: Compiler499510 ! Node: Compiler Limits500148 ! Node: Run-time Environment Limits501039 ! Node: Timer Wraparounds502981 ! Node: Year 2000 (Y2K) Problems504260 ! Node: Array Size508766 ! Node: Character-variable Length509951 ! Node: Year 10000 (Y10K) Problems510460 ! Node: Compiler Types511006 ! Node: Compiler Constants515717 ! Node: Compiler Intrinsics516576 ! Node: Intrinsic Groups517503 ! Node: Other Intrinsics520944 ! Node: ACosD Intrinsic528542 ! Node: AIMax0 Intrinsic528823 ! Node: AIMin0 Intrinsic529132 ! Node: AJMax0 Intrinsic529442 ! Node: AJMin0 Intrinsic529752 ! Node: ASinD Intrinsic530061 ! Node: ATan2D Intrinsic530367 ! Node: ATanD Intrinsic530675 ! Node: BITest Intrinsic530981 ! Node: BJTest Intrinsic531290 ! Node: CDAbs Intrinsic531599 ! Node: CDCos Intrinsic531972 ! Node: CDExp Intrinsic532347 ! Node: CDLog Intrinsic532722 ! Node: CDSin Intrinsic533097 ! Node: CDSqRt Intrinsic533473 ! Node: ChDir Intrinsic (function)533866 ! Node: ChMod Intrinsic (function)534694 ! Node: CosD Intrinsic535807 ! Node: DACosD Intrinsic536119 ! Node: DASinD Intrinsic536427 ! Node: DATan2D Intrinsic536738 ! Node: DATanD Intrinsic537052 ! Node: Date Intrinsic537361 ! Node: DbleQ Intrinsic538080 ! Node: DCmplx Intrinsic538384 ! Node: DConjg Intrinsic540015 ! Node: DCosD Intrinsic540400 ! Node: DFloat Intrinsic540706 ! Node: DFlotI Intrinsic541078 ! Node: DFlotJ Intrinsic541388 ! Node: DImag Intrinsic541697 ! Node: DReal Intrinsic542074 ! Node: DSinD Intrinsic543221 ! Node: DTanD Intrinsic543525 ! Node: DTime Intrinsic (function)543840 ! Node: FGet Intrinsic (function)545070 ! Node: FGetC Intrinsic (function)545843 ! Node: FloatI Intrinsic546659 ! Node: FloatJ Intrinsic546979 ! Node: FPut Intrinsic (function)547298 ! Node: FPutC Intrinsic (function)548034 ! Node: IDate Intrinsic (VXT)548827 ! Node: IIAbs Intrinsic549934 ! Node: IIAnd Intrinsic550244 ! Node: IIBClr Intrinsic550549 ! Node: IIBits Intrinsic550858 ! Node: IIBSet Intrinsic551168 ! Node: IIDiM Intrinsic551477 ! Node: IIDInt Intrinsic551783 ! Node: IIDNnt Intrinsic552092 ! Node: IIEOr Intrinsic552401 ! Node: IIFix Intrinsic552706 ! Node: IInt Intrinsic553009 ! Node: IIOr Intrinsic553308 ! Node: IIQint Intrinsic553608 ! Node: IIQNnt Intrinsic553916 ! Node: IIShftC Intrinsic554227 ! Node: IISign Intrinsic554541 ! Node: IMax0 Intrinsic554851 ! Node: IMax1 Intrinsic555156 ! Node: IMin0 Intrinsic555460 ! Node: IMin1 Intrinsic555764 ! Node: IMod Intrinsic556067 ! Node: INInt Intrinsic556367 ! Node: INot Intrinsic556669 ! Node: IZExt Intrinsic556969 ! Node: JIAbs Intrinsic557272 ! Node: JIAnd Intrinsic557576 ! Node: JIBClr Intrinsic557881 ! Node: JIBits Intrinsic558190 ! Node: JIBSet Intrinsic558500 ! Node: JIDiM Intrinsic558809 ! Node: JIDInt Intrinsic559115 ! Node: JIDNnt Intrinsic559424 ! Node: JIEOr Intrinsic559733 ! Node: JIFix Intrinsic560038 ! Node: JInt Intrinsic560341 ! Node: JIOr Intrinsic560640 ! Node: JIQint Intrinsic560940 ! Node: JIQNnt Intrinsic561248 ! Node: JIShft Intrinsic561558 ! Node: JIShftC Intrinsic561869 ! Node: JISign Intrinsic562183 ! Node: JMax0 Intrinsic562493 ! Node: JMax1 Intrinsic562798 ! Node: JMin0 Intrinsic563102 ! Node: JMin1 Intrinsic563406 ! Node: JMod Intrinsic563709 ! Node: JNInt Intrinsic564009 ! Node: JNot Intrinsic564311 ! Node: JZExt Intrinsic564611 ! Node: Kill Intrinsic (function)564924 ! Node: Link Intrinsic (function)565605 ! Node: QAbs Intrinsic566416 ! Node: QACos Intrinsic566726 ! Node: QACosD Intrinsic567030 ! Node: QASin Intrinsic567338 ! Node: QASinD Intrinsic567644 ! Node: QATan Intrinsic567952 ! Node: QATan2 Intrinsic568258 ! Node: QATan2D Intrinsic568568 ! Node: QATanD Intrinsic568882 ! Node: QCos Intrinsic569191 ! Node: QCosD Intrinsic569492 ! Node: QCosH Intrinsic569795 ! Node: QDiM Intrinsic570098 ! Node: QExp Intrinsic570397 ! Node: QExt Intrinsic570695 ! Node: QExtD Intrinsic570994 ! Node: QFloat Intrinsic571298 ! Node: QInt Intrinsic571605 ! Node: QLog Intrinsic571905 ! Node: QLog10 Intrinsic572205 ! Node: QMax1 Intrinsic572512 ! Node: QMin1 Intrinsic572817 ! Node: QMod Intrinsic573120 ! Node: QNInt Intrinsic573420 ! Node: QSin Intrinsic573722 ! Node: QSinD Intrinsic574022 ! Node: QSinH Intrinsic574325 ! Node: QSqRt Intrinsic574629 ! Node: QTan Intrinsic574932 ! Node: QTanD Intrinsic575232 ! Node: QTanH Intrinsic575535 ! Node: Rename Intrinsic (function)575851 ! Node: Secnds Intrinsic576655 ! Node: Signal Intrinsic (function)577254 ! Node: SinD Intrinsic580083 ! Node: SnglQ Intrinsic580395 ! Node: SymLnk Intrinsic (function)580710 ! Node: System Intrinsic (function)581577 ! Node: TanD Intrinsic582904 ! Node: Time Intrinsic (VXT)583221 ! Node: UMask Intrinsic (function)583975 ! Node: Unlink Intrinsic (function)584583 ! Node: ZExt Intrinsic585311 ! Node: Other Compilers585599 ! Node: Dropping f2c Compatibility588119 ! Node: Compilers Other Than f2c591191 ! Node: Other Languages592989 ! Node: Interoperating with C and C++593254 ! Node: C Interfacing Tools594287 ! Node: C Access to Type Information595215 ! Node: f2c Skeletons and Prototypes595902 ! Ref: f2c Skeletons and Prototypes-Footnote-1597349 ! Node: C++ Considerations597603 ! Node: Startup Code598270 ! Node: Debugging and Interfacing603059 ! Node: Main Program Unit605746 ! Node: Procedures608240 ! Node: Functions610898 ! Node: Names612516 ! Node: Common Blocks615659 ! Node: Local Equivalence Areas615923 ! Node: Complex Variables616907 ! Node: Arrays618027 ! Node: Adjustable Arrays621360 ! Node: Alternate Entry Points624219 ! Node: Alternate Returns630921 ! Node: Assigned Statement Labels631822 ! Node: Run-time Library Errors633667 ! Node: Collected Fortran Wisdom635619 ! Node: Advantages Over f2c637055 ! Node: Language Extensions638036 ! Node: Diagnostic Abilities639210 ! Node: Compiler Options639601 ! Node: Compiler Speed640649 ! Node: Program Speed641359 ! Node: Ease of Debugging642944 ! Node: Character and Hollerith Constants645374 ! Node: Block Data and Libraries646346 ! Node: Loops649675 ! Node: Working Programs654901 ! Node: Not My Type655645 ! Node: Variables Assumed To Be Zero657576 ! Node: Variables Assumed To Be Saved658630 ! Node: Unwanted Variables660000 ! Node: Unused Arguments660880 ! Node: Surprising Interpretations of Code661343 ! Node: Aliasing Assumed To Work662190 ! Node: Output Assumed To Flush668388 ! Node: Large File Unit Numbers671161 ! Node: Floating-point precision673313 ! Node: Inconsistent Calling Sequences674574 ! Node: Overly Convenient Options675554 ! Node: Faster Programs678860 ! Node: Aligned Data679306 ! Node: Prefer Automatic Uninitialized Variables684183 ! Node: Avoid f2c Compatibility685549 ! Node: Use Submodel Options686017 ! Node: Trouble687021 ! Node: But-bugs688483 ! Node: Signal 11 and Friends690256 ! Node: Cannot Link Fortran Programs692336 ! Node: Large Common Blocks693619 ! Node: Debugger Problems694045 ! Node: NeXTStep Problems694760 ! Node: Stack Overflow696586 ! Node: Nothing Happens699475 ! Node: Strange Behavior at Run Time701089 ! Node: Floating-point Errors703577 ! Node: Known Bugs709871 ! Node: Missing Features717162 ! Node: Better Source Model719089 ! Node: Fortran 90 Support720858 ! Node: Intrinsics in PARAMETER Statements721959 ! Node: Arbitrary Concatenation722710 ! Node: SELECT CASE on CHARACTER Type723113 ! Node: RECURSIVE Keyword723400 ! Node: Increasing Precision/Range723827 ! Node: Popular Non-standard Types725365 ! Node: Full Support for Compiler Types725704 ! Node: Array Bounds Expressions726340 ! Node: POINTER Statements726787 ! Node: Sensible Non-standard Constructs727670 ! Node: READONLY Keyword729996 ! Node: FLUSH Statement730906 ! Node: Expressions in FORMAT Statements731276 ! Node: Explicit Assembler Code732451 ! Node: Q Edit Descriptor732740 ! Node: Old-style PARAMETER Statements733244 ! Node: TYPE and ACCEPT I/O Statements733978 ! Node: STRUCTURE UNION RECORD MAP734544 ! Node: OPEN CLOSE and INQUIRE Keywords735030 ! Node: ENCODE and DECODE736010 ! Node: AUTOMATIC Statement737105 ! Node: Suppressing Space Padding738352 ! Node: Fortran Preprocessor739579 ! Node: Bit Operations on Floating-point Data740152 ! Node: Really Ugly Character Assignments740685 ! Node: POSIX Standard741060 ! Node: Floating-point Exception Handling741300 ! Node: Nonportable Conversions742702 ! Node: Large Automatic Arrays743245 ! Node: Support for Threads743652 ! Node: Enabling Debug Lines744077 ! Node: Better Warnings744454 ! Node: Gracefully Handle Sensible Bad Code746090 ! Node: Non-standard Conversions746834 ! Node: Non-standard Intrinsics747177 ! Node: Modifying DO Variable747593 ! Node: Better Pedantic Compilation748269 ! Node: Warn About Implicit Conversions748897 ! Node: Invalid Use of Hollerith Constant749484 ! Node: Dummy Array Without Dimensioning Dummy750027 ! Node: Invalid FORMAT Specifiers750940 ! Node: Ambiguous Dialects751341 ! Node: Unused Labels751752 ! Node: Informational Messages751974 ! Node: Uninitialized Variables at Run Time752377 ! Node: Portable Unformatted Files752983 ! Ref: Portable Unformatted Files-Footnote-1755939 ! Node: Better List-directed I/O755967 ! Node: Default to Console I/O756872 ! Node: Labels Visible to Debugger757520 ! Node: Disappointments757921 ! Node: Mangling of Names758559 ! Node: Multiple Definitions of External Names759409 ! Node: Limitation on Implicit Declarations760772 ! Node: Non-bugs761056 ! Node: Backslash in Constants762181 ! Node: Initializing Before Specifying767070 ! Node: Context-Sensitive Intrinsicness768212 ! Node: Context-Sensitive Constants770108 ! Node: Equivalence Versus Equality773064 ! Node: Order of Side Effects776107 ! Node: Warnings and Errors777835 ! Node: Open Questions779233 ! Node: Bugs779702 ! Node: Bug Criteria780390 ! Node: Bug Reporting786627 ! Node: Service786988 ! Node: Adding Options787454 ! Node: Projects792047 ! Node: Efficiency792982 ! Node: Better Optimization795879 ! Node: Simplify Porting799249 ! Node: More Extensions801004 ! Node: Machine Model804092 ! Node: Internals Documentation805378 ! Node: Internals Improvements805685 ! Node: Better Diagnostics809229 ! Node: Front End810146 ! Node: Overview of Sources810924 ! Node: Overview of Translation Process818313 ! Node: g77stripcard822591 ! Node: lex.c825068 ! Node: sta.c834608 ! Node: sti.c834719 ! Node: stq.c834830 ! Node: stb.c834941 ! Node: expr.c835053 ! Node: stc.c835167 ! Node: std.c835279 ! Node: ste.c835390 ! Node: Gotchas (Transforming)835518 ! Node: TBD (Transforming)843637 ! Node: Philosophy of Code Generation846333 ! Node: Two-pass Design852237 ! Node: Two-pass Code853394 ! Node: Why Two Passes854127 ! Node: Challenges Posed860195 ! Node: Transforming Statements862679 ! Node: Statements Needing Temporaries863529 ! Node: Transforming DO WHILE866293 ! Node: Transforming Iterative DO867476 ! Node: Transforming Block IF868305 ! Node: Transforming SELECT CASE869670 ! Node: Transforming Expressions872892 ! Node: Internal Naming Conventions874881 ! Node: Diagnostics877880 ! Node: CMPAMBIG879278 ! Node: EXPIMP885695 ! Node: INTGLOB886931 ! Node: LEX889175 ! Node: GLOBALS894630 ! Node: LINKFAIL897294 ! Node: Y2KBAD897918 ! Node: Keyword Index898268  End Tag Table diff -Nrc3pad gcc-3.3/gcc/f/g77.texi gcc-3.3.1/gcc/f/g77.texi *** gcc-3.3/gcc/f/g77.texi 2003-02-04 01:55:40.000000000 +0000 --- gcc-3.3.1/gcc/f/g77.texi 2003-05-16 15:08:37.000000000 +0000 *************** *** 2,9 **** @c %**start of header @setfilename g77.info ! @set last-update 2002-04-29 ! @set copyrights-g77 1995,1996,1997,1998,1999,2000,2001,2002 @include root.texi --- 2,9 ---- @c %**start of header @setfilename g77.info ! @set last-update 2003-05-13 ! @set copyrights-g77 1995,1996,1997,1998,1999,2000,2001,2002,2003 @include root.texi *************** enable/disable/delete/hide intrinsics fr *** 10420,10449 **** 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. ! @xref{Trouble}. ! If it isn't known, then you should report the problem. ! ! Reporting a bug might help you by bringing a solution to your problem, or ! it might not. ! (If it does not, look in the service directory; see ! @ref{Service}.) ! In any case, the principal function of a bug report is ! to help the entire community by making the next version of GNU Fortran work ! better. ! Bug reports are your contribution to the maintenance of GNU Fortran. ! ! Since the maintainers are very overloaded, we cannot respond to every ! bug report. ! However, if the bug has not been fixed, we are likely to ! send you a patch and ask you to tell us whether it works. ! ! In order for a bug report to serve its purpose, you must include the ! information that makes for fixing the bug. @menu * Criteria: Bug Criteria. Have you really found a bug? - * Where: Bug Lists. Where to send your bug report. * Reporting: Bug Reporting. How to report a bug effectively. @end menu --- 10420,10430 ---- 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. @xref{Trouble}. If it isn't known, then you should ! report the problem. @menu * Criteria: Bug Criteria. Have you really found a bug? * Reporting: Bug Reporting. How to report a bug effectively. @end menu *************** It might mean the bug is in your code, a *** 10634,10981 **** exposes it more readily than other compilers. @end itemize - @node Bug Lists - @section Where to Report Bugs - @cindex bug report mailing lists - @kindex @value{email-bugs} - Send bug reports for GNU Fortran to @email{@value{email-bugs}}. - - Often people think of posting bug reports to a newsgroup instead of - mailing them. - This sometimes appears to work, but it has one problem which can be - crucial: a newsgroup posting does not contain a mail path back to the - sender. - Thus, if maintainers need more information, they might be unable - to reach you. For this reason, you should always send bug reports by - mail to the proper mailing list. - - As a last resort, send bug reports on paper to: - - @example - GNU Compiler Bugs - Free Software Foundation - 59 Temple Place - Suite 330 - Boston, MA 02111-1307, USA - @end example - @node Bug Reporting @section How to Report Bugs @cindex compiler bugs, reporting ! The fundamental principle of reporting bugs usefully is this: ! @strong{report all the facts}. ! If you are not sure whether to state a ! fact or leave it out, state it! ! ! Often people omit facts because they think they know what causes the ! problem and they conclude that some details don't matter. ! Thus, you might ! assume that the name of the variable you use in an example does not matter. ! Well, probably it doesn't, but one cannot be sure. ! Perhaps the bug is a ! stray memory reference which happens to fetch from the location where that ! name is stored in memory; perhaps, if the name were different, the contents ! of that location would fool the compiler into doing the right thing despite ! the bug. ! Play it safe and give a specific, complete example. ! That is the ! easiest thing for you to do, and the most helpful. ! ! Keep in mind that the purpose of a bug report is to enable someone to ! fix the bug if it is not known. ! It isn't very important what happens if ! the bug is already known. ! Therefore, always write your bug reports on ! the assumption that the bug is not known. ! ! Sometimes people give a few sketchy facts and ask, ``Does this ring a ! bell?'' ! This cannot help us fix a bug, so it is rarely helpful. ! We respond by asking for enough details to enable us to investigate. ! You might as well expedite matters by sending them to begin with. ! (Besides, there are enough bells ringing around here as it is.) ! ! Try to make your bug report self-contained. ! If we have to ask you for ! more information, it is best if you include all the previous information ! in your response, as well as the information that was missing. ! ! Please report each bug in a separate message. ! This makes it easier for ! us to track which bugs have been fixed and to forward your bugs reports ! to the appropriate maintainer. ! ! Do not compress and encode any part of your bug report using programs ! such as @file{uuencode}. ! If you do so it will slow down the processing ! of your bug. ! If you must submit multiple large files, use @file{shar}, ! which allows us to read your message without having to run any ! decompression programs. ! ! (As a special exception for GNU Fortran bug-reporting, at least ! for now, if you are sending more than a few lines of code, if ! your program's source file format contains ``interesting'' things ! like trailing spaces or strange characters, or if you need to ! include binary data files, it is acceptable to put all the ! files together in a @command{tar} archive, and, whether you need to ! do that, it is acceptable to then compress the single file (@command{tar} ! archive or source file) ! using @command{gzip} and encode it via @command{uuencode}. ! Do not use any MIME stuff---the current maintainer can't decode this. ! Using @command{compress} instead of @command{gzip} is acceptable, assuming ! you have licensed the use of the patented algorithm in ! @command{compress} from Unisys.) ! ! To enable someone to investigate the bug, you should include all these ! things: ! ! @itemize @bullet ! @item ! The version of GNU Fortran. ! You can get this by running @command{g77} with the @option{-v} option. ! (Ignore any error messages that might be displayed ! when the linker is run.) ! ! Without this, we won't know whether there is any point in looking for ! the bug in the current version of GNU Fortran. ! ! @item ! @cindex preprocessor ! @cindex cpp program ! @cindex programs, cpp ! @pindex cpp ! A complete input file that will reproduce the bug. ! ! If your source file(s) require preprocessing ! (for example, their names have suffixes like ! @samp{.F}, @samp{.fpp}, @samp{.FPP}, and @samp{.r}), ! and the bug is in the compiler proper (@file{f771}) ! or in a subsequent phase of processing, ! run your source file through the C preprocessor ! by doing @samp{g77 -E @var{sourcefile} > @var{newfile}}. ! Then, include the contents of @var{newfile} in the bug report. ! (When you do this, use the same preprocessor options---such as ! @option{-I}, @option{-D}, and @option{-U}---that you used in actual ! compilation.) ! ! A single statement is not enough of an example. ! In order to compile it, ! it must be embedded in a complete file of compiler input. ! The bug might depend on the details of how this is done. ! ! Without a real example one can compile, ! all anyone can do about your bug report is wish you luck. ! It would be futile to try to guess how to provoke the bug. ! For example, bugs in register allocation and reloading ! can depend on every little detail of the source and include files ! that trigger them. ! ! @item ! @cindex included files ! @cindex INCLUDE directive ! @cindex directive, INCLUDE ! @cindex #include directive ! @cindex directive, #include ! Note that you should include with your bug report any files ! included by the source file ! (via the @code{#include} or @code{INCLUDE} directive) ! that you send, and any files they include, and so on. ! ! It is not necessary to replace ! the @code{#include} and @code{INCLUDE} directives ! with the actual files in the version of the source file that ! you send, but it might make submitting the bug report easier ! in the end. ! However, be sure to @emph{reproduce} the bug using the @emph{exact} ! version of the source material you submit, to avoid wild-goose ! chases. ! ! @item ! The command arguments you gave GNU Fortran to compile that example ! and observe the bug. For example, did you use @option{-O}? To guarantee ! you won't omit something important, list all the options. ! ! If we were to try to guess the arguments, we would probably guess wrong ! and then we would not encounter the bug. ! ! @item ! The type of machine you are using, and the operating system name and ! version number. ! (Much of this information is printed by @samp{g77 -v}---if you ! include that, send along any additional info you have that you ! don't see clearly represented in that output.) ! ! @item ! The operands you gave to the @command{configure} command when you installed ! the compiler. ! ! @item ! A complete list of any modifications you have made to the compiler ! source. (We don't promise to investigate the bug unless it happens in ! an unmodified compiler. But if you've made modifications and don't tell ! us, then you are sending us on a wild-goose chase.) ! ! Be precise about these changes. A description in English is not ! enough---send a context diff for them. ! ! Adding files of your own (such as a machine description for a machine we ! don't support) is a modification of the compiler source. ! ! @item ! Details of any other deviations from the standard procedure for installing ! GNU Fortran. ! ! @item ! A description of what behavior you observe that you believe is ! incorrect. For example, ``The compiler gets a fatal signal,'' or, ! ``The assembler instruction at line 208 in the output is incorrect.'' ! ! Of course, if the bug is that the compiler gets a fatal signal, then one ! can't miss it. But if the bug is incorrect output, the maintainer might ! not notice unless it is glaringly wrong. None of us has time to study ! all the assembler code from a 50-line Fortran program just on the chance that ! one instruction might be wrong. We need @emph{you} to do this part! ! ! Even if the problem you experience is a fatal signal, you should still ! say so explicitly. Suppose something strange is going on, such as, your ! copy of the compiler is out of synch, or you have encountered a bug in ! the C library on your system. (This has happened!) Your copy might ! crash and the copy here would not. If you @i{said} to expect a crash, ! then when the compiler here fails to crash, we would know that the bug ! was not happening. If you don't say to expect a crash, then we would ! not know whether the bug was happening. We would not be able to draw ! any conclusion from our observations. ! ! If the problem is a diagnostic when building GNU Fortran with some other ! compiler, say whether it is a warning or an error. ! ! Often the observed symptom is incorrect output when your program is run. ! Sad to say, this is not enough information unless the program is short ! and simple. None of us has time to study a large program to figure out ! how it would work if compiled correctly, much less which line of it was ! compiled wrong. So you will have to do that. Tell us which source line ! it is, and what incorrect result happens when that line is executed. A ! person who understands the program can find this as easily as finding a ! bug in the program itself. ! ! @item ! If you send examples of assembler code output from GNU Fortran, ! please use @option{-g} when you make them. The debugging information ! includes source line numbers which are essential for correlating the ! output with the input. ! ! @item ! If you wish to mention something in the GNU Fortran source, refer to it by ! context, not by line number. ! ! The line numbers in the development sources don't match those in your ! sources. Your line numbers would convey no convenient information to the ! maintainers. ! ! @item ! Additional information from a debugger might enable someone to find a ! problem on a machine which he does not have available. However, you ! need to think when you collect this information if you want it to have ! any chance of being useful. ! ! @cindex backtrace for bug reports ! For example, many people send just a backtrace, but that is never ! useful by itself. A simple backtrace with arguments conveys little ! about GNU Fortran because the compiler is largely data-driven; the same ! functions are called over and over for different RTL insns, doing ! different things depending on the details of the insn. ! ! Most of the arguments listed in the backtrace are useless because they ! are pointers to RTL list structure. The numeric values of the ! pointers, which the debugger prints in the backtrace, have no ! significance whatever; all that matters is the contents of the objects ! they point to (and most of the contents are other such pointers). ! ! In addition, most compiler passes consist of one or more loops that ! scan the RTL insn sequence. The most vital piece of information about ! such a loop---which insn it has reached---is usually in a local variable, ! not in an argument. ! ! @findex debug_rtx ! What you need to provide in addition to a backtrace are the values of ! the local variables for several stack frames up. When a local ! variable or an argument is an RTX, first print its value and then use ! the GDB command @command{pr} to print the RTL expression that it points ! to. (If GDB doesn't run on your machine, use your debugger to call ! the function @code{debug_rtx} with the RTX as an argument.) In ! general, whenever a variable is a pointer, its value is no use ! without the data it points to. ! @end itemize ! ! Here are some things that are not necessary: ! ! @itemize @bullet ! @item ! A description of the envelope of the bug. ! ! Often people who encounter a bug spend a lot of time investigating ! which changes to the input file will make the bug go away and which ! changes will not affect it. ! ! This is often time consuming and not very useful, because the way we ! will find the bug is by running a single example under the debugger with ! breakpoints, not by pure deduction from a series of examples. You might ! as well save your time for something else. ! ! Of course, if you can find a simpler example to report @emph{instead} of ! the original one, that is a convenience. Errors in the output will be ! easier to spot, running under the debugger will take less time, etc. ! Most GNU Fortran bugs involve just one function, so the most straightforward ! way to simplify an example is to delete all the function definitions ! except the one where the bug occurs. Those earlier in the file may be ! replaced by external declarations if the crucial function depends on ! them. (Exception: inline functions might affect compilation of functions ! defined later in the file.) ! ! However, simplification is not vital; if you don't want to do this, ! report the bug anyway and send the entire test case you used. ! ! @item ! In particular, some people insert conditionals @samp{#ifdef BUG} around ! a statement which, if removed, makes the bug not happen. These are just ! clutter; we won't pay any attention to them anyway. Besides, you should ! send us preprocessor output, and that can't have conditionals. ! ! @item ! A patch for the bug. ! ! A patch for the bug is useful if it is a good one. But don't omit the ! necessary information, such as the test case, on the assumption that a ! patch is all we need. We might see problems with your patch and decide ! to fix the problem another way, or we might not understand it at all. ! ! Sometimes with a program as complicated as GNU Fortran it is very hard to ! construct an example that will make the program follow a certain path ! through the code. If you don't send the example, we won't be able to ! construct one, so we won't be able to verify that the bug is fixed. ! ! And if we can't understand what bug you are trying to fix, or why your ! patch should be an improvement, we won't install it. A test case will ! help us to understand. ! ! See @uref{http://gcc.gnu.org/contribute.html} ! for guidelines on how to make it easy for us to ! understand and install your patches. ! ! @item ! A guess about what the bug is or what it depends on. ! ! Such guesses are usually wrong. Even the maintainer can't guess right ! about such things without first using the debugger to find the facts. ! ! @item ! A core dump file. - We have no way of examining a core dump for your type of machine - unless we have an identical system---and if we do have one, - we should be able to reproduce the crash ourselves. - @end itemize @node Service @chapter How To Get Help with GNU Fortran --- 10615,10629 ---- exposes it more readily than other compilers. @end itemize @node Bug Reporting @section How to Report Bugs @cindex compiler bugs, reporting ! Bugs should be reported to our bug database. Please refer to ! @uref{http://gcc.gnu.org/bugs.html} for up-to-date instructions how to ! submit bug reports. Copies of this file in HTML (@file{bugs.html}) and ! plain text (@file{BUGS}) are also part of GCC releases. @node Service @chapter How To Get Help with GNU Fortran diff -Nrc3pad gcc-3.3/gcc/f/intdoc.in gcc-3.3.1/gcc/f/intdoc.in *** gcc-3.3/gcc/f/intdoc.in 2002-12-19 14:27:09.000000000 +0000 --- gcc-3.3.1/gcc/f/intdoc.in 2003-05-18 12:11:56.000000000 +0000 *************** *** 1,4 **** ! /* Copyright (C) 1997, 1999 Free Software Foundation, Inc. * This is part of the G77 manual. * For copying conditions, see the file g77.texi. */ --- 1,4 ---- ! /* Copyright (C) 1997, 1999, 2003 Free Software Foundation, Inc. * This is part of the G77 manual. * For copying conditions, see the file g77.texi. */ *************** zero if not, and negative if the informa *** 1288,1296 **** ") DEFDOC (IDATE_unix, "Get local time info.", "\ ! Fills @var{@1@} with the numerical values at the current local time ! of day, month (in the range 1--12), and year in elements 1, 2, and 3, ! respectively. The year has four significant digits. @cindex Y10K compliance --- 1288,1296 ---- ") DEFDOC (IDATE_unix, "Get local time info.", "\ ! Fills @var{@1@} with the numerical values at the current local time. ! The day (in the range 1--31), month (in the range 1--12), ! and year appear in elements 1, 2, and 3 of @var{@1@}, respectively. The year has four significant digits. @cindex Y10K compliance *************** as of the Year 10000. *** 1308,1326 **** DEFDOC (IDATE_vxt, "Get local time info (VAX/VMS).", "\ Returns the numerical values of the current local time. The month (in the range 1--12) is returned in @var{@1@}, ! the day (in the range 1--7) in @var{@2@}, and the year in @var{@3@} (in the range 0--99). @cindex Y2K compliance @cindex Year 2000 compliance @cindex wraparound, Y2K @cindex limits, Y2K ! This intrinsic is not recommended, due to the year 2000 approaching. ! Therefore, programs making use of this intrinsic ! might not be Year 2000 (Y2K) compliant. For example, the date might appear, to such programs, to wrap around - (change from a larger value to a smaller one) as of the Year 2000. @xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits --- 1308,1327 ---- DEFDOC (IDATE_vxt, "Get local time info (VAX/VMS).", "\ Returns the numerical values of the current local time. The month (in the range 1--12) is returned in @var{@1@}, ! the day (in the range 1--31) in @var{@2@}, and the year in @var{@3@} (in the range 0--99). @cindex Y2K compliance @cindex Year 2000 compliance @cindex wraparound, Y2K @cindex limits, Y2K ! This intrinsic is not recommended, due to the fact that ! its return value for year wraps around century boundaries ! (change from a larger value to a smaller one). ! Therefore, programs making use of this intrinsic, for ! instance, might not be Year 2000 (Y2K) compliant. For example, the date might appear, to such programs, to wrap around as of the Year 2000. @xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits diff -Nrc3pad gcc-3.3/gcc/f/intdoc.texi gcc-3.3.1/gcc/f/intdoc.texi *** gcc-3.3/gcc/f/intdoc.texi 2003-05-14 00:18:14.000000000 +0000 --- gcc-3.3.1/gcc/f/intdoc.texi 2003-05-18 12:11:56.000000000 +0000 *************** Intrinsic groups: @code{unix}. *** 5893,5901 **** @noindent Description: ! Fills @var{TArray} with the numerical values at the current local time ! of day, month (in the range 1--12), and year in elements 1, 2, and 3, ! respectively. The year has four significant digits. @cindex Y10K compliance --- 5893,5901 ---- @noindent Description: ! Fills @var{TArray} with the numerical values at the current local time. ! The day (in the range 1--31), month (in the range 1--12), ! and year appear in elements 1, 2, and 3 of @var{TArray}, respectively. The year has four significant digits. @cindex Y10K compliance *************** Description: *** 5941,5959 **** Returns the numerical values of the current local time. The month (in the range 1--12) is returned in @var{M}, ! the day (in the range 1--7) in @var{D}, and the year in @var{Y} (in the range 0--99). @cindex Y2K compliance @cindex Year 2000 compliance @cindex wraparound, Y2K @cindex limits, Y2K ! This intrinsic is not recommended, due to the year 2000 approaching. ! Therefore, programs making use of this intrinsic ! might not be Year 2000 (Y2K) compliant. For example, the date might appear, to such programs, to wrap around - (change from a larger value to a smaller one) as of the Year 2000. @xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits --- 5941,5960 ---- Returns the numerical values of the current local time. The month (in the range 1--12) is returned in @var{M}, ! the day (in the range 1--31) in @var{D}, and the year in @var{Y} (in the range 0--99). @cindex Y2K compliance @cindex Year 2000 compliance @cindex wraparound, Y2K @cindex limits, Y2K ! This intrinsic is not recommended, due to the fact that ! its return value for year wraps around century boundaries ! (change from a larger value to a smaller one). ! Therefore, programs making use of this intrinsic, for ! instance, might not be Year 2000 (Y2K) compliant. For example, the date might appear, to such programs, to wrap around as of the Year 2000. @xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits diff -Nrc3pad gcc-3.3/gcc/f/Make-lang.in gcc-3.3.1/gcc/f/Make-lang.in *** gcc-3.3/gcc/f/Make-lang.in 2003-01-26 11:31:24.000000000 +0000 --- gcc-3.3.1/gcc/f/Make-lang.in 2003-07-08 13:28:40.000000000 +0000 *************** f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir *** 167,173 **** $(srcdir)/doc/include/gpl.texi \ $(srcdir)/doc/include/funding.texi \ $(srcdir)/doc/include/gcc-common.texi ! s=`cd $(srcdir); ${PWD}`; export s; \ cd f && $(TEXI2DVI) -I $$s/doc/include $$s/f/g77.texi $(srcdir)/f/g77.1: $(srcdir)/f/invoke.texi --- 167,173 ---- $(srcdir)/doc/include/gpl.texi \ $(srcdir)/doc/include/funding.texi \ $(srcdir)/doc/include/gcc-common.texi ! s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ cd f && $(TEXI2DVI) -I $$s/doc/include $$s/f/g77.texi $(srcdir)/f/g77.1: $(srcdir)/f/invoke.texi diff -Nrc3pad gcc-3.3/gcc/f/NEWS gcc-3.3.1/gcc/f/NEWS *** gcc-3.3/gcc/f/NEWS 2003-05-14 02:47:28.000000000 +0000 --- gcc-3.3.1/gcc/f/NEWS 2003-08-04 14:59:04.000000000 +0000 *************** _Note:_ This file is automatically gener *** 2,8 **** `news0.texi' and `news.texi'. `NEWS' is _not_ a source file, although it is normally included within source distributions. ! This file lists news about the GCC-3.3 version (and some other versions) of the GNU Fortran compiler. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc. You may copy, distribute, and modify it freely as long as you --- 2,8 ---- `news0.texi' and `news.texi'. `NEWS' is _not_ a source file, although it is normally included within source distributions. ! This file lists news about the GCC-3.3.1 version (and some other versions) of the GNU Fortran compiler. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc. You may copy, distribute, and modify it freely as long as you *************** somewhat more difficult. *** 49,55 **** the mainline, development version of `g77' within `gcc') is available at `http://gcc.gnu.org/onlinedocs/g77/News.html'. ! The following information was last updated on 2003-04-11: In `GCC' 3.3 versus `GCC' 3.2: ============================== --- 49,55 ---- the mainline, development version of `g77' within `gcc') is available at `http://gcc.gnu.org/onlinedocs/g77/News.html'. ! The following information was last updated on 2003-05-18: In `GCC' 3.3 versus `GCC' 3.2: ============================== *************** In `GCC' 3.3 versus `GCC' 3.2: *** 108,113 **** --- 108,117 ---- `10197' Direct access files not unformatted by default + `10726' + Documentation for function IDATE Intrinsic (UNIX) is wrong + [fixed in 3.3.1]. + * Richard Henderson () analyzed and improved the handling of (no-)aliasing information for dummy arguments and improved the optimization of induction variables in unrolled loops. diff -Nrc3pad gcc-3.3/gcc/f/news.texi gcc-3.3.1/gcc/f/news.texi *** gcc-3.3/gcc/f/news.texi 2003-04-11 19:29:11.000000000 +0000 --- gcc-3.3.1/gcc/f/news.texi 2003-05-18 12:11:56.000000000 +0000 *************** *** 10,16 **** @c in the standalone derivations of this file (e.g. NEWS). @set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002,2003 ! @set last-update-news 2003-04-11 @ifset DOC-NEWS @include root.texi --- 10,16 ---- @c in the standalone derivations of this file (e.g. NEWS). @set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002,2003 ! @set last-update-news 2003-05-18 @ifset DOC-NEWS @include root.texi *************** Double complex zero ** double precision *** 190,195 **** --- 190,197 ---- ICE caused by invalid PARAMETER in implied DO loop @item 10197 Direct access files not unformatted by default + @item 10726 + Documentation for function IDATE Intrinsic (UNIX) is wrong [fixed in 3.3.1]. @end table @item Richard Henderson (@email{rth@@redhat.com}) analyzed and improved the handling diff -Nrc3pad gcc-3.3/libf2c/ChangeLog gcc-3.3.1/libf2c/ChangeLog *** gcc-3.3/libf2c/ChangeLog 2003-05-14 00:10:45.000000000 +0000 --- gcc-3.3.1/libf2c/ChangeLog 2003-08-04 12:49:33.000000000 +0000 *************** *** 1,3 **** --- 1,15 ---- + 2003-08-04 Release Manager + + * GCC 3.3.1 Released. + + 2003-08-04 Release Manager + + * GCC 3.3.1 Released. + + 2003-07-04 H.J. Lu + + * Makefile.in: Replace PWD with PWD_COMMAND. + 2003-05-13 Release Manager * GCC 3.3 Released. diff -Nrc3pad gcc-3.3/libf2c/Makefile.in gcc-3.3.1/libf2c/Makefile.in *** gcc-3.3/libf2c/Makefile.in 2003-01-28 01:45:12.000000000 +0000 --- gcc-3.3.1/libf2c/Makefile.in 2003-07-04 19:53:54.000000000 +0000 *************** *** 20,26 **** #02111-1307, USA. SHELL = @SHELL@ ! PWD = $${PWDCMD-pwd} MAKEOVERRIDES= .NOEXPORTS: --- 20,26 ---- #02111-1307, USA. SHELL = @SHELL@ ! PWD_COMMAND = $${PWDCMD-pwd} MAKEOVERRIDES= .NOEXPORTS: *************** rebuilt: configure *** 259,266 **** installcheck installdirs all-unilib subdir_do: ! @rootpre=`${PWD}`/; export rootpre; \ ! srcrootpre=`cd $(srcdir); ${PWD}`/; export srcrootpre; \ for i in .. $(DODIRS); do \ if [ x$$i != x.. ]; then \ if [ -f ./$$i/Makefile ]; then \ --- 259,266 ---- installcheck installdirs all-unilib subdir_do: ! @rootpre=`${PWD_COMMAND}`/; export rootpre; \ ! srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \ for i in .. $(DODIRS); do \ if [ x$$i != x.. ]; then \ if [ -f ./$$i/Makefile ]; then \