Commit 4e6a1440 by Craig Burley Committed by Craig Burley

remove -fugly, other doc fixes

From-SVN: r26519
parent 8a19a44a
Sat Apr 17 16:55:59 1999 Craig Burley <craig@jcb-sc.com>
* bugs.texi, ffe.texi, g77.texi, g77install.texi, news.texi:
Clean up @code{} vs. @samp{}.
Clean up dashes (`--') vs. @minus{} vs. `---'.
* ffe.texi: Add copyright header.
* g77.texi, lang-options.h, news.texi, top.c (ffe_decode_option):
Remove support for -fugly option.
Clarify that -fugly-logint is needed instead of -fugly
to work around using .EQ./.NE. on LOGICAL operands.
Explain more about why -fugly-logint is bad juju.
* g77.texi (Missing Features): Describe READONLY as a missing
feature. Describe AUTOMATIC better.
* news.texi: Mention libf2c upgrade.
Sat Apr 17 14:05:53 1999 Craig Burley <craig@jcb-sc.com> Sat Apr 17 14:05:53 1999 Craig Burley <craig@jcb-sc.com>
Make a place for front-end internals documentation: Make a place for front-end internals documentation:
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. BUGS). @c in the standalone derivations of this file (e.g. BUGS).
@set copyrights-bugs 1995-1999 @set copyrights-bugs 1995-1999
@set last-update-bugs 1999-04-03 @set last-update-bugs 1999-04-17
@include root.texi @include root.texi
...@@ -111,8 +111,8 @@ e.g. not passed to other procedures as they should be. ...@@ -111,8 +111,8 @@ e.g. not passed to other procedures as they should be.
@code{g77} fails to warn about @code{g77} fails to warn about
use of a ``live'' iterative-DO variable use of a ``live'' iterative-DO variable
as an implied-DO variable as an implied-DO variable
in a @samp{WRITE} or @samp{PRINT} statement in a @code{WRITE} or @code{PRINT} statement
(although it does warn about this in a @samp{READ} statement). (although it does warn about this in a @code{READ} statement).
@item @item
Something about @code{g77}'s straightforward handling of Something about @code{g77}'s straightforward handling of
...@@ -210,8 +210,8 @@ for information on the @samp{-fdebug-kludge} option. ...@@ -210,8 +210,8 @@ for information on the @samp{-fdebug-kludge} option.
@item @item
When debugging, after starting up the debugger but before being able When debugging, after starting up the debugger but before being able
to see the source code for the main program unit, the user must currently to see the source code for the main program unit, the user must currently
set a breakpoint at @samp{MAIN__} (or @samp{MAIN___} or @samp{MAIN_} if set a breakpoint at @code{MAIN__} (or @code{MAIN___} or @code{MAIN_} if
@samp{MAIN__} doesn't exist) @code{MAIN__} doesn't exist)
and run the program until it hits the breakpoint. and run the program until it hits the breakpoint.
At that point, the At that point, the
main program unit is activated and about to execute its first main program unit is activated and about to execute its first
......
@c Copyright (C) 1999 Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@node Front End @node Front End
@chapter Front End @chapter Front End
@cindex GNU Fortran Front End (FFE) @cindex GNU Fortran Front End (FFE)
...@@ -375,7 +379,7 @@ Whether @samp{Y} and @samp{Z} are local variables, ...@@ -375,7 +379,7 @@ Whether @samp{Y} and @samp{Z} are local variables,
additional function entry points, additional function entry points,
or dummy arguments to additional entry points or dummy arguments to additional entry points
is not known is not known
until the @samp{ENTRY} statement is parsed. until the @code{ENTRY} statement is parsed.
@item @item
Similarly, whether @samp{TMP} is a local variable is not known Similarly, whether @samp{TMP} is a local variable is not known
...@@ -383,7 +387,7 @@ until the @samp{READ *, TMP} statement is parsed. ...@@ -383,7 +387,7 @@ until the @samp{READ *, TMP} statement is parsed.
@item @item
The initial values for @samp{EE} and @samp{PI} The initial values for @samp{EE} and @samp{PI}
are not known until after the @samp{DATA} statement is parsed. are not known until after the @code{DATA} statement is parsed.
@item @item
Whether @samp{FRED} is a function returning type @code{REAL} Whether @samp{FRED} is a function returning type @code{REAL}
...@@ -404,7 +408,7 @@ especially when @code{ASSIGN}'ed.) ...@@ -404,7 +408,7 @@ especially when @code{ASSIGN}'ed.)
@item @item
That @samp{J} is a local variable is not known That @samp{J} is a local variable is not known
until the first @samp{ASSIGN} statement is parsed. until the first @code{ASSIGN} statement is parsed.
(This happens @emph{after} executable code has been seen.) (This happens @emph{after} executable code has been seen.)
@end itemize @end itemize
...@@ -678,17 +682,17 @@ END ...@@ -678,17 +682,17 @@ END
The arguments to the two calls to @samp{LFUNC} The arguments to the two calls to @samp{LFUNC}
require dynamic allocation (at run time), require dynamic allocation (at run time),
but are not required during execution of the @samp{CALL} statements. but are not required during execution of the @code{CALL} statements.
So, the scopes of those temporaries must be within blocks inside So, the scopes of those temporaries must be within blocks inside
the block corresponding to the Fortran @code{IF} block. the block corresponding to the Fortran @code{IF} block.
This cannot be represented ``naturally'' This cannot be represented ``naturally''
in vanilla C, nor in GBEL. in vanilla C, nor in GBEL.
The @samp{if}, @samp{elseif}, @samp{else}, The @code{if}, @code{elseif}, @code{else},
and @samp{endif} constructs and @code{endif} constructs
provided by both languages must, provided by both languages must,
for a given @samp{if} block, for a given @code{if} block,
share the same C/GBE block. share the same C/GBE block.
Therefore, any temporaries needed during evaluation of @samp{expr} Therefore, any temporaries needed during evaluation of @samp{expr}
...@@ -793,7 +797,7 @@ as if @samp{SELECT CASE(temp0)} had been written. ...@@ -793,7 +797,7 @@ as if @samp{SELECT CASE(temp0)} had been written.
Each corresponding @code{CASE} is replaced with @samp{CASE(@var{i})}, Each corresponding @code{CASE} is replaced with @samp{CASE(@var{i})},
where @var{i} is the ordinal for that case, where @var{i} is the ordinal for that case,
determined while, or before, determined while, or before,
generating the cascade of @samp{if}-related constructs generating the cascade of @code{if}-related constructs
to cope with @code{CHARACTER} selection. to cope with @code{CHARACTER} selection.
@item @item
......
...@@ -423,9 +423,9 @@ These problems can occur on most or all systems. ...@@ -423,9 +423,9 @@ These problems can occur on most or all systems.
* GNU C Required:: Why even ANSI C is not enough. * GNU C Required:: Why even ANSI C is not enough.
* Patching GNU CC:: Why @code{gcc} needn't be patched. * Patching GNU CC:: Why @code{gcc} needn't be patched.
* Building GNU CC Necessary:: Why you can't build @emph{just} Fortran. * Building GNU CC Necessary:: Why you can't build @emph{just} Fortran.
* Missing strtoul or bsearch:: When linking @samp{f771} fails. * Missing strtoul or bsearch:: When linking @code{f771} fails.
* Cleanup Kills Stage Directories:: For @code{g77} developers. * Cleanup Kills Stage Directories:: For @code{g77} developers.
* LANGUAGES Macro Ignored:: Sometimes @samp{LANGUAGES} is ignored. * LANGUAGES Macro Ignored:: Sometimes @code{LANGUAGES} is ignored.
@end menu @end menu
@node GNU C Required @node GNU C Required
...@@ -490,11 +490,11 @@ This information does not apply to the ...@@ -490,11 +490,11 @@ This information does not apply to the
@ifclear OMIT-FSF-G77 @ifclear OMIT-FSF-G77
On SunOS4 systems, linking the @code{f771} program used to On SunOS4 systems, linking the @code{f771} program used to
produce an error message concerning an undefined symbol named produce an error message concerning an undefined symbol named
@samp{_strtoul}, because the @samp{strtoul} library function @samp{_strtoul}, because the @code{strtoul} library function
is not provided on that system. is not provided on that system.
Other systems have, in the past, been reported to not provide Other systems have, in the past, been reported to not provide
their own @samp{strtoul} or @samp{bsearch} function. their own @code{strtoul} or @code{bsearch} function.
Some versions @code{g77} tried to default to providing bare-bones Some versions @code{g77} tried to default to providing bare-bones
versions of @code{bsearch} and @code{strtoul} automatically, versions of @code{bsearch} and @code{strtoul} automatically,
...@@ -504,8 +504,8 @@ To limit the failures to those few systems actually missing the ...@@ -504,8 +504,8 @@ To limit the failures to those few systems actually missing the
required routines, the bare-bones versions are still provided, required routines, the bare-bones versions are still provided,
in @file{@value{path-g77}/proj.c}, in @file{@value{path-g77}/proj.c},
if the appropriate macros are defined. if the appropriate macros are defined.
These are @code{NEED_BSEARCH} for @samp{bsearch} and These are @code{NEED_BSEARCH} for @code{bsearch} and
@code{NEED_STRTOUL} for @samp{NEED_STRTOUL}. @code{NEED_STRTOUL} for @code{NEED_STRTOUL}.
Therefore, if you are sure your system is missing Therefore, if you are sure your system is missing
@code{bsearch} or @code{strtoul} in its library, @code{bsearch} or @code{strtoul} in its library,
...@@ -530,8 +530,8 @@ make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL' ...@@ -530,8 +530,8 @@ make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL'
@end smallexample @end smallexample
If you then encounter problems compiling @file{@value{path-g77}/proj.c}, If you then encounter problems compiling @file{@value{path-g77}/proj.c},
it might be due to a discrepancy between how @samp{bsearch} it might be due to a discrepancy between how @code{bsearch}
or @samp{strtoul} are defined by that file and how they're or @code{strtoul} are defined by that file and how they're
declared by your system's header files. declared by your system's header files.
In that case, you'll have to use some basic knowledge of C In that case, you'll have to use some basic knowledge of C
...@@ -559,14 +559,14 @@ that, on demand. ...@@ -559,14 +559,14 @@ that, on demand.
@node LANGUAGES Macro Ignored @node LANGUAGES Macro Ignored
@subsubsection LANGUAGES Macro Ignored @subsubsection LANGUAGES Macro Ignored
@cindex @samp{LANGUAGES} macro ignored @cindex @code{LANGUAGES} macro ignored
@cindex ignoring @samp{LANGUAGES} macro @cindex ignoring @code{LANGUAGES} macro
Prior to version 0.5.23 of @code{g77} Prior to version 0.5.23 of @code{g77}
and version 1.1 of @code{egcs}, and version 1.1 of @code{egcs},
@code{g77} would sometimes ignore @code{g77} would sometimes ignore
the absence of @samp{f77} and @samp{F77} in the the absence of @code{f77} and @code{F77} in the
@samp{LANGUAGES} macro definition used for the @code{LANGUAGES} macro definition used for the
@code{make} command being processed. @code{make} command being processed.
As of @code{g77} version 0.5.23 As of @code{g77} version 0.5.23
...@@ -580,7 +580,7 @@ such as @code{g++}, ...@@ -580,7 +580,7 @@ such as @code{g++},
are known to go ahead and perform various are known to go ahead and perform various
language-specific activities when their language-specific activities when their
respective language strings do not appear respective language strings do not appear
in the @samp{LANGUAGES} macro in effect in the @code{LANGUAGES} macro in effect
during that invocation of @code{make}. during that invocation of @code{make}.
It is expected that these remaining problems will It is expected that these remaining problems will
...@@ -669,7 +669,7 @@ As such, none of the following information is expected to ...@@ -669,7 +669,7 @@ As such, none of the following information is expected to
be pertinent in future versions of @code{g77}. be pertinent in future versions of @code{g77}.
@menu @menu
* Larger File Unit Numbers:: Raising @samp{MXUNIT}. * Larger File Unit Numbers:: Raising @code{MXUNIT}.
* Always Flush Output:: Synchronizing write errors. * Always Flush Output:: Synchronizing write errors.
* Maximum Stackable Size:: Large arrays forced off the stack. * Maximum Stackable Size:: Large arrays forced off the stack.
* Floating-point Bit Patterns:: Possible programs building @code{g77} * Floating-point Bit Patterns:: Possible programs building @code{g77}
...@@ -697,7 +697,7 @@ a run-time crash in @code{libf2c}, because the unit number, ...@@ -697,7 +697,7 @@ a run-time crash in @code{libf2c}, because the unit number,
If you know that Fortran programs at your installation require If you know that Fortran programs at your installation require
the use of unit numbers higher than 99, you can change the the use of unit numbers higher than 99, you can change the
value of the @samp{MXUNIT} macro, which represents the maximum unit value of the @code{MXUNIT} macro, which represents the maximum unit
number, to an appropriately higher value. number, to an appropriately higher value.
To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
...@@ -707,12 +707,12 @@ To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your ...@@ -707,12 +707,12 @@ To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
#define MXUNIT 100 #define MXUNIT 100
@end example @end example
Change the line so that the value of @samp{MXUNIT} is defined to be Change the line so that the value of @code{MXUNIT} is defined to be
at least one @emph{greater} than the maximum unit number used by at least one @emph{greater} than the maximum unit number used by
the Fortran programs on your system. the Fortran programs on your system.
(For example, a program that does @samp{WRITE (UNIT=255)} would require (For example, a program that does @samp{WRITE (UNIT=255)} would require
@samp{MXUNIT} set to at least 256 to avoid crashing.) @code{MXUNIT} set to at least 256 to avoid crashing.)
Then build or rebuild @code{g77} as appropriate. Then build or rebuild @code{g77} as appropriate.
...@@ -753,7 +753,7 @@ asynchronous, or, more precisely, buffered error reporting ...@@ -753,7 +753,7 @@ asynchronous, or, more precisely, buffered error reporting
(detection of errors might be delayed). (detection of errors might be delayed).
@code{libg2c} supports flagging write errors immediately when @code{libg2c} supports flagging write errors immediately when
it is built with the @samp{ALWAYS_FLUSH} macro defined. it is built with the @code{ALWAYS_FLUSH} macro defined.
This results in a @code{libg2c} that runs slower, sometimes This results in a @code{libg2c} that runs slower, sometimes
quite a bit slower, under certain circumstances---for example, quite a bit slower, under certain circumstances---for example,
accessing files via the networked file system NFS---but the accessing files via the networked file system NFS---but the
...@@ -763,7 +763,7 @@ If you know that Fortran programs requiring this level of precision ...@@ -763,7 +763,7 @@ If you know that Fortran programs requiring this level of precision
of error reporting are to be compiled using the of error reporting are to be compiled using the
version of @code{g77} you are building, you might wish to version of @code{g77} you are building, you might wish to
modify the @code{g77} source tree so that the version of modify the @code{g77} source tree so that the version of
@code{libg2c} is built with the @samp{ALWAYS_FLUSH} macro @code{libg2c} is built with the @code{ALWAYS_FLUSH} macro
defined, enabling this behavior. defined, enabling this behavior.
To do this, find this line in @file{@value{path-libf2c}/f2c.h} in To do this, find this line in @file{@value{path-libf2c}/f2c.h} in
...@@ -788,7 +788,7 @@ Then build or rebuild @code{g77} as appropriate. ...@@ -788,7 +788,7 @@ Then build or rebuild @code{g77} as appropriate.
@cindex segmentation violation @cindex segmentation violation
@code{g77}, on most machines, puts many variables and arrays on the stack @code{g77}, on most machines, puts many variables and arrays on the stack
where possible, and can be configured (by changing where possible, and can be configured (by changing
@samp{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force @code{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
smaller-sized entities into static storage (saving smaller-sized entities into static storage (saving
on stack space) or permit larger-sized entities to be put on the on stack space) or permit larger-sized entities to be put on the
stack (which can improve run-time performance, as it presents stack (which can improve run-time performance, as it presents
...@@ -796,7 +796,7 @@ more opportunities for the GBE to optimize the generated code). ...@@ -796,7 +796,7 @@ more opportunities for the GBE to optimize the generated code).
@emph{Note:} Putting more variables and arrays on the stack @emph{Note:} Putting more variables and arrays on the stack
might cause problems due to system-dependent limits on stack size. might cause problems due to system-dependent limits on stack size.
Also, the value of @samp{FFECOM_sizeMAXSTACKITEM} has no Also, the value of @code{FFECOM_sizeMAXSTACKITEM} has no
effect on automatic variables and arrays. effect on automatic variables and arrays.
@xref{But-bugs}, for more information. @xref{But-bugs}, for more information.
...@@ -837,7 +837,7 @@ This size currently is quite small, since @code{g77} ...@@ -837,7 +837,7 @@ This size currently is quite small, since @code{g77}
currently has a known bug requiring too much memory currently has a known bug requiring too much memory
and time to handle such cases. and time to handle such cases.
In @file{@value{path-g77}/data.c}, the macro In @file{@value{path-g77}/data.c}, the macro
@samp{FFEDATA_sizeTOO_BIG_INIT_} is defined @code{FFEDATA_sizeTOO_BIG_INIT_} is defined
to the minimum size for the warning to appear. to the minimum size for the warning to appear.
The size is specified in storage units, The size is specified in storage units,
which can be bytes, words, or whatever, on a case-by-case basis. which can be bytes, words, or whatever, on a case-by-case basis.
...@@ -1537,16 +1537,16 @@ issuing an explanatory diagnostic. ...@@ -1537,16 +1537,16 @@ issuing an explanatory diagnostic.
@cindex building @code{gcc} @cindex building @code{gcc}
@cindex building @code{g77} @cindex building @code{g77}
@cindex @samp{LANGUAGES} macro @cindex @code{LANGUAGES} macro
Building @code{g77} requires building enough of @code{gcc} that Building @code{g77} requires building enough of @code{gcc} that
these instructions assume you're going to build all of these instructions assume you're going to build all of
@code{gcc}, including @code{g++}, @code{protoize}, and so on. @code{gcc}, including @code{g++}, @code{protoize}, and so on.
You can save a little time and disk space by changes the You can save a little time and disk space by changes the
@samp{LANGUAGES} macro definition in @code{gcc/Makefile.in} @code{LANGUAGES} macro definition in @code{gcc/Makefile.in}
or @code{gcc/Makefile}, but if you do that, you're on your own. or @code{gcc/Makefile}, but if you do that, you're on your own.
One change is almost @emph{certainly} going to cause failures: One change is almost @emph{certainly} going to cause failures:
removing @samp{c} or @samp{f77} from the definition of the removing @code{c} or @code{f77} from the definition of the
@samp{LANGUAGES} macro. @code{LANGUAGES} macro.
After configuring @code{gcc}, which configures @code{g77} and After configuring @code{gcc}, which configures @code{g77} and
@code{libg2c} automatically, you're ready to start the actual @code{libg2c} automatically, you're ready to start the actual
...@@ -1785,7 +1785,7 @@ make -k CC=gcc install ...@@ -1785,7 +1785,7 @@ make -k CC=gcc install
As described in @ref{Installation,,Installing GNU CC, As described in @ref{Installation,,Installing GNU CC,
gcc,Using and Porting GNU CC}, the values for gcc,Using and Porting GNU CC}, the values for
the @samp{CC} and @samp{LANGUAGES} macros should the @code{CC} and @code{LANGUAGES} macros should
be the same as those you supplied for the build be the same as those you supplied for the build
itself. itself.
...@@ -1805,7 +1805,7 @@ make -k @dots{} install install-libf77 ...@@ -1805,7 +1805,7 @@ make -k @dots{} install install-libf77
We don't know why some non-GNU versions of @code{make} sometimes We don't know why some non-GNU versions of @code{make} sometimes
require this alternate command, but they do. require this alternate command, but they do.
(Remember to supply the appropriate definition for @samp{CC} (Remember to supply the appropriate definition for @code{CC}
where you see @samp{@dots{}} in the above command.) where you see @samp{@dots{}} in the above command.)
Note that using the @samp{-k} option tells @code{make} to Note that using the @samp{-k} option tells @code{make} to
...@@ -1939,10 +1939,10 @@ information for the derived files to work around the ...@@ -1939,10 +1939,10 @@ information for the derived files to work around the
problem of not having the appropriate tools installed. problem of not having the appropriate tools installed.
On UNIX systems, the simplest way to update the date-time-modified On UNIX systems, the simplest way to update the date-time-modified
information of a file is to use the use the @samp{touch} information of a file is to use the use the @code{touch}
command. command.
How to use @samp{touch} to update the derived files How to use @code{touch} to update the derived files
updated by each of the tools is described below. updated by each of the tools is described below.
@emph{Note:} New versions of @code{g77} might change the set of @emph{Note:} New versions of @code{g77} might change the set of
files it generates by invoking each of these tools. files it generates by invoking each of these tools.
......
...@@ -59,8 +59,7 @@ FTNOPT( "-fpedantic", "Warn about use of (only a few for now) Fortran extensions ...@@ -59,8 +59,7 @@ FTNOPT( "-fpedantic", "Warn about use of (only a few for now) Fortran extensions
FTNOPT( "-fno-pedantic", "" ) FTNOPT( "-fno-pedantic", "" )
FTNOPT( "-fvxt", "Program is written in VXT (Digital-like) FORTRAN" ) FTNOPT( "-fvxt", "Program is written in VXT (Digital-like) FORTRAN" )
FTNOPT( "-fno-vxt", "" ) FTNOPT( "-fno-vxt", "" )
FTNOPT( "-fugly", "Obsolete; allow certain ugly features" ) FTNOPT( "-fno-ugly", "Disallow all ugly features" )
FTNOPT( "-fno-ugly", "" )
FTNOPT( "-fugly-args", "" ) FTNOPT( "-fugly-args", "" )
FTNOPT( "-fno-ugly-args", "Hollerith and typeless constants not passed as arguments" ) FTNOPT( "-fno-ugly-args", "Hollerith and typeless constants not passed as arguments" )
FTNOPT( "-fugly-assign", "Allow ordinary copying of ASSIGN'ed vars" ) FTNOPT( "-fugly-assign", "Allow ordinary copying of ASSIGN'ed vars" )
......
...@@ -235,18 +235,6 @@ ffe_decode_option (argc, argv) ...@@ -235,18 +235,6 @@ ffe_decode_option (argc, argv)
warning ("%s no longer supported -- try -fvxt", opt); warning ("%s no longer supported -- try -fvxt", opt);
else if (strcmp (&opt[2], "f90-not-vxt") == 0) else if (strcmp (&opt[2], "f90-not-vxt") == 0)
warning ("%s no longer supported -- try -fno-vxt -ff90", opt); warning ("%s no longer supported -- try -fno-vxt -ff90", opt);
else if (strcmp (&opt[2], "ugly") == 0)
{
warning ("%s is overloaded with meanings and likely to be removed;", opt);
warning ("use only the specific -fugly-* options you need");
ffe_set_is_ugly_args (TRUE);
ffe_set_is_ugly_assign (TRUE);
ffe_set_is_ugly_assumed (TRUE);
ffe_set_is_ugly_comma (TRUE);
ffe_set_is_ugly_complex (TRUE);
ffe_set_is_ugly_init (TRUE);
ffe_set_is_ugly_logint (TRUE);
}
else if (strcmp (&opt[2], "no-ugly") == 0) else if (strcmp (&opt[2], "no-ugly") == 0)
{ {
ffe_set_is_ugly_args (FALSE); ffe_set_is_ugly_args (FALSE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment