head	1.2;
access;
symbols
	perseant-exfatfs-base-20250801:1.2
	perseant-exfatfs-base-20240630:1.2
	cjep_sun2x:1.2.0.44
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.42
	cjep_staticlib_x-base:1.2
	phil-wifi-20200421:1.2
	phil-wifi-20200411:1.2
	phil-wifi-20200406:1.2
	pgoyette-compat-merge-20190127:1.2
	pgoyette-compat-20190127:1.2
	pgoyette-compat-20190118:1.2
	pgoyette-compat-1226:1.2
	pgoyette-compat-1126:1.2
	pgoyette-compat-1020:1.2
	pgoyette-compat-0930:1.2
	pgoyette-compat-0906:1.2
	pgoyette-compat-0728:1.2
	pgoyette-compat-0625:1.2
	pgoyette-compat-0521:1.2
	pgoyette-compat-0502:1.2
	pgoyette-compat-0422:1.2
	pgoyette-compat-0415:1.2
	pgoyette-compat-0407:1.2
	pgoyette-compat-0330:1.2
	pgoyette-compat-0322:1.2
	pgoyette-compat-0315:1.2
	pgoyette-compat:1.2.0.40
	pgoyette-compat-base:1.2
	perseant-stdc-iso10646:1.2.0.38
	perseant-stdc-iso10646-base:1.2
	prg-localcount2-base3:1.2
	prg-localcount2-base2:1.2
	prg-localcount2-base1:1.2
	prg-localcount2:1.2.0.36
	prg-localcount2-base:1.2
	pgoyette-localcount-20170426:1.2
	bouyer-socketcan-base1:1.2
	pgoyette-localcount-20170320:1.2
	bouyer-socketcan:1.2.0.34
	bouyer-socketcan-base:1.2
	pgoyette-localcount-20170107:1.2
	pgoyette-localcount-20161104:1.2
	localcount-20160914:1.2
	pgoyette-localcount-20160806:1.2
	pgoyette-localcount-20160726:1.2
	pgoyette-localcount:1.2.0.32
	pgoyette-localcount-base:1.2
	netbsd-5-2-3-RELEASE:1.2
	netbsd-5-1-5-RELEASE:1.2
	yamt-pagecache-base9:1.2
	yamt-pagecache-tag8:1.2
	tls-earlyentropy:1.2.0.28
	tls-earlyentropy-base:1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2
	riastradh-drm2-base3:1.2
	netbsd-5-2-2-RELEASE:1.2
	netbsd-5-1-4-RELEASE:1.2
	netbsd-5-2-1-RELEASE:1.2
	netbsd-5-1-3-RELEASE:1.2
	agc-symver:1.2.0.30
	agc-symver-base:1.2
	tls-maxphys-base:1.2
	yamt-pagecache-base8:1.2
	netbsd-5-2:1.2.0.26
	yamt-pagecache-base7:1.2
	netbsd-5-2-RELEASE:1.2
	netbsd-5-2-RC1:1.2
	yamt-pagecache-base6:1.2
	yamt-pagecache-base5:1.2
	yamt-pagecache-base4:1.2
	netbsd-5-1-2-RELEASE:1.2
	netbsd-5-1-1-RELEASE:1.2
	yamt-pagecache-base3:1.2
	yamt-pagecache-base2:1.2
	yamt-pagecache:1.2.0.24
	yamt-pagecache-base:1.2
	bouyer-quota2-nbase:1.2
	bouyer-quota2:1.2.0.22
	bouyer-quota2-base:1.2
	matt-nb5-pq3:1.2.0.20
	matt-nb5-pq3-base:1.2
	netbsd-5-1:1.2.0.18
	netbsd-5-1-RELEASE:1.2
	netbsd-5-1-RC4:1.2
	netbsd-5-1-RC3:1.2
	netbsd-5-1-RC2:1.2
	netbsd-5-1-RC1:1.2
	netbsd-5-0-2-RELEASE:1.2
	netbsd-5-0-1-RELEASE:1.2
	jym-xensuspend-nbase:1.2
	netbsd-5-0:1.2.0.16
	netbsd-5-0-RELEASE:1.2
	netbsd-5-0-RC4:1.2
	netbsd-5-0-RC3:1.2
	netbsd-5-0-RC2:1.2
	jym-xensuspend:1.2.0.14
	jym-xensuspend-base:1.2
	netbsd-5-0-RC1:1.2
	netbsd-5:1.2.0.12
	netbsd-5-base:1.2
	mjf-devfs2:1.2.0.10
	mjf-devfs2-base:1.2
	yamt-pf42-base4:1.2
	yamt-pf42-base3:1.2
	hpcarm-cleanup-nbase:1.2
	yamt-pf42-base2:1.2
	yamt-pf42:1.2.0.8
	yamt-pf42-base:1.2
	keiichi-mipv6:1.2.0.6
	keiichi-mipv6-base:1.2
	cube-autoconf:1.2.0.4
	cube-autoconf-base:1.2
	hpcarm-cleanup:1.2.0.2
	hpcarm-cleanup-base:1.2
	netbsd-1-6-PATCH002-RELEASE:1.1.1.4
	netbsd-1-6-PATCH002:1.1.1.4
	netbsd-1-6-PATCH002-RC4:1.1.1.4
	netbsd-1-6-PATCH002-RC3:1.1.1.4
	netbsd-1-6-PATCH002-RC2:1.1.1.4
	netbsd-1-6-PATCH002-RC1:1.1.1.4
	netbsd-1-6-PATCH001:1.1.1.4
	netbsd-1-6-PATCH001-RELEASE:1.1.1.4
	netbsd-1-6-PATCH001-RC3:1.1.1.4
	netbsd-1-6-PATCH001-RC2:1.1.1.4
	netbsd-1-6-PATCH001-RC1:1.1.1.4
	netbsd-1-6-RELEASE:1.1.1.4
	netbsd-1-6-RC3:1.1.1.4
	netbsd-1-6-RC2:1.1.1.4
	netbsd-1-6-RC1:1.1.1.4
	netbsd-1-6:1.1.1.4.0.8
	netbsd-1-6-base:1.1.1.4
	netbsd-1-5-PATCH003:1.1.1.4
	netbsd-1-5-PATCH002:1.1.1.4
	netbsd-1-5-PATCH001:1.1.1.4
	netbsd-1-5-RELEASE:1.1.1.4
	netbsd-1-5-BETA2:1.1.1.4
	netbsd-1-5-BETA:1.1.1.4
	netbsd-1-4-PATCH003:1.1.1.3
	netbsd-1-5-ALPHA2:1.1.1.4
	netbsd-1-5:1.1.1.4.0.6
	netbsd-1-5-base:1.1.1.4
	netbsd-1-4-PATCH002:1.1.1.3
	wrstuden-devbsize-19991221:1.1.1.4
	wrstuden-devbsize:1.1.1.4.0.4
	wrstuden-devbsize-base:1.1.1.4
	comdex-fall-1999:1.1.1.4.0.2
	comdex-fall-1999-base:1.1.1.4
	netbsd-1-4-PATCH001:1.1.1.3
	netbsd-1-4-RELEASE:1.1.1.3
	egcs-1-1-2:1.1.1.4
	netbsd-1-4:1.1.1.3.0.2
	netbsd-1-4-base:1.1.1.3
	egcs-1-1-1:1.1.1.3
	egcs-1-1-1-prerelease-2:1.1.1.3
	egcs-1-1-19981014:1.1.1.3
	egcs-1-1b:1.1.1.2
	egcs-1-1-19980824:1.1.1.2
	egcs-1-1-19980816:1.1.1.2
	egcs-1-0-2:1.1.1.1
	CYGNUS:1.1.1;
locks; strict;
comment	@# @;


1.2
date	2002.09.16.17.01.56;	author thorpej;	state dead;
branches;
next	1.1;

1.1
date	98.03.29.08.14.54;	author mrg;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	98.03.29.08.14.54;	author mrg;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	98.08.16.17.39.25;	author tv;	state Exp;
branches;
next	1.1.1.3;

1.1.1.3
date	98.10.14.14.31.08;	author tv;	state Exp;
branches;
next	1.1.1.4;

1.1.1.4
date	99.04.06.15.09.16;	author tv;	state Exp;
branches;
next	;


desc
@@


1.2
log
@Remove the old egcs compiler.
@
text
@@@c Copyright (C) 1995-1997 Free Software Foundation, Inc.
@@c This is part of the G77 manual.
@@c For copying conditions, see the file g77.texi.

@@c The text of this file appears in the file BUGS
@@c in the G77 distribution, as well as in the G77 manual.

@@c 1996-09-09

@@ifclear BUGSONLY
@@node Actual Bugs
@@section Actual Bugs We Haven't Fixed Yet
@@end ifclear

This section identifies bugs that @@code{g77} @@emph{users}
might run into.
This includes bugs that are actually in the @@code{gcc}
back end (GBE) or in @@code{libf2c}, because those
sets of code are at least somewhat under the control
of (and necessarily intertwined with) @@code{g77}, so it
isn't worth separating them out.

For information on bugs that might afflict people who
configure, port, build, and install @@code{g77},
@@ref{Problems Installing}.

@@itemize @@bullet
@@cindex Alpha
@@cindex -O2
@@item
@@code{g77}'s version of @@code{gcc}, and probably @@code{g77}
itself, cannot be reliably used with the @@samp{-O2} option
(or higher) on Digital Semiconductor Alpha AXP machines.
The problem is most immediately noticed in differences
discovered by @@kbd{make compare} following a bootstrap
build using @@samp{-O2}.
It also manifests itself as a failure to compile
@@samp{DATA} statements such as @@samp{DATA R/7./} correctly;
in this case, @@samp{R} might be initialized to @@samp{4.0}.

Until this bug is fixed, use only @@samp{-O1} or no optimization.

@@cindex DNRM2
@@cindex stack, 387 coprocessor
@@cindex ix86
@@cindex -O2
@@item
A code-generation bug afflicts
Intel x86 targets when @@samp{-O2} is specified
compiling, for example, an old version of
the @@samp{DNRM2} routine.
The x87 coprocessor stack is being somewhat
mismanaged in cases where assigned @@code{GOTO}
and @@code{ASSIGN} are involved.

Version 0.5.21 of @@code{g77} contains an initial
effort to fix the problem, but this effort is
incomplete, and a more complete fix is planned
for the next release.

@@cindex SIGNAL() intrinsic
@@cindex intrinsics, SIGNAL()
@@item
Work is needed on the @@code{SIGNAL()} intrinsic to ensure
that pointers and integers are properly handled on all
targets, including 64-bit machines.

@@cindex -fugly-comma option
@@cindex options, -fugly-comma
@@item
When using @@samp{-fugly-comma}, @@code{g77} assumes an extra
@@samp{%VAL(0)} argument is to be passed to intrinsics
taking no arguments, such as @@code{IARGC()}, which in
turn reject such a call.
Although this has been worked around for 0.5.18 due
to changes in the handling of intrinsics,
@@code{g77} needs to do the ugly-argument-appending trick
only for external-function invocation, as this would
probably be more consistent with compilers that default
to using that trick.

@@item
Something about @@code{g77}'s straightforward handling of
label references and definitions sometimes prevents the GBE
from unrolling loops.
Until this is solved, try inserting or removing @@code{CONTINUE}
statements as the terminal statement, using the @@code{END DO}
form instead, and so on.
(Probably improved, but not wholly fixed, in 0.5.21.)

@@item
The @@code{g77} command itself should more faithfully process
options the way the @@code{gcc} command does.
For example, @@code{gcc} accepts abbreviated forms of long options,
@@code{g77} generally doesn't.

@@item
Some confusion in diagnostics concerning failing @@code{INCLUDE}
statements from within @@code{INCLUDE}'d or @@code{#include}'d files.

@@cindex integer constants
@@cindex constants, integer
@@item
@@code{g77} assumes that @@code{INTEGER(KIND=1)} constants range
from @@samp{-2**31} to @@samp{2**31-1} (the range for
two's-complement 32-bit values),
instead of determining their range from the actual range of the
type for the configuration (and, someday, for the constant).

Further, it generally doesn't implement the handling
of constants very well in that it makes assumptions about the
configuration that it no longer makes regarding variables (types).

Included with this item is the fact that @@code{g77} doesn't recognize
that, on IEEE-754/854-compliant systems, @@samp{0./0.} should produce a NaN
and no warning instead of the value @@samp{0.} and a warning.
This is to be fixed in version 0.6, when @@code{g77} will use the
@@code{gcc} back end's constant-handling mechanisms to replace its own.

@@cindex compiler speed
@@cindex speed, of compiler
@@cindex compiler memory usage
@@cindex memory usage, of compiler
@@cindex large aggregate areas
@@cindex initialization
@@cindex DATA statement
@@cindex statements, DATA
@@item
@@code{g77} uses way too much memory and CPU time to process large aggregate
areas having any initialized elements.

For example, @@samp{REAL A(1000000)} followed by @@samp{DATA A(1)/1/}
takes up way too much time and space, including
the size of the generated assembler file.
This is to be mitigated somewhat in version 0.6.

Version 0.5.18 improves cases like this---specifically,
cases of @@emph{sparse} initialization that leave large, contiguous
areas uninitialized---significantly.
However, even with the improvements, these cases still
require too much memory and CPU time.

(Version 0.5.18 also improves cases where the initial values are
zero to a much greater degree, so if the above example
ends with @@samp{DATA A(1)/0/}, the compile-time performance
will be about as good as it will ever get, aside from unrelated
improvements to the compiler.)

Note that @@code{g77} does display a warning message to
notify the user before the compiler appears to hang.
@@xref{Large Initialization,,Initialization of Large Aggregate Areas},
for information on how to change the point at which
@@code{g77} decides to issue this warning.

@@cindex debugging
@@cindex common blocks
@@cindex equivalence areas
@@cindex local equivalence areas
@@item
@@code{g77} doesn't emit variable and array members of common blocks for use
with a debugger (the @@samp{-g} command-line option).
The code is present to do this, but doesn't work with at least
one debug format---perhaps it works with others.
And it turns out there's a similar bug for
local equivalence areas, so that has been disabled as well.

As of Version 0.5.19, a temporary kludge solution is provided whereby
some rudimentary information on a member is written as a string that
is the member's value as a character string.

@@xref{Code Gen Options,,Options for Code Generation Conventions},
for information on the @@samp{-fdebug-kludge} option.

@@cindex code, displaying main source
@@cindex displaying main source code
@@cindex debugging main source code
@@cindex printing main source
@@item
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
set a breakpoint at @@samp{MAIN__} (or @@samp{MAIN___} or @@samp{MAIN_} if
@@samp{MAIN__} doesn't exist)
and run the program until it hits the breakpoint.
At that point, the
main program unit is activated and about to execute its first
executable statement, but that's the state in which the debugger should
start up, as is the case for languages like C.

@@cindex debugger
@@item
Debugging @@code{g77}-compiled code using debuggers other than
@@code{gdb} is likely not to work.

Getting @@code{g77} and @@code{gdb} to work together is a known
problem---getting @@code{g77} to work properly with other
debuggers, for which source code often is unavailable to @@code{g77}
developers, seems like a much larger, unknown problem,
and is a lower priority than making @@code{g77} and @@code{gdb}
work together properly.

On the other hand, information about problems other debuggers
have with @@code{g77} output might make it easier to properly
fix @@code{g77}, and perhaps even improve @@code{gdb}, so it
is definitely welcome.
Such information might even lead to all relevant products
working together properly sooner.

@@cindex padding
@@cindex structures
@@cindex common blocks
@@cindex equivalence areas
@@item
@@code{g77} currently inserts needless padding for things like
@@samp{COMMON A,IPAD} where @@samp{A} is @@code{CHARACTER*1} and @@samp{IPAD}
is @@code{INTEGER(KIND=1)} on machines like x86, because
the back end insists that @@samp{IPAD} be aligned to a 4-byte boundary, but
the processor has no such requirement (though it's good for
performance).

It is possible that this is not a real bug, and could be considered
a performance feature, but it might be important to provide
the ability to Fortran code to specify minimum padding for
aggregate areas such as common blocks---and, certainly, there
is the potential, with the current setup, for interface differences
in the way such areas are laid out between @@code{g77} and other
compilers.

@@item
Some crashes occur when compiling under Solaris on x86
machines.

Nothing has been heard about any such problems for some time,
so this is considering a closed item as of 0.5.20.
Please submit any bug reports pertinent to @@code{g77}'s support
for Solaris/x86 systems.

@@cindex RS/6000 support
@@cindex support, RS/6000
@@item
RS/6000 support is not complete as of the gcc 2.6.3 back end.
The 2.7.0 back end appears to fix this problem, or at least mitigate
it significantly, but there is at least one known problem that is
likely to be a code-generation bug in @@file{gcc-2.7.0} plus
@@file{g77-0.5.16}.
This problem shows up only when compiling the Fortran program with @@samp{-O}.

Nothing has been heard about any RS/6000 problems for some time,
so this is considering a closed item as of 0.5.20.
Please submit any bug reports pertinent to @@code{g77}'s support
for RS/6000 systems.

@@cindex SGI support
@@cindex support, SGI
@@item
SGI support is known to be a bit buggy.
The known problem shows up only when compiling the Fortran program with
@@samp{-O}.

It is possible these problems have all been fixed in 0.5.20 by
emulating complex arithmetic in the front end.
Please submit any bug reports pertinent to @@code{g77}'s support
for SGI systems.

@@cindex Alpha, support
@@cindex support, Alpha
@@item
@@code{g77} doesn't work perfectly on 64-bit configurations such as the Alpha.
This problem is expected to be largely resolved as of version 0.5.20,
and further addressed by 0.5.21.
Version 0.6 should solve most or all related problems (such as
64-bit machines other than Digital Semiconductor (``DEC'') Alphas).

One known bug that causes a compile-time crash occurs when compiling
code such as the following with optimization:

@@example
SUBROUTINE CRASH (TEMP)
INTEGER*2 HALF(2)
REAL TEMP
HALF(1) = NINT (TEMP)
END
@@end example

It is expected that a future version of @@code{g77} will have a fix for this
problem, almost certainly by the time @@code{g77} supports the forthcoming
version 2.8.0 of @@code{gcc}.

@@cindex COMPLEX support
@@cindex support, COMPLEX
@@item
Maintainers of gcc report that the back end definitely has ``broken''
support for @@code{COMPLEX} types.
Based on their input, it seems many of
the problems affect only the more-general facilities for gcc's
@@code{__complex__} type, such as @@code{__complex__ int}
(where the real and imaginary parts are integers) that GNU
Fortran does not use.

Version 0.5.20 of @@code{g77} works around this
problem by not using the back end's support for @@code{COMPLEX}.
The new option @@samp{-fno-emulate-complex} avoids the work-around,
reverting to using the same ``broken'' mechanism as that used
by versions of @@code{g77} prior to 0.5.20.

@@cindex ELF support
@@cindex support, ELF
@@cindex -fPIC option
@@cindex options, -fPIC
@@item
There seem to be some problems with passing constants, and perhaps
general expressions (other than simple variables/arrays), to procedures
when compiling on some systems (such as i386) with @@samp{-fPIC}, as in
when compiling for ELF targets.
The symptom is that the assembler complains about invalid opcodes.
More investigation is needed, but the problem is almost certainly
in the gcc back end, and it apparently occurs only when
compiling sufficiently complicated functions @@emph{without} the
@@samp{-O} option.
@@end itemize

@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@initial import of the egcs 1.0.2 compiler
@
text
@@


1.1.1.2
log
@Import egcs-1.1 gcc, 19980816 snapshot
@
text
@d1 1
a1 1
@@c Copyright (C) 1995-1998 Free Software Foundation, Inc.
d8 1
a8 1
@@c 1998-07-15
d28 2
d31 9
a39 28
@@code{g77} sometimes crashes when compiling code
containing the construct @@samp{CMPLX(0.)} or similar.
This is a @@code{gcc} back-end bug.
It can be worked around using @@samp{-fno-emulate-complex},
though that might trigger other, older bugs.
Compiling without optimization is another work-around.

Fixed in @@code{egcs} 1.1.

@@item
@@c Tim Prince discovered this.
Automatic arrays aren't working on HP-UX systems,
at least in HP-UX version 10.20.
Writing into them apparently causes over-writing
of statically declared data in the main program.
This probably means the arrays themselves are being under-allocated,
or pointers to them being improperly handled,
e.g. not passed to other procedures as they should be.

@@item
@@c Toon Moene discovered these.
Some Fortran code has been found to be miscompiled
by @@code{g77} built on @@code{gcc} version 2.8.1
on m68k-next-nextstep3 configurations
when using the @@samp{-O2} option.
Even a C function is known to miscompile
on that configuration
when using the @@samp{-O2 -funroll-loops} options.
d41 1
a41 1
Fixed in @@code{egcs}.
d52 1
a52 1
The x87 coprocessor stack is being
d56 25
a80 9
Fixed in @@code{egcs} version 1.1.

@@item
A compiler crash, or apparently infinite run time,
can result when compiling complicated expressions
involving @@code{COMPLEX} arithmetic
(especially multiplication).

Fixed in @@code{egcs} version 1.1.
d89 7
d208 56
d267 20
a286 6
@@code{g77} doesn't work perfectly on 64-bit configurations
such as the Digital Semiconductor (``DEC'') Alpha.

This problem is largely resolved as of version 0.5.23.
Version 0.6 should solve most or all remaining problems
(such as cross-compiling involving 64-bit machines).
d315 2
a316 2
This bug is in the gcc back end,
and it apparently occurs only when
d319 1
a320 74
Fixed in @@code{egcs} version 1.1.

@@cindex padding
@@cindex structures
@@cindex common blocks
@@cindex equivalence areas
@@item
@@code{g77} currently inserts needless padding for things like
@@samp{COMMON A,IPAD} where @@samp{A} is @@code{CHARACTER*1} and @@samp{IPAD}
is @@code{INTEGER(KIND=1)} on machines like x86,
because the back end insists that @@samp{IPAD}
be aligned to a 4-byte boundary,
but the processor has no such requirement
(though it is usually good for performance).

The @@code{gcc} back end needs to provide a wider array
of specifications of alignment requirements and preferences for targets,
and front ends like @@code{g77} should take advantage of this
when it becomes available.

@@cindex alignment
@@cindex double-precision performance
@@cindex -malign-double
@@item
The x86 target's @@samp{-malign-double} option
no longer reliably aligns double-precision variables and arrays
when they are placed in the stack frame.

This can significantly reduce the performance of some applications,
even on a run-to-run basis
(that is, performance measurements can vary fairly widely
depending on whether frequently used variables are properly aligned,
and that can change from one program run to the next,
even from one procedure call to the next).

Versions 0.5.22 and earlier of @@code{g77}
included a patch to @@code{gcc} that enabled this,
but that patch has been deemed an improper (probably buggy) one
for version 2.8 of @@code{gcc} and for @@code{egcs}.

Note that version 1.1 of @@code{egcs}
aligns double-precision variables and arrays
when they are in static storage
even if @@samp{-malign-double} is not specified.

There is ongoing investigation into
how to make @@samp{-malign-double} work properly,
also into how to make it unnecessary to get
all double-precision variables and arrays aligned
when such alignment would not violate
the relevant specifications for processor
and inter-procedural interfaces.

For a suite of programs to test double-precision alignment,
see @@uref{ftp://alpha.gnu.org/gnu/g77/align/}.

@@cindex complex performance
@@cindex aliasing
@@item
The @@code{libf2c} routines that perform some run-time
arithmetic on @@code{COMPLEX} operands
were modified circa version 0.5.20 of @@code{g77}
to work properly even in the presence of aliased operands.

While the @@code{g77} and @@code{netlib} versions of @@code{libf2c}
differ on how this is accomplished,
the main differences are that we believe
the @@code{g77} version works properly
even in the presence of @@emph{partially} aliased operands.

However, these modifications have reduced performance
on targets such as x86,
due to the extra copies of operands involved.
@@end itemize
@


1.1.1.3
log
@Import egcs 1.1 (branch), 14 Oct 1998 sources.
@
text
@d8 1
a8 1
@@c 1998-09-01
a75 7
@@code{g77} fails to warn about
use of a ``live'' iterative-DO variable
as an implied-DO variable
in a @@samp{WRITE} or @@samp{PRINT} statement
(although it does warn about this in a @@samp{READ} statement).

@@item
d234 4
a237 3
@@code{g77} sometimes produces invalid assembler code
when using the @@samp{-fPIC} option (such as compiling for ELF targets)
on the Intel x86 architecture target.
d239 4
a242 1
This bug is in the gcc back end.
d244 1
a244 1
Fixed in @@code{egcs} version 1.0.2.
@


1.1.1.4
log
@Import egcs 1.1.2 to fix some optimizer bugs on i386 and sparc, among others.
@
text
@d8 1
a8 5
@@c 1999-03-13

@@ifset BUGSONLY
@@set which-g77 @@code{egcs}-1.1.2
@@end ifset
d16 1
a16 2
might run into in the @@value{which-g77} version
of @@code{g77}.
d20 2
a21 18
of (and necessarily intertwined with) @@code{g77},
so it isn't worth separating them out.

@@ifset last-up-date
For information on bugs in @@emph{other} versions of @@code{g77},
@@ref{News,,News About GNU Fortran}.
@@end ifset

@@ifset BUGSONLY
For information on bugs in @@emph{other} versions of @@code{g77},
see @@file{egcs/gcc/f/NEWS}.
@@end ifset

An online, ``live'' version of this document
(derived directly from the up-to-date mainline version
of @@code{g77} within @@code{egcs})
is available at
@@uref{http://egcs.cygnus.com/onlinedocs/g77_bugs.html}.
a22 1
@@ifset last-up-date
a25 7
@@end ifset

@@ifset BUGSONLY
For information on bugs that might afflict people who
configure, port, build, and install @@code{g77},
see ``Problems Installing'' in @@file{egcs/gcc/f/INSTALL}.
@@end ifset
d29 6
a34 29
@@code{g77} generates bad code for assignments,
or other conversions,
of @@code{REAL} or @@code{COMPLEX} constant expressions
to type @@code{INTEGER(KIND=2)}
(often referred to as @@code{INTEGER*8}).

For example, @@samp{INTEGER*8 J; J = 4E10} is miscompiled
on some systems---the wrong value is stored in @@var{J}.

@@item
The @@code{IDate} Intrinsic (VXT)
fails to return the year in the documented, non-Y2K-compliant range
of 0--99,
instead returning 100 for the year 2000.

@@c Fixed in @@code{egcs} 1.2.

@@item
Year 2000 (Y2K) compliance information
is missing from the documentation.

@@c Fixed in @@code{egcs} 1.2.

@@item
@@code{g77} crashes when compiling
I/O statements using keywords that define @@code{INTEGER} values,
such as @@samp{IOSTAT=@@var{j}},
where @@var{j} is other than default @@code{INTEGER}
(such as @@code{INTEGER*2}).
d36 1
a36 14
@@c Fixed in @@code{egcs} 1.2.

@@item
The @@samp{-ax} option is not obeyed when compiling Fortran programs.
(It is not passed to the @@file{f771} driver.)

@@c Fixed in @@code{egcs} 1.2.

@@item
@@code{g77} fails to warn about a reference to a function
when the corresponding @@emph{subsequent} function program unit
disagrees with the reference concerning the type of the function.

@@c Fixed in @@code{egcs} 1.2.
d40 1
a40 1
Automatic arrays possibly aren't working on HP-UX systems,
d49 27
d83 8
a151 1
@@ifset last-up-date
a154 1
@@end ifset
a171 1
@@ifset last-up-date
a173 1
@@end ifset
d235 13
@

