?rev1line? |
?rev2line? |
|
This file contains information about GCC releases which has been generated
|
|
automatically from the online release notes. It covers releases of GCC
|
|
(and the former EGCS project) since EGCS 1.0, on the line of development
|
|
that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2,
|
|
see ONEWS.
|
|
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-4.2/index.html
|
|
|
|
GCC 4.2 Release Series
|
|
|
|
October 7, 2007
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 4.2.2.
|
|
|
|
This release is a bug-fix release, containing fixes for regressions in GCC
|
|
4.2.1 relative to previous releases of GCC.
|
|
|
|
Release History
|
|
|
|
GCC 4.2.2
|
|
October 7, 2007 ([2]changes)
|
|
|
|
GCC 4.2.1
|
|
July 18, 2007 ([3]changes)
|
|
|
|
GCC 4.2.0
|
|
May 13, 2007 ([4]changes)
|
|
|
|
References and Acknowledgements
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
A list of [5]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, improvements, bug fixes, and other changes as well
|
|
as test results to GCC. This [6]amazing group of volunteers is what makes
|
|
GCC successful.
|
|
|
|
For additional information about GCC please refer to the [7]GCC project web
|
|
site or contact the [8]GCC development mailing list.
|
|
|
|
To obtain GCC please use [9]our mirror sites, one of the [10]GNU mirror
|
|
sites, or [11]our SVN server.
|
|
|
|
Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There are
|
|
also [13]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [14]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [15]GCC manuals. If that fails, the [16]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. All of
|
|
our lists have [19]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-10-07 [20]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://gcc.gnu.org/gcc-4.2/changes.html
|
|
3. http://gcc.gnu.org/gcc-4.2/changes.html
|
|
4. http://gcc.gnu.org/gcc-4.2/changes.html
|
|
5. http://gcc.gnu.org/gcc-4.2/buildstat.html
|
|
6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
7. http://gcc.gnu.org/index.html
|
|
8. mailto:gcc@gcc.gnu.org
|
|
9. http://gcc.gnu.org/mirrors.html
|
|
10. http://www.gnu.org/order/ftp.html
|
|
11. http://gcc.gnu.org/svn.html
|
|
12. mailto:gnu@gnu.org
|
|
13. http://www.gnu.org/home.html#ContactInfo
|
|
14. http://gcc.gnu.org/about.html
|
|
15. http://gcc.gnu.org/onlinedocs/
|
|
16. mailto:gcc-help@gcc.gnu.org
|
|
17. mailto:gcc@gnu.org
|
|
18. mailto:gcc@gcc.gnu.org
|
|
19. http://gcc.gnu.org/lists.html
|
|
20. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-4.2/changes.html
|
|
|
|
GCC 4.2 Release Series
|
|
Changes, New Features, and Fixes
|
|
|
|
Caveats
|
|
|
|
* GCC no longer accepts the -fshared-data option. This option has had no
|
|
effect in any GCC 4 release; the targets to which the option used to
|
|
apply had been removed before GCC 4.0.
|
|
|
|
General Optimizer Improvements
|
|
|
|
* New command-line options specify the possible relationships among
|
|
parameters and between parameters and global data. For example,
|
|
-fargument-noalias-anything specifies that arguments do not alias any
|
|
other storage.
|
|
Each language will automatically use whatever option is required by the
|
|
language standard. You should not need to use these options yourself.
|
|
|
|
New Languages and Language specific improvements
|
|
|
|
* [1]OpenMP is now supported for the C, C++ and Fortran compilers.
|
|
* New command-line options -fstrict-overflow and -Wstrict-overflow have
|
|
been added. -fstrict-overflow tells the compiler that it may assume that
|
|
the program follows the strict signed overflow semantics permitted for
|
|
the language: for C and C++ this means that the compiler may assume that
|
|
signed overflow does not occur. For example, a loop like
|
|
for (i = 1; i > 0; i *= 2)
|
|
|
|
is presumably intended to continue looping until i overflows. With
|
|
-fstrict-overflow, the compiler may assume that signed overflow will not
|
|
occur, and transform this into an infinite loop. -fstrict-overflow is
|
|
turned on by default at -O2, and may be disabled via
|
|
-fno-strict-overflow. The -Wstrict-overflow option may be used to warn
|
|
about cases where the compiler assumes that signed overflow will not
|
|
occur. It takes five different levels: -Wstrict-overflow=1 to 5. See the
|
|
[2]documentation for details. -Wstrict-overflow=1 is enabled by -Wall.
|
|
* The new command-line option -fno-toplevel-reorder directs GCC to emit
|
|
top-level functions, variables, and asm statements in the same order
|
|
that they appear in the input file. This is intended to support existing
|
|
code which relies on a particular ordering (for example, code which uses
|
|
top-level asm statements to switch sections). For new code, it is
|
|
generally better to use function and variable attributes. The
|
|
-fno-toplevel-reorder option may be used for most cases which currently
|
|
use -fno-unit-at-a-time. The -fno-unit-at-a-time option will be removed
|
|
in some future version of GCC. If you know of a case which requires
|
|
-fno-unit-at-a-time which is not fixed by -fno-toplevel-reorder, please
|
|
[3]open a bug report.
|
|
|
|
C family
|
|
|
|
* The pragma redefine_extname will now macro expand its tokens for
|
|
compatibility with SunPRO.
|
|
* In the next release of GCC, 4.3, -std=c99 or -std=gnu99 will direct GCC
|
|
to handle inline functions as specified in the C99 standard. In
|
|
preparation for this, GCC 4.2 will warn about any use of non-static
|
|
inline functions in gnu99 or c99 mode. This new warning may be disabled
|
|
with the new gnu_inline function attribute or the new -fgnu89-inline
|
|
command-line option. Also, GCC 4.2 and later will define one of the
|
|
preprocessor macros __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__ to
|
|
indicate the semantics of inline functions in the current compilation.
|
|
* A new command-line option -Waddress has been added to warn about
|
|
suspicious uses of memory addresses as, for example, using the address
|
|
of a function in a conditional expression, and comparisons against the
|
|
memory address of a string literal. This warning is enabled by -Wall.
|
|
|
|
C++
|
|
|
|
* C++ visibility handling has been overhauled.
|
|
Restricted visiblity is propagated from classes to members, from
|
|
functions to local statics, and from templates and template arguments to
|
|
instantiations, unless the latter has explicitly declared visibility.
|
|
The visibility attribute for a class must come between the class-key and
|
|
the name, not after the closing brace.
|
|
Attributes are now allowed for enums and elaborated-type-specifiers that
|
|
only declare a type.
|
|
Members of the anonymous namespace are now local to a particular
|
|
translation unit, along with any other declarations which use them,
|
|
though they are still treated as having external linkage for language
|
|
semantics.
|
|
* The (undocumented) extension which permitted templates with default
|
|
arguments to be bound to template template parameters with fewer
|
|
parameters has been removed. For example:
|
|
template class C>
|
|
void f(C) {}
|
|
|
|
template
|
|
struct S {};
|
|
|
|
template void f(S);
|
|
|
|
is no longer accepted by G++. The reason this code is not accepted is
|
|
that S is a template with two parameters; therefore, it cannot be bound
|
|
to C which has only one parameter.
|
|
* The , >?, =, and >?= operators, deprecated in previous GCC releases,
|
|
have been removed.
|
|
* The command-line option -fconst-strings, deprecated in previous GCC
|
|
releases, has been removed.
|
|
* The configure variable enable-__cxa_atexit is now enabled by default for
|
|
more targets. Enabling this variable is necessary in order for static
|
|
destructors to be executed in the correct order, but it depends upon the
|
|
presence of a non-standard C library in the target library in order to
|
|
work. The variable is now enabled for more targets which are known to
|
|
have suitable C libraries.
|
|
* -Wextra will produce warnings for if statements with a semicolon as the
|
|
only body, to catch code like:
|
|
if (a);
|
|
return 1;
|
|
return 0;
|
|
|
|
To suppress the warning in valid cases, use { } instead.
|
|
* The C++ frontend now also produces strict aliasing warnings when
|
|
-fstrict-aliasing -Wstrict-aliasing is in effect.
|
|
|
|
Runtime Library (libstdc++)
|
|
|
|
* Added support for TR1 , , and C compatibility headers.
|
|
In addition, a lock-free version of shared_ptr was contributed as part
|
|
of Phillip Jordan's Google Summer of Code project on lock-free
|
|
containers. The implementation status for TR1 can be tracked in
|
|
[4]tr1.html
|
|
* In association with the Summer of Code work on lock-free containers, the
|
|
interface for atomic builtins was adjusted, creating simpler
|
|
alternatives for non-threaded code paths. Also, usage was consolidated
|
|
and all elements were moved from namespace std to namespace__gnu_cxx.
|
|
Affected interfaces are the functions __exchange_and_add, __atomic_add,
|
|
and the objects __mutex, __recursive_mutex, and __scoped_lock.
|
|
* Support for versioning weak symbol names via namespace association was
|
|
added. However, as this changes the names of exported symbols, this is
|
|
turned off by default in the current ABI. Intrepid users can enable this
|
|
feature by using --enable-symvers=gnu-versioned-namespace during
|
|
configuration.
|
|
* Revised, simplified, and expanded policy-based associative containers,
|
|
including data types for tree and trie forms (basic_tree, tree, trie),
|
|
lists (list_update), and both collision-chaining and probing hash-based
|
|
containers (basic_hash_table, cc_hash_table, gp_hash_table). More
|
|
details per the [5]documentation.
|
|
* The implementation of the debug mode was modified, whereby the debug
|
|
namespaces were nested inside of namespace std and namespace __gnu_cxx
|
|
in order to resolve some long standing corner cases involving name
|
|
lookup. Debug functionality from the policy-based data structures was
|
|
consolidated and enabled with the single macro, _GLIBCXX_DEBUG. See PR
|
|
26142 for more information.
|
|
* Added extensions for type traits: __conditional_type, __numeric_traits,
|
|
__add_unsigned, __removed_unsigned, __enable_if.
|
|
* Added a typelist implementation for compile-time meta-programming.
|
|
Elements for typelist construction and operation can be found within
|
|
namespace __gnu_cxx::typelist.
|
|
* Added a new allocator, __gnu_cxx::throw_allocator, for testing
|
|
exception-safety.
|
|
* Enabled library-wide visibility control, allowing -fvisibility to be
|
|
used.
|
|
* Consolidated all nested namespaces and the conversion of __gnu_internal
|
|
implementation-private details to anonymous namespaces whenever
|
|
possible.
|
|
* Implemented LWG resolutions DR 431 and DR 538.
|
|
|
|
Fortran
|
|
|
|
* Support for allocatable components has been added (TR 15581 and Fortran
|
|
2003).
|
|
* Support for the Fortran 2003 streaming IO extension has been added.
|
|
* The GNU Fortran compiler now uses 4-byte record markers by default for
|
|
unformatted files to be compatible with g77 and most other compilers.
|
|
The implementation allows for records greater than 2 GB and is
|
|
compatible with several other compilers. Older versions of gfortran used
|
|
8-byte record markers by default (on most systems). In order to change
|
|
the length of the record markers, e.g. to read unformatted files created
|
|
by older gfortran versions, the [6]-frecord-marker=8 option can be used.
|
|
|
|
Java (GCJ)
|
|
|
|
* A new command-line option -static-libgcj has been added for targets that
|
|
use a linker compatible with GNU Binutils. As its name implies, this
|
|
causes libgcj to be linked statically. In some cases this causes the
|
|
resulting executable to start faster and use less memory than if the
|
|
shared version of libgcj were used. However caution should be used as it
|
|
can also cause essential parts of the library to be omitted. Some of
|
|
these issues are discussed in:
|
|
[7]http://gcc.gnu.org/wiki/Statically%20linking%20libgcj
|
|
* fastjar is no longer bundled with GCC. To build libgcj, you will need
|
|
either InfoZIP (both zip and unzip) or an external jar program. In the
|
|
former case, the GCC build will install a jar shell script that is based
|
|
on InfoZIP and provides the same functionality as fastjar.
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
IA-32/x86-64
|
|
|
|
* -mtune=generic can now be used to generate code running well on common
|
|
x86 chips. This includes AMD Athlon, AMD Opteron, Intel Pentium-M, Intel
|
|
Pentium 4 and Intel Core 2.
|
|
* -mtune=native and -march=native will produce code optimized for the host
|
|
architecture as detected using the cpuid instruction.
|
|
* Added a new command-line option -fstackrealign and and __attribute__
|
|
((force_align_arg_pointer)) to realign the stack at runtime. This allows
|
|
functions compiled with a vector-aligned stack to be invoked from legacy
|
|
objects that keep only word-alignment.
|
|
|
|
SPARC
|
|
|
|
* The default CPU setting has been changed from V7 to V9 in 32-bit mode on
|
|
Solaris 7 and above. This is already the case in 64-bit mode. It can be
|
|
overridden by specifying --with-cpu at configure time.
|
|
* Back-end support of built-in functions for atomic memory access has been
|
|
implemented.
|
|
* Support for the Sun UltraSPARC T1 (Niagara) processor has been added.
|
|
|
|
M32C
|
|
|
|
* Various bug fixes have made some functions (notably, functions returning
|
|
structures) incompatible with previous releases. Recompiling all
|
|
libraries is recommended. Note that code quality has considerably
|
|
improved since 4.1, making a recompile even more beneficial.
|
|
|
|
MIPS
|
|
|
|
* Added support for the Broadcom SB-1A core.
|
|
|
|
IA-64
|
|
|
|
* Added support for IA-64 data and control speculation. By default
|
|
speculation is enabled only during second scheduler pass. A number of
|
|
machine flags was introduced to control the usage of speculation for
|
|
both scheduler passes.
|
|
|
|
HPPA
|
|
|
|
* Added Java language support (libffi and libjava) for 32-bit HP-UX 11
|
|
target.
|
|
|
|
Obsolete Systems
|
|
|
|
Documentation improvements
|
|
|
|
PDF Documentation
|
|
|
|
* A make pdf target has been added to the top-level makefile, enabling
|
|
automated production of PDF documentation files. (Front-ends external to
|
|
GCC should modify their Make-lang.in file to add a lang.pdf: target.)
|
|
|
|
Other significant improvements
|
|
|
|
Build system improvements
|
|
|
|
* All the components of the compiler are now bootstrapped by default. This
|
|
improves the resilience to bugs in the system compiler or binary
|
|
compatibility problems, as well as providing better testing of GCC 4.2
|
|
itself. In addition, if you build the compiler from a combined tree, the
|
|
assembler, linker, etc. will also be bootstrapped (i.e. built with
|
|
themselves).
|
|
You can disable this behavior, and go back to the pre-GCC 4.2 set up, by
|
|
configuring GCC with --disable-bootstrap.
|
|
* The rules that configure follows to find target tools resemble more
|
|
closely the locations that the built compiler will search. In addition,
|
|
you can use the new configure option --with-target-tools to specify
|
|
where to find the target tools used during the build, without affecting
|
|
what the built compiler will use.
|
|
This can be especially useful when building packages of GCC. For
|
|
example, you may want to build GCC with GNU as or ld, even if the
|
|
resulting compiler to work with the native assembler and linker. To do
|
|
so, you can use --with-target-tools to point to the native tools.
|
|
|
|
Incompatible changes to the build system
|
|
|
|
* Front-ends external to GCC should modify their Make-lang.in file to
|
|
replace double-colon rules (e.g. dvi::) with normal rules (like
|
|
lang.dvi:). Front-end makefile hooks do not use double-colon rules
|
|
anymore.
|
|
* Up to GCC 4.1, a popular way to specify the target tools used during the
|
|
build was to create directories named gas, binutils, etc. in the build
|
|
tree, and create links to the tools from there. This does not work any
|
|
more when the compiler is bootstrapped. The new configure option
|
|
--with-target-tools provides a better way to achieve the same effect,
|
|
and works for all native and cross settings.
|
|
|
|
Please send FSF & GNU inquiries & questions to [8]gnu@gnu.org. There are
|
|
also [9]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [10]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [11]GCC manuals. If that fails, the [12]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [13]gcc@gnu.org or [14]gcc@gcc.gnu.org. All of
|
|
our lists have [15]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-09-19 [16]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/projects/gomp/
|
|
2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
|
3. http://gcc.gnu.org/bugs.html
|
|
4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/tr1.html
|
|
5. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
|
|
6. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
|
|
7. http://gcc.gnu.org/wiki/Statically%20linking%20libgcj
|
|
8. mailto:gnu@gnu.org
|
|
9. http://www.gnu.org/home.html#ContactInfo
|
|
10. http://gcc.gnu.org/about.html
|
|
11. http://gcc.gnu.org/onlinedocs/
|
|
12. mailto:gcc-help@gcc.gnu.org
|
|
13. mailto:gcc@gnu.org
|
|
14. mailto:gcc@gcc.gnu.org
|
|
15. http://gcc.gnu.org/lists.html
|
|
16. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-4.1/index.html
|
|
|
|
GCC 4.1 Release Series
|
|
|
|
February 13, 2007
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 4.1.2.
|
|
|
|
This release is a bug-fix release, containing fixes for regressions in GCC
|
|
4.1.1 relative to previous releases of GCC.
|
|
|
|
Release History
|
|
|
|
GCC 4.1.2
|
|
February 13, 2007 ([2]changes)
|
|
|
|
GCC 4.1.1
|
|
May 24, 2006 ([3]changes)
|
|
|
|
GCC 4.1.0
|
|
February 28, 2006 ([4]changes)
|
|
|
|
References and Acknowledgements
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
A list of [5]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, improvements, bug fixes, and other changes as well
|
|
as test results to GCC. This [6]amazing group of volunteers is what makes
|
|
GCC successful.
|
|
|
|
For additional information about GCC please refer to the [7]GCC project web
|
|
site or contact the [8]GCC development mailing list.
|
|
|
|
To obtain GCC please use [9]our mirror sites, one of the [10]GNU mirror
|
|
sites, or [11]our SVN server.
|
|
|
|
Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There are
|
|
also [13]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [14]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [15]GCC manuals. If that fails, the [16]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. All of
|
|
our lists have [19]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [20]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
|
|
3. http://gcc.gnu.org/gcc-4.1/changes.html
|
|
4. http://gcc.gnu.org/gcc-4.1/changes.html
|
|
5. http://gcc.gnu.org/gcc-4.1/buildstat.html
|
|
6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
7. http://gcc.gnu.org/index.html
|
|
8. mailto:gcc@gcc.gnu.org
|
|
9. http://gcc.gnu.org/mirrors.html
|
|
10. http://www.gnu.org/order/ftp.html
|
|
11. http://gcc.gnu.org/svn.html
|
|
12. mailto:gnu@gnu.org
|
|
13. http://www.gnu.org/home.html#ContactInfo
|
|
14. http://gcc.gnu.org/about.html
|
|
15. http://gcc.gnu.org/onlinedocs/
|
|
16. mailto:gcc-help@gcc.gnu.org
|
|
17. mailto:gcc@gnu.org
|
|
18. mailto:gcc@gcc.gnu.org
|
|
19. http://gcc.gnu.org/lists.html
|
|
20. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-4.1/changes.html
|
|
|
|
GCC 4.1 Release Series
|
|
Changes, New Features, and Fixes
|
|
|
|
The latest release in the 4.1 release series is [1]GCC 4.1.2.
|
|
|
|
Caveats
|
|
|
|
General Optimizer Improvements
|
|
|
|
* GCC now has infrastructure for inter-procedural optimizations and the
|
|
following inter-procedural optimizations are implemented:
|
|
+ Profile guided inlining. When doing profile feedback guided
|
|
optimization, GCC can now use the profile to make better informed
|
|
decisions on whether inlining of a function is profitable or not.
|
|
This means that GCC will no longer inline functions at call sites
|
|
that are not executed very often, and that functions at hot call
|
|
sites are more likely to be inlined.
|
|
A new parameter min-inline-recursive-probability is also now
|
|
available to throttle recursive inlining of functions with small
|
|
average recursive depths.
|
|
+ Discovery of pure and const functions, a form of side-effects
|
|
analysis. While older GCC releases could also discover such special
|
|
functions, the new IPA-based pass runs earlier so that the results
|
|
are available to more optimizers. The pass is also simply more
|
|
powerful than the old one.
|
|
+ Analysis of references to static variables and type escape
|
|
analysis, also forms of side-effects analysis. The results of these
|
|
passes allow the compiler to be less conservative about
|
|
call-clobbered variables and references. This results in more
|
|
redundant loads being eliminated and in making static variables
|
|
candidates for register promotion.
|
|
+ Improvement of RTL-based alias analysis. The results of type escape
|
|
analysis are fed to the RTL type-based alias analyzer, allowing it
|
|
to disambiguate more memory references.
|
|
+ Interprocedural constant propagation and function versioning. This
|
|
pass looks for functions that are always called with the same
|
|
constant value for one or more of the function arguments, and
|
|
propagates those constants into those functions.
|
|
+ GCC will now eliminate static variables whose usage was optimized
|
|
out.
|
|
+ -fwhole-program --combine can now be used to make all functions in
|
|
program static allowing whole program optimization. As an
|
|
exception, the main function and all functions marked with the new
|
|
externally_visible attribute are kept global so that programs can
|
|
link with runtime libraries.
|
|
* GCC can now do a form of partial dead code elimination (PDCE) that
|
|
allows code motion of expressions to the paths where the result of the
|
|
expression is actually needed. This is not always a win, so the pass has
|
|
been limited to only consider profitable cases. Here is an example:
|
|
int foo (int *, int *);
|
|
int
|
|
bar (int d)
|
|
{
|
|
int a, b, c;
|
|
b = d + 1;
|
|
c = d + 2;
|
|
a = b + c;
|
|
if (d)
|
|
{
|
|
foo (&b, &c);
|
|
a = b + c;
|
|
}
|
|
printf ("%d\n", a);
|
|
}
|
|
The a = b + c can be sunk to right before the printf. Normal
|
|
code sinking will not do this, it will sink the first one above into the
|
|
else-branch of the conditional jump, which still gives you two copies of
|
|
the code.
|
|
* GCC now has a value range propagation pass. This allows the compiler to
|
|
eliminate bounds checks and branches. The results of the pass can also
|
|
be used to accurately compute branch probabilities.
|
|
* The pass to convert PHI nodes to straight-line code (a form of
|
|
if-conversion for GIMPLE) has been improved significantly. The two most
|
|
significant improvements are an improved algorithm to determine the
|
|
order in which the PHI nodes are considered, and an improvement that
|
|
allow the pass to consider if-conversions of basic blocks with more than
|
|
two predecessors.
|
|
* Alias analysis improvements. GCC can now differentiate between different
|
|
fields of structures in Tree-SSA's virtual operands form. This lets
|
|
stores/loads from non-overlapping structure fields not conflict. A new
|
|
algorithm to compute points-to sets was contributed that can allows GCC
|
|
to see now that p->a and p->b, where p is a pointer to a structure, can
|
|
never point to the same field.
|
|
* Various enhancements to auto-vectorization:
|
|
+ Incrementally preserve SSA form when vectorizing.
|
|
+ Incrementally preserve loop-closed form when vectorizing.
|
|
+ Improvements to peeling for alignment: generate better code when
|
|
the misalignment of an access is known at compile time, or when
|
|
different accesses are known to have the same misalignment, even if
|
|
the misalignment amount itself is unknown.
|
|
+ Consider dependence distance in the vectorizer.
|
|
+ Externalize generic parts of data reference analysis to make this
|
|
analysis available to other passes.
|
|
+ Vectorization of conditional code.
|
|
+ Reduction support.
|
|
* GCC can now partition functions in sections of hot and cold code. This
|
|
can significantly improve performance due to better instruction cache
|
|
locality. This feature works best together with profile feedback driven
|
|
optimization.
|
|
* A new pass to avoid saving of unneeded arguments to the stack in vararg
|
|
functions if the compiler can prove that they will not be needed.
|
|
* Transition of basic block profiling to tree level implementation has
|
|
been completed. The new implementation should be considerably more
|
|
reliable (hopefully avoiding profile mismatch errors when using
|
|
-fprofile-use or -fbranch-probabilities) and can be used to drive higher
|
|
level optimizations, such as inlining.
|
|
The -ftree-based-profiling command-line option was removed and
|
|
-fprofile-use now implies disabling old RTL level loop optimizer
|
|
(-fno-loop-optimize). Speculative prefetching optimization (originally
|
|
enabled by -fspeculative-prefetching) was removed.
|
|
|
|
New Languages and Language specific improvements
|
|
|
|
C and Objective-C
|
|
|
|
* The old Bison-based C and Objective-C parser has been replaced by a new,
|
|
faster hand-written recursive-descent parser.
|
|
|
|
Ada
|
|
|
|
* The build infrastructure for the Ada runtime library and tools has been
|
|
changed to be better integrated with the rest of the build
|
|
infrastructure of GCC. This should make doing cross builds of Ada a bit
|
|
easier.
|
|
|
|
C++
|
|
|
|
* ARM-style name-injection of friend declarations is no longer the
|
|
default. For example:
|
|
struct S {
|
|
friend void f();
|
|
};
|
|
|
|
void g() { f(); }
|
|
will not be accepted; instead a declaration of f will need to be present
|
|
outside of the scope of S. The new -ffriend-injection option will enable
|
|
the old behavior.
|
|
* The (undocumented) extension which permitted templates with default
|
|
arguments to be bound to template template parameters with fewer
|
|
parameters has been deprecated, and will be removed in the next major
|
|
release of G++. For example:
|
|
template class C>
|
|
void f(C) {}
|
|
|
|
template
|
|
struct S {};
|
|
|
|
template void f(S);
|
|
|
|
makes use of the deprecated extension. The reason this code is not valid
|
|
ISO C++ is that S is a template with two parameters; therefore, it
|
|
cannot be bound to C which has only one parameter.
|
|
|
|
Runtime Library (libstdc++)
|
|
|
|
* Optimization work:
|
|
+ A new implementation of std::search_n is provided, better
|
|
performing in case of random access iterators.
|
|
+ Added further efficient specializations of istream functions, i.e.,
|
|
character array and string extractors.
|
|
+ Other smaller improvements throughout.
|
|
* Policy-based associative containers, designed for high-performance,
|
|
flexibility and semantic safety are delivered in ext/pb_assoc.
|
|
* A versatile string class, __gnu_cxx::__versa_string, providing
|
|
facilities conforming to the standard requirements for basic_string, is
|
|
delivered in . In particular:
|
|
+ Two base classes are provided: the default one avoids reference
|
|
counting and is optimized for short strings; the alternate one,
|
|
still uses it while improving in a few low level areas (e.g.,
|
|
alignment). See vstring_fwd.h for some useful typedefs.
|
|
+ Various algorithms have been rewritten (e.g., replace), the code
|
|
streamlined and simple optimizations added.
|
|
+ Option 3 of DR 431 is implemented for both available bases, thus
|
|
improving the support for stateful allocators.
|
|
* As usual, many bugs have been fixed (e.g., libstdc++/13583,
|
|
libstdc++/23953) and LWG resolutions put into effect for the first time
|
|
(e.g., DR 280, DR 464, N1780 recommendations for DR 233, TR1 Issue
|
|
6.19). The implementation status of TR1 is now tracked in the docs in
|
|
tr1.html.
|
|
|
|
Objective-C++
|
|
|
|
* A new language front end for Objective-C++ has been added. This language
|
|
allows users to mix the object oriented features of Objective-C with
|
|
those of C++.
|
|
|
|
Java (GCJ)
|
|
|
|
* Core library (libgcj) updates based on GNU Classpath 0.15 - 0.19
|
|
features (plus some 0.20 bug-fixes)
|
|
+ Networking
|
|
o The java.net.HttpURLConnection implementation no longer
|
|
buffers the entire response body in memory. This means that
|
|
response bodies larger than available memory can now be
|
|
handled.
|
|
+ (N)IO
|
|
o NIO FileChannel.map implementation, fast bulk put
|
|
implementation for DirectByteBuffer (speeds up this method
|
|
10x).
|
|
o FileChannel.lock() and FileChannel.force() implemented.
|
|
+ XML
|
|
o gnu.xml fix for nodes created outside a namespace context.
|
|
o Add support for output indenting and cdata-section-elements
|
|
output instruction in xml.transform.
|
|
o xml.xpath corrections for cases where elements/attributes
|
|
might have been created in non-namespace-aware mode.
|
|
Corrections to handling of XSL variables and minor conformance
|
|
updates.
|
|
+ AWT
|
|
o GNU JAWT implementation, the AWT Native Interface, which
|
|
allows direct access to native screen resources from within a
|
|
Canvas's paint method. GNU Classpath Examples comes with a
|
|
Demo, see libjava/classpath/examples/README.
|
|
o awt.datatransfer updated to 1.5 with support for FlavorEvents.
|
|
The gtk+ awt peers now allow copy/paste of text, images,
|
|
URIs/files and serialized objects with other applications and
|
|
tracking clipboard change events with gtk+ 2.6 (for gtk+ 2.4
|
|
only text and serialized objects are supported). A GNU
|
|
Classpath Examples datatransfer Demo was added to show the new
|
|
functionality.
|
|
o Split gtk+ awt peers event handling in two threads and improve
|
|
gdk lock handling (solves several awt lock ups).
|
|
o Speed up awt Image loading.
|
|
o Better gtk+ scrollbar peer implementation when using gtk+ >=
|
|
2.6.
|
|
o Handle image loading errors correctly for gdkpixbuf and
|
|
MediaTracker.
|
|
o Better handle GDK lock. Properly prefix gtkpeer native
|
|
functions (cp_gtk).
|
|
o GdkGraphics2D has been updated to use Cairo 0.5.x or higher.
|
|
o BufferedImage and GtkImage rewrites. All image drawing
|
|
operations should now work correctly (flipping requires gtk+
|
|
>= 2.6)
|
|
o Future Graphics2D, image and text work is documented at:
|
|
[2]http://developer.classpath.org/mediation/ClasspathGraphicsI
|
|
magesText
|
|
o When gtk+ 2.6 or higher is installed the default log handler
|
|
will produce stack traces whenever a WARNING, CRITICAL or
|
|
ERROR message is produced.
|
|
+ Free Swing
|
|
o The RepaintManager has been reworked for more efficient
|
|
painting, especially for large GUIs.
|
|
o The layout manager OverlayLayout has been implemented, the
|
|
BoxLayout has been rewritten to make use of the
|
|
SizeRequirements utility class and caching for more efficient
|
|
layout.
|
|
o Improved accessibility support.
|
|
o Significant progress has been made in the implementation of
|
|
the javax.swing.plaf.metal package, with most UI delegates in
|
|
a working state now. Please test this with your own
|
|
applications and provide feedback that will help us to improve
|
|
this package.
|
|
o The GUI demo (gnu.classpath.examples.swing.Demo) has been
|
|
extended to highlight various features in our Free Swing
|
|
implementation. And it includes a look and feel switcher for
|
|
Metal (default), Ocean and GNU themes.
|
|
o The javax.swing.plaf.multi package is now implemented.
|
|
o Editing and several key actions for JTree and JTable were
|
|
implemented.
|
|
o Lots of icons and look and feel improvements for Free Swing
|
|
basic and metal themes were added. Try running the GNU
|
|
Classpath Swing Demo in examples
|
|
(gnu.classpath.examples.swing.Demo) with:
|
|
-Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFeelor
|
|
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
|
|
o Start of styled text capabilites for java.swing.text.
|
|
o DefaultMutableTreeNode pre-order, post-order, depth-first and
|
|
breadth-first traversal enumerations implemented.
|
|
o JInternalFrame colors and titlebar draw properly.
|
|
o JTree is working up to par (icons, selection and keyboard
|
|
traversal).
|
|
o JMenus were made more compatible in visual and programmatic
|
|
behavior.
|
|
o JTable changeSelection and multiple selections implemented.
|
|
o JButton and JToggleButton change states work properly now.
|
|
o JFileChooser fixes.
|
|
o revalidate() and repaint() fixes which make Free Swing much
|
|
more responsive.
|
|
o MetalIconFactory implemented.
|
|
o Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
|
|
JInternalFrame, and JWindow are now 1.5 compatible in the
|
|
sense that you can call add() and setLayout() directly on
|
|
them, which will have the same effect as calling
|
|
getContentPane().add() and getContentPane().setLayout().
|
|
o The JTree interface has been completed. JTrees now recognizes
|
|
mouse clicks and selections work.
|
|
o BoxLayout works properly now.
|
|
o Fixed GrayFilter to actually work.
|
|
o Metal SplitPane implemented.
|
|
o Lots of Free Swing text and editor stuff work now.
|
|
+ Free RMI and Corba
|
|
o Andrew Watson, Vice President and Technical Director of the
|
|
Object Management Group, has officially assigned us 20 bit
|
|
Vendor Minor Code Id: 0x47430 ("GC") that will mark remote
|
|
classpath-specific system exceptions. Obtaining the VMCID
|
|
means that GNU Classpath now is a recogniseable type of node
|
|
in a highly interoperable CORBA world.
|
|
o GNU Classpath now includes the first working draft to support
|
|
the RMI over IIOP protocol. The current implementation is
|
|
capable of remote invocations, transferring various
|
|
Serializables and Externalizables via RMI-IIOP protocol. It
|
|
can flatten graphs and, at least for the simple cases, is
|
|
interoperable with 1.5 JDKs.
|
|
o org.omg.PortableInterceptor and related functionality in other
|
|
packages is now implemented:
|
|
# The sever and client interceptors work as required since
|
|
1.4.
|
|
# The IOR interceptor works as needed for 1.5.
|
|
o The org.omg.DynamicAny package is completed and passes the
|
|
prepared tests.
|
|
o The Portable Object Adapter should now support the output of
|
|
the recent IDL to java compilers. These compilers now generate
|
|
servants and not CORBA objects as before, making the output
|
|
depend on the existing POA implementation. Completing POA
|
|
means that such code can already be tried to run on Classpath.
|
|
Our POA is tested for the following usager scenarios:
|
|
# POA converts servant to the CORBA object.
|
|
# Servant provides to the CORBA object.
|
|
# POA activates new CORBA object with the given Object Id
|
|
(byte array) that is later accessible for the servant.
|
|
# During the first call, the ServantActivator provides
|
|
servant for this and all subsequent calls on the current
|
|
object.
|
|
# During each call, the ServantLocator provides servant for
|
|
this call only.
|
|
# ServantLocator or ServantActivator forwards call to
|
|
another server.
|
|
# POA has a single servant, responsible for all objects.
|
|
# POA has a default servant, but some objects are
|
|
explicitly connected to they specific servants.
|
|
The POA is verified using tests from the former cost.omg.org.
|
|
o The CORBA implementation is now a working prototype that
|
|
should support features up to 1.3 inclusive. We invite groups
|
|
writing CORBA dependent applications to try Classpath
|
|
implementation, reporting any possible bugs. The CORBA
|
|
prototype is interoperable with Sun's implementation v 1.4,
|
|
transferring object references, primitive types, narrow and
|
|
wide strings, arrays, structures, trees, abstract interfaces
|
|
and value types (feature of CORBA 2.3) between these two
|
|
platforms. Remote exceptions are transferred and handled
|
|
correctly. The stringified object references (IORs) from
|
|
various sources are parsed as required. The transient (for
|
|
current session) and permanent (till jre restart) redirections
|
|
work. Both Little and Big Endian encoded messages are
|
|
accepted. The implementation is verified using tests from the
|
|
former cost.omg.org. The current release includes working
|
|
examples (see the examples directory), demonstrating the
|
|
client-server communication, using either CORBA Request or
|
|
IDL-based stub (usually generated by a IDL to java compiler).
|
|
These examples also show how to use the Classpath CORBA naming
|
|
service. The IDL to java compiler is not yet written, but as
|
|
our library must be compatible, it naturally accepts the
|
|
output of other idlj implementations.
|
|
+ Misc
|
|
o Updated TimeZone data against Olson tzdata2005l.
|
|
o Make zip and jar packages UTF-8 clean.
|
|
o "native" code builds and compiles (warning free) on Darwin and
|
|
Solaris.
|
|
o java.util.logging.FileHandler now rotates files.
|
|
o Start of a generic JDWP framework in gnu/classpath/jdwp. This
|
|
is unfinished, but feedback (at classpath@gnu.org) from
|
|
runtime hackers is greatly appreciated. Although most of the
|
|
work is currently being done around gcj/gij we want this
|
|
framework to be as VM neutral as possible. Early design is
|
|
described in:
|
|
[3]http://gcc.gnu.org/ml/java/2005-05/msg00260.html
|
|
o QT4 AWT peers, enable by giving configure --enable-qt-peer.
|
|
Included, but not ready for production yet. They are
|
|
explicitly disabled and not supported. But if you want to help
|
|
with the development of these new features we are interested
|
|
in feedback. You will have to explicitly enable them to try
|
|
them out (and they will most likely contain bugs).
|
|
o Documentation fixes all over the place. See
|
|
[4]http://developer.classpath.org/doc/
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
IA-32/x86-64
|
|
|
|
* The x86-64 medium model (that allows building applications whose data
|
|
segment exceeds 4GB) was redesigned to match latest ABI draft. New
|
|
implementation split large datastructures into separate segment
|
|
improving performance of accesses to small datastructures and also
|
|
allows linking of small model libraries into medium model programs as
|
|
long as the libraries are not accessing the large datastructures
|
|
directly. Medium model is also supported in position independent code
|
|
now.
|
|
The ABI change results in partial incompatibility among medium model
|
|
objects. Linking medium model libraries (or objects) compiled with new
|
|
compiler into medium model program compiled with older will likely
|
|
result in exceeding ranges of relocations.
|
|
Binutils 2.16.91 or newer are required for compiling medium model now.
|
|
|
|
RS6000 (POWER/PowerPC)
|
|
|
|
* The AltiVec vector primitives in are now implemented in a
|
|
way that puts a smaller burden on the preprocessor, instead processing
|
|
the "overloading" in the front ends. This should benefit compilation
|
|
speed on AltiVec vector code.
|
|
* AltiVec initializers now are generated more efficiently.
|
|
* The popcountb instruction available on POWER5 now is generated.
|
|
* The floating point round to integer instructions available on POWER5+
|
|
now is generated.
|
|
* Floating point divides can be synthesized using the floating point
|
|
reciprocal estimate instructions.
|
|
* Double precision floating point constants are initialized as single
|
|
precision values if they can be represented exactly.
|
|
|
|
S/390, zSeries and System z9
|
|
|
|
* Support for the IBM System z9 109 processor has been added. When using
|
|
the -march=z9-109 option, the compiler will generate code making use of
|
|
instructions provided by the extended immediate facility.
|
|
* Support for 128-bit IEEE floating point has been added. When using the
|
|
-mlong-double-128 option, the compiler will map the long double data
|
|
type to 128-bit IEEE floating point. Using this option constitutes an
|
|
ABI change, and requires glibc support.
|
|
* Various changes to improve performance of generated code have been
|
|
implemented, including:
|
|
+ In functions that do not require a literal pool, register %r13
|
|
(which is traditionally reserved as literal pool pointer), can now
|
|
be freely used for other purposes by the compiler.
|
|
+ More precise tracking of register use allows the compiler to
|
|
generate more efficient function prolog and epilog code in certain
|
|
cases.
|
|
+ The SEARCH STRING, COMPARE LOGICAL STRING, and MOVE STRING
|
|
instructions are now used to implement C string functions.
|
|
+ The MOVE CHARACTER instruction with single byte overlap is now used
|
|
to implement the memset function with non-zero fill byte.
|
|
+ The LOAD ZERO instructions are now used where appropriate.
|
|
+ The INSERT CHARACTERS UNDER MASK, STORE CHARACTERS UNDER MASK, and
|
|
INSERT IMMEDIATE instructions are now used more frequently to
|
|
optimize bitfield operations.
|
|
+ The BRANCH ON COUNT instruction is now used more frequently. In
|
|
particular, the fact that a loop contains a subroutine call no
|
|
longer prevents the compiler from using this instruction.
|
|
+ The compiler is now aware that all shift and rotate instructions
|
|
implicitly truncate the shift count to six bits.
|
|
* Back-end support for the following generic features has been
|
|
implemented:
|
|
+ The full set of [5]built-in functions for atomic memory access.
|
|
+ The -fstack-protector feature.
|
|
+ The optimization pass avoiding unnecessary stores of incoming
|
|
argument registers in functions with variable argument list.
|
|
|
|
SPARC
|
|
|
|
* The default code model in 64-bit mode has been changed from
|
|
Medium/Anywhere to Medium/Middle on Solaris.
|
|
* TLS support is disabled by default on Solaris prior to release 10. It
|
|
can be enabled on TLS-capable Solaris 9 versions (4/04 release and
|
|
later) by specifying --enable-tls at configure time.
|
|
|
|
MorphoSys
|
|
|
|
* Support has been added for this new architecture.
|
|
|
|
Obsolete Systems
|
|
|
|
Documentation improvements
|
|
|
|
Other significant improvements
|
|
|
|
* GCC can now emit code for protecting applications from stack-smashing
|
|
attacks. The protection is realized by buffer overflow detection and
|
|
reordering of stack variables to avoid pointer corruption.
|
|
* Some built-in functions have been fortified to protect them against
|
|
various buffer overflow (and format string) vulnerabilities. Compared to
|
|
the mudflap bounds checking feature, the safe builtins have far smaller
|
|
overhead. This means that programs built using safe builtins should not
|
|
experience any measurable slowdown.
|
|
|
|
GCC 4.1.2
|
|
|
|
This is the [6]list of problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 4.1.2 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here).
|
|
|
|
When generating code for a shared library, GCC now recognizes that global
|
|
functions may be replaced when the program runs. Therefore, it is now more
|
|
conservative in deducing information from the bodies of functions. For
|
|
example, in this example:
|
|
void f() {}
|
|
void g() {
|
|
try { f(); }
|
|
catch (...) {
|
|
cout << "Exception";
|
|
}
|
|
}
|
|
|
|
|
|
G++ would previously have optimized away the catch clause, since it would
|
|
have concluded that f cannot throw exceptions. Because users may replace f
|
|
with another function in the main body of the program, this optimization is
|
|
unsafe, and is no longer performed. If you wish G++ to continue to optimize
|
|
as before, you must add a throw() clause to the declaration of f to make
|
|
clear that it does not throw exceptions.
|
|
|
|
Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There are
|
|
also [8]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [9]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [10]GCC manuals. If that fails, the [11]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org. All of
|
|
our lists have [14]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-09-19 [15]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
|
|
2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
|
|
3. http://gcc.gnu.org/ml/java/2005-05/msg00260.html
|
|
4. http://developer.classpath.org/doc/
|
|
5. http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
|
|
6. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2
|
|
7. mailto:gnu@gnu.org
|
|
8. http://www.gnu.org/home.html#ContactInfo
|
|
9. http://gcc.gnu.org/about.html
|
|
10. http://gcc.gnu.org/onlinedocs/
|
|
11. mailto:gcc-help@gcc.gnu.org
|
|
12. mailto:gcc@gnu.org
|
|
13. mailto:gcc@gcc.gnu.org
|
|
14. http://gcc.gnu.org/lists.html
|
|
15. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-4.0/index.html
|
|
|
|
GCC 4.0 Release Series
|
|
|
|
January 31, 2007
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 4.0.4.
|
|
|
|
This release is a bug-fix release, containing fixes for regressions in GCC
|
|
4.0.3 relative to previous releases of GCC.
|
|
|
|
Release History
|
|
|
|
GCC 4.0.4
|
|
January 31, 2007 ([2]changes)
|
|
|
|
GCC 4.0.3
|
|
March 10, 2006 ([3]changes)
|
|
|
|
GCC 4.0.2
|
|
September 28, 2005 ([4]changes)
|
|
|
|
GCC 4.0.1
|
|
July 7, 2005 ([5]changes)
|
|
|
|
GCC 4.0.0
|
|
April 20, 2005 ([6]changes)
|
|
|
|
References and Acknowledgements
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
A list of [7]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, improvements, bug fixes, and other changes as well
|
|
as test results to GCC. This [8]amazing group of volunteers is what makes
|
|
GCC successful.
|
|
|
|
For additional information about GCC please refer to the [9]GCC project web
|
|
site or contact the [10]GCC development mailing list.
|
|
|
|
To obtain GCC please use [11]our mirror sites, one of the [12]GNU mirror
|
|
sites, or [13]our SVN server.
|
|
|
|
Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There are
|
|
also [15]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [16]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [17]GCC manuals. If that fails, the [18]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org. All of
|
|
our lists have [21]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [22]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
|
|
3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3
|
|
4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2
|
|
5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1
|
|
6. http://gcc.gnu.org/gcc-4.0/changes.html
|
|
7. http://gcc.gnu.org/gcc-4.0/buildstat.html
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
9. http://gcc.gnu.org/index.html
|
|
10. mailto:gcc@gcc.gnu.org
|
|
11. http://gcc.gnu.org/mirrors.html
|
|
12. http://www.gnu.org/order/ftp.html
|
|
13. http://gcc.gnu.org/svn.html
|
|
14. mailto:gnu@gnu.org
|
|
15. http://www.gnu.org/home.html#ContactInfo
|
|
16. http://gcc.gnu.org/about.html
|
|
17. http://gcc.gnu.org/onlinedocs/
|
|
18. mailto:gcc-help@gcc.gnu.org
|
|
19. mailto:gcc@gnu.org
|
|
20. mailto:gcc@gcc.gnu.org
|
|
21. http://gcc.gnu.org/lists.html
|
|
22. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-4.0/changes.html
|
|
|
|
GCC 4.0 Release Series
|
|
Changes, New Features, and Fixes
|
|
|
|
The latest release in the 4.0 release series is [1]GCC 4.0.4.
|
|
|
|
Caveats
|
|
|
|
* GCC now generates location lists by default when compiling with debug
|
|
info and optimization.
|
|
+ GDB 6.0 and older crashes when it sees location lists. GDB 6.1 or
|
|
later is needed to debug binaries containing location lists.
|
|
+ When you are trying to view a value of a variable in a part of a
|
|
function where it has no location (for example when the variable is
|
|
no longer used and thus its location was used for something else)
|
|
GDB will say that it is not available.
|
|
You can disable generating location lists by -fno-var-tracking.
|
|
* GCC no longer accepts the -fwritable-strings option. Use named character
|
|
arrays when you need a writable string.
|
|
* The options -freduce-all-givs and -fmove-all-movables have been
|
|
discontinued. They were used to circumvent a shortcoming in the
|
|
heuristics of the old loop optimization code with respect to common
|
|
Fortran constructs. The new (tree) loop optimizer works differently and
|
|
doesn't need those work-arounds.
|
|
* The graph-coloring register allocator, formerly enabled by the option
|
|
-fnew-ra, has been discontinued.
|
|
* -I- has been deprecated. -iquote is meant to replace the need for this
|
|
option.
|
|
* The MIPS -membedded-pic and -mrnames options have been removed.
|
|
* All MIPS targets now require the GNU assembler. In particular, IRIX
|
|
configurations can no longer use the MIPSpro assemblers, although they
|
|
do still support the MIPSpro linkers.
|
|
* The SPARC option -mflat has been removed.
|
|
* English-language diagnostic messages will now use Unicode quotation
|
|
marks in UTF-8 locales. (Non-English messages already used the quotes
|
|
appropriate for the language in previous releases.) If your terminal
|
|
does not support UTF-8 but you are using a UTF-8 locale (such locales
|
|
are the default on many GNU/Linux systems) then you should set
|
|
LC_CTYPE=C in the environment to disable that locale. Programs that
|
|
parse diagnostics and expect plain ASCII English-language messages
|
|
should set LC_ALL=C. See [2]Markus Kuhn's explanation of Unicode
|
|
quotation marks for more information.
|
|
* The specs file is no longer installed on most platforms. Most users will
|
|
be totally unaffected. However, if you are accustomed to editing the
|
|
specs file yourself, you will now have to use the -dumpspecs option to
|
|
generate the specs file, and then edit the resulting file.
|
|
|
|
General Optimizer Improvements
|
|
|
|
* The [3]tree ssa branch has been merged. This merge has brought in a
|
|
completely new optimization framework based on a higher level
|
|
intermediate representation than the existing RTL representation.
|
|
Numerous new code transformations based on the new framework are
|
|
available in GCC 4.0, including:
|
|
+ Scalar replacement of aggregates
|
|
+ Constant propagation
|
|
+ Value range propagation
|
|
+ Partial redundancy elimination
|
|
+ Load and store motion
|
|
+ Strength reduction
|
|
+ Dead store elimination
|
|
+ Dead and unreachable code elimination
|
|
+ [4]Autovectorization
|
|
+ Loop interchange
|
|
+ Tail recursion by accumulation
|
|
Many of these passes outperform their counterparts from previous GCC
|
|
releases.
|
|
* [5]Swing Modulo Scheduling (SMS). An RTL level instruction scheduling
|
|
optimization intended for loops that perform heavy computations.
|
|
|
|
New Languages and Language specific improvements
|
|
|
|
C family
|
|
|
|
* The sentinel attribute has been added to GCC. This function attribute
|
|
allows GCC to warn when variadic functions such as execl are not NULL
|
|
terminated. See the GCC manual for a complete description of its
|
|
behavior.
|
|
* Given __attribute__((alias("target"))) it is now an error if target is
|
|
not a symbol, defined in the same translation unit. This also applies to
|
|
aliases created by #pragma weak alias=target. This is because it's
|
|
meaningless to define an alias to an undefined symbol. On Solaris, the
|
|
native assembler would have caught this error, but GNU as does not.
|
|
|
|
C and Objective-C
|
|
|
|
* The -Wstrict-aliasing=2 option has been added. This warning catches all
|
|
unsafe cases, but it may also give a warning for some cases that are
|
|
safe.
|
|
* The cast-as-lvalue, conditional-expression-as-lvalue and
|
|
compound-expression-as-lvalue extensions, which were deprecated in 3.3.4
|
|
and 3.4, have been removed.
|
|
* The -fwritable-strings option, which was deprecated in 3.4, has been
|
|
removed.
|
|
* #pragma pack() semantics have been brought closer to those used by other
|
|
compilers. This also applies to C++.
|
|
* Taking the address of a variable with register storage is invalid in C.
|
|
GCC now issues an error instead of a warning.
|
|
* Arrays of incomplete element type are invalid in C. GCC now issues an
|
|
error for such arrays. Declarations such as extern struct s x[]; (where
|
|
struct s has not been defined) can be moved after the definition of
|
|
struct s. Function parameters declared as arrays of incomplete type can
|
|
instead be declared as pointers.
|
|
|
|
C++
|
|
|
|
* When compiling without optimizations (-O0), the C++ frontend is much
|
|
faster than in any previous versions of GCC. Independent testers have
|
|
measured speed-ups up to 25% in real-world production code, compared to
|
|
the 3.4 family (which was already the fastest version to date).
|
|
Upgrading from older versions might show even bigger improvements.
|
|
* ELF visibility attributes can now be applied to a class type, so that it
|
|
affects every member function of a class at once, without having to
|
|
specify each individually:
|
|
class __attribute__ ((visibility("hidden"))) Foo
|
|
{
|
|
int foo1();
|
|
void foo2();
|
|
};
|
|
The syntax is deliberately similar to the __declspec() system used by
|
|
Microsoft Windows based compilers, allowing cross-platform projects to
|
|
easily reuse their existing macro system for denoting exports and
|
|
imports. By explicitly marking internal classes never used outside a
|
|
binary as hidden, one can completely avoid PLT indirection overheads
|
|
during their usage by the compiler. You can find out more about the
|
|
advantages of this at [6]http://people.redhat.com/drepper/dsohowto.pdf
|
|
* The -fvisibility-inlines-hidden option has been added which marks all
|
|
inlineable functions as having hidden ELF visibility, thus removing
|
|
their symbol and typeinfo from the exported symbol table of the output
|
|
ELF binary. Using this option can reduce the exported symbol count of
|
|
template-heavy code by up to 40% with no code change at all, thus
|
|
notably improving link and load times for the binary as well as a
|
|
reduction in size of up to 10%. Also, check the new [7]-fvisibility
|
|
option.
|
|
* The compiler now uses the library interface specified by the [8]C++ ABI
|
|
for thread-safe initialization of function-scope static variables. Most
|
|
users should leave this alone, but embedded programmers may want to
|
|
disable this by specifying -fno-threadsafe-statics for a small savings
|
|
in code size.
|
|
* Taking the address of an explicit register variable is no longer
|
|
supported. Note that C++ allows taking the address of variables with
|
|
register storage so this will continue to compile with a warning. For
|
|
example, assuming that r0 is a machine register:
|
|
register int foo asm ("r0");
|
|
register int bar;
|
|
&foo; // error, no longer accepted
|
|
&bar; // OK, with a warning
|
|
* G++ has an undocumented extension to virtual function covariancy rules
|
|
that allowed the overrider to return a type that was implicitly
|
|
convertable to the overridden function's return type. For instance a
|
|
function returning void * could be overridden by a function returning T
|
|
*. This is now deprecated and will be removed in a future release.
|
|
* The G++ minimum and maximum operators ( and >?) and their compound
|
|
forms (=) and >?=) have been deprecated and will be removed in a
|
|
future version. Code using these operators should be modified to use
|
|
std::min and std::max instead.
|
|
* Declaration of nested classes of class templates as friends are
|
|
supported:
|
|
template struct A {
|
|
class B {};
|
|
};
|
|
class C {
|
|
template friend class A::B;
|
|
};
|
|
This complements the feature member functions of class templates as
|
|
friends introduced in GCC 3.4.0.
|
|
* When declaring a friend class using an unqualified name, classes outside
|
|
the innermost non-class scope are not searched:
|
|
class A;
|
|
namespace N {
|
|
class B {
|
|
friend class A; // Refer to N::A which has not been declared yet
|
|
// because name outside namespace N are not searched
|
|
friend class ::A; // Refer to ::A
|
|
};
|
|
}
|
|
Hiding the friend name until declaration is still not implemented.
|
|
* Friends of classes defined outside their namespace are correctly
|
|
handled:
|
|
namespace N {
|
|
class A;
|
|
}
|
|
class N::A {
|
|
friend class B; // Refer to N::B in GCC 4.0.0
|
|
// but ::B in earlier versions of GCC
|
|
};
|
|
|
|
Runtime Library (libstdc++)
|
|
|
|
* Optimization work:
|
|
+ Added efficient specializations of istream functions for char and
|
|
wchar_t.
|
|
+ Further performance tuning of strings, in particular wrt
|
|
single-char append and getline.
|
|
+ iter_swap - and therefore most of the mutating algorithms - now
|
|
makes an unqualified call to swap when the value_type of the two
|
|
iterators is the same.
|
|
* A large subset of the features in Technical Report 1 (TR1 for short) is
|
|
experimentally delivered (i.e., no guarantees about the implementation
|
|
are provided. In particular it is not promised that the library will
|
|
remain link-compatible when code using TR1 is used):
|
|
+ General utilities such as reference_wrapper and shared_ptr.
|
|
+ Function objects, i.e., result_of, mem_fn, bind, function.
|
|
+ Support for metaprogramming.
|
|
+ New containers such as tuple, array, unordered_set, unordered_map,
|
|
unordered_multiset, unordered_multimap.
|
|
* As usual, many bugs have been fixed and LWG resolutions implemented for
|
|
the first time (e.g., DR 409).
|
|
|
|
Java
|
|
|
|
* In order to prevent naming conflicts with other implementations of these
|
|
tools, some GCJ binaries have been renamed:
|
|
+ rmic is now grmic,
|
|
+ rmiregistry is now grmiregistry, and
|
|
+ jar is now fastjar.
|
|
In particular, these names were problematic for the jpackage.org
|
|
packaging conventions which install symlinks in /usr/bin that point to
|
|
the preferred versions of these tools.
|
|
* The -findirect-dispatch argument to the compiler now works and generates
|
|
code following a new "binary compatibility" ABI. Code compiled this way
|
|
follows the binary compatibility rules of the Java Language
|
|
Specification.
|
|
* libgcj now has support for using GCJ as a JIT, using the gnu.gcj.jit
|
|
family of system properties.
|
|
* libgcj can now find a shared library corresponding to the bytecode
|
|
representation of a class. See the documentation for the new gcj-dbtool
|
|
program, and the new gnu.gcj.precompiled.db.path system property.
|
|
* There have been many improvements to the class library. Here are some
|
|
highlights:
|
|
+ Much more of AWT and Swing exist.
|
|
+ Many new packages and classes were added, including
|
|
java.util.regex, java.net.URI, javax.crypto,
|
|
javax.crypto.interfaces, javax.crypto.spec, javax.net,
|
|
javax.net.ssl,javax.security.auth,javax.security.auth.callback,
|
|
javax.security.auth.login, javax.security.auth.x500,
|
|
javax.security.sasl, org.ietf.jgss, javax.imageio,
|
|
javax.imageio.event, javax.imageio.spi, javax.print,
|
|
javax.print.attribute, javax.print.attribute.standard,
|
|
javax.print.event, and javax.xml
|
|
+ Updated SAX and DOM, and imported GNU JAXP
|
|
|
|
Fortran
|
|
|
|
* A new [9]Fortran front end has replaced the aging GNU Fortran 77 front
|
|
end. The new front end supports Fortran 90 and Fortran 95. It may not
|
|
yet be as stable as the old Fortran front end.
|
|
|
|
Ada
|
|
|
|
* Ada (with tasking and Zero Cost Exceptions) is now available on many
|
|
more targets, including but not limited to: alpha-linux, hppa-hpux,
|
|
hppa-linux, powerpc-darwin, powerpc-linux, s390-linux, s390x-linux,
|
|
sparc-linux.
|
|
* Some of the new Ada 2005 features are now implemented like
|
|
Wide_Wide_Character and Ada.Containers.
|
|
* Many bugs have been fixed, tools and documentation improved.
|
|
* To compile Ada from the sources, install an older working Ada compiler
|
|
and then use --enable-languages=ada at configuration time, since the Ada
|
|
frontend is not currently activated by default. See the [10]Installing
|
|
GCC for details.
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
H8/300
|
|
|
|
* The frame layout has changed. In the new layout, the prologue of a
|
|
function first saves registers and then allocate space for locals,
|
|
resulting in an 1% improvement on code size.
|
|
|
|
IA-32/x86-64 (AMD64)
|
|
|
|
* The acos, asin, drem, exp10, exp2, expm1, fmod, ilogb, log10, log1p,
|
|
log2, logb and tan mathematical builtins (and their float and long
|
|
double variants) are now implemented as inline x87 intrinsics when using
|
|
-ffast-math.
|
|
* The ceil, floor, nearbyint, rint and trunc mathematical builtins (and
|
|
their float and long double variants) are now implemented as inline x87
|
|
intrinsics when using -ffast-math.
|
|
* The x87's fsincos instruction is now used automatically with -ffast-math
|
|
when calculating both the sin and cos of the same argument.
|
|
* Instruction selection for multiplication and division by constants has
|
|
been improved.
|
|
|
|
IA-64
|
|
|
|
* Floating point division, integer division and sqrt are now inlined,
|
|
resulting in significant performance improvements on some codes.
|
|
|
|
MIPS
|
|
|
|
* Division by zero checks now use conditional traps if the target
|
|
processor supports them. This decreases code size by one word per
|
|
division operation. The old behavior (branch and break) can be obtained
|
|
either at configure time by passing --with-divide=breaks to configure or
|
|
at runtime by passing -mdivide-breaks to GCC.
|
|
* Support for MIPS64 paired-single instructions has been added. It is
|
|
enabled by -mpaired-single and can be accessed using both the
|
|
target-independent vector extensions and new MIPS-specific built-in
|
|
functions.
|
|
* Support for the MIPS-3D ASE has been added. It is enabled by -mips3d and
|
|
provides new MIPS-3D-specific built-in functions.
|
|
* The -mexplicit-relocs option now supports static n64 code (as is used,
|
|
for example, in 64-bit linux kernels). -mexplicit-relocs should now be
|
|
feature-complete and is enabled by default when GCC is configured to use
|
|
a compatible assembler.
|
|
* Support for the NEC VR4130 series has been added. This support includes
|
|
the use of VR-specific instructions and a new VR4130 scheduler. Full
|
|
VR4130 support can be selected with -march=vr4130 while code for any ISA
|
|
can be tuned for the VR4130 using -mtune=vr4130. There is also a new
|
|
-mvr4130-align option that produces better schedules at the cost of
|
|
increased code size.
|
|
* Support for the Broadcom SB-1 has been extended. There is now an SB-1
|
|
scheduler as well as support for the SB-1-specific paired-single
|
|
instructions. Full SB-1 support can be selected with -march=sb1 while
|
|
code for any ISA can be optimized for the SB-1 using -mtune=sb1.
|
|
* The compiler can now work around errata in R4000, R4400, VR4120 and
|
|
VR4130 processors. These workarounds are enabled by -mfix-r4000,
|
|
-mfix-r4400, -mfix-vr4120 and -mfix-vr4130 respectively. The VR4120 and
|
|
VR4130 workarounds need binutils 2.16 or above.
|
|
* IRIX shared libraries are now installed into the standard library
|
|
directories: o32 libraries go into lib/, n32 libraries go into lib32/
|
|
and n64 libraries go into lib64/.
|
|
* The compiler supports a new -msym32 option. It can be used to optimize
|
|
n64 code in which all symbols are known to have 32-bit values.
|
|
|
|
S/390 and zSeries
|
|
|
|
* New command-line options help to generate code intended to run in an
|
|
environment where stack space is restricted, e.g. Linux kernel code:
|
|
+ -mwarn-framesize and -mwarn-dynamicstack trigger compile-time
|
|
warnings for single functions that require large or dynamic stack
|
|
frames.
|
|
+ -mstack-size and -mstack-guard generate code that checks for stack
|
|
overflow at run time.
|
|
+ -mpacked-stack generates code that reduces the stack frame size of
|
|
many functions by reusing unneeded parts of the stack bias area.
|
|
* The -msoft-float option now ensures that generated code never accesses
|
|
floating point registers.
|
|
* The s390x-ibm-tpf target now fully supports C++, including exceptions
|
|
and threads.
|
|
* Various changes to improve performance of the generated code have been
|
|
implemented, including:
|
|
+ GCC now uses sibling calls where possible.
|
|
+ Condition code handling has been optimized, allowing GCC to omit
|
|
redundant comparisons in certain cases.
|
|
+ The cost function guiding many optimizations has been refined to
|
|
more accurately represent the z900 and z990 processors.
|
|
+ The ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH BORROW
|
|
instructions are now used to avoid conditional branches in certain
|
|
cases.
|
|
+ The back end now uses the LEGITIMIZE_RELOAD_ADDRESS feature to
|
|
optimize address arithmetic required to access large stack frames.
|
|
+ GCC now makes more efficient use of memory-to-memory type
|
|
instructions (MVC, CLC, ...).
|
|
+ More precise tracking of special register use allows better
|
|
instruction scheduling, in particular of the function prologue and
|
|
epilogue sequences.
|
|
+ The Java front end now generates inline code to implement integer
|
|
division, instead of calling library routines.
|
|
|
|
SPARC
|
|
|
|
* The options -mv8, -msparclite, -mcypress, -msupersparc, -mf930 and
|
|
-mf934 have been removed. They have been replaced with -mcpu=xxx.
|
|
* The internal model used to estimate the relative cost of each
|
|
instruction has been updated. It is expected to give better results on
|
|
recent UltraSPARC processors.
|
|
* Code generation for function prologues and epilogues has been improved,
|
|
resulting in better scheduling and allowing multiple exit points in
|
|
functions.
|
|
* Support for Sun's Visual Instruction Set (VIS) has been enhanced. It is
|
|
enabled by -mvis and provides new built-in functions for VIS
|
|
instructions on UltraSPARC processors.
|
|
* The option -mapp-regs has been turned on by default on Solaris too.
|
|
|
|
NetWare
|
|
|
|
* Novell NetWare (on ix86, no other hardware platform was ever really
|
|
supported by this OS) has been re-enabled and the ABI supported by GCC
|
|
has been brought into sync with that of MetroWerks CodeWarrior (the ABI
|
|
previously supported was that of some Unix systems, which NetWare never
|
|
tried to support).
|
|
|
|
Obsolete Systems
|
|
|
|
Support for a number of older systems has been declared obsolete in GCC 4.0.
|
|
Unless there is activity to revive them, the next release of GCC will have
|
|
their sources permanently removed.
|
|
|
|
All GCC ports for the following processor architectures have been declared
|
|
obsolete:
|
|
* Intel i860
|
|
* Ubicom IP2022
|
|
* National Semiconductor NS32K
|
|
* Texas Instruments TMS320C[34]x
|
|
|
|
Also, those for some individual systems have been obsoleted:
|
|
* SPARC family
|
|
+ SPARClite-based systems (sparclite-*-coff, sparclite-*-elf,
|
|
sparc86x-*-elf)
|
|
+ OpenBSD 32-bit (sparc-*-openbsd*)
|
|
|
|
Documentation improvements
|
|
|
|
Other significant improvements
|
|
|
|
* Location lists are now generated by default when compiling with debug
|
|
info and optimization. Location lists provide more accurate debug info
|
|
about locations of variables and they allow debugging code compiled with
|
|
-fomit-frame-pointer.
|
|
* The -fvisibility option has been added which allows the default ELF
|
|
visibility of all symbols to be set per compilation and the new #pragma
|
|
GCC visibility preprocessor command allows the setting of default ELF
|
|
visibility for a region of code. Using -fvisibility=hidden especially in
|
|
combination with the new -fvisibility-inlines-hidden can yield
|
|
substantial improvements in output binary quality including avoiding PLT
|
|
indirection overheads, reduction of the exported symbol count by up to
|
|
60% (with resultant improvements to link and load times), better scope
|
|
for the optimizer to improve code and up to a 20% reduction in binary
|
|
size. Using these options correctly yields a binary with a similar
|
|
symbol count to a Windows DLL.
|
|
Perhaps more importantly, this new feature finally allows (with careful
|
|
planning) complete avoidance of symbol clashes when manually loading
|
|
shared objects with RTLD_GLOBAL, thus finally solving problems many
|
|
projects such as python were forced to use RTLD_LOCAL for (with its
|
|
resulting issues for C++ correctness). You can find more information
|
|
about using these options at [11]http://gcc.gnu.org/wiki/Visibility.
|
|
_________________________________________________________________
|
|
|
|
GCC 4.0.1
|
|
|
|
This is the [12]list of problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 4.0.1 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here).
|
|
|
|
GCC 4.0.2
|
|
|
|
This is the [13]list of problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 4.0.2 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here).
|
|
|
|
Unfortunately, due to a release engineering failure, this release has a
|
|
regression on Solaris that will affect some C++ programs. We suggest that
|
|
Solaris users apply a [14]patch that corrects the problem. Users who do not
|
|
wish to apply the patch should explicitly link C++ programs with the
|
|
-pthreads option, even if they do not use threads. This problem has been
|
|
corrected in the current 4.0 branch sources and will not be present in GCC
|
|
4.0.3.
|
|
|
|
GCC 4.0.3
|
|
|
|
Starting with this release, the function getcontext is recognized by the
|
|
compiler as having the same semantics as the setjmp function. In particular,
|
|
the compiler will ensure that all registers are dead before calling such a
|
|
function and will emit a warning about the variables that may be clobbered
|
|
after the second return from the function.
|
|
|
|
GCC 4.0.4
|
|
|
|
This is the [15]list of problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 4.0.4 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here).
|
|
|
|
The 4.0.4 release is provided for those that require a high degree of binary
|
|
compatibility with previous 4.0.x releases. For most users, the GCC team
|
|
recommends that version 4.1.1 or later be used instead."
|
|
|
|
Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There are
|
|
also [17]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [18]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [19]GCC manuals. If that fails, the [20]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. All of
|
|
our lists have [23]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-09-19 [24]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
|
|
2. http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
|
|
3. http://gcc.gnu.org/projects/tree-ssa/
|
|
4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html
|
|
5. http://gcc.gnu.org/news/sms.html
|
|
6. http://people.redhat.com/drepper/dsohowto.pdf
|
|
7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
|
|
8. http://www.codesourcery.com/cxx-abi/
|
|
9. http://gcc.gnu.org/fortran/
|
|
10. http://gcc.gnu.org/install/
|
|
11. http://gcc.gnu.org/wiki/Visibility
|
|
12. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1
|
|
13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2
|
|
14. http://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html
|
|
15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4
|
|
16. mailto:gnu@gnu.org
|
|
17. http://www.gnu.org/home.html#ContactInfo
|
|
18. http://gcc.gnu.org/about.html
|
|
19. http://gcc.gnu.org/onlinedocs/
|
|
20. mailto:gcc-help@gcc.gnu.org
|
|
21. mailto:gcc@gnu.org
|
|
22. mailto:gcc@gcc.gnu.org
|
|
23. http://gcc.gnu.org/lists.html
|
|
24. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.4/index.html
|
|
|
|
GCC 3.4 Release Series
|
|
|
|
May 26, 2006
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 3.4.6.
|
|
|
|
This release is a bug-fix release, containing fixes for regressions in GCC
|
|
3.4.4 relative to previous releases of GCC. This is the last of the 3.4.x
|
|
series.
|
|
|
|
The GCC 3.4 release series includes numerous [2]new features, improvements,
|
|
bug fixes, and other changes, thanks to an [3]amazing group of volunteers.
|
|
|
|
Release History
|
|
|
|
GCC 3.4.6
|
|
March 6, 2006 ([4]changes)
|
|
|
|
GCC 3.4.5
|
|
November 30, 2005 ([5]changes)
|
|
|
|
GCC 3.4.4
|
|
May 18, 2005 ([6]changes)
|
|
|
|
GCC 3.4.3
|
|
November 4, 2004 ([7]changes)
|
|
|
|
GCC 3.4.2
|
|
September 6, 2004 ([8]changes)
|
|
|
|
GCC 3.4.1
|
|
July 1, 2004 ([9]changes)
|
|
|
|
GCC 3.4.0
|
|
April 18, 2004 ([10]changes)
|
|
|
|
References and Acknowledgements
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
A list of [11]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, improvements, bug fixes, and other changes as well
|
|
as test results to GCC. This [12]amazing group of volunteers is what makes
|
|
GCC successful.
|
|
|
|
For additional information about GCC please refer to the [13]GCC project web
|
|
site or contact the [14]GCC development mailing list.
|
|
|
|
To obtain GCC please use [15]our mirror sites, one of the [16]GNU mirror
|
|
sites, or [17]our SVN server.
|
|
|
|
Please send FSF & GNU inquiries & questions to [18]gnu@gnu.org. There are
|
|
also [19]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [20]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [21]GCC manuals. If that fails, the [22]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [23]gcc@gnu.org or [24]gcc@gcc.gnu.org. All of
|
|
our lists have [25]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [26]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://gcc.gnu.org/gcc-3.4/changes.html
|
|
3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
|
|
5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5
|
|
6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4
|
|
7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3
|
|
8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2
|
|
9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1
|
|
10. http://gcc.gnu.org/gcc-3.4/changes.html
|
|
11. http://gcc.gnu.org/gcc-3.4/buildstat.html
|
|
12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
13. http://gcc.gnu.org/index.html
|
|
14. mailto:gcc@gcc.gnu.org
|
|
15. http://gcc.gnu.org/mirrors.html
|
|
16. http://www.gnu.org/order/ftp.html
|
|
17. http://gcc.gnu.org/svn.html
|
|
18. mailto:gnu@gnu.org
|
|
19. http://www.gnu.org/home.html#ContactInfo
|
|
20. http://gcc.gnu.org/about.html
|
|
21. http://gcc.gnu.org/onlinedocs/
|
|
22. mailto:gcc-help@gcc.gnu.org
|
|
23. mailto:gcc@gnu.org
|
|
24. mailto:gcc@gcc.gnu.org
|
|
25. http://gcc.gnu.org/lists.html
|
|
26. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.4/changes.html
|
|
|
|
GCC 3.4 Release Series
|
|
Changes, New Features, and Fixes
|
|
|
|
The final release in the 3.4 release series is [1]GCC 3.4.6. The series is
|
|
now closed.
|
|
|
|
GCC 3.4 has [2]many improvements in the C++ frontend. Before reporting a
|
|
bug, please make sure it's really GCC, and not your code, that is broken.
|
|
|
|
Caveats
|
|
|
|
* GNU Make is now required to build GCC.
|
|
* With -nostdinc the preprocessor used to ignore both standard include
|
|
paths and include paths contained in environment variables. It was
|
|
neither documented nor intended that environment variable paths be
|
|
ignored, so this has been corrected.
|
|
* GCC no longer accepts the options -fvolatile, -fvolatile-global and
|
|
-fvolatile-static. It is unlikely that they worked correctly in any 3.x
|
|
release.
|
|
* GCC no longer ships . Use instead.
|
|
* Support for all the systems [3]obsoleted in GCC 3.3 has been removed
|
|
from GCC 3.4. See below for a [4]list of systems which are obsoleted in
|
|
this release.
|
|
* GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C
|
|
compilers will not work.
|
|
* The implementation of the [5]MIPS ABIs has changed. As a result, the
|
|
code generated for certain MIPS targets will not be binary compatible
|
|
with earlier releases.
|
|
* In previous releases, the MIPS port had a fake "hilo" register with the
|
|
user-visible name accum. This register has been removed.
|
|
* The implementation of the [6]SPARC ABIs has changed. As a result, the
|
|
code generated will not be binary compatible with earlier releases in
|
|
certain cases.
|
|
* The configure option --enable-threads=pthreads has been removed; use
|
|
--enable-threads=posix instead, which should have the same effect.
|
|
* Code size estimates used by inlining heuristics for C, Objective-C, C++
|
|
and Java have been redesigned significantly. As a result the parameters
|
|
of -finline-insns, --param max-inline-insns-single and --param
|
|
max-inline-insns-auto need to be reconsidered.
|
|
* --param max-inline-slope and --param min-inline-insns have been removed;
|
|
they are not needed for the new bottom-up inlining heuristics.
|
|
* The new unit-at-a-time compilation scheme has several compatibility
|
|
issues:
|
|
+ The order in which functions, variables, and top-level asm
|
|
statements are emitted may have changed. Code relying on some
|
|
particular ordering needs to be updated. The majority of such
|
|
top-level asm statements can be replaced by section attributes.
|
|
+ Unreferenced static variables and functions are removed. This may
|
|
result in undefined references when an asm statement refers to the
|
|
variable/function directly. In that case either the
|
|
variable/function shall be listed in asm statement operand or in
|
|
the case of top-level asm statements the attribute used shall be
|
|
used to force function/variable to be always output and considered
|
|
as a possibly used by unknown code.
|
|
For variables the attribute is accepted only by GCC 3.4 and newer,
|
|
while for earlier versions it is sufficient to use unused to
|
|
silence warnings about the variables not being referenced. To keep
|
|
code portable across different GCC versions, you can use
|
|
appropriate preprocessor conditionals.
|
|
+ Static functions now can use non-standard passing conventions that
|
|
may break asm statements calling functions directly. Again the
|
|
attribute used shall be used to prevent this behavior.
|
|
As a temporary workaround, -fno-unit-at-a-time can be used, but this
|
|
scheme may not be supported by future releases of GCC.
|
|
* GCC 3.4 automatically places zero-initialized variables in the .bss
|
|
section on some operating systems. Versions of GNU Emacs up to (and
|
|
including) 21.3 will not work correctly when using this optimization;
|
|
you can use -fno-zero-initialized-in-bss to disable it.
|
|
* If GCC 3.4 is configured with --enable-threads=posix (the default on
|
|
most targets that support pthreads) then _REENTRANT will be defined
|
|
unconditionally by some libstdc++ headers. C++ code which relies on that
|
|
macro to detect whether multi-threaded code is being compiled might
|
|
change in meaning, possibly resulting in linker errors for
|
|
single-threaded programs. Affected users of [7]Boost should compile
|
|
single-threaded code with -DBOOST_DISABLE_THREADS. See Bugzilla for
|
|
[8]more information.
|
|
|
|
General Optimizer Improvements
|
|
|
|
* Usability of the profile feedback and coverage testing has been
|
|
improved.
|
|
+ Performance of profiled programs has been improved by faster
|
|
profile merging code.
|
|
+ Better use of the profile feedback for optimization (loop unrolling
|
|
and loop peeling).
|
|
+ File locking support allowing fork() calls and parallel runs of
|
|
profiled programs.
|
|
+ Coverage file format has been redesigned.
|
|
+ gcov coverage tool has been improved.
|
|
+ make profiledbootstrap available to build a faster compiler.
|
|
Experiments made on i386 hardware showed an 11% speedup on -O0 and
|
|
a 7.5% speedup on -O2 compilation of a [9]large C++ testcase.
|
|
+ New value profiling pass enabled via -fprofile-values
|
|
+ New value profile transformations pass enabled via -fvpt aims to
|
|
optimize some code sequences by exploiting knowledge about value
|
|
ranges or other properties of the operands. At the moment a
|
|
conversion of expensive divisions into cheaper operations has been
|
|
implemented.
|
|
+ New -fprofile-generate and -fprofile-use command-line options to
|
|
simplify the use of profile feedback.
|
|
* A new unit-at-a-time compilation scheme for C, Objective-C, C++ and Java
|
|
which is enabled via -funit-at-a-time (and implied by -O2). In this
|
|
scheme a whole file is parsed first and optimized later. The following
|
|
basic inter-procedural optimizations are implemented:
|
|
+ Removal of unreachable functions and variables
|
|
+ Discovery of local functions (functions with static linkage whose
|
|
address is never taken)
|
|
+ On i386, these local functions use register parameter passing
|
|
conventions.
|
|
+ Reordering of functions in topological order of the call graph to
|
|
enable better propagation of optimizing hints (such as the stack
|
|
alignments needed by functions) in the back end.
|
|
+ Call graph based out-of-order inlining heuristics which allows to
|
|
limit overall compilation unit growth (--param inline-unit-growth).
|
|
Overall, the unit-at-a-time scheme produces a 1.3% improvement for the
|
|
SPECint2000 benchmark on the i386 architecture (AMD Athlon CPU).
|
|
* More realistic code size estimates used by inlining for C, Objective-C,
|
|
C++ and Java. The growth of large functions can now be limited via
|
|
--param large-function-insns and --param large-function-growth.
|
|
* A new cfg-level loop optimizer pass replaces the old loop unrolling pass
|
|
and adds two other loop transformations -- loop peeling and loop
|
|
unswitching -- and also uses the profile feedback to limit code growth.
|
|
(The three optimizations are enabled by -funroll-loops, -fpeel-loops and
|
|
-funswitch-loops flags, respectively).
|
|
The old loop unroller still can be enabled by -fold-unroll-loops and may
|
|
produce better code in some cases, especially when the webizer
|
|
optimization pass is not run.
|
|
* A new web construction pass enabled via -fweb (and implied by -O3)
|
|
improves the quality of register allocation, CSE, first scheduling pass
|
|
and some other optimization passes by avoiding re-use of pseudo
|
|
registers with non-overlapping live ranges. The pass almost always
|
|
improves code quality but does make debugging difficult and thus is not
|
|
enabled by default by -O2
|
|
The pass is especially effective as cleanup after code duplication
|
|
passes, such as the loop unroller or the tracer.
|
|
* Experimental implementations of superblock or trace scheduling in the
|
|
second scheduling pass can be enabled via -fsched2-use-superblocks and
|
|
-fsched2-use-traces, respectively.
|
|
|
|
New Languages and Language specific improvements
|
|
|
|
Ada
|
|
|
|
* The Ada front end has been updated to include numerous bug fixes and
|
|
enhancements. These include:
|
|
+ Improved project file support
|
|
+ Additional set of warnings about potential wrong code
|
|
+ Improved error messages
|
|
+ Improved code generation
|
|
+ Improved cross reference information
|
|
+ Improved inlining
|
|
+ Better run-time check elimination
|
|
+ Better error recovery
|
|
+ More efficient implementation of unbounded strings
|
|
+ Added features in GNAT.Sockets, GNAT.OS_Lib, GNAT.Debug_Pools, ...
|
|
+ New GNAT.xxxx packages (e.g. GNAT.Strings, GNAT.Exception_Action)
|
|
+ New pragmas
|
|
+ New -gnatS switch replacing gnatpsta
|
|
+ Implementation of new Ada features (in particular limited with,
|
|
limited aggregates)
|
|
|
|
C/Objective-C/C++
|
|
|
|
* Precompiled headers are now supported. Precompiled headers can
|
|
dramatically speed up compilation of some projects. There are some known
|
|
defects in the current precompiled header implementation that will
|
|
result in compiler crashes in relatively rare situations. Therefore,
|
|
precompiled headers should be considered a "technology preview" in this
|
|
release. Read the manual for details about how to use precompiled
|
|
headers.
|
|
* File handling in the preprocessor has been rewritten. GCC no longer gets
|
|
confused by symlinks and hardlinks, and now has a correct implementation
|
|
of #import and #pragma once. These two directives have therefore been
|
|
un-deprecated.
|
|
* The undocumented extension that allowed C programs to have a label at
|
|
the end of a compound statement, which has been deprecated since GCC
|
|
3.0, has been removed.
|
|
* The cast-as-lvalue extension has been removed for C++ and deprecated for
|
|
C and Objective-C. In particular, code like this:
|
|
int i;
|
|
(char) i = 5;
|
|
|
|
or this:
|
|
char *p;
|
|
((int *) p)++;
|
|
|
|
is no longer accepted for C++ and will not be accepted for C and
|
|
Objective-C in a future version.
|
|
* The conditional-expression-as-lvalue extension has been deprecated for C
|
|
and Objective-C. In particular, code like this:
|
|
int a, b, c;
|
|
(a ? b : c) = 2;
|
|
|
|
will not be accepted for C and Objective-C in a future version.
|
|
* The compound-expression-as-lvalue extension has been deprecated for C
|
|
and Objective-C. In particular, code like this:
|
|
int a, b;
|
|
(a, b) = 2;
|
|
|
|
will not be accepted for C and Objective-C in a future version. A
|
|
possible non-intrusive workaround is the following:
|
|
(*(a, &b)) = 2;
|
|
|
|
* Several [10]built-in functions such as __builtin_popcount for counting
|
|
bits, finding the highest and lowest bit in a word, and parity have been
|
|
added.
|
|
* The -fwritable-strings option has been deprecated and will be removed.
|
|
* Many C math library functions are now recognized as built-ins and
|
|
optimized.
|
|
* The C, C++, and Objective-C compilers can now handle source files
|
|
written in any character encoding supported by the host C library. The
|
|
default input character set is taken from the current locale, and may be
|
|
overridden with the -finput-charset command line option. In the future
|
|
we will add support for inline encoding markers.
|
|
|
|
C++
|
|
|
|
* G++ is now much closer to full conformance to the ISO/ANSI C++ standard.
|
|
This means, among other things, that a lot of invalid constructs which
|
|
used to be accepted in previous versions will now be rejected. It is
|
|
very likely that existing C++ code will need to be fixed. This document
|
|
lists some of the most common issues.
|
|
* A hand-written recursive-descent C++ parser has replaced the
|
|
YACC-derived C++ parser from previous GCC releases. The new parser
|
|
contains much improved infrastructure needed for better parsing of C++
|
|
source codes, handling of extensions, and clean separation (where
|
|
possible) between proper semantics analysis and parsing. The new parser
|
|
fixes many bugs that were found in the old parser.
|
|
* You must now use the typename and template keywords to disambiguate
|
|
dependent names, as required by the C++ standard.
|
|
struct K {
|
|
typedef int mytype_t;
|
|
};
|
|
|
|
template struct A {
|
|
template struct B {
|
|
void callme(void);
|
|
};
|
|
|
|
template void bar(void)
|
|
{
|
|
// Use 'typename' to tell the parser that T1::mytype_t names
|
|
// a type. This is needed because the name is dependent (in
|
|
// this case, on template parameter T1).
|
|
typename T1::mytype_t x;
|
|
x = 0;
|
|
}
|
|
};
|
|
|
|
template void template_func(void)
|
|
{
|
|
// Use 'template' to prefix member templates within
|
|
// dependent types (a has type A, which depends on
|
|
// the template parameter T).
|
|
A a;
|
|
a.template bar<0>();
|
|
|
|
// Use 'template' to tell the parser that B is a nested
|
|
// template class (dependent on template parameter T), and
|
|
// 'typename' because the whole A::B is
|
|
// the name of a type (again, dependent).
|
|
typename A::template B b;
|
|
b.callme();
|
|
}
|
|
|
|
void non_template_func(void)
|
|
{
|
|
// Outside of any template class or function, no names can be
|
|
// dependent, so the use of the keyword 'typename' and 'template'
|
|
// is not needed (and actually forbidden).
|
|
A a;
|
|
a.bar<0>();
|
|
A::B b;
|
|
b.callme();
|
|
}
|
|
* In a template definition, unqualified names will no longer find members
|
|
of a dependent base (as specified by [temp.dep]/3 in the C++ standard).
|
|
For example,
|
|
template struct B {
|
|
int m;
|
|
int n;
|
|
int f ();
|
|
int g ();
|
|
};
|
|
int n;
|
|
int g ();
|
|
template struct C : B {
|
|
void h ()
|
|
{
|
|
m = 0; // error
|
|
f (); // error
|
|
n = 0; // ::n is modified
|
|
g (); // ::g is called
|
|
}
|
|
};
|
|
You must make the names dependent, e.g. by prefixing them with this->.
|
|
Here is the corrected definition of C::h,
|
|
template void C::h ()
|
|
{
|
|
this->m = 0;
|
|
this->f ();
|
|
this->n = 0
|
|
this->g ();
|
|
}
|
|
As an alternative solution (unfortunately not backwards compatible with
|
|
GCC 3.3), you may use using declarations instead of this->:
|
|
template struct C : B {
|
|
using B::m;
|
|
using B::f;
|
|
using B::n;
|
|
using B::g;
|
|
void h ()
|
|
{
|
|
m = 0;
|
|
f ();
|
|
n = 0;
|
|
g ();
|
|
}
|
|
};
|
|
* In templates, all non-dependent names are now looked up and bound at
|
|
definition time (while parsing the code), instead of later when the
|
|
template is instantiated. For instance:
|
|
void foo(int);
|
|
|
|
template struct A {
|
|
static void bar(void){
|
|
foo('a');
|
|
}
|
|
};
|
|
|
|
void foo(char);
|
|
|
|
int main()
|
|
{
|
|
A<0>::bar(); // Calls foo(int), used to call foo(char).
|
|
}
|
|
* In an explicit instantiation of a class template, you must use
|
|
class or struct before the template-id:
|
|
template
|
|
class A {};
|
|
|
|
template A<0>; // error, not accepted anymore
|
|
template class A<0>; // OK
|
|
* The "named return value" and "implicit typename" extensions have been
|
|
removed.
|
|
* Default arguments in function types have been deprecated and will be
|
|
removed.
|
|
* ARM-style name-injection of friend declarations has been deprecated and
|
|
will be removed. For example: struct S { friend void f(); }; void g() {
|
|
f(); } will not be accepted by future versions of G++; instead a
|
|
declaration of "f" will need to be present outside of the scope of "S".
|
|
* Covariant returns are implemented for all but varadic functions that
|
|
require an adjustment.
|
|
* When -pedantic is used, G++ now issues errors about spurious semicolons.
|
|
For example,
|
|
namespace N {}; // Invalid semicolon.
|
|
void f() {}; // Invalid semicolon.
|
|
* G++ no longer accepts attributes for a declarator after the initializer
|
|
associated with that declarator. For example,
|
|
X x(1) __attribute__((...));
|
|
is no longer accepted. Instead, use:
|
|
X x __attribute__((...)) (1);
|
|
* Inside the scope of a template class, the name of the class itself can
|
|
be treated as either a class or a template. So GCC used to accept the
|
|
class name as argument of type template, and template template
|
|
parameter. However this is not C++ standard compliant. Now the name is
|
|
not treated as a valid template template argument unless you qualify the
|
|
name by its scope. For example, the code below no longer compiles.
|
|
template class TT> class X {};
|
|
template class Y {
|
|
X x; // Invalid, Y is always a type template parameter.
|
|
};
|
|
The valid code for the above example is
|
|
X< ::Y> x; // Valid.
|
|
(Notice the space between < and : to prevent GCC to interpret this as a
|
|
digraph for [.)
|
|
* Friend declarations that refer to template specializations are rejected
|
|
if the template has not already been declared. For example,
|
|
template
|
|
class C {
|
|
friend void f<> (C&);
|
|
};
|
|
is rejected. You must first declare f as a template,
|
|
template
|
|
void f(T);
|
|
* In case of friend declarations, every name used in the friend
|
|
declaration must be accessible at the point of that declaration.
|
|
Previous versions of G++ used to be less strict about this and allowed
|
|
friend declarations for private class members, for example. See the ISO
|
|
C++ Standard Committee's [11]defect report #209 for details.
|
|
* Declaration of member functions of class templates as friends are
|
|
supported. For example,
|
|
template struct A {
|
|
void f();
|
|
};
|
|
class C {
|
|
template friend void A::f();
|
|
};
|
|
* You must use template <> to introduce template specializations, as
|
|
required by the standard. For example,
|
|
template
|
|
struct S;
|
|
|
|
struct S { };
|
|
is rejected. You must write,
|
|
template <> struct S {};
|
|
* G++ used to accept code like this,
|
|
struct S {
|
|
int h();
|
|
void f(int i = g());
|
|
int g(int i = h());
|
|
};
|
|
This behavior is not mandated by the standard. Now G++ issues an error
|
|
about this code. To avoid the error, you must move the declaration of g
|
|
before the declaration of f. The default arguments for g must be visible
|
|
at the point where it is called.
|
|
* The C++ ABI Section 3.3.3 specifications for the array construction
|
|
routines __cxa_vec_new2 and __cxa_vec_new3 were changed to return NULL
|
|
when the allocator argument returns NULL. These changes are incorporated
|
|
into the libstdc++ runtime library.
|
|
* Using a name introduced by a typedef in a friend declaration or in an
|
|
explicit instantiation is now rejected, as specified by the ISO C++
|
|
standard.
|
|
class A;
|
|
typedef A B;
|
|
class C {
|
|
friend class B; // error, no typedef name here
|
|
friend B; // error, friend always needs class/struct/enum
|
|
friend class A; // OK
|
|
};
|
|
|
|
template class Q {};
|
|
typedef Q<0> R;
|
|
template class R; // error, no typedef name here
|
|
template class Q<0>; // OK
|
|
* When allocating an array with a new expression, GCC used to allow
|
|
parentheses around the type name. This is actually ill-formed and it is
|
|
now rejected:
|
|
int* a = new (int)[10]; // error, not accepted anymore
|
|
int* a = new int[10]; // OK
|
|
* When binding an rvalue of class type to a reference, the copy
|
|
constructor of the class must be accessible. For instance, consider the
|
|
following code:
|
|
class A
|
|
{
|
|
public:
|
|
A();
|
|
|
|
private:
|
|
A(const A&); // private copy ctor
|
|
};
|
|
|
|
A makeA(void);
|
|
void foo(const A&);
|
|
|
|
void bar(void)
|
|
{
|
|
foo(A()); // error, copy ctor is not accessible
|
|
foo(makeA()); // error, copy ctor is not accessible
|
|
|
|
A a1;
|
|
foo(a1); // OK, a1 is a lvalue
|
|
}
|
|
This might be surprising at first sight, especially since most popular
|
|
compilers do not correctly implement this rule ([12]further details).
|
|
* When forming a pointer to member or a pointer to member function, access
|
|
checks for class visibility (public, protected, private) are now
|
|
performed using the qualifying scope of the name itself. This is better
|
|
explained with an example:
|
|
class A
|
|
{
|
|
public:
|
|
void pub_func();
|
|
protected:
|
|
void prot_func();
|
|
private:
|
|
void priv_func();
|
|
};
|
|
|
|
class B : public A
|
|
{
|
|
public:
|
|
void foo()
|
|
{
|
|
&A::pub_func; // OK, pub_func is accessible through A
|
|
&A::prot_func; // error, cannot access prot_func through A
|
|
&A::priv_func; // error, cannot access priv_func through A
|
|
|
|
&B::pub_func; // OK, pub_func is accessible through B
|
|
&B::prot_func; // OK, can access prot_func through B (within B)
|
|
&B::priv_func; // error, cannot access priv_func through B
|
|
}
|
|
};
|
|
|
|
Runtime Library (libstdc++)
|
|
|
|
* Optimization work:
|
|
+ Streamlined streambuf, filebuf, separate synched with C Standard
|
|
I/O streambuf.
|
|
+ All formatted I/O now uses cached locale information.
|
|
+ STL optimizations (memory/speed for list, red-black trees as used
|
|
by sets and maps).
|
|
+ More use of GCC builtins.
|
|
+ String optimizations (avoid contention on
|
|
increment/decrement-and-test of the reference count in the
|
|
empty-string object, constructor from input_iterators speedup).
|
|
* Static linkage size reductions.
|
|
* Large File Support (files larger than 2 GB on 32-bit systems).
|
|
* Wide character and variable encoding filebuf work (UTF-8, Unicode).
|
|
* Generic character traits.
|
|
* Also support wchar_t specializations on Mac OS 10.3.x, FreeBSD 5.x,
|
|
Solaris 2.7 and above, AIX 5.x, Irix 6.5.
|
|
* The allocator class is now standard-conformant, and two additional
|
|
extension allocators have been added, mt_alloc and bitmap_allocator.
|
|
* PCH support: -include bits/stdc++.h (2x compile speedup).
|
|
* Rewrote __cxa_demangle with support for C++ style allocators.
|
|
* New debug modes for STL containers and iterators.
|
|
* Testsuite rewrite: five times as many tests, plus increasingly
|
|
sophisticated tests, including I/O, MT, multi-locale, wide and narrow
|
|
characters.
|
|
* Use current versions of GNU "autotools" for build/configuration.
|
|
|
|
Objective-C
|
|
|
|
* The Objective-C front end has been updated to include the numerous bug
|
|
fixes and enhancements previously available only in Apple's version of
|
|
GCC. These include:
|
|
+ Structured exception (@try... @catch... @finally, @throw) and
|
|
synchronization (@synchronized) support. These are accessible via
|
|
the -fobjc-exceptions switch; as of this writing, they may only be
|
|
used in conjunction with -fnext-runtime on Mac OS X 10.3 and later.
|
|
See [13]Options Controlling Objective-C Dialect for more
|
|
information.
|
|
+ An overhaul of @encode logic. The C99 _Bool and C++ bool type may
|
|
now be encoded as 'B'. In addition, the back-end/codegen
|
|
dependencies have been removed.
|
|
+ An overhaul of message dispatch construction, ensuring that the
|
|
various receiver types (and casts thereof) are handled properly,
|
|
and that correct diagnostics are issued.
|
|
+ Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue"
|
|
(-freplace-objc-classes) debugging modes, currently available on
|
|
Mac OS X 10.3 and later. See [14]Options Controlling Objective-C
|
|
Dialect for more information.
|
|
+ Access to optimized runtime entry points (-fno-nil-receivers ) on
|
|
the assumption that message receivers are never nil. This is
|
|
currently available on Mac OS X 10.3 and later. See [15]Options
|
|
Controlling Objective-C Dialect for more information.
|
|
|
|
Java
|
|
|
|
* Compiling a .jar file will now cause non-.class entries to be
|
|
automatically compiled as resources.
|
|
* libgcj has been ported to Darwin.
|
|
* Jeff Sturm has adapted Jan Hubicka's call graph optimization code to
|
|
gcj.
|
|
* libgcj has a new gcjlib URL type; this lets URLClassLoader load code
|
|
from shared libraries.
|
|
* libgcj has been much more completely merged with [16]GNU Classpath.
|
|
* Class loading is now much more correct; in particular the caller's class
|
|
loader is now used when that is required.
|
|
* [17]Eclipse 2.x will run out of the box using gij.
|
|
* Parts of java.nio have been implemented. Direct and indirect buffers
|
|
work, as do fundamental file and socket operations.
|
|
* java.awt has been improved, though it is still not ready for general
|
|
use.
|
|
* The HTTP protocol handler now uses HTTP/1.1 and can handle the POST
|
|
method.
|
|
* The MinGW port has matured. Enhancements include socket timeout support,
|
|
thread interruption, improved Runtime.exec() handling and support for
|
|
accented characters in filenames.
|
|
|
|
Fortran
|
|
|
|
* Fortran improvements are listed in the [18]Fortran documentation.
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
Alpha
|
|
|
|
* Several [19]built-in functions have been added such as
|
|
__builtin_alpha_zap to allow utilizing the more obscure instructions of
|
|
the CPU.
|
|
* Parameter passing of complex arguments has changed to match the [20]ABI.
|
|
This change is incompatible with previous GCC versions, but does fix
|
|
compatibility with the Tru64 compiler and several corner cases where GCC
|
|
was incompatible with itself.
|
|
|
|
ARM
|
|
|
|
* Nicolas Pitre has contributed his hand-coded floating-point support code
|
|
for ARM. It is both significantly smaller and faster than the existing
|
|
C-based implementation, even when building applications for Thumb. The
|
|
arm-elf configuration has been converted to use the new code.
|
|
* Support for the Intel's iWMMXt architecture, a second generation XScale
|
|
processor, has been added. Enabled at run time with the -mcpu=iwmmxt
|
|
command line switch.
|
|
* A new ARM target has been added: arm-wince-pe. This is similar to the
|
|
arm-pe target, but it defaults to using the APCS32 ABI.
|
|
* The existing ARM pipeline description has been converted to the use the
|
|
[21]DFA processor pipeline model. There is not much change in code
|
|
performance, but the description is now [22]easier to understand.
|
|
* Support for the Cirrus EP9312 Maverick floating point co-processor
|
|
added. Enabled at run time with the -mcpu=ep9312 command line switch.
|
|
Note however that the multilibs to support this chip are currently
|
|
disabled in gcc/config/arm/t-arm-elf, so if you want to enable their
|
|
production you will have to uncomment the entries in that file.
|
|
|
|
H8/300
|
|
|
|
* Support for long long has been added.
|
|
* Support for saveall attribute has been added.
|
|
* Pavel Pisa contributed hand-written 32-bit-by-32-bit division code for
|
|
H8/300H and H8S, which is much faster than the previous implementation.
|
|
* A lot of small performance improvements.
|
|
|
|
IA-32/AMD64 (x86-64)
|
|
|
|
* Tuning for K8 (AMD Opteron/Athlon64) core is available via -march=k8 and
|
|
-mcpu=k8.
|
|
* Scalar SSE code generation carefully avoids reformatting penalties,
|
|
hidden dependencies and minimizes the number of uops generated on both
|
|
Intel and AMD CPUs.
|
|
* Vector MMX and SSE operands are now passed in registers to improve
|
|
performance and match the argument passing convention used by the Intel
|
|
C++ Compiler. As a result it is not possible to call functions accepting
|
|
vector arguments compiled by older GCC version.
|
|
* Conditional jump elimination is now more aggressive on modern CPUs.
|
|
* The Athlon ports has been converted to use the DFA processor pipeline
|
|
description.
|
|
* Optimization of indirect tail calls is now possible in a similar fashion
|
|
as direct sibcall optimization.
|
|
* Further small performance improvements.
|
|
* -m128bit-long-double is now less buggy.
|
|
* __float128 support in 64-bit compilation.
|
|
* Support for data structures exceeding 2GB in 64-bit mode.
|
|
* -mcpu has been renamed to -mtune.
|
|
|
|
IA-64
|
|
|
|
* Tuning code for the Itanium 2 processor has been added. The generation
|
|
of code tuned for Itanium 2 (option -mtune=itanium2) is enabled by
|
|
default now. To generate code tuned for Itanium 1 the option
|
|
-mtune=itanium1 should be used.
|
|
* [23]DFA processor pipeline descriptions for the IA-64 processors have
|
|
been added. This resulted in about 3% improvement on the SPECInt2000
|
|
benchmark for Itanium 2.
|
|
* Instruction bundling for the IA-64 processors has been rewritten using
|
|
the DFA pipeline hazard recognizer. It resulted in about 60% compiler
|
|
speedup on the SPECInt2000 C programs.
|
|
|
|
M32R
|
|
|
|
* Support for the M32R/2 processor has been added by Renesas.
|
|
* Support for an M32R Linux target and PIC code generation has been added
|
|
by Renesas.
|
|
|
|
M68000
|
|
|
|
* Bernardo Innocenti (Develer S.r.l.) has contributed the m68k-uclinux
|
|
target, based on former work done by Paul Dale (SnapGear Inc.). Code
|
|
generation for the ColdFire processors family has been enhanced and
|
|
extended to support the MCF 53xx and MCF 54xx cores, integrating former
|
|
work done by Peter Barada (Motorola).
|
|
|
|
MIPS
|
|
|
|
Processor-specific changes
|
|
|
|
* Support for the RM7000 and RM9000 processors has been added. It can be
|
|
selected using the -march compiler option and should work with any MIPS
|
|
I (mips-*) or MIPS III (mips64-*) configuration.
|
|
* Support for revision 2 of the MIPS32 ISA has been added. It can be
|
|
selected with the command-line option -march=mips32r2.
|
|
* There is a new option, -mfix-sb1, to work around certain SB-1 errata.
|
|
|
|
Configuration
|
|
|
|
* It is possible to customize GCC using the following configure-time
|
|
options:
|
|
+ --with-arch, which specifies the default value of the -march
|
|
option.
|
|
+ --with-tune, which specifies the default value of the -mtune
|
|
option.
|
|
+ --with-abi, which specifies the default ABI.
|
|
+ --with-float=soft, which tells GCC to use software floating point
|
|
by default.
|
|
+ --with-float=hard, which tells GCC to use hardware floating point
|
|
by default.
|
|
* A 64-bit GNU/Linux port has been added. The associated configurations
|
|
are mips64-linux-gnu and mips64el-linux-gnu.
|
|
* The 32-bit GNU/Linux port now supports Java.
|
|
* The IRIX 6 configuration now supports the o32 ABI and will build o32
|
|
multilibs by default. This support is compatible with both binutils and
|
|
the SGI tools, but note that several features, including debugging
|
|
information and DWARF2 exception handling, are only available when using
|
|
the GNU assembler. Use of the GNU assembler and linker (version 2.15 or
|
|
above) is strongly recommended.
|
|
* The IRIX 6 configuration now supports 128-bit long doubles.
|
|
* There are two new RTEMS-specific configurations, mips-rtems and
|
|
mipsel-rtems.
|
|
* There are two new *-elf configurations, mipsisa32r2-elf and
|
|
mipsisa32r2el-elf.
|
|
|
|
General
|
|
|
|
* Several [24]ABI bugs have been fixed. Unfortunately, these changes will
|
|
break binary compatibility with earlier releases.
|
|
* GCC can now use explicit relocation operators when generating -mabicalls
|
|
code. This behavior is controlled by -mexplicit-relocs and can have
|
|
several performance benefits. For example:
|
|
+ It allows for more optimization of GOT accesses, including better
|
|
scheduling and redundancy elimination.
|
|
+ It allows sibling calls to be implemented as jumps.
|
|
+ n32 and n64 leaf functions can use a call-clobbered global pointer
|
|
instead of $28.
|
|
+ The code to set up $gp can be removed from functions that don't
|
|
need it.
|
|
* A new option, -mxgot, allows the GOT to be bigger than 64k. This option
|
|
is equivalent to the assembler's -xgot option and should be used instead
|
|
of -Wa,-xgot.
|
|
* Frame pointer elimination is now supported when generating 64-bit MIPS16
|
|
code.
|
|
* Inline block moves have been optimized to take more account of alignment
|
|
information.
|
|
* Many internal changes have been made to the MIPS port, mostly aimed at
|
|
reducing the reliance on assembler macros.
|
|
|
|
PowerPC
|
|
|
|
* GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64
|
|
[25]ABI incompatibilities regarding the way parameters are passed during
|
|
functions calls. These changes may result in incompatibility between
|
|
code compiled with GCC 3.3 and GCC 3.4.
|
|
|
|
PowerPC Darwin
|
|
|
|
* Support for shared/dylib gcc libraries has been added. It is enabled by
|
|
default on powerpc-apple-darwin7.0.0 and up.
|
|
* Libgcj is enabled by default. On systems older than
|
|
powerpc-apple-darwin7.0.0 you need to install [26]dlcompat.
|
|
* 128-bit IBM extended precision format support added for long double.
|
|
|
|
PowerPC64 GNU/Linux
|
|
|
|
* By default, PowerPC64 GNU/Linux now uses natural alignment of structure
|
|
elements. The old four byte alignment for double, with special rules for
|
|
a struct starting with a double, can be chosen with -malign-power. This
|
|
change may result in incompatibility between code compiled with GCC 3.3
|
|
and GCC 3.4.
|
|
* -mabi=altivec is now the default rather than -mabi=no-altivec.
|
|
* 128-bit IBM extended precision format support added for long double.
|
|
|
|
S/390 and zSeries
|
|
|
|
* New command-line options allow to specify the intended execution
|
|
environment for generated code:
|
|
+ -mesa/-mzarch allows to specify whether to generate code running in
|
|
ESA/390 mode or in z/Architecture mode (this is applicable to
|
|
31-bit code only).
|
|
+ -march allows to specify a minimum processor architecture level
|
|
(g5, g6, z900, or z990).
|
|
+ -mtune allows to specify which processor to tune for.
|
|
* It is possible to customize GCC using the following configure-time
|
|
options:
|
|
+ --with-mode, which specifies whether to default to assuming ESA/390
|
|
or z/Architecture mode.
|
|
+ --with-arch, which specifies the default value of the -march
|
|
option.
|
|
+ --with-tune, which specifies the default value of the -mtune
|
|
option.
|
|
* Support for the z990 processor has been added, and can be selected using
|
|
-march=z990 or -mtune=z990. This includes instruction scheduling tuned
|
|
for the superscalar instruction pipeline of the z990 processor as well
|
|
as support for all new instructions provided by the long-displacement
|
|
facility.
|
|
* Support to generate 31-bit code optimized for zSeries processors
|
|
(running in ESA/390 or in z/Architecture mode) has been added. This can
|
|
be selected using -march=z900 and -mzarch respectively.
|
|
* Instruction scheduling for the z900 and z990 processors now uses the DFA
|
|
pipeline hazard recognizer.
|
|
* GCC no longer generates code to maintain a stack backchain, previously
|
|
used to generate stack backtraces for debugging purposes. As replacement
|
|
that does not incur runtime overhead, DWARF-2 call frame information is
|
|
provided by GCC; this is supported by GDB 6.1. The old behavior can be
|
|
restored using the -mbackchain option.
|
|
* The stack frame size of functions may now exceed 2 GB in 64-bit code.
|
|
* A port for the 64-bit IBM TPF operating system has been added; the
|
|
configuration is s390x-ibm-tpf. This configuration is supported as
|
|
cross-compilation target only.
|
|
* Various changes to improve the generated code have been implemented,
|
|
including:
|
|
+ GCC now uses the MULTIPLY AND ADD and MULTIPLY AND SUBTRACT
|
|
instructions to significantly speed up many floating-point
|
|
applications.
|
|
+ GCC now uses the ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH
|
|
BORROW instructions to speed up long long arithmetic.
|
|
+ GCC now uses the SEARCH STRING instruction to implement strlen().
|
|
+ In many cases, function call overhead for 31-bit code has been
|
|
reduced by placing the literal pool after the function code instead
|
|
of after the function prolog.
|
|
+ Register 14 is no longer reserved in 64-bit code.
|
|
+ Handling of global register variables has been improved.
|
|
|
|
SPARC
|
|
|
|
* The option -mflat is deprecated.
|
|
* Support for large (> 2GB) frames has been added to the 64-bit port.
|
|
* Several [27]ABI bugs have been fixed. Unfortunately, these changes will
|
|
break binary compatibility with earlier releases.
|
|
* The default debugging format has been switched from STABS to DWARF-2 for
|
|
32-bit code on Solaris 7 and later. DWARF-2 is already the default
|
|
debugging format for 64-bit code on Solaris.
|
|
|
|
SuperH
|
|
|
|
* Support for the SH2E processor has been added. Enabled at run time with
|
|
the -m2e command line switch, or at configure time by specifying sh2e as
|
|
the machine part of the target triple.
|
|
|
|
V850
|
|
|
|
* Support for the Mitsubishi V850E1 processor has been added. This is a
|
|
variant of the V850E processor with some additional debugging
|
|
instructions.
|
|
|
|
Xtensa
|
|
|
|
* Several ABI bugs have been fixed. Unfortunately, these changes break
|
|
binary compatibility with earlier releases.
|
|
+ For big-endian processors, the padding of aggregate return values
|
|
larger than a word has changed. If the size of an aggregate return
|
|
value is not a multiple of 32 bits, previous versions of GCC
|
|
inserted padding in the most-significant bytes of the first return
|
|
value register. Aggregates larger than a word are now padded in the
|
|
least-significant bytes of the last return value register used.
|
|
Aggregates smaller than a word are still padded in the
|
|
most-significant bytes. The return value padding has not changed
|
|
for little-endian processors.
|
|
+ Function arguments with 16-byte alignment are now properly aligned.
|
|
+ The implementation of the va_list type has changed. A va_list value
|
|
created by va_start from a previous release cannot be used with
|
|
va_arg from this release, or vice versa.
|
|
* More processor configuration options for Xtensa processors are
|
|
supported:
|
|
+ the ABS instruction is now optional;
|
|
+ the ADDX* and SUBX* instructions are now optional;
|
|
+ an experimental CONST16 instruction can be used to synthesize
|
|
constants instead of loading them from constant pools.
|
|
These and other Xtensa processor configuration options can no longer be
|
|
enabled or disabled by command-line options; the processor configuration
|
|
must be specified by the xtensa-config.h header file when building GCC.
|
|
Additionally, the -mno-serialize-volatile option is no longer supported.
|
|
|
|
Obsolete Systems
|
|
|
|
Support for a number of older systems has been declared obsolete in GCC 3.4.
|
|
Unless there is activity to revive them, the next release of GCC will have
|
|
their sources permanently removed.
|
|
|
|
All configurations of the following processor architectures have been
|
|
declared obsolete:
|
|
* Mitsubishi D30V, d30v-*
|
|
* AT&T DSP1600 and DSP1610, dsp16xx-*
|
|
* Intel 80960, i960
|
|
|
|
Also, some individual systems have been obsoleted:
|
|
* ARM Family
|
|
+ Support for generating code for operation in APCS/26 mode
|
|
(-mapcs-26).
|
|
* IBM ESA/390
|
|
+ "Bigfoot" port, i370-*. (The other port, s390-*, is actively
|
|
maintained and supported.)
|
|
* Intel 386 family
|
|
+ MOSS, i?86-moss-msdos and i?86-*-moss*
|
|
+ NCR 3000 running System V r.4, i?86-ncr-sysv4*
|
|
+ FreeBSD with a.out object format, i?86-*-freebsd*aout* and
|
|
i?86-*-freebsd2*
|
|
+ Linux with a.out object format, i?86-linux*aout*
|
|
+ Linux with libc5, a.k.a. glibc1, i?86-linux*libc1*
|
|
+ Interix versions before Interix 3, i?86-*-interix
|
|
+ Mach microkernel, i?86-mach*
|
|
+ SCO UnixWare with UDK, i?86-*-udk*
|
|
+ Generic System V releases 1, 2, and 3, i?86-*-sysv[123]*
|
|
+ VSTa microkernel, i386-*-vsta
|
|
* Motorola M68000 family
|
|
+ HPUX, m68k-hp-hpux* and m68000-hp-hpux*
|
|
+ NetBSD with a.out object format (before NetBSD 1.4),
|
|
m68k-*-*-netbsd* except m68k-*-*-netbsdelf*
|
|
+ Generic System V r.4, m68k-*-sysv4*
|
|
* VAX
|
|
+ Generic VAX, vax-*-* (This is generic VAX only; we have not
|
|
obsoleted any VAX triples for specific operating systems.)
|
|
|
|
Documentation improvements
|
|
|
|
Other significant improvements
|
|
|
|
* The build system has undergone several significant cleanups.
|
|
Subdirectories will only be configured if they are being built, and all
|
|
subdirectory configures are run from the make command. The top level has
|
|
been autoconfiscated.
|
|
* Building GCC no longer writes to its source directory. This should help
|
|
those wishing to share a read-only source directory over NFS or build
|
|
from a CD. The exceptions to this feature are if you configure with
|
|
either --enable-maintainer-mode or --enable-generated-files-in-srcdir.
|
|
* The -W warning option has been renamed to -Wextra, which is more easily
|
|
understood. The older spelling will be retained for backwards
|
|
compatibility.
|
|
* Substantial improvements in compile time have been made, particularly
|
|
for non-optimizing compilations.
|
|
_________________________________________________________________
|
|
|
|
GCC 3.4.0
|
|
|
|
Bug Fixes
|
|
|
|
A vast number of bugs have been fixed in 3.4.0, too many to publish a
|
|
complete list here. [28]Follow this link to query the Bugzilla database for
|
|
the list of over 900 bugs fixed in 3.4.0. This is the list of all bugs
|
|
marked as resolved and fixed in 3.4.0 that are not flagged as 3.4
|
|
regressions.
|
|
_________________________________________________________________
|
|
|
|
GCC 3.4.1
|
|
|
|
Bug Fixes
|
|
|
|
This section lists the problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 3.4.1 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here).
|
|
|
|
Bootstrap failures
|
|
|
|
* [29]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler emitted
|
|
- PIC related
|
|
* [30]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
|
|
* [31]14760 A bug in configure.in prevents using both --program-suffix and
|
|
--program-prefix
|
|
* [32]14671 [hppa64] bootstrap fails: ICE in save_call_clobbered_regs, in
|
|
caller_save.c
|
|
* [33]15093 [alpha][Java] make bootstrap fails to configure libffi on
|
|
Alpha
|
|
* [34]15178 Solaris 9/x86 fails linking after stage 3
|
|
|
|
Multi-platform internal compiler errors (ICEs)
|
|
|
|
* [35]12753 (preprocessor) Memory corruption in preprocessor on bad input
|
|
* [36]13985 ICE in gcc.c-torture/compile/930621-1.c
|
|
* [37]14810 (c++) tree check failures with invalid code involving
|
|
templates
|
|
* [38]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in
|
|
cp/parser.c
|
|
* [39]15044 (c++) ICE on syntax error, template header
|
|
* [40]15057 (c++) Compiling of conditional value throw constructs cause a
|
|
segmentation violation
|
|
* [41]15064 (c++) typeid of template parameter gives ICE
|
|
* [42]15142 (c++) ICE when passing a string where a char* is expected in a
|
|
throw statement
|
|
* [43]15159 ICE in rtl_verify_flow_info_1
|
|
* [44]15165 (c++) ICE in instantiate_template
|
|
* [45]15193 Unary minus using pointer to V4SF vector causes -fforce-mem to
|
|
exhaust all memory
|
|
* [46]15209 (c++) Runs out of memory with packed structs
|
|
* [47]15227 (c++) Trouble with invalid function definition
|
|
* [48]15285 (c++) instantiate_type ICE when forming pointer to template
|
|
function
|
|
* [49]15299 (c++) ICE in resolve_overloaded_unification
|
|
* [50]15329 (c++) ICE on constructor of member template
|
|
* [51]15550 ICE in extract_insn, in recog.c
|
|
* [52]15554 (c++) ICE in tsubst_copy, in cp/pt.c
|
|
* [53]15640 (c++) ICE on invalid code in arg_assoc, in cp/name-lookup.c
|
|
* [54]15666 [unit-at-a-time] Gcc abort on valid code
|
|
* [55]15696 (c++) ICE with bad pointer-to-member code
|
|
* [56]15701 (c++) ICE with friends and template template parameter
|
|
* [57]15761 ICE in do_SUBST, in combine.c
|
|
* [58]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
|
|
|
|
Ada
|
|
|
|
* [59]14538 All RTEMS targets broken for gnat
|
|
|
|
C front end
|
|
|
|
* [60]12391 missing warning about assigning to an incomplete type
|
|
* [61]14649 atan(1.0) should not be a constant expression
|
|
* [62]15004 [unit-at-a-time] no warning for unused paramater in static
|
|
function
|
|
* [63]15749 --pedantic-errors behaves differently from --pedantic with
|
|
C-compiler on GNU/Linux
|
|
|
|
C++ compiler and library
|
|
|
|
* [64]10646 non-const reference is incorrectly matched in a "const T"
|
|
partial specialization
|
|
* [65]12077 wcin.rdbuf()->in_avail() return value too high
|
|
* [66]13598 enc_filebuf doesn't work
|
|
* [67]14211 const_cast returns lvalue but should be rvalue
|
|
* [68]14220 num_put::do_put() undesired float/double behavior
|
|
* [69]14245 problem with user-defined allocators in std::basic_string
|
|
* [70]14340 libstdc++ Debug mode: failure to convert iterator to
|
|
const_iterator
|
|
* [71]14600 __gnu_cxx::stdio_sync_filebuf should expose internal FILE*
|
|
* [72]14668 no warning anymore for reevaluation of declaration
|
|
* [73]14775 LFS (large file support) tests missing
|
|
* [74]14821 Duplicate namespace alias declaration should not conflict
|
|
* [75]14930 Friend declaration ignored
|
|
* [76]14932 cannot use offsetof to get offsets of array elements in g++
|
|
3.4.0
|
|
* [77]14950 [non unit-at-a-time] always_inline does not mix with templates
|
|
and -O0
|
|
* [78]14962 g++ ignores #pragma redefine_extname
|
|
* [79]14975 Segfault on low-level write error during imbue
|
|
* [80]15002 Linewise stream input is unusably slow (std::string slow)
|
|
* [81]15025 compiler accepts redeclaration of template as non-template
|
|
* [82]15046 [arm] Math functions misdetected by cross configuration
|
|
* [83]15069 a bit test on a variable of enum type is miscompiled
|
|
* [84]15074 g++ -lsupc++ still links against libstdc++
|
|
* [85]15083 spurious "statement has no effect" warning
|
|
* [86]15096 parse error with templates and pointer to const member
|
|
* [87]15287 combination of operator[] and operator .* fails in templates
|
|
* [88]15317 __attribute__ unused in first parameter of constructor gives
|
|
error
|
|
* [89]15337 sizeof on incomplete type diagnostic
|
|
* [90]15361 bitset<>::_Find_next fails
|
|
* [91]15412 _GLIBCXX_ symbols symbols defined and used in different
|
|
namespaces
|
|
* [92]15427 valid code results in incomplete type error
|
|
* [93]15471 Incorrect member pointer offsets in anonymous structs/unions
|
|
* [94]15503 nested template problem
|
|
* [95]15507 compiler hangs while laying out union
|
|
* [96]15542 operator & and template definitions
|
|
* [97]15565 SLES9: leading + sign for unsigned int with showpos
|
|
* [98]15625 friend defined inside a template fails to find static function
|
|
* [99]15629 Function templates, overloads, and friend name injection
|
|
* [100]15742 'noreturn' attribute ignored in method of template functions.
|
|
* [101]15775 Allocator::pointer consistently ignored
|
|
* [102]15821 Duplicate namespace alias within namespace rejected
|
|
* [103]15862 'enum yn' fails (confict with undeclared builtin)
|
|
* [104]15875 rejects pointer to member in template
|
|
* [105]15877 valid code using templates and anonymous enums is rejected
|
|
* [106]15947 Puzzling error message for wrong destructor declaration in
|
|
template class
|
|
* [107]16020 cannot copy __gnu_debug::bitset
|
|
* [108]16154 input iterator concept too restrictive
|
|
* [109]16174 deducing top-level consts
|
|
|
|
Java
|
|
|
|
* [110]14315 Java compiler is not parallel make safe
|
|
|
|
Fortran
|
|
|
|
* [111]15151 [g77] incorrect logical i/o in 64-bit mode
|
|
|
|
Objective-C
|
|
|
|
* [112]7993 private variables cannot be shadowed in subclasses
|
|
|
|
Optimization bugs
|
|
|
|
* [113]15228 useless copies of floating point operands
|
|
* [114]15345 [non-unit-at-a-time] unreferenced nested inline functions not
|
|
optimized away
|
|
* [115]15945 Incorrect floating point optimization
|
|
* [116]15526 ftrapv aborts on 0 * (-1)
|
|
* [117]14690 Miscompiled POOMA tests
|
|
* [118]15112 GCC generates code to write to unchanging memory
|
|
|
|
Preprocessor
|
|
|
|
* [119]15067 Minor glitch in the source of cpp
|
|
|
|
Main driver program bugs
|
|
|
|
* [120]1963 collect2 interprets -oldstyle_liblookup as -o
|
|
ldstyle_liblookup
|
|
|
|
x86-specific (Intel/AMD)
|
|
|
|
* [121]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
|
|
section}
|
|
|
|
HPPA-specific
|
|
|
|
* [122]14782 GCC produces an unaligned data access at -O2
|
|
* [123]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
|
|
* [124]15202 ICE in reload_cse_simplify_operands, in postreload.c
|
|
|
|
IA64-specific
|
|
|
|
* [125]14610 __float80 constants incorrectly emitted
|
|
* [126]14813 init_array sections are initialized in the wrong order
|
|
* [127]14857 GCC segfault on duplicated asm statement
|
|
* [128]15598 Gcc 3.4 ICE on valid code
|
|
* [129]15653 Gcc 3.4 ICE on valid code
|
|
|
|
MIPS-specific
|
|
|
|
* [130]15189 wrong filling of delay slot with -march=mips1 -G0
|
|
-mno-split-addresses -mno-explicit-relocs
|
|
* [131]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as
|
|
2.14.91
|
|
* [132]16144 Bogus reference to __divdf3 when -O1
|
|
* [133]16176 Miscompilation of unaligned data in MIPS backend
|
|
|
|
PowerPC-specific
|
|
|
|
* [134]11591 ICE in gcc.dg/altivec-5.c
|
|
* [135]12028 powerpc-eabispe produces bad sCOND operation
|
|
* [136]14478 rs6000 geu/ltu patterns generate incorrect code
|
|
* [137]14567 long double and va_arg complex args
|
|
* [138]14715 Altivec stack layout may overlap gpr save with stack temps
|
|
* [139]14902 (libstdc++) Stream checking functions fail when -pthread
|
|
option is used.
|
|
* [140]14924 Compiler ICE on valid code
|
|
* [141]14960 -maltivec affects vector return with -mabi=no-altivec
|
|
* [142]15106 vector varargs failure passing from altivec to non-altivec
|
|
code for -m32
|
|
* [143]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 &
|
|
half-word operation
|
|
* [144]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx and
|
|
stvx
|
|
* [145]15662 Segmentation fault when an exception is thrown - even if try
|
|
and catch are specified
|
|
|
|
s390-specific
|
|
|
|
* [146]15054 Bad code due to overlapping stack temporaries
|
|
|
|
SPARC-specific
|
|
|
|
* [147]15783 ICE with union assignment in 64-bit mode
|
|
* [148]15626 GCC 3.4 emits "ld: warning: relocation error: R_SPARC_UA32"
|
|
|
|
x86-64-specific
|
|
|
|
* [149]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
|
|
* [150]14723 Backported -march=nocona from mainline
|
|
* [151]15290 __float128 failed to pass to function properly
|
|
|
|
Cygwin/Mingw32-specific
|
|
|
|
* [152]15250 Option -mms-bitfields support on GCC 3.4 is not conformant to
|
|
MS layout
|
|
* [153]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on
|
|
windows32 targets
|
|
|
|
Bugs specific to embedded processors
|
|
|
|
* [154]8309 [m68k] -m5200 produces erroneous SImode set of short varaible
|
|
on stack
|
|
* [155]13250 [SH] Gcc code for rotation clobbers the register, but gcc
|
|
continues to use the register as if it was not clobbered
|
|
* [156]13803 [coldfire] movqi operand constraints too restrictivefor
|
|
TARGET_COLDFIRE
|
|
* [157]14093 [SH] ICE for code when using -mhitachi option in SH
|
|
* [158]14457 [m6811hc] ICE with simple c++ source
|
|
* [159]14542 [m6811hc] ICE on simple source
|
|
* [160]15100 [SH] cc1plus got hang-up on
|
|
libstdc++-v3/testsuite/abi_check.cc
|
|
* [161]15296 [CRIS] Delayed branch scheduling causing invalid code on
|
|
cris-*
|
|
* [162]15396 [SH] ICE with -O2 -fPIC
|
|
* [163]15782 [coldfire] m68k_output_mi_thunk emits wrong code for ColdFire
|
|
|
|
Testsuite problems (compiler not affected)
|
|
|
|
* [164]11610 libstdc++ testcases 27_io/* don't work properly remotely
|
|
* [165]15488 (libstdc++) possibly insufficient file permissions for
|
|
executing test suite
|
|
* [166]15489 (libstdc++) testsuite_files determined incorrectly
|
|
|
|
Documentation bugs
|
|
|
|
* [167]13928 (libstdc++) no whatis info in some man pages generated by
|
|
doxygen
|
|
* [168]14150 Ada documentation out of date
|
|
* [169]14949 (c++) Need to document method visibility changes
|
|
* [170]15123 libstdc++-doc: Allocators.3 manpage is empty
|
|
_________________________________________________________________
|
|
|
|
GCC 3.4.2
|
|
|
|
Bug Fixes
|
|
|
|
This section lists the problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 3.4.2 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here).
|
|
|
|
Bootstrap failures and issues
|
|
|
|
* [171]16469 [mips-sgi-irix5.3] bootstrap fails in libstdc++-v3/testsuite
|
|
* [172]16344 [hppa-linux-gnu] libstdc++'s PCH built by profiledbootstrap
|
|
does not work with the built compiler
|
|
* [173]16842 [Solaris/x86] mkheaders can not find mkheaders.conf
|
|
|
|
Multi-platform internal compiler errors (ICEs)
|
|
|
|
* [174]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in
|
|
cp_parser_class_specifier, in cp/parser.c
|
|
* [175]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
|
|
* [176]15461 (c++) ICE due to NRV and inlining
|
|
* [177]15890 (c++) ICE in c_expand_expr, in c-common.c
|
|
* [178]16180 ICE: segmentation fault in RTL optimization
|
|
* [179]16224 (c++) ICE in write_unscoped_name (template/namespace)
|
|
* [180]16408 ICE: in delete_insn, in cfgrtl.c
|
|
* [181]16529 (c++) ICE for: namespace-alias shall not be declared as the
|
|
name of any other entity
|
|
* [182]16698 (c++) ICE with exceptions and declaration of __cxa_throw
|
|
* [183]16706 (c++) ICE in finish_member_declaration, in cp/semantics.c
|
|
* [184]16810 (c++) Legal C++ program with cast gives ICE in
|
|
build_ptrmemfunc
|
|
* [185]16851 (c++) ICE when throwing a comma expression
|
|
* [186]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
|
|
* [187]16904 (c++) ICE in finish_class_member_access_expr, in cp/typeck.c
|
|
* [188]16905 (c++) ICE (segfault) with exceptions
|
|
* [189]16964 (c++) ICE in cp_parser_class_specifier due to redefinition
|
|
* [190]17068 (c++) ICE: tree check: expected class 'd', have 'x'
|
|
(identifier_node) in dependent_template_p, in cp/pt.c
|
|
|
|
Preprocessor bugs
|
|
|
|
* [191]16366 Preprocessor option -remap causes memory corruption
|
|
|
|
Optimization
|
|
|
|
* [192]15345 unreferenced nested inline functions not optimized away
|
|
* [193]16590 Incorrect execution when compiling with -O2
|
|
* [194]16693 Bitwise AND is lost when used within a cast to an enum of the
|
|
same precision
|
|
* [195]17078 Jump into if(0) substatement fails
|
|
|
|
Problems in generated debug information
|
|
|
|
* [196]13956 incorrect stabs for nested local variables
|
|
|
|
C front end bugs
|
|
|
|
* [197]16684 GCC should not warn about redundant redeclarations of
|
|
built-ins
|
|
|
|
C++ compiler and library
|
|
|
|
* [198]12658 Thread safety problems in locale::global() and
|
|
locale::locale()
|
|
* [199]13092 g++ accepts invalid pointer-to-member conversion
|
|
* [200]15320 Excessive memory consumption
|
|
* [201]16246 Incorrect template argument deduction
|
|
* [202]16273 Memory exhausted when using nested classes and virtual
|
|
functions
|
|
* [203]16401 ostringstream in gcc 3.4.x very slow for big data
|
|
* [204]16411 undefined reference to __gnu_cxx::stdio_sync_filebuf
|
|
std::char_traits >::file()
|
|
* [205]16489 G++ incorrectly rejects use of a null constant integral
|
|
expression as a null constant pointer
|
|
* [206]16618 offsetof fails with constant member
|
|
* [207]16637 syntax error reported for valid input code
|
|
* [208]16717 __attribute__((constructor)) broken in C++
|
|
* [209]16813 compiler error in DEBUG version of range insertion
|
|
std::map::insert
|
|
* [210]16853 pointer-to-member initialization from incompatible one
|
|
accepted
|
|
* [211]16889 ambiguity is not detected
|
|
* [212]16959 Segmentation fault in ios_base::sync_with_stdio
|
|
|
|
Java compiler and library
|
|
|
|
* [213]7587 direct threaded interpreter not thread-safe
|
|
* [214]16473 ServerSocket accept() leaks file descriptors
|
|
* [215]16478 Hash synchronization deadlock with finalizers
|
|
|
|
Alpha-specific
|
|
|
|
* [216]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
|
|
* [217]16974 could not split insn (ice in final_scan_insn, in final.c)
|
|
|
|
x86-specific
|
|
|
|
* [218]16298 ICE in output_operand
|
|
* [219]17113 ICE with SSE2 intrinsics
|
|
|
|
x86-64 specific
|
|
|
|
* [220]14697 libstdc++ couldn't find 32bit libgcc_s
|
|
|
|
MIPS-specific
|
|
|
|
* [221]15869 [mips64] No NOP after LW (with -mips1 -O0)
|
|
* [222]16325 [mips64] value profiling clobbers gp on mips
|
|
* [223]16357 [mipsisa64-elf] ICE copying 7 bytes between extern char[]s
|
|
* [224]16380 [mips64] Use of uninitialised register after dbra conversion
|
|
* [225]16407 [mips64] Unaligned access to local variables
|
|
* [226]16643 [mips64] verify_local_live_at_start ICE after crossjumping &
|
|
cfgcleanup
|
|
|
|
ARM-specific
|
|
|
|
* [227]15927 THUMB -O2: strength-reduced iteration variable ends up off by
|
|
1
|
|
* [228]15948 THUMB: ICE with non-commutative cbranch
|
|
* [229]17019 THUMB: bad switch statement in md code for
|
|
addsi3_cbranch_scratch
|
|
|
|
IA64-specific
|
|
|
|
* [230]16130 ICE on valid code: in bundling, in config/ia64/ia64.c
|
|
(-mtune=merced)
|
|
* [231]16142 ICE on valid code: in bundling, in config/ia64/ia64.c
|
|
(-mtune=itanium)
|
|
* [232]16278 Gcc failed to build Linux kernel with -mtune=merced
|
|
* [233]16414 ICE on valid code: typo in comparison of asm_noperands result
|
|
* [234]16445 ICE on valid code: don't count ignored insns
|
|
* [235]16490 ICE (segfault) while compiling with -fprofile-use
|
|
* [236]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
|
|
|
|
PowerPC-specific
|
|
|
|
* [237]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
|
|
* [238]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions issue)
|
|
|
|
SPARC-specific
|
|
|
|
* [239]16199 ICE while compiling apache 2.0.49
|
|
* [240]16416 -m64 doesn't imply -mcpu=v9 anymore
|
|
* [241]16430 ICE when returning non-C aggregates larger than 16 bytes
|
|
|
|
Bugs specific to embedded processors
|
|
|
|
* [242]16379 [m32r] can't output large model function call of memcpy
|
|
* [243]17093 [m32r] ICE with -msdata=use -O0
|
|
* [244]17119 [m32r] ICE at switch case 0x8000
|
|
|
|
DJGPP-specific
|
|
|
|
* [245]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
|
|
|
|
Alpha Tru64-specific
|
|
|
|
* [246]16210 libstdc++ gratuitously omits "long long" I/O
|
|
|
|
Testsuite, documentation issues (compiler is not affected):
|
|
|
|
* [247]15488 (libstdc++) possibly insufficient file permissions for
|
|
executing test suite
|
|
* [248]16250 ada/doctools runs makeinfo even in release tarball
|
|
_________________________________________________________________
|
|
|
|
GCC 3.4.3
|
|
|
|
This is the [249]list of problem reports (PRs) from GCC's bug tracking
|
|
system that are known to be fixed in the 3.4.3 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
|
|
Bootstrap failures
|
|
|
|
* [250]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1
|
|
* [251]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold when
|
|
undeclared
|
|
|
|
Internal compiler errors (ICEs) affecting multiple platforms
|
|
|
|
* [252]13948 (java) GCJ segmentation fault while compiling GL4Java .class
|
|
files
|
|
* [253]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
|
|
* [254]16301 (c++) ICE when "strong" attribute is attached to a using
|
|
directive
|
|
* [255]16566 ICE with flexible arrays
|
|
* [256]17023 ICE with nested functions in parameter declaration
|
|
* [257]17027 ICE with noreturn function in loop at -O2
|
|
* [258]17524 ICE in grokdeclarator, in cp/decl.c
|
|
* [259]17826 (c++) ICE in cp_tree_equal
|
|
|
|
C and optimization bugs
|
|
|
|
* [260]15526 -ftrapv aborts on 0 * (-1)
|
|
* [261]16999 #ident stopped working
|
|
* [262]17503 quadratic behaviour in invalid_mode_change_p
|
|
* [263]17581 Long long arithmetic fails inside a switch/case statement
|
|
when compiled with -O2
|
|
* [264]18129 -fwritable-strings doesn't work
|
|
|
|
C++ compiler and library bugs
|
|
|
|
* [265]10975 incorrect initial ostringstream::tellp()
|
|
* [266]11722 Unbuffered filebuf::sgetn is slow
|
|
* [267]14534 Unrecognizing static function as a template parameter when
|
|
its return value is also templated
|
|
* [268]15172 Copy constructor optimization in aggregate initialization
|
|
* [269]15786 Bad error message for frequently occuring error.
|
|
* [270]16162 Rejects valid member-template-definition
|
|
* [271]16612 empty basic_strings can't live in shared memory
|
|
* [272]16715 std::basic_iostream is instantiated when used, even though
|
|
instantiations are already contained in libstdc++
|
|
* [273]16848 code in /ext/demangle.h appears broken
|
|
* [274]17132 GCC fails to eliminate function template specialization when
|
|
argument deduction fails
|
|
* [275]17259 One more _S_leaf incorrectly qualified with _RopeRep:: in
|
|
ropeimpl.h
|
|
* [276]17327 use of `enumeral_type' in template type unification
|
|
* [277]17393 "unused variable '._0'" warning with -Wall
|
|
* [278]17501 Confusion with member templates
|
|
* [279]17537 g++ not passing -lstdc++ to linker when all command line
|
|
arguments are libraries
|
|
* [280]17585 usage of unqualified name of static member from within class
|
|
not allowed
|
|
* [281]17821 Poor diagnostic for using "." instead of "->"
|
|
* [282]17829 wrong error: call of overloaded function is ambiguous
|
|
* [283]17851 Misleading diagnostic for invalid function declarations with
|
|
undeclared types
|
|
* [284]17976 Destructor is called twice
|
|
* [285]18020 rejects valid definition of enum value in template
|
|
* [286]18093 bogus conflict in namespace aliasing
|
|
* [287]18140 C++ parser bug when using >> in templates
|
|
|
|
Fortran
|
|
|
|
* [288]17541 data statements with double precision constants fail
|
|
|
|
x86-specific
|
|
|
|
* [289]17853 -O2 ICE for MMX testcase
|
|
|
|
SPARC-specific
|
|
|
|
* [290]17245 ICE compiling gsl-1.5 statistics/lag1.c
|
|
|
|
Darwin-specific
|
|
|
|
* [291]17167 FATAL:Symbol L_foo$stub already defined.
|
|
|
|
AIX-specific
|
|
|
|
* [292]17277 could not catch an exception when specified -maix64
|
|
|
|
Solaris-specific
|
|
|
|
* [293]17505 calls acosf(), ceilf(), and other functions missing
|
|
from system libraries
|
|
|
|
HP/UX specific:
|
|
|
|
* [294]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl
|
|
|
|
ARM-specific
|
|
|
|
* [295]17384 ICE with mode attribute on structures
|
|
|
|
MIPS-specific
|
|
|
|
* [296]17770 No NOP after LWL with -mips1
|
|
|
|
Other embedded target specific
|
|
|
|
* [297]11476 [arc-elf] gcc ICE on newlib's vfprintf.c
|
|
* [298]14064 [avr-elf] -fdata-sections triggers ICE
|
|
* [299]14678 [m68hc11-elf] gcc ICE
|
|
* [300]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__
|
|
* [301]15790 [i686-coff] Alignment error building gcc with i686-coff
|
|
target
|
|
* [302]15886 [SH] Miscompilation with -O2 -fPIC
|
|
* [303]16884 [avr-elf] [fweb related] bug while initializing variables
|
|
|
|
Bugs relating to debugger support
|
|
|
|
* [304]13841 missing debug info for _Complex function arguments
|
|
* [305]15860 [big-endian targets] No DW_AT_location debug info is emitted
|
|
for formal arguments to a function that uses "register" qualifiers
|
|
|
|
Testsuite issues (compiler not affected)
|
|
|
|
* [306]17465 Testsuite in libffi overrides LD_LIBRARY_PATH
|
|
* [307]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH
|
|
* [308]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit
|
|
testsuite
|
|
|
|
Documentation
|
|
|
|
* [309]15498 typo in gcc manual: non-existing locale example en_UK, should
|
|
be en_GB
|
|
* [310]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap: document
|
|
broken shell
|
|
* [311]16406 USE_LD_AS_NEEDED undocumented
|
|
_________________________________________________________________
|
|
|
|
GCC 3.4.4
|
|
|
|
This is the [312]list of problem reports (PRs) from GCC's bug tracking
|
|
system that are known to be fixed in the 3.4.4 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
_________________________________________________________________
|
|
|
|
GCC 3.4.5
|
|
|
|
This is the [313]list of problem reports (PRs) from GCC's bug tracking
|
|
system that are known to be fixed in the 3.4.5 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
|
|
Bootstrap issues
|
|
|
|
* [314]24688 sco_math fixincl breaks math.h
|
|
|
|
C compiler bugs
|
|
|
|
* [315]17188 struct Foo { } redefinition
|
|
* [316]20187 wrong code for ((unsigned char)(unsigned long
|
|
long)((a?a:1)&(a*b)))?0:1)
|
|
* [317]21873 infinite warning loop on bad array initializer
|
|
* [318]21899 enum definition accepts values to be overriden
|
|
* [319]22061 ICE in find_function_data, in function.c
|
|
* [320]22308 Failure to diagnose violation of constraint 6.516p2
|
|
* [321]22458 ICE on missing brace
|
|
* [322]22589 ICE casting to long long
|
|
* [323]24101 Segfault with preprocessed source
|
|
|
|
C++ compiler and library bugs
|
|
|
|
* [324]10611 operations on vector mode not recognized in C++
|
|
* [325]13377 unexpected behavior of namespace usage directive
|
|
* [326]16002 Strange error message with new parser
|
|
* [327]17413 local classes as template argument
|
|
* [328]17609 spurious error message after using keyword
|
|
* [329]17618 ICE in cp_convert_to_pointer, in cp/cvt.c
|
|
* [330]18124 ICE with invalid template template parameter
|
|
* [331]18155 typedef in template declaration not rejected
|
|
* [332]18177 ICE with const_cast for undeclared variable
|
|
* [333]18368 C++ error message regression
|
|
* [334]16378 ICE when returning a copy of a packed member
|
|
* [335]18466 int ::i; accepted
|
|
* [336]18512 ICE on invalid usage of template base class
|
|
* [337]18454 ICE when returning undefined type
|
|
* [338]18738 typename not allowed with non-dependent qualified name
|
|
* [339]18803 rejects access to operator() in template
|
|
* [340]19004 ICE in uses_template_parms, in cp/pt.c
|
|
* [341]19208 Spurious error about variably modified type
|
|
* [342]18253 bad error message / ICE for invalid template parameter
|
|
* [343]19608 ICE after friend function definition in local class
|
|
* [344]19884 ICE on explicit instantiation of a non-template constructor
|
|
* [345]20153 ICE when C++ template function contains anonymous union
|
|
* [346]20563 Infinite loop in diagnostic (and ice after error message)
|
|
* [347]20789 ICE with incomplete type in template
|
|
* [348]21336 Internal compiler error when using custom new operators
|
|
* [349]21768 ICE in error message due to violation of coding conventions
|
|
* [350]21853 constness of pointer to data member ignored
|
|
* [351]21903 Default argument of template function causes a compile-time
|
|
error
|
|
* [352]21983 multiple diagnostics
|
|
* [353]21987 New testsuite failure g++.dg/warn/conversion-function-1.C
|
|
* [354]22153 ICE on invalid template specialization
|
|
* [355]22172 Internal compiler error, seg fault.
|
|
* [356]21286 filebuf::xsgetn vs pipes
|
|
* [357]22233 ICE with wrong number of template parameters
|
|
* [358]22508 ICE after invalid operator new
|
|
* [359]22545 ICE with pointer to class member & user defined conversion
|
|
operator
|
|
* [360]23528 Wrong default allocator in ext/hash_map
|
|
* [361]23550 char_traits requirements/1.cc test bad math
|
|
* [362]23586 Bad diagnostic for invalid namespace-name
|
|
* [363]23624 ICE in invert_truthvalue, in fold-const.c
|
|
* [364]23639 Bad error message: not a member of ''
|
|
* [365]23797 ICE on typename outside template
|
|
* [366]23965 Bogus error message: no matching function for call to
|
|
'foo()'
|
|
* [367]24052 `label_decl' not supported by dump_expr#
|
|
* [368]24580 virtual base class cause exception not to be caught
|
|
|
|
Problems in generated debug information
|
|
|
|
* [369]24267 Bad DWARF for altivec vectors
|
|
|
|
Optimizations issues
|
|
|
|
* [370]17810 ICE in verify_local_live_at_start
|
|
* [371]17860 Wrong generated code for loop with varying bound
|
|
* [372]21709 ICE on compile-time complex NaN
|
|
* [373]21964 broken tail call at -O2 or more
|
|
* [374]22167 Strange optimization bug when using -Os
|
|
* [375]22619 Compilation failure for real_const_1.f and real_const_2.f90
|
|
* [376]23241 Invalid code generated for comparison of uchar to 255
|
|
* [377]23478 Miscompilation due to reloading of a var that is also used in
|
|
EH pad
|
|
* [378]24470 segmentation fault in cc1plus when compiling with -O
|
|
* [379]24950 ICE in operand_subword_force
|
|
|
|
Precompiled headers problems
|
|
|
|
* [380]14400 Cannot compile qt-x11-free-3.3.0
|
|
* [381]14940 PCH largefile test fails on various platforms
|
|
|
|
Preprocessor bugs
|
|
|
|
* [382]20239 ICE on empty preprocessed input
|
|
* [383]15220 "gcc -E -MM -MG" reports missing system headers in source
|
|
directory
|
|
|
|
Testsuite issues
|
|
|
|
* [384]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on
|
|
i686-pc-linux-gnu
|
|
|
|
Alpha specific
|
|
|
|
* [385]21888 bootstrap failure with linker relaxation enabled
|
|
|
|
ARM specific
|
|
|
|
* [386]15342 [arm-linux]: ICE in verify_local_live_at_start
|
|
* [387]23985 Memory aliasing information incorrect in inlined memcpy
|
|
|
|
ColdFile specific
|
|
|
|
* [388]16719 Illegal move of byte into address register causes compiler to
|
|
ICE
|
|
|
|
HPPA specific
|
|
|
|
* [389]21723 ICE while building libgfortran
|
|
* [390]21841 -mhp-ld/-mgnu-ld documentation
|
|
|
|
IA-64 specific
|
|
|
|
* [391]23644 IA-64 hardware models and configuration options documentation
|
|
error
|
|
* [392]24718 Shared libgcc not used for linking by default
|
|
|
|
M68000 specific
|
|
|
|
* [393]18421 ICE in reload_cse_simplify_operands, in postreload.c
|
|
|
|
MIPS specific
|
|
|
|
* [394]20621 ICE in change_address_1, in emit-rtl.c
|
|
|
|
PowerPC and PowerPC64 specific
|
|
|
|
* [395]18583 error on valid code: const __attribute__((altivec(vector__)))
|
|
doesn't work in arrays
|
|
* [396]20191 ICE in reload_cse_simplify_operands
|
|
* [397]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined
|
|
* [398]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set
|
|
* [399]23404 gij trashes args of functions with more than 8 fp args
|
|
* [400]23539 C & C++ compiler generating misaligned references regardless
|
|
of compiler flags
|
|
* [401]24102 floatdisf2_internal2 broken
|
|
* [402]24465 -mminimal-toc miscompilation of __thread vars
|
|
|
|
Solaris specific
|
|
|
|
* [403]19933 Problem with define of HUGE_VAL in math_c99
|
|
* [404]21889 Native Solaris assembler cannot grok DTP-relative debug
|
|
symbols
|
|
|
|
SPARC specific
|
|
|
|
* [405]19300 PCH failures on sparc-linux
|
|
* [406]20301 Assembler labels have a leading "-"
|
|
* [407]20673 C PCH testsuite assembly comparison failure
|
|
|
|
x86 and x86_64 specific
|
|
|
|
* [408]18582 ICE with arrays of type V2DF
|
|
* [409]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2
|
|
-fsched2-use-traces
|
|
* [410]21716 ICE in reg-stack.c's swap_rtx_condition
|
|
* [411]24315 amd64 fails -fpeephole2
|
|
_________________________________________________________________
|
|
|
|
GCC 3.4.6
|
|
|
|
This is the [412]list of problem reports (PRs) from GCC's bug tracking
|
|
system that are known to be fixed in the 3.4.6 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
|
|
Please send FSF & GNU inquiries & questions to [413]gnu@gnu.org. There are
|
|
also [414]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [415]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [416]GCC manuals. If that fails, the [417]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [418]gcc@gnu.org or [419]gcc@gcc.gnu.org. All of
|
|
our lists have [420]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-09-19 [421]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
|
|
2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
|
|
3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
|
|
4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems
|
|
5. http://gcc.gnu.org/gcc-3.4/mips-abi.html
|
|
6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
|
|
7. http://www.boost.org/
|
|
8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953
|
|
9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
|
|
10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins
|
|
11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
|
|
12. http://gcc.gnu.org/bugs.html#cxx_rvalbind
|
|
13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
|
|
14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
|
|
15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
|
|
16. http://www.gnu.org/software/classpath/
|
|
17. http://www.eclipse.org/
|
|
18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html
|
|
19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html
|
|
20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure
|
|
21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
|
|
22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html
|
|
23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
|
|
24. http://gcc.gnu.org/gcc-3.4/mips-abi.html
|
|
25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html
|
|
26. http://www.opendarwin.org/projects/dlcompat/
|
|
27. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
|
|
28. http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
|
|
29. http://gcc.gnu.org/PR10129
|
|
30. http://gcc.gnu.org/PR14576
|
|
31. http://gcc.gnu.org/PR14760
|
|
32. http://gcc.gnu.org/PR14671
|
|
33. http://gcc.gnu.org/PR15093
|
|
34. http://gcc.gnu.org/PR15178
|
|
35. http://gcc.gnu.org/PR12753
|
|
36. http://gcc.gnu.org/PR13985
|
|
37. http://gcc.gnu.org/PR14810
|
|
38. http://gcc.gnu.org/PR14883
|
|
39. http://gcc.gnu.org/PR15044
|
|
40. http://gcc.gnu.org/PR15057
|
|
41. http://gcc.gnu.org/PR15064
|
|
42. http://gcc.gnu.org/PR15142
|
|
43. http://gcc.gnu.org/PR15159
|
|
44. http://gcc.gnu.org/PR15165
|
|
45. http://gcc.gnu.org/PR15193
|
|
46. http://gcc.gnu.org/PR15209
|
|
47. http://gcc.gnu.org/PR15227
|
|
48. http://gcc.gnu.org/PR15285
|
|
49. http://gcc.gnu.org/PR15299
|
|
50. http://gcc.gnu.org/PR15329
|
|
51. http://gcc.gnu.org/PR15550
|
|
52. http://gcc.gnu.org/PR15554
|
|
53. http://gcc.gnu.org/PR15640
|
|
54. http://gcc.gnu.org/PR15666
|
|
55. http://gcc.gnu.org/PR15696
|
|
56. http://gcc.gnu.org/PR15701
|
|
57. http://gcc.gnu.org/PR15761
|
|
58. http://gcc.gnu.org/PR15829
|
|
59. http://gcc.gnu.org/PR14538
|
|
60. http://gcc.gnu.org/PR12391
|
|
61. http://gcc.gnu.org/PR14649
|
|
62. http://gcc.gnu.org/PR15004
|
|
63. http://gcc.gnu.org/PR15749
|
|
64. http://gcc.gnu.org/PR10646
|
|
65. http://gcc.gnu.org/PR12077
|
|
66. http://gcc.gnu.org/PR13598
|
|
67. http://gcc.gnu.org/PR14211
|
|
68. http://gcc.gnu.org/PR14220
|
|
69. http://gcc.gnu.org/PR14245
|
|
70. http://gcc.gnu.org/PR14340
|
|
71. http://gcc.gnu.org/PR14600
|
|
72. http://gcc.gnu.org/PR14668
|
|
73. http://gcc.gnu.org/PR14775
|
|
74. http://gcc.gnu.org/PR14821
|
|
75. http://gcc.gnu.org/PR14930
|
|
76. http://gcc.gnu.org/PR14932
|
|
77. http://gcc.gnu.org/PR14950
|
|
78. http://gcc.gnu.org/PR14962
|
|
79. http://gcc.gnu.org/PR14975
|
|
80. http://gcc.gnu.org/PR15002
|
|
81. http://gcc.gnu.org/PR15025
|
|
82. http://gcc.gnu.org/PR15046
|
|
83. http://gcc.gnu.org/PR15069
|
|
84. http://gcc.gnu.org/PR15074
|
|
85. http://gcc.gnu.org/PR15083
|
|
86. http://gcc.gnu.org/PR15096
|
|
87. http://gcc.gnu.org/PR15287
|
|
88. http://gcc.gnu.org/PR15317
|
|
89. http://gcc.gnu.org/PR15337
|
|
90. http://gcc.gnu.org/PR15361
|
|
91. http://gcc.gnu.org/PR15412
|
|
92. http://gcc.gnu.org/PR15427
|
|
93. http://gcc.gnu.org/PR15471
|
|
94. http://gcc.gnu.org/PR15503
|
|
95. http://gcc.gnu.org/PR15507
|
|
96. http://gcc.gnu.org/PR15542
|
|
97. http://gcc.gnu.org/PR15565
|
|
98. http://gcc.gnu.org/PR15625
|
|
99. http://gcc.gnu.org/PR15629
|
|
100. http://gcc.gnu.org/PR15742
|
|
101. http://gcc.gnu.org/PR15775
|
|
102. http://gcc.gnu.org/PR15821
|
|
103. http://gcc.gnu.org/PR15862
|
|
104. http://gcc.gnu.org/PR15875
|
|
105. http://gcc.gnu.org/PR15877
|
|
106. http://gcc.gnu.org/PR15947
|
|
107. http://gcc.gnu.org/PR16020
|
|
108. http://gcc.gnu.org/PR16154
|
|
109. http://gcc.gnu.org/PR16174
|
|
110. http://gcc.gnu.org/PR14315
|
|
111. http://gcc.gnu.org/PR15151
|
|
112. http://gcc.gnu.org/PR7993
|
|
113. http://gcc.gnu.org/PR15228
|
|
114. http://gcc.gnu.org/PR15345
|
|
115. http://gcc.gnu.org/PR15945
|
|
116. http://gcc.gnu.org/PR15526
|
|
117. http://gcc.gnu.org/PR14690
|
|
118. http://gcc.gnu.org/PR15112
|
|
119. http://gcc.gnu.org/PR15067
|
|
120. http://gcc.gnu.org/PR1963
|
|
121. http://gcc.gnu.org/PR15717
|
|
122. http://gcc.gnu.org/PR14782
|
|
123. http://gcc.gnu.org/PR14828
|
|
124. http://gcc.gnu.org/PR15202
|
|
125. http://gcc.gnu.org/PR14610
|
|
126. http://gcc.gnu.org/PR14813
|
|
127. http://gcc.gnu.org/PR14857
|
|
128. http://gcc.gnu.org/PR15598
|
|
129. http://gcc.gnu.org/PR15653
|
|
130. http://gcc.gnu.org/PR15189
|
|
131. http://gcc.gnu.org/PR15331
|
|
132. http://gcc.gnu.org/PR16144
|
|
133. http://gcc.gnu.org/PR16176
|
|
134. http://gcc.gnu.org/PR11591
|
|
135. http://gcc.gnu.org/PR12028
|
|
136. http://gcc.gnu.org/PR14478
|
|
137. http://gcc.gnu.org/PR14567
|
|
138. http://gcc.gnu.org/PR14715
|
|
139. http://gcc.gnu.org/PR14902
|
|
140. http://gcc.gnu.org/PR14924
|
|
141. http://gcc.gnu.org/PR14960
|
|
142. http://gcc.gnu.org/PR15106
|
|
143. http://gcc.gnu.org/PR16026
|
|
144. http://gcc.gnu.org/PR15191
|
|
145. http://gcc.gnu.org/PR15662
|
|
146. http://gcc.gnu.org/PR15054
|
|
147. http://gcc.gnu.org/PR15783
|
|
148. http://gcc.gnu.org/PR15626
|
|
149. http://gcc.gnu.org/PR14326
|
|
150. http://gcc.gnu.org/PR14723
|
|
151. http://gcc.gnu.org/PR15290
|
|
152. http://gcc.gnu.org/PR15250
|
|
153. http://gcc.gnu.org/PR15551
|
|
154. http://gcc.gnu.org/PR8309
|
|
155. http://gcc.gnu.org/PR13250
|
|
156. http://gcc.gnu.org/PR13803
|
|
157. http://gcc.gnu.org/PR14093
|
|
158. http://gcc.gnu.org/PR14457
|
|
159. http://gcc.gnu.org/PR14542
|
|
160. http://gcc.gnu.org/PR15100
|
|
161. http://gcc.gnu.org/PR15296
|
|
162. http://gcc.gnu.org/PR15396
|
|
163. http://gcc.gnu.org/PR15782
|
|
164. http://gcc.gnu.org/PR11610
|
|
165. http://gcc.gnu.org/PR15488
|
|
166. http://gcc.gnu.org/PR15489
|
|
167. http://gcc.gnu.org/PR13928
|
|
168. http://gcc.gnu.org/PR14150
|
|
169. http://gcc.gnu.org/PR14949
|
|
170. http://gcc.gnu.org/PR15123
|
|
171. http://gcc.gnu.org/PR16469
|
|
172. http://gcc.gnu.org/PR16344
|
|
173. http://gcc.gnu.org/PR16842
|
|
174. http://gcc.gnu.org/PR12608
|
|
175. http://gcc.gnu.org/PR14492
|
|
176. http://gcc.gnu.org/PR15461
|
|
177. http://gcc.gnu.org/PR15890
|
|
178. http://gcc.gnu.org/PR16180
|
|
179. http://gcc.gnu.org/PR16224
|
|
180. http://gcc.gnu.org/PR16408
|
|
181. http://gcc.gnu.org/PR16529
|
|
182. http://gcc.gnu.org/PR16698
|
|
183. http://gcc.gnu.org/PR16706
|
|
184. http://gcc.gnu.org/PR16810
|
|
185. http://gcc.gnu.org/PR16851
|
|
186. http://gcc.gnu.org/PR16870
|
|
187. http://gcc.gnu.org/PR16904
|
|
188. http://gcc.gnu.org/PR16905
|
|
189. http://gcc.gnu.org/PR16964
|
|
190. http://gcc.gnu.org/PR17068
|
|
191. http://gcc.gnu.org/PR16366
|
|
192. http://gcc.gnu.org/PR15345
|
|
193. http://gcc.gnu.org/PR16590
|
|
194. http://gcc.gnu.org/PR16693
|
|
195. http://gcc.gnu.org/PR17078
|
|
196. http://gcc.gnu.org/PR13956
|
|
197. http://gcc.gnu.org/PR16684
|
|
198. http://gcc.gnu.org/PR12658
|
|
199. http://gcc.gnu.org/PR13092
|
|
200. http://gcc.gnu.org/PR15320
|
|
201. http://gcc.gnu.org/PR16246
|
|
202. http://gcc.gnu.org/PR16273
|
|
203. http://gcc.gnu.org/PR16401
|
|
204. http://gcc.gnu.org/PR16411
|
|
205. http://gcc.gnu.org/PR16489
|
|
206. http://gcc.gnu.org/PR16618
|
|
207. http://gcc.gnu.org/PR16637
|
|
208. http://gcc.gnu.org/PR16717
|
|
209. http://gcc.gnu.org/PR16813
|
|
210. http://gcc.gnu.org/PR16853
|
|
211. http://gcc.gnu.org/PR16889
|
|
212. http://gcc.gnu.org/PR16959
|
|
213. http://gcc.gnu.org/PR7587
|
|
214. http://gcc.gnu.org/PR16473
|
|
215. http://gcc.gnu.org/PR16478
|
|
216. http://gcc.gnu.org/PR10695
|
|
217. http://gcc.gnu.org/PR16974
|
|
218. http://gcc.gnu.org/PR16298
|
|
219. http://gcc.gnu.org/PR17113
|
|
220. http://gcc.gnu.org/PR14697
|
|
221. http://gcc.gnu.org/PR15869
|
|
222. http://gcc.gnu.org/PR16325
|
|
223. http://gcc.gnu.org/PR16357
|
|
224. http://gcc.gnu.org/PR16380
|
|
225. http://gcc.gnu.org/PR16407
|
|
226. http://gcc.gnu.org/PR16643
|
|
227. http://gcc.gnu.org/PR15927
|
|
228. http://gcc.gnu.org/PR15948
|
|
229. http://gcc.gnu.org/PR17019
|
|
230. http://gcc.gnu.org/PR16130
|
|
231. http://gcc.gnu.org/PR16142
|
|
232. http://gcc.gnu.org/PR16278
|
|
233. http://gcc.gnu.org/PR16414
|
|
234. http://gcc.gnu.org/PR16445
|
|
235. http://gcc.gnu.org/PR16490
|
|
236. http://gcc.gnu.org/PR16683
|
|
237. http://gcc.gnu.org/PR16195
|
|
238. http://gcc.gnu.org/PR16239
|
|
239. http://gcc.gnu.org/PR16199
|
|
240. http://gcc.gnu.org/PR16416
|
|
241. http://gcc.gnu.org/PR16430
|
|
242. http://gcc.gnu.org/PR16379
|
|
243. http://gcc.gnu.org/PR17093
|
|
244. http://gcc.gnu.org/PR17119
|
|
245. http://gcc.gnu.org/PR15928
|
|
246. http://gcc.gnu.org/PR16210
|
|
247. http://gcc.gnu.org/PR15488
|
|
248. http://gcc.gnu.org/PR16250
|
|
249. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3
|
|
250. http://gcc.gnu.org/PR17369
|
|
251. http://gcc.gnu.org/PR17850
|
|
252. http://gcc.gnu.org/PR13948
|
|
253. http://gcc.gnu.org/PR14492
|
|
254. http://gcc.gnu.org/PR16301
|
|
255. http://gcc.gnu.org/PR16566
|
|
256. http://gcc.gnu.org/PR17023
|
|
257. http://gcc.gnu.org/PR17027
|
|
258. http://gcc.gnu.org/PR17524
|
|
259. http://gcc.gnu.org/PR17826
|
|
260. http://gcc.gnu.org/PR15526
|
|
261. http://gcc.gnu.org/PR16999
|
|
262. http://gcc.gnu.org/PR17503
|
|
263. http://gcc.gnu.org/PR17581
|
|
264. http://gcc.gnu.org/PR18129
|
|
265. http://gcc.gnu.org/PR10975
|
|
266. http://gcc.gnu.org/PR11722
|
|
267. http://gcc.gnu.org/PR14534
|
|
268. http://gcc.gnu.org/PR15172
|
|
269. http://gcc.gnu.org/PR15786
|
|
270. http://gcc.gnu.org/PR16162
|
|
271. http://gcc.gnu.org/PR16612
|
|
272. http://gcc.gnu.org/PR16715
|
|
273. http://gcc.gnu.org/PR16848
|
|
274. http://gcc.gnu.org/PR17132
|
|
275. http://gcc.gnu.org/PR17259
|
|
276. http://gcc.gnu.org/PR17327
|
|
277. http://gcc.gnu.org/PR17393
|
|
278. http://gcc.gnu.org/PR17501
|
|
279. http://gcc.gnu.org/PR17537
|
|
280. http://gcc.gnu.org/PR17585
|
|
281. http://gcc.gnu.org/PR17821
|
|
282. http://gcc.gnu.org/PR17829
|
|
283. http://gcc.gnu.org/PR17851
|
|
284. http://gcc.gnu.org/PR17976
|
|
285. http://gcc.gnu.org/PR18020
|
|
286. http://gcc.gnu.org/PR18093
|
|
287. http://gcc.gnu.org/PR18140
|
|
288. http://gcc.gnu.org/PR17541
|
|
289. http://gcc.gnu.org/PR17853
|
|
290. http://gcc.gnu.org/PR17245
|
|
291. http://gcc.gnu.org/PR17167
|
|
292. http://gcc.gnu.org/PR17277
|
|
293. http://gcc.gnu.org/PR17505
|
|
294. http://gcc.gnu.org/PR17684
|
|
295. http://gcc.gnu.org/PR17384
|
|
296. http://gcc.gnu.org/PR17770
|
|
297. http://gcc.gnu.org/PR11476
|
|
298. http://gcc.gnu.org/PR14064
|
|
299. http://gcc.gnu.org/PR14678
|
|
300. http://gcc.gnu.org/PR15583
|
|
301. http://gcc.gnu.org/PR15790
|
|
302. http://gcc.gnu.org/PR15886
|
|
303. http://gcc.gnu.org/PR16884
|
|
304. http://gcc.gnu.org/PR13841
|
|
305. http://gcc.gnu.org/PR15860
|
|
306. http://gcc.gnu.org/PR17465
|
|
307. http://gcc.gnu.org/PR17469
|
|
308. http://gcc.gnu.org/PR18138
|
|
309. http://gcc.gnu.org/PR15498
|
|
310. http://gcc.gnu.org/PR15747
|
|
311. http://gcc.gnu.org/PR16406
|
|
312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4
|
|
313. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5
|
|
314. http://gcc.gnu.org/PR24688
|
|
315. http://gcc.gnu.org/PR17188
|
|
316. http://gcc.gnu.org/PR20187
|
|
317. http://gcc.gnu.org/PR21873
|
|
318. http://gcc.gnu.org/PR21899
|
|
319. http://gcc.gnu.org/PR22061
|
|
320. http://gcc.gnu.org/PR22208
|
|
321. http://gcc.gnu.org/PR22458
|
|
322. http://gcc.gnu.org/PR22589
|
|
323. http://gcc.gnu.org/PR24101
|
|
324. http://gcc.gnu.org/PR10611
|
|
325. http://gcc.gnu.org/PR13377
|
|
326. http://gcc.gnu.org/PR16002
|
|
327. http://gcc.gnu.org/PR17413
|
|
328. http://gcc.gnu.org/PR17609
|
|
329. http://gcc.gnu.org/PR17618
|
|
330. http://gcc.gnu.org/PR18124
|
|
331. http://gcc.gnu.org/PR18155
|
|
332. http://gcc.gnu.org/PR18177
|
|
333. http://gcc.gnu.org/PR18368
|
|
334. http://gcc.gnu.org/PR18378
|
|
335. http://gcc.gnu.org/PR18466
|
|
336. http://gcc.gnu.org/PR18512
|
|
337. http://gcc.gnu.org/PR18545
|
|
338. http://gcc.gnu.org/PR18738
|
|
339. http://gcc.gnu.org/PR18803
|
|
340. http://gcc.gnu.org/PR19004
|
|
341. http://gcc.gnu.org/PR19208
|
|
342. http://gcc.gnu.org/PR19253
|
|
343. http://gcc.gnu.org/PR19608
|
|
344. http://gcc.gnu.org/PR19884
|
|
345. http://gcc.gnu.org/PR20153
|
|
346. http://gcc.gnu.org/PR20563
|
|
347. http://gcc.gnu.org/PR20789
|
|
348. http://gcc.gnu.org/PR21336
|
|
349. http://gcc.gnu.org/PR21768
|
|
350. http://gcc.gnu.org/PR21853
|
|
351. http://gcc.gnu.org/PR21903
|
|
352. http://gcc.gnu.org/PR21983
|
|
353. http://gcc.gnu.org/PR21987
|
|
354. http://gcc.gnu.org/PR22153
|
|
355. http://gcc.gnu.org/PR22172
|
|
356. http://gcc.gnu.org/PR21286
|
|
357. http://gcc.gnu.org/PR22233
|
|
358. http://gcc.gnu.org/PR22508
|
|
359. http://gcc.gnu.org/PR22545
|
|
360. http://gcc.gnu.org/PR23528
|
|
361. http://gcc.gnu.org/PR23550
|
|
362. http://gcc.gnu.org/PR23586
|
|
363. http://gcc.gnu.org/PR23624
|
|
364. http://gcc.gnu.org/PR23639
|
|
365. http://gcc.gnu.org/PR23797
|
|
366. http://gcc.gnu.org/PR23965
|
|
367. http://gcc.gnu.org/PR24052
|
|
368. http://gcc.gnu.org/PR24580
|
|
369. http://gcc.gnu.org/PR24267
|
|
370. http://gcc.gnu.org/PR17810
|
|
371. http://gcc.gnu.org/PR17860
|
|
372. http://gcc/gnu.org/PR21709
|
|
373. http://gcc.gnu.org/PR21964
|
|
374. http://gcc.gnu.org/PR22167
|
|
375. http://gcc.gnu.org/PR22619
|
|
376. http://gcc.gnu.org/PR23241
|
|
377. http://gcc.gnu.org/PR23478
|
|
378. http://gcc.gnu.org/PR24470
|
|
379. http://gcc.gnu.org/PR24950
|
|
380. http://gcc.gnu.org/PR14400
|
|
381. http://gcc.gnu.org/PR14940
|
|
382. http://gcc.gnu.org/PR20239
|
|
383. http://gcc.gnu.org/PR15220
|
|
384. http://gcc.gnu.org/PR19275
|
|
385. http://gcc.gnu.org/PR21888
|
|
386. http://gcc.gnu.org/PR15342
|
|
387. http://gcc.gnu.org/PR23985
|
|
388. http://gcc.gnu.org/PR16719
|
|
389. http://gcc.gnu.org/PR21723
|
|
390. http://gcc.gnu.org/PR21841
|
|
391. http://gcc.gnu.org/PR23644
|
|
392. http://gcc.gnu.org/PR24718
|
|
393. http://gcc.gnu.org/PR18421
|
|
394. http://gcc.gnu.org/PR20621
|
|
395. http://gcc.gnu.org/PR18583
|
|
396. http://gcc.gnu.org/PR20191
|
|
397. http://gcc.gnu.org/PR22083
|
|
398. http://gcc.gnu.org/PR23070
|
|
399. http://gcc.gnu.org/PR23404
|
|
400. http://gcc.gnu.org/PR23539
|
|
401. http://gcc.gnu.org/PR24102
|
|
402. http://gcc.gnu.org/PR24465
|
|
403. http://gcc.gnu.org/PR19933
|
|
404. http://gcc.gnu.org/PR21889
|
|
405. http://gcc.gnu.org/PR19300
|
|
406. http://gcc.gnu.org/PR20301
|
|
407. http://gcc.gnu.org/PR20673
|
|
408. http://gcc.gnu.org/PR18582
|
|
409. http://gcc.gnu.org/PR19340
|
|
410. http://gcc.gnu.org/PR21716
|
|
411. http://gcc.gnu.org/PR24315
|
|
412. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6
|
|
413. mailto:gnu@gnu.org
|
|
414. http://www.gnu.org/home.html#ContactInfo
|
|
415. http://gcc.gnu.org/about.html
|
|
416. http://gcc.gnu.org/onlinedocs/
|
|
417. mailto:gcc-help@gcc.gnu.org
|
|
418. mailto:gcc@gnu.org
|
|
419. mailto:gcc@gcc.gnu.org
|
|
420. http://gcc.gnu.org/lists.html
|
|
421. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.3/index.html
|
|
|
|
GCC 3.3 Release Series
|
|
|
|
May 03, 2005
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 3.3.6.
|
|
|
|
This release is a bug-fix release, containing fixes for regressions in GCC
|
|
3.3.5 relative to previous releases of GCC.
|
|
|
|
This release is the last of the series 3.3.x.
|
|
|
|
The GCC 3.3 release series includes numerous [2]new features, improvements,
|
|
bug fixes, and other changes, thanks to an [3]amazing group of volunteers.
|
|
|
|
Release History
|
|
|
|
GCC 3.3.6
|
|
May 3, 2005 ([4]changes)
|
|
|
|
GCC 3.3.5
|
|
September 30, 2004 ([5]changes)
|
|
|
|
GCC 3.3.4
|
|
May 31, 2004 ([6]changes)
|
|
|
|
GCC 3.3.3
|
|
February 14, 2004 ([7]changes)
|
|
|
|
GCC 3.3.2
|
|
October 16, 2003 ([8]changes)
|
|
|
|
GCC 3.3.1
|
|
August 8, 2003 ([9]changes)
|
|
|
|
GCC 3.3
|
|
May 14, 2003 ([10]changes)
|
|
|
|
References and Acknowledgements
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
A list of [11]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, improvements, bug fixes, and other changes as well
|
|
as test results to GCC. This [12]amazing group of volunteers is what makes
|
|
GCC successful.
|
|
|
|
For additional information about GCC please refer to the [13]GCC project web
|
|
site or contact the [14]GCC development mailing list.
|
|
|
|
To obtain GCC please use [15]our mirror sites, one of the [16]GNU mirror
|
|
sites, or our CVS server.
|
|
|
|
Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There are
|
|
also [18]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [19]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [20]GCC manuals. If that fails, the [21]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. All of
|
|
our lists have [24]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [25]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://gcc.gnu.org/gcc-3.3/changes.html
|
|
3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
|
|
5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5
|
|
6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4
|
|
7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
|
|
8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
|
|
9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
|
|
10. http://gcc.gnu.org/gcc-3.3/changes.html
|
|
11. http://gcc.gnu.org/gcc-3.3/buildstat.html
|
|
12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
13. http://gcc.gnu.org/index.html
|
|
14. mailto:gcc@gcc.gnu.org
|
|
15. http://gcc.gnu.org/mirrors.html
|
|
16. http://www.gnu.org/order/ftp.html
|
|
17. mailto:gnu@gnu.org
|
|
18. http://www.gnu.org/home.html#ContactInfo
|
|
19. http://gcc.gnu.org/about.html
|
|
20. http://gcc.gnu.org/onlinedocs/
|
|
21. mailto:gcc-help@gcc.gnu.org
|
|
22. mailto:gcc@gnu.org
|
|
23. mailto:gcc@gcc.gnu.org
|
|
24. http://gcc.gnu.org/lists.html
|
|
25. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.3/changes.html
|
|
|
|
GCC 3.3 Release Series
|
|
Changes, New Features, and Fixes
|
|
|
|
The latest release in the 3.3 release series is [1]GCC 3.3.6.
|
|
|
|
Caveats
|
|
|
|
* The preprocessor no longer accepts multi-line string literals. They were
|
|
deprecated in 3.0, 3.1, and 3.2.
|
|
* The preprocessor no longer supports the -A- switch when appearing alone.
|
|
-A- followed by an assertion is still supported.
|
|
* Support for all the systems [2]obsoleted in GCC 3.1 has been removed
|
|
from GCC 3.3. See below for a [3]list of systems which are obsoleted in
|
|
this release.
|
|
* Checking for null format arguments has been decoupled from the rest of
|
|
the format checking mechanism. Programs which use the format attribute
|
|
may regain this functionality by using the new [4]nonnull function
|
|
attribute. Note that all functions for which GCC has a built-in format
|
|
attribute, an appropriate built-in nonnull attribute is also applied.
|
|
* The DWARF (version 1) debugging format has been deprecated and will be
|
|
removed in a future version of GCC. Version 2 of the DWARF debugging
|
|
format will continue to be supported for the foreseeable future.
|
|
* The C and Objective-C compilers no longer accept the "Naming Types"
|
|
extension (typedef foo = bar); it was already unavailable in C++. Code
|
|
which uses it will need to be changed to use the "typeof" extension
|
|
instead: typedef typeof(bar) foo. (We have removed this extension
|
|
without a period of deprecation because it has caused the compiler to
|
|
crash since version 3.0 and no one noticed until very recently. Thus we
|
|
conclude it is not in widespread use.)
|
|
* The -traditional C compiler option has been removed. It was deprecated
|
|
in 3.1 and 3.2. (Traditional preprocessing remains available.) The
|
|
header, used for writing variadic functions in traditional
|
|
C, still exists but will produce an error message if used.
|
|
* GCC 3.3.1 automatically places zero-initialized variables in the .bss
|
|
section on some operating systems. Versions of GNU Emacs up to (and
|
|
including) 21.3 will not work correctly when using this optimization;
|
|
you can use -fno-zero-initialized-in-bss to disable it.
|
|
|
|
General Optimizer Improvements
|
|
|
|
* A new scheme for accurately describing processor pipelines, the [5]DFA
|
|
scheduler, has been added.
|
|
* Pavel Nejedly, Charles University Prague, has contributed new file
|
|
format used by the edge coverage profiler (-fprofile-arcs).
|
|
The new format is robust and diagnoses common mistakes where profiles
|
|
from different versions (or compilations) of the program are combined
|
|
resulting in nonsensical profiles and slow code to produced with profile
|
|
feedback. Additionally this format allows extra data to be gathered.
|
|
Currently, overall statistics are produced helping optimizers to
|
|
identify hot spots of a program globally replacing the old
|
|
intra-procedural scheme and resulting in better code. Note that the gcov
|
|
tool from older GCC versions will not be able to parse the profiles
|
|
generated by GCC 3.3 and vice versa.
|
|
* Jan Hubicka, SuSE Labs, has contributed a new superblock formation pass
|
|
enabled using -ftracer. This pass simplifies the control flow of
|
|
functions allowing other optimizations to do better job.
|
|
He also contributed the function reordering pass (-freorder-functions)
|
|
to optimize function placement using profile feedback.
|
|
|
|
New Languages and Language specific improvements
|
|
|
|
C/ObjC/C++
|
|
|
|
* The preprocessor now accepts directives within macro arguments. It
|
|
processes them just as if they had not been within macro arguments.
|
|
* The separate ISO and traditional preprocessors have been completely
|
|
removed. The front end handles either type of preprocessed output if
|
|
necessary.
|
|
* In C99 mode preprocessor arithmetic is done in the precision of the
|
|
target's intmax_t, as required by that standard.
|
|
* The preprocessor can now copy comments inside macros to the output file
|
|
when the macro is expanded. This feature, enabled using the -CC option,
|
|
is intended for use by applications which place metadata or directives
|
|
inside comments, such as lint.
|
|
* The method of constructing the list of directories to be searched for
|
|
header files has been revised. If a directory named by a -I option is a
|
|
standard system include directory, the option is ignored to ensure that
|
|
the default search order for system directories and the special
|
|
treatment of system header files are not defeated.
|
|
* A few more [6]ISO C99 features now work correctly.
|
|
* A new function attribute, nonnull, has been added which allows pointer
|
|
arguments to functions to be specified as requiring a non-null value.
|
|
The compiler currently uses this information to issue a warning when it
|
|
detects a null value passed in such an argument slot.
|
|
* A new type attribute, may_alias, has been added. Accesses to objects
|
|
with types with this attribute are not subjected to type-based alias
|
|
analysis, but are instead assumed to be able to alias any other type of
|
|
objects, just like the char type.
|
|
|
|
C++
|
|
|
|
* Type based alias analysis has been implemented for C++ aggregate types.
|
|
|
|
Objective-C
|
|
|
|
* Generate an error if Objective-C objects are passed by value in function
|
|
and method calls.
|
|
* When -Wselector is used, check the whole list of selectors at the end of
|
|
compilation, and emit a warning if a @selector() is not known.
|
|
* Define __NEXT_RUNTIME__ when compiling for the NeXT runtime.
|
|
* No longer need to include objc/objc-class.h to compile self calls in
|
|
class methods (NeXT runtime only).
|
|
* New -Wundeclared-selector option.
|
|
* Removed selector bloating which was causing object files to be 10%
|
|
bigger on average (GNU runtime only).
|
|
* Using at run time @protocol() objects has been fixed in certain
|
|
situations (GNU runtime only).
|
|
* Type checking has been fixed and improved in many situations involving
|
|
protocols.
|
|
|
|
Java
|
|
|
|
* The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK 1.4)
|
|
API.
|
|
* The JDK 1.4 assert facility has been implemented.
|
|
* The bytecode interpreter is now direct threaded and thus faster.
|
|
|
|
Fortran
|
|
|
|
* Fortran improvements are listed in [7]the Fortran documentation.
|
|
|
|
Ada
|
|
|
|
* Ada tasking now works with glibc 2.3.x threading libraries.
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
* The following changes have been made to the HP-PA port:
|
|
+ The port now defaults to scheduling for the PA8000 series of
|
|
processors.
|
|
+ Scheduling support for the PA7300 processor has been added.
|
|
+ The 32-bit port now supports weak symbols under HP-UX 11.
|
|
+ The handling of initializers and finalizers has been improved under
|
|
HP-UX 11. The 64-bit port no longer uses collect2.
|
|
+ Dwarf2 EH support has been added to the 32-bit linux port.
|
|
+ ABI fixes to correct the passing of small structures by value.
|
|
* The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to use
|
|
the DFA processor pipeline description.
|
|
* The following NetBSD configurations for the SuperH processor family have
|
|
been added:
|
|
+ SH3, big-endian, sh-*-netbsdelf*
|
|
+ SH3, little-endian, shle-*-netbsdelf*
|
|
+ SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd*
|
|
+ SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd*
|
|
+ SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd*
|
|
+ SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd*
|
|
* The following changes have been made to the IA-32/x86-64 port:
|
|
+ SSE2 and 3dNOW! intrinsics are now supported.
|
|
+ Support for thread local storage has been added to the IA-32 and
|
|
x86-64 ports.
|
|
+ The x86-64 port has been significantly improved.
|
|
* The following changes have been made to the MIPS port:
|
|
+ All configurations now accept the -mabi switch. Note that you will
|
|
need appropriate multilibs for this option to work properly.
|
|
+ ELF configurations will always pass an ABI flag to the assembler,
|
|
except when the MIPS EABI is selected.
|
|
+ -mabi=64 no longer selects MIPS IV code.
|
|
+ The -mcpu option, which was deprecated in 3.1 and 3.2, has been
|
|
removed from this release.
|
|
+ -march now changes the core ISA level. In previous releases, it
|
|
would change the use of processor-specific extensions, but would
|
|
leave the core ISA unchanged. For example, mips64-elf -march=r8000
|
|
will now generate MIPS IV code.
|
|
+ Under most configurations, -mipsN now acts as a synonym for -march.
|
|
+ There are some new preprocessor macros to describe the -march and
|
|
-mtune settings. See the documentation of those options for
|
|
details.
|
|
+ Support for the NEC VR-Series processors has been added. This
|
|
includes the 54xx, 5500, and 41xx series.
|
|
+ Support for the Sandcraft sr71k processor has been added.
|
|
* The following changes have been made to the S/390 port:
|
|
+ Support to build the Java runtime libraries has been added. Java is
|
|
now enabled by default on s390-*-linux* and s390x-*-linux* targets.
|
|
+ Multilib support for the s390x-*-linux* target has been added; this
|
|
allows to build 31-bit binaries using the -m31 option.
|
|
+ Support for thread local storage has been added.
|
|
+ Inline assembler code may now use the 'Q' constraint to specify
|
|
memory operands without index register.
|
|
+ Various platform-specific performance improvements have been
|
|
implemented; in particular, the compiler now uses the BRANCH ON
|
|
COUNT family of instructions and makes more frequent use of the
|
|
TEST UNDER MASK family of instructions.
|
|
* The following changes have been made to the PowerPC port:
|
|
+ Support for IBM Power4 processor added.
|
|
+ Support for Motorola e500 SPE added.
|
|
+ Support for AIX 5.2 added.
|
|
+ Function and Data sections now supported on AIX.
|
|
+ Sibcall optimizations added.
|
|
* The support for H8 Tiny is added to the H8/300 port with -mn.
|
|
|
|
Obsolete Systems
|
|
|
|
Support for a number of older systems has been declared obsolete in GCC 3.3.
|
|
Unless there is activity to revive them, the next release of GCC will have
|
|
their sources permanently removed.
|
|
|
|
All configurations of the following processor architectures have been
|
|
declared obsolete:
|
|
* Matsushita MN10200, mn10200-*-*
|
|
* Motorola 88000, m88k-*-*
|
|
* IBM ROMP, romp-*-*
|
|
|
|
Also, some individual systems have been obsoleted:
|
|
* Alpha
|
|
+ Interix, alpha*-*-interix*
|
|
+ Linux libc1, alpha*-*-linux*libc1*
|
|
+ Linux ECOFF, alpha*-*-linux*ecoff*
|
|
* ARM
|
|
+ Generic a.out, arm*-*-aout*
|
|
+ Conix, arm*-*-conix*
|
|
+ "Old ABI," arm*-*-oabi
|
|
+ StrongARM/COFF, strongarm-*-coff*
|
|
* HPPA (PA-RISC)
|
|
+ Generic OSF, hppa1.0-*-osf*
|
|
+ Generic BSD, hppa1.0-*-bsd*
|
|
+ HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]*
|
|
+ HiUX, hppa*-*-hiux*
|
|
+ Mach Lites, hppa*-*-lites*
|
|
* Intel 386 family
|
|
+ Windows NT 3.x, i?86-*-win32
|
|
* MC68000 family
|
|
+ HP systems, m68000-hp-bsd* and m68k-hp-bsd*
|
|
+ Sun systems, m68000-sun-sunos*, m68k-sun-sunos*, and m68k-sun-mach*
|
|
+ AT&T systems, m68000-att-sysv*
|
|
+ Atari systems, m68k-atari-sysv*
|
|
+ Motorola systems, m68k-motorola-sysv*
|
|
+ NCR systems, m68k-ncr-sysv*
|
|
+ Plexus systems, m68k-plexus-sysv*
|
|
+ Commodore systems, m68k-cbm-sysv*
|
|
+ Citicorp TTI, m68k-tti-*
|
|
+ Unos, m68k-crds-unos*
|
|
+ Concurrent RTU, m68k-ccur-rtu*
|
|
+ Linux a.out, m68k-*-linux*aout*
|
|
+ Linux libc1, m68k-*-linux*libc1*
|
|
+ pSOS, m68k-*-psos*
|
|
* MIPS
|
|
+ Generic ECOFF, mips*-*-ecoff*
|
|
+ SINIX, mips-sni-sysv4
|
|
+ Orion RTEMS, mips64orion-*-rtems*
|
|
* National Semiconductor 32000
|
|
+ OpenBSD, ns32k-*-openbsd*
|
|
* POWER (aka RS/6000) and PowerPC
|
|
+ AIX versions 1, 2, and 3, rs6000-ibm-aix[123]*
|
|
+ Bull BOSX, rs6000-bull-bosx
|
|
+ Generic Mach, rs6000-*-mach*
|
|
+ Generic SysV, powerpc*-*-sysv*
|
|
+ Linux libc1, powerpc*-*-linux*libc1*
|
|
* Sun SPARC
|
|
+ Generic a.out, sparc-*-aout*, sparclet-*-aout*, sparclite-*-aout*,
|
|
and sparc86x-*-aout*
|
|
+ NetBSD a.out, sparc-*-netbsd*aout*
|
|
+ Generic BSD, sparc-*-bsd*
|
|
+ ChorusOS, sparc-*-chorusos*
|
|
+ Linux a.out, sparc-*-linux*aout*
|
|
+ Linux libc1, sparc-*-linux*libc1*
|
|
+ LynxOS, sparc-*-lynxos*
|
|
+ Solaris on HAL hardware, sparc-hal-solaris2*
|
|
+ SunOS versions 3 and 4, sparc-*-sunos[34]*
|
|
* NEC V850
|
|
+ RTEMS, v850-*-rtems*
|
|
* VAX
|
|
+ VMS, vax-*-vms*
|
|
|
|
Documentation improvements
|
|
|
|
Other significant improvements
|
|
|
|
* Almost all front-end dependencies in the compiler have been separated
|
|
out into a set of language hooks. This should make adding a new front
|
|
end clearer and easier.
|
|
* One effect of removing the separate preprocessor is a small increase in
|
|
the robustness of the compiler in general, and the maintainability of
|
|
target descriptions. Previously target-specific built-in macros and
|
|
others, such as __FAST_MATH__, had to be handled with so-called specs
|
|
that were hard to maintain. Often they would fail to behave properly
|
|
when conflicting options were supplied on the command line, and define
|
|
macros in the user's namespace even when strict ISO compliance was
|
|
requested. Integrating the preprocessor has cleanly solved these issues.
|
|
* The Makefile suite now supports redirection of make install by means of
|
|
the variable DESTDIR.
|
|
_________________________________________________________________
|
|
|
|
GCC 3.3
|
|
|
|
Detailed release notes for the GCC 3.3 release follow.
|
|
|
|
Bug Fixes
|
|
|
|
bootstrap failures
|
|
|
|
* [8]10140 cross compiler build failures: missing __mempcpy (DUP:
|
|
[9]10198,[10]10338)
|
|
|
|
Internal compiler errors (multi-platform)
|
|
|
|
* [11]3581 large string causes segmentation fault in cc1
|
|
* [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
|
|
* [13]5533 (c++) ICE when processing std::accumulate(begin, end, init,
|
|
invalid_op)
|
|
* [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
|
|
* [15]6412 (c++) ICE in retrieve_specialization
|
|
* [16]6620 (c++) partial template specialization causes an ICE
|
|
(segmentation fault)
|
|
* [17]6663 (c++) ICE with attribute aligned
|
|
* [18]7068 ICE with incomplete types
|
|
* [19]7083 (c++) ICE using -gstabs with dodgy class derivation
|
|
* [20]7647 (c++) ICE when data member has the name of the enclosing class
|
|
* [21]7675 ICE in fixup_var_refs_1
|
|
* [22]7718 'complex' template instantiation causes ICE
|
|
* [23]8116 (c++) ICE in member template function
|
|
* [24]8358 (ada) Ada compiler accesses freed memory, crashes
|
|
* [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation fault
|
|
* [26]8564 (c++) ICE in find_function_data, in function.c
|
|
* [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
|
|
* [28]8766 (c++) ICE after failed initialization of static template
|
|
variable
|
|
* [29]8803 ICE in instantiate_virtual_regs_1, in function.c
|
|
* [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
|
|
* [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class
|
|
definition
|
|
* [32]9216 (c++) ICE on missing template parameter
|
|
* [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c
|
|
* [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO loop
|
|
* [35]9429 (c++) ICE in template instantiation with a pointered new
|
|
operator
|
|
* [36]9516 Internal error when using a big array
|
|
* [37]9600 (c++) ICE with typedefs in template class
|
|
* [38]9629 (c++) virtual inheritance segfault
|
|
* [39]9672 (c++) ICE: Error reporting routines re-entered
|
|
* [40]9749 (c++) ICE in write_expression on invalid function prototype
|
|
* [41]9794 (fortran) ICE: floating point exception during constant folding
|
|
* [42]9829 (c++) Missing colon in nested namespace usage causes ICE
|
|
* [43]9916 (c++) ICE with noreturn function in ?: statement
|
|
* [44]9936 ICE with local function and variable-length 2d array
|
|
* [45]10262 (c++) cc1plus crashes with large generated code
|
|
* [46]10278 (c++) ICE in parser for invalid code
|
|
* [47]10446 (c++) ICE on definition of nonexistent member function of
|
|
nested class in a class template
|
|
* [48]10451 (c++) ICE in grokdeclarator on spurious mutable declaration
|
|
* [49]10506 (c++) ICE in build_new at cp/init.c with
|
|
-fkeep-inline-functions and multiple inheritance
|
|
* [50]10549 (c++) ICE in store_bit_field on bitfields that exceed the
|
|
precision of the declared type
|
|
|
|
Optimization bugs
|
|
|
|
* [51]2001 Inordinately long compile times in reload CSE regs
|
|
* [52]2391 Exponential compilation time explosion in combine
|
|
* [53]2960 Duplicate loop conditions even with -Os
|
|
* [54]4046 redundant conditional branch
|
|
* [55]6405 Loop-unrolling related performance regressions
|
|
* [56]6798 very long compile time with large case-statement
|
|
* [57]6871 const objects shouldn't be moved to .bss
|
|
* [58]6909 problem w/ -Os on modified loop-2c.c test case
|
|
* [59]7189 gcc -O2 -Wall does not print ``control reaches end of non-void
|
|
function'' warning
|
|
* [60]7642 optimization problem with signbit()
|
|
* [61]8634 incorrect code for inlining of memcpy under -O2
|
|
* [62]8750 Cygwin prolog generation erroneously emitting __alloca as
|
|
regular function call
|
|
|
|
C front end
|
|
|
|
* [63]2161 long if-else cascade overflows parser stack
|
|
* [64]4319 short accepted on typedef'd char
|
|
* [65]8602 incorrect line numbers in warning messages when using inline
|
|
functions
|
|
* [66]9177 -fdump-translation-unit: C front end deletes function_decl AST
|
|
nodes and breaks debugging dumps
|
|
* [67]9853 miscompilation of non-constant structure initializer
|
|
|
|
c++ compiler and library
|
|
|
|
* [68]45 legal template specialization code is rejected (DUP: [69]3784)
|
|
* [70]764 lookup failure: friend operator and dereferencing a pointer and
|
|
templates (DUP: [71]5116)
|
|
* [72]2862 gcc accepts invalid explicit instantiation syntax (DUP: 2863)
|
|
* [73]3663 G++ doesn't check access control during template instantiation
|
|
* [74]3797 gcc fails to emit explicit specialization of a template member
|
|
* [75]3948 Two destructors are called when no copy destructor is defined
|
|
(ABI change)
|
|
* [76]4137 Conversion operator within template is not accepted
|
|
* [77]4361 bogus ambiguity taking the address of a member template
|
|
* [78]4802 g++ accepts illegal template code (access to private member;
|
|
DUP: [79]5837)
|
|
* [80]4803 inline function is used but never defined, and g++ does not
|
|
object
|
|
* [81]5094 Partial specialization cannot be friend?
|
|
* [82]5730 complex::norm() -- huge slowdown from egcs-2.91.66
|
|
* [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run time
|
|
* [84]7015 certain __asm__ constructs rejected
|
|
* [85]7086 compile time regression (quadratic behavior in fixup_var_refs)
|
|
* [86]7099 G++ doesn't set the noreturn attribute on std::exit and
|
|
std::abort
|
|
* [87]7247 copy constructor missing when inlining enabled (invalid
|
|
optimization?)
|
|
* [88]7441 string array initialization compilation time regression from
|
|
seconds to minutes
|
|
* [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong
|
|
* [90]7804 bad printing of floating point constant in warning message
|
|
* [91]8099 Friend classes and template specializations
|
|
* [92]8117 member function pointers and multiple inheritance
|
|
* [93]8205 using declaration and multiple inheritance
|
|
* [94]8645 unnecessary non-zero checks in stl_tree.h
|
|
* [95]8724 explicit destructor call for incomplete class allowed
|
|
* [96]8805 compile time regression with many member variables
|
|
* [97]8691 -O3 and -fno-implicit-templates are incompatible
|
|
* [98]8700 unhelpful error message for binding temp to reference
|
|
* [99]8724 explicit destructor call for incomplete class allowed
|
|
* [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems
|
|
* [101]9016 Failure to consistently constant fold "constant" C++ objects
|
|
* [102]9053 g++ confused about ambiguity of overloaded function templates
|
|
* [103]9152 undefined virtual thunks
|
|
* [104]9182 basic_filebuf<> does not report errors in codecvt<>::out
|
|
* [105]9297 data corruption due to codegen bug (when copying.)
|
|
* [106]9318 i/ostream::operator>>/<<(streambuf*) broken
|
|
* [107]9320 Incorrect usage of traits_type::int_type in stdio_filebuf
|
|
* [108]9400 bogus -Wshadow warning: shadowed declaration of this in local
|
|
classes
|
|
* [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters
|
|
* [110]9425 filebuf::pbackfail broken (DUP: [111]9439)
|
|
* [112]9474 GCC freezes in compiling a weird code mixing and
|
|
|
|
* [113]9548 Incorrect results from setf(ios::fixed) and precision(-1)
|
|
[114][DR 231]
|
|
* [115]9555 ostream inserters fail to set badbit on exception
|
|
* [116]9561 ostream inserters rethrow exception of wrong type
|
|
* [117]9563 ostream::sentry returns true after a failed preparation
|
|
* [118]9582 one-definition rule violation in std::allocator
|
|
* [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors
|
|
* [120]9683 bug in initialization chains for static const variables from
|
|
template classes
|
|
* [121]9791 -Woverloaded-virtual reports hiding of destructor
|
|
* [122]9817 collate::compare doesn't handle nul characters
|
|
* [123]9825 filebuf::sputbackc breaks sbumpc
|
|
* [124]9826 operator>>(basic_istream, basic_string) fails to compile with
|
|
custom traits
|
|
* [125]9924 Multiple using statements for builtin functions not allowed
|
|
* [126]9946 destructor is not called for temporary object
|
|
* [127]9964 filebuf::close() sometimes fails to close file
|
|
* [128]9988 filebuf::overflow writes EOF to file
|
|
* [129]10033 optimization breaks polymorphic references w/ typeid operator
|
|
* [130]10097 filebuf::underflow drops characters
|
|
* [131]10132 filebuf destructor can throw exceptions
|
|
* [132]10180 gcc fails to warn about non-inlined function
|
|
* [133]10199 method parametrized by template does not work everywhere
|
|
* [134]10300 use of array-new (nothrow) in segfaults on NULL return
|
|
* [135]10427 Stack corruption with variable-length automatic arrays and
|
|
virtual destructors
|
|
* [136]10503 Compilation never stops in fixed_type_or_null
|
|
|
|
Objective-C
|
|
|
|
* [137]5956 selectors aren't matched properly when added to the selector
|
|
table
|
|
|
|
Fortran compiler and library
|
|
|
|
* [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't
|
|
detect
|
|
* [139]3924 g77 generates code that is rejected by GAS if COFF debug info
|
|
requested
|
|
* [140]5634 doc: explain that configure --prefix=~/... does not work
|
|
* [141]6367 multiple repeat counts confuse namelist read into array
|
|
* [142]6491 Logical operations error on logicals when using -fugly-logint
|
|
* [143]6742 Generation of C++ Prototype for FORTRAN and extern "C"
|
|
* [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os on
|
|
irix6.5
|
|
* [145]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a
|
|
direct access file
|
|
* [146]7278 g77 "bug"; the executable misbehaves (with -O2 -fno-automatic)
|
|
* [147]7384 DATE_AND_TIME milliseconds field inactive on Windows
|
|
* [148]7388 Incorrect output with 0-based array of characters
|
|
* [149]8587 Double complex zero ** double precision number -> NaN instead
|
|
of zero
|
|
* [150]9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning:
|
|
unknown register name line-length-none
|
|
* [151]10197 Direct access files not unformatted by default
|
|
|
|
Java compiler and library
|
|
|
|
* [152]6005 gcj fails to build rhug on alpha
|
|
* [153]6389 System.getProperty("") should always throw an
|
|
IllegalArgumentException
|
|
* [154]6576 java.util.ResourceBundle.getResource ignores locale
|
|
* [155]6652 new java.io.File("").getCanonicalFile() throws exception
|
|
* [156]7060 getMethod() doesn't search super interface
|
|
* [157]7073 bytecode interpreter gives wrong answer for interface
|
|
getSuperclass()
|
|
* [158]7180 possible bug in javax.naming.spi.NamingManager.getPlusPath()
|
|
* [159]7416 java.security startup refs "GNU libgcj.security"
|
|
* [160]7570 Runtime.exec with null envp: child doesn't inherit parent env
|
|
(DUP: [161]7578)
|
|
* [162]7611 Internal error while compiling libjava with -O
|
|
* [163]7709 NullPointerException in _Jv_ResolvePoolEntry
|
|
* [164]7766 ZipInputStream.available returns 0 immediately after
|
|
construction
|
|
* [165]7785 Calendar.getTimeInMillis/setTimeInMillis should be public
|
|
* [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
|
|
* [167]8142 '$' in class names vs. dlopen 'dynamic string tokens'
|
|
* [168]8234 ZipInputStream chokes when InputStream.read() returns small
|
|
chunks
|
|
* [169]8415 reflection bug: exception info for Method
|
|
* [170]8481 java.Random.nextInt(int) may return negative
|
|
* [171]8593 Error reading GZIPped files with BufferedReader
|
|
* [172]8759 java.beans.Introspector has no flushCaches() or
|
|
flushFromCaches() methods
|
|
* [173]8997 spin() calls Thread.sleep
|
|
* [174]9253 on win32, java.io.File.listFiles("C:\\") returns pwd instead
|
|
of the root content of C:
|
|
* [175]9254 java::lang::Object::wait(), threads-win32.cc returns wrong
|
|
return codes
|
|
* [176]9271 Severe bias in java.security.SecureRandom
|
|
|
|
Ada compiler and library
|
|
|
|
* [177]6767 make gnatlib-shared fails on -laddr2line
|
|
* [178]9911 gnatmake fails to link when GCC configured with
|
|
--with-sjlj-exceptions=yes
|
|
* [179]10020 Can't bootstrap gcc on AIX with Ada enabled
|
|
* [180]10546 Ada tasking not working on Red Hat 9
|
|
|
|
preprocessor
|
|
|
|
* [181]7029 preprocessor should ignore #warning with -M
|
|
|
|
ARM-specific
|
|
|
|
* [182]2903 [arm] Optimization bug with long long arithmetic
|
|
* [183]7873 arm-linux-gcc fails when assigning address to a bit field
|
|
|
|
FreeBSD-specific
|
|
|
|
* [184]7680 float functions undefined in math.h/cmath with #define
|
|
_XOPEN_SOURCE
|
|
|
|
HP-UX or HP-PA-specific
|
|
|
|
* [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
|
|
* [186]9986 [HP-UX] Incorrect transformation of fputs_unlocked to
|
|
fputc_unlocked
|
|
* [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
|
|
|
|
m68hc11-specific
|
|
|
|
* [188]6744 Bad assembler code generated: reference to pseudo register z
|
|
* [189]7361 Internal compiler error in reload_cse_simplify_operands, in
|
|
reload1.c
|
|
|
|
MIPS-specific
|
|
|
|
* [190]9496 [mips-linux] bug in optimizer?
|
|
|
|
PowerPC-specific
|
|
|
|
* [191]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of
|
|
space
|
|
* [192]8480 reload ICEs for LAPACK code on powerpc64-linux
|
|
* [193]8784 [AIX] Internal compiler error in simplify_gen_subreg
|
|
* [194]10315 [powerpc] ICE: in extract_insn, in recog.c
|
|
|
|
SPARC-specific
|
|
|
|
* [195]10267 (documentation) Wrong build instructions for *-*-solaris2*
|
|
|
|
x86-specific (Intel/AMD)
|
|
|
|
* [196]7916 ICE in instantiate_virtual_register_1
|
|
* [197]7926 (c++) i486 instructions in header files make c++ programs
|
|
crash on i386
|
|
* [198]8555 ICE in gen_split_1231
|
|
* [199]8994 ICE with -O -march=pentium4
|
|
* [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs
|
|
* [201]9806 ICE in inline assembly with -fPIC flag
|
|
* [202]10077 gcc -msse2 generates movd to move dwords between xmm regs
|
|
* [203]10233 64-bit comparison only comparing bottom 32-bits
|
|
* [204]10286 type-punning doesn't work with __m64 and -O
|
|
* [205]10308 [x86] ICE with -O -fgcse or -O2
|
|
_________________________________________________________________
|
|
|
|
GCC 3.3.1
|
|
|
|
Bug Fixes
|
|
|
|
This section lists the problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 3.3.1 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here).
|
|
|
|
Bootstrap failures
|
|
|
|
* [206]11272 [Solaris] make bootstrap fails while building libstdc++
|
|
|
|
Internal compiler errors (multi-platform)
|
|
|
|
* [207]5754 ICE on invalid nested template class
|
|
* [208]6597 ICE in set_mem_alias_set compiling Qt with -O2 on ia64 and
|
|
--enable-checking
|
|
* [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c
|
|
* [210]7053 (c++) ICE when declaring a function already defined as a
|
|
friend method of a template class
|
|
* [211]8164 (c++) ICE when using different const expressions as template
|
|
parameter
|
|
* [212]8384 (c++) ICE in is_base_type, in dwarf2out.c
|
|
* [213]9559 (c++) ICE with invalid initialization of a static const
|
|
* [214]9649 (c++) ICE in finish_member_declaration, in cp/semantics.c when
|
|
redeclaring a static member variable
|
|
* [215]9864 (fortran) ICE in add_abstract_origin_attribute, in dwarfout.c
|
|
with -g -O -finline-functions
|
|
* [216]10432 (c++) ICE in poplevel, in cp/decl.c
|
|
* [217]10475 ICE in subreg_highpart_offset for code with long long
|
|
* [218]10635 (c++) ICE when dereferencing an incomplete type casted from a
|
|
void pointer
|
|
* [219]10661 (c++) ICE in instantiate_decl, in cp/pt.c while instantiating
|
|
static member variables
|
|
* [220]10700 ICE in copy_to_mode_reg on 64-bit targets
|
|
* [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c
|
|
* [222]10796 (c++) ICE when defining an enum with two values: -1 and
|
|
MAX_INT_64BIT
|
|
* [223]10890 ICE in merge_assigned_reloads building Linux 2.4.2x sched.c
|
|
* [224]10939 (c++) ICE with template code
|
|
* [225]10956 (c++) ICE when specializing a template member function of a
|
|
template class, in tsubst, in cp/pt.c
|
|
* [226]11041 (c++) ICE: const myclass &x = *x; (when operator*() defined)
|
|
* [227]11059 (c++) ICE with empty union
|
|
* [228]11083 (c++) ICE in commit_one_edge_insertion, in cfgrtl.c with -O2
|
|
-fnon-call-exceptions
|
|
* [229]11105 (c++) ICE in mangle_conv_op_name_for_type
|
|
* [230]11149 (c++) ICE on error when instantiation with call function of a
|
|
base type
|
|
* [231]11228 (c++) ICE on new-expression using array operator new and
|
|
default-initialization
|
|
* [232]11282 (c++) Infinite memory usage after syntax error
|
|
* [233]11301 (fortran) ICE with -fno-globals
|
|
* [234]11308 (c++) ICE when using an enum type name as if it were a class
|
|
or namespace
|
|
* [235]11473 (c++) ICE with -gstabs when empty struct inherits from an
|
|
empty struct
|
|
* [236]11503 (c++) ICE when instantiating template with ADDR_EXPR
|
|
* [237]11513 (c++) ICE in push_template_decl_real, in cp/pt.c: template
|
|
member functions
|
|
|
|
Optimization bugs
|
|
|
|
* [238]11198 -O2 -frename-registers generates wrong code (aliasing
|
|
problem)
|
|
* [239]11304 Wrong code production with -fomit-frame-pointer
|
|
* [240]11381 volatile memory access optimized away
|
|
* [241]11536 [strength-reduce] -O2 optimization produces wrong code
|
|
* [242]11557 constant folding bug generates wrong code
|
|
|
|
C front end
|
|
|
|
* [243]5897 No warning for statement after return
|
|
* [244]11279 DWARF-2 output mishandles large enums
|
|
|
|
Preprocessor bugs
|
|
|
|
* [245]11022 no warning for non-compatible macro redefinition
|
|
|
|
C++ compiler and library
|
|
|
|
* [246]2330 static_cast<>() to a private base is allowed
|
|
* [247]5388 Incorrect message "operands to ?: have different types"
|
|
* [248]5390 Libiberty fails to demangle multi-digit template parameters
|
|
* [249]7877 Incorrect parameter passing to specializations of member
|
|
function templates
|
|
* [250]9393 Anonymous namespaces and compiling the same file twice
|
|
* [251]10032 -pedantic converts some errors to warnings
|
|
* [252]10468 const typeof(x) is non-const, but only in templates
|
|
* [253]10527 confused error message with "new int()" parameter initializer
|
|
* [254]10679 parameter MIN_INLINE_INSNS is not honored
|
|
* [255]10682 gcc chokes on a typedef for an enum inside a class template
|
|
* [256]10689 pow(std::complex(0),1/3) returns (nan, nan) instead of 0.
|
|
* [257]10845 template member function (with nested template as parameter)
|
|
cannot be called anymore if another unrelated template member function
|
|
is defined
|
|
* [258]10849 Cannot define an out-of-class specialization of a private
|
|
nested template class
|
|
* [259]10888 Suppress -Winline warnings for system headers
|
|
* [260]10929 -Winline warns about functions for which no definition is
|
|
visible
|
|
* [261]10931 valid conversion static_cast
|
|
int&>(lvalue-of-type-int) is rejected
|
|
* [262]10940 Bad code with explicit specialization
|
|
* [263]10968 If member function implicitly instantiated, explicit
|
|
instantiation of class fails to instantiate it
|
|
* [264]10990 Cannot convert with dynamic_cast<> to a private base class
|
|
from within a member function
|
|
* [265]11039 Bad interaction between implicit typename deprecation and
|
|
friendship
|
|
* [266]11062 (libstdc++) avoid __attribute__ ((unused)); say "__unused__"
|
|
instead
|
|
* [267]11095 C++ iostream manipulator causes segfault when called with
|
|
negative argument
|
|
* [268]11098 g++ doesn't emit complete debugging information for local
|
|
variables in destructors
|
|
* [269]11137 Linux shared library constructors not called unless there's
|
|
one global object
|
|
* [270]11154 spurious ambiguity report for template class specialization
|
|
* [271]11329 Compiler cannot find user defined implicit typecast
|
|
* [272]11332 Spurious error with casts in ?: expression
|
|
* [273]11431 static_cast behavior with subclasses when default constructor
|
|
available
|
|
* [274]11528 money_get facet does not accept "$.00" as valid
|
|
* [275]11546 Type lookup problems in out-of-line definition of a class
|
|
doubly nested from a template class
|
|
* [276]11567 C++ code containing templated member function with same name
|
|
as pure virtual member function results in linking failure
|
|
* [277]11645 Failure to deal with using and private inheritance
|
|
|
|
Java compiler and library
|
|
|
|
* [278]5179 Qualified static field access doesn't initialize its class
|
|
* [279]8204 gcj -O2 to native reorders certain instructions improperly
|
|
* [280]10838 java.io.ObjectInputStream syntax error
|
|
* [281]10886 The RMI registry that comes with GCJ does not work correctly
|
|
* [282]11349 JNDI URL context factories not located correctly
|
|
|
|
x86-specific (Intel/AMD)
|
|
|
|
* [283]4823 ICE on inline assembly code
|
|
* [284]8878 miscompilation with -O and SSE
|
|
* [285]9815 (c++ library) atomicity.h - fails to compile with -O3
|
|
-masm=intel
|
|
* [286]10402 (inline assembly) [x86] ICE in merge_assigned_reloads, in
|
|
reload1.c
|
|
* [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2
|
|
* [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source
|
|
* [289]11044 [x86] out of range loop instructions for FP code on K6
|
|
* [290]11089 ICE: instantiate_virtual_regs_lossage while using SSE
|
|
built-ins
|
|
* [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC" is
|
|
used
|
|
|
|
SPARC- or Solaris- specific
|
|
|
|
* [292]9362 solaris 'as' dies when fed .s and "-gstabs"
|
|
* [293]10142 [SPARC64] gcc produces wrong code when passing structures by
|
|
value
|
|
* [294]10663 New configure check aborts with Sun tools.
|
|
* [295]10835 combinatorial explosion in scheduler on HyperSPARC
|
|
* [296]10876 ICE in calculate_giv_inc when building KDE
|
|
* [297]10955 wrong code at -O3 for structure argument in context of
|
|
structure return
|
|
* [298]11018 -mcpu=ultrasparc busts tar-1.13.25
|
|
* [299]11556 [sparc64] ICE in gen_reg_rtx() while compiling 2.6.x Linux
|
|
kernel
|
|
|
|
ia64 specific
|
|
|
|
* [300]10907 gcc violates the ia64 ABI (GP must be preserved)
|
|
* [301]11320 scheduler bug (in machine depended reorganization pass)
|
|
* [302]11599 bug with conditional and __builtin_prefetch
|
|
|
|
PowerPC specific
|
|
|
|
* [303]9745 [powerpc] gcc mis-compiles libmcrypt (alias problem during
|
|
loop)
|
|
* [304]10871 error in rs6000_stack_info save_size computation
|
|
* [305]11440 gcc mis-compiles c++ code (libkhtml) with -O2, -fno-gcse
|
|
cures it
|
|
|
|
m68k-specific
|
|
|
|
* [306]7594 [m68k] ICE on legal code associated with simplify-rtx
|
|
* [307]10557 [m68k] ICE in subreg_offset_representable_p
|
|
* [308]11054 [m68k] ICE in reg_overlap_mentioned_p
|
|
|
|
ARM-specific
|
|
|
|
* [309]10834 [arm] GCC 3.3 still generates incorrect instructions for
|
|
functions with __attribute__ ((interrupt ("IRQ")))
|
|
* [310]10842 [arm] Clobbered link register is copied to pc under certain
|
|
circumstances
|
|
* [311]11052 [arm] noce_process_if_block() can lose REG_INC notes
|
|
* [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno (3.4)
|
|
|
|
MIPS-specific
|
|
|
|
* [313]11084 ICE in propagate_one_insn, in flow.c
|
|
|
|
SH-specific
|
|
|
|
* [314]10331 can't compile c++ part of gcc cross compiler for sh-elf
|
|
* [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c
|
|
* [316]11096 i686-linux to sh-linux cross compiler fails to compile C++
|
|
files
|
|
|
|
GNU/Linux (or Hurd?) specific
|
|
|
|
* [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3
|
|
|
|
UnixWare specific
|
|
|
|
* [318]3163 configure bug: gcc/aclocal.m4 mmap test fails on UnixWare
|
|
7.1.1
|
|
|
|
Cygwin (or mingw) specific
|
|
|
|
* [319]5287 ICE with dllimport attribute
|
|
* [320]10148 [MingW/CygWin] Compiler dumps core
|
|
|
|
DJGPP specific
|
|
|
|
* [321]8787 GCC fails to emit .intel_syntax when invoked with -masm=intel
|
|
on DJGPP
|
|
|
|
Darwin (and MacOS X) specific
|
|
|
|
* [322]10900 trampolines crash
|
|
|
|
Documentation
|
|
|
|
* [323]1607 (c++) Format attributes on methods undocumented
|
|
* [324]4252 Invalid option `-fdump-translation-unit'
|
|
* [325]4490 Clarify restrictions on -m96bit-long-double,
|
|
-m128bit-long-double
|
|
* [326]10355 document an issue with regparm attribute on some systems
|
|
(e.g. Solaris)
|
|
* [327]10726 (fortran) Documentation for function "IDate Intrinsic (Unix)"
|
|
is wrong
|
|
* [328]10805 document bug in old version of Sun assembler
|
|
* [329]10815 warn against GNU binutils on AIX
|
|
* [330]10877 document need for newer binutils on i?86-*-linux-gnu
|
|
* [331]11280 Manual incorrect with respect to -freorder-blocks
|
|
* [332]11466 Document -mlittle-endian and its restrictions for the sparc64
|
|
port
|
|
|
|
Testsuite bugs (compiler itself is not affected)
|
|
|
|
* [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly
|
|
report failure
|
|
* [334]10810 gcc-3.3 fails make check: buffer overrun in test_demangle.c
|
|
_________________________________________________________________
|
|
|
|
GCC 3.3.2
|
|
|
|
Bug Fixes
|
|
|
|
This section lists the problem reports (PRs) from [335]GCC's bug tracking
|
|
system that are known to be fixed in the 3.3.2 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
|
|
Bootstrap failures and problems
|
|
|
|
* [336]8336 [SCO5] bootstrap config still tries to use COFF options
|
|
* [337]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with
|
|
--enable-threads=posix
|
|
* [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap
|
|
* [339]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare
|
|
7.1.1)
|
|
* [340]11687 xstormy16-elf build fails in libf2c
|
|
* [341]12263 [SGI IRIX] bootstrap fails during compile of
|
|
libf2c/libI77/backspace.c
|
|
* [342]12490 buffer overflow in scan-decls.c (during Solaris 9 fix-header
|
|
processing)
|
|
|
|
Internal compiler errors (multi-platform)
|
|
|
|
* [343]7277 Casting integers to vector types causes ICE
|
|
* [344]7939 (c++) ICE on invalid function template specialization
|
|
* [345]11063 (c++) ICE on parsing initialization list of const array
|
|
member
|
|
* [346]11207 ICE with negative index in array element designator
|
|
* [347]11522 (fortran) g77 dwarf-2 ICE in add_abstract_origin_attribute
|
|
* [348]11595 (c++) ICE on duplicate label definition
|
|
* [349]11646 (c++) ICE in commit_one_edge_insertion with
|
|
-fnon-call-exceptions -fgcse -O
|
|
* [350]11665 ICE in struct initializer when taking address
|
|
* [351]11852 (c++) ICE with bad struct initializer.
|
|
* [352]11878 (c++) ICE in cp_expr_size
|
|
* [353]11883 ICE with any -O on mercury-generated C code
|
|
* [354]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in cp/typeck2.c
|
|
when applying typeid operator to template template parameter
|
|
* [355]12146 ICE in lookup_template_function, in cp/pt.c
|
|
* [356]12215 ICE in make_label_edge with -fnon-call-exceptions -fno-gcse
|
|
-O2
|
|
* [357]12369 (c++) ICE with templates and friends
|
|
* [358]12446 ICE in emit_move_insn on complicated array reference
|
|
* [359]12510 ICE in final_scan_insn
|
|
* [360]12544 ICE with large parameters used in nested functions
|
|
|
|
C and optimization bugs
|
|
|
|
* [361]9862 spurious warnings with -W -finline-functions
|
|
* [362]10962 lookup_field is a linear search on a linked list (can be slow
|
|
if large struct)
|
|
* [363]11370 -Wunreachable-code gives false complaints
|
|
* [364]11637 invalid assembly with -fnon-call-exceptions
|
|
* [365]11885 Problem with bitfields in packed structs
|
|
* [366]12082 Inappropriate unreachable code warnings
|
|
* [367]12180 Inline optimization fails for variadic function
|
|
* [368]12340 loop unroller + gcse produces wrong code
|
|
|
|
C++ compiler and library
|
|
|
|
* [369]3907 nested template parameter collides with member name
|
|
* [370]5293 confusing message when binding a temporary to a reference
|
|
* [371]5296 [DR115] Pointers to functions and to template functions behave
|
|
differently in deduction
|
|
* [372]7939 ICE on function template specialization
|
|
* [373]8656 Unable to assign function with __attribute__ and pointer
|
|
return type to an appropriate variable
|
|
* [374]10147 Confusing error message for invalid template function
|
|
argument
|
|
* [375]11400 std::search_n() makes assumptions about Size parameter
|
|
* [376]11409 issues with using declarations, overloading, and built-in
|
|
functions
|
|
* [377]11740 ctype::do_is(mask, wchar_t) doesn't handle multiple
|
|
bits in mask
|
|
* [378]11786 operator() call on variable in other namespace not recognized
|
|
* [379]11867 static_cast ignores ambiguity
|
|
* [380]11928 bug with conversion operators that are typedefs
|
|
* [381]12114 Uninitialized memory accessed in dtor
|
|
* [382]12163 static_cast + explicit constructor regression
|
|
* [383]12181 Wrong code with comma operator and c++
|
|
* [384]12236 regparm and fastcall messes up parameters
|
|
* [385]12266 incorrect instantiation of unneeded template during overload
|
|
resolution
|
|
* [386]12296 istream::peek() doesn't set eofbit
|
|
* [387]12298 [sjlj exceptions] Stack unwind destroys not-yet-constructed
|
|
object
|
|
* [388]12369 ICE with templates and friends
|
|
* [389]12337 apparently infinite loop in g++
|
|
* [390]12344 stdcall attribute ignored if function returns a pointer
|
|
* [391]12451 missing(late) class forward declaration in cxxabi.h
|
|
* [392]12486 g++ accepts invalid use of a qualified name
|
|
|
|
x86 specific (Intel/AMD)
|
|
|
|
* [393]8869 [x86 MMX] ICE with const variable optimization and MMX
|
|
builtins
|
|
* [394]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions -O2
|
|
* [395]11689 g++3.3 emits un-assembleable code for k6 architecture
|
|
* [396]12116 [k6] Invalid assembly output values with X-MAME code
|
|
* [397]12070 ICE converting between double and long double with
|
|
-msoft-float
|
|
|
|
ia64-specific
|
|
|
|
* [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc
|
|
* [399]11535 __builtin_return_address may not work on ia64
|
|
* [400]11693 [ia64] ICE in gen_nop_type
|
|
* [401]12224 [ia64] Thread-local storage doesn't work
|
|
|
|
PowerPC-specific
|
|
|
|
* [402]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux kernel
|
|
* [403]11319 loop miscompiled on ppc32
|
|
* [404]11949 ICE Compiler segfault with ffmpeg -maltivec code
|
|
|
|
SPARC-specific
|
|
|
|
* [405]11662 wrong code for expr. with cast to long long and exclusive or
|
|
* [406]11965 invalid assembler code for a shift < 32 operation
|
|
* [407]12301 (c++) stack corruption when a returned expression throws an
|
|
exception
|
|
|
|
Alpha-specific
|
|
|
|
* [408]11717 [alpha-linux] unrecognizable insn compiling for.c of kernel
|
|
2.4.22-pre8
|
|
|
|
HPUX-specific
|
|
|
|
* [409]11313 problem with #pragma weak and static inline functions
|
|
* [410]11712 __STDC_EXT__ not defined for C++ by default anymore?
|
|
|
|
Solaris specific
|
|
|
|
* [411]12166 Profiled programs crash if PROFDIR is set
|
|
|
|
Solaris-x86 specific
|
|
|
|
* [412]12101 i386 Solaris no longer works with GNU as?
|
|
|
|
Miscellaneous embedded target-specific bugs
|
|
|
|
* [413]10988 [m32r-elf] wrong blockmove code with -O3
|
|
* [414]11805 [h8300-unknown-coff] [H8300] ICE for simple code with -O2
|
|
* [415]11902 [sh4] spec file improperly inserts rpath even when none
|
|
needed
|
|
* [416]11903 [sh4] -pthread fails to link due to error in spec file on sh4
|
|
_________________________________________________________________
|
|
|
|
GCC 3.3.3
|
|
|
|
Minor features
|
|
|
|
In addition to the bug fixes documented below, this release contains few
|
|
minor features such as:
|
|
* Support for --with-sysroot
|
|
* Support for automatic detection of executable stacks
|
|
* Support for SSE3 instructions
|
|
* Support for thread local storage debugging under GDB on S390
|
|
|
|
Bug Fixes
|
|
|
|
This section lists the problem reports (PRs) from [417]GCC's bug tracking
|
|
system that are known to be fixed in the 3.3.3 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
|
|
Bootstrap failures and issues
|
|
|
|
* [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails
|
|
* [419]12399 boehm-gc fails (when building a cross compiler): libtool
|
|
unable to infer tagged configuration
|
|
* [420]13068 mklibgcc.in doesn't handle multi-level multilib
|
|
subdirectories properly
|
|
|
|
Internal compiler errors (multi-platform)
|
|
|
|
* [421]10060 ICE (stack overflow) on huge file (300k lines) due to
|
|
recursive behaviour of copy_rtx_if_shared, in emit_rtl.c
|
|
* [422]10555 (c++) ICE on undefined template argument
|
|
* [423]10706 (c++) ICE in mangle_class_name_for_template
|
|
* [424]11496 (fortran) error in flow_loops_find when -funroll-loops active
|
|
* [425]11741 ICE in pre_insert_copy_insn, in gcse.c
|
|
* [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0
|
|
* [427]12632 (fortran) -fbounds-check ICE
|
|
* [428]12712 (c++) ICE on short legit C++ code fragment with gcc 3.3.2
|
|
* [429]12726 (c++) ICE (segfault) on trivial code
|
|
* [430]12890 (c++) ICE on compilation of class with throwing method
|
|
* [431]12900 (c++) ICE in rtl_verify_flow_info_1
|
|
* [432]13060 (fortran) ICE in fixup_var_refs_1, in function.c on correct
|
|
code with -O2 -fno-force-mem
|
|
* [433]13289 (c++) ICE in regenerate_decl_from_template on recursive
|
|
template
|
|
* [434]13318 ICE: floating point exception in the loop optimizer
|
|
* [435]13392 (c++) ICE in convert_from_eh_region_ranges_1, in except.c
|
|
* [436]13574 (c++) invalid array default initializer in class lets gcc
|
|
consume all memory and die
|
|
* [437]13475 ICE on SIMD variables with partial value initialization
|
|
* [438]13797 (c++) ICE on invalid template parameter
|
|
* [439]13824 (java) gcj SEGV with simple .java program
|
|
|
|
C and optimization bugs
|
|
|
|
* [440]8776 loop invariants are not removed (most likely)
|
|
* [441]10339 [sparc,ppc,ppc64] Invalid optimization: replacing strncmp by
|
|
memcmp
|
|
* [442]11350 undefined labels with -Os -fPIC
|
|
* [443]12826 Optimizer removes reference through volatile pointer
|
|
* [444]12500 stabs debug info: void no longer a predefined / builtin type
|
|
* [445]12941 builtin-bitops-1.c miscompilation (latent bug)
|
|
* [446]12953 tree inliner bug (in inline_forbidden_p) and fix
|
|
* [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled
|
|
* [448]13507 spurious printf format warning
|
|
* [449]13382 Type information for const pointer disappears during
|
|
optimization.
|
|
* [450]13394 noreturn attribute ignored on recursive invokation
|
|
* [451]13400 Compiled code crashes storing to read-only location
|
|
* [452]13521 Endless loop in calculate_global_regs_live
|
|
|
|
C++ compiler and library
|
|
|
|
Some of the bug fixes in this list were made to implement decisions that the
|
|
ISO C++ standards committee has made concerning several defect reports
|
|
(DRs). Links in the list below point to detailed discussion of the relevant
|
|
defect report.
|
|
* [453]2094 unimplemented: use of `ptrmem_cst' in template type
|
|
unification
|
|
* [454]2294 using declaration confusion
|
|
* [455]5050 template instantiation depth exceeds limit: recursion problem?
|
|
* [456]9371 Bad exception handling in i/ostream::operator>>/<<(streambuf*)
|
|
* [457]9546 bad exception handling in ostream members
|
|
* [458]10081 basic_ios::_M_cache_locale leaves NULL members in the face of
|
|
unknown locales
|
|
* [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work
|
|
* [461]10095 istream::operator>>(int&) sets ios::badbit when ios::failbit
|
|
is set.
|
|
* [462]11554 Warning about reordering of initializers doesn't mention
|
|
location of constructor
|
|
* [463]12297 istream::sentry::sentry() handles eof() incorrectly.
|
|
* [464]12352 Exception safety problems in src/localename.cc
|
|
* [465]12438 Memory leak in locale::combine()
|
|
* [466]12540 Memory leak in locale::locale(const char*)
|
|
* [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented
|
|
* [470]12657 Resolution of [471]DR 292 (WP) still unimplemented
|
|
* [472]12696 memory eating infinite loop in diagnostics (error recovery
|
|
problem)
|
|
* [473]12815 Code compiled with optimization behaves unexpectedly
|
|
* [474]12862 Conflicts between typedefs/enums and namespace member
|
|
declarations
|
|
* [475]12926 Wrong value after assignment in initialize list using
|
|
bit-fields
|
|
* [476]12967 Resolution of [477]DR 300 [WP] still unimplemented
|
|
* [478]12971 Resolution of [479]DR 328 [WP] still unimplemented
|
|
* [480]13007 basic_streambuf::pubimbue, imbue wrong
|
|
* [481]13009 Implicitly-defined assignment operator writes to wrong memory
|
|
* [482]13057 regparm attribute not applied to destructor
|
|
* [483]13070 -Wformat option ignored in g++
|
|
* [484]13081 forward template declarations in let inlining fail
|
|
* [485]13239 Assertion does not seem to work correctly anymore
|
|
* [486]13262 "xxx is private within this context" when initializing a
|
|
self-contained template class
|
|
* [487]13290 simple typo in concept checking for std::generate_n
|
|
* [488]13323 Template code does not compile in presence of typedef
|
|
* [489]13369 __verify_grouping (and __add_grouping?) not correct
|
|
* [490]13371 infinite loop with packed struct and inlining
|
|
* [491]13445 Template argument replacement "dereferences" a typedef
|
|
* [492]13461 Fails to access protected-ctor from public constant
|
|
* [493]13462 Non-standard-conforming type set::pointer
|
|
* [494]13478 gcc uses wrong constructor to initialize a const reference
|
|
* [495]13544 "conflicting types" for enums in different scopes
|
|
* [496]13650 string::compare should not (always) use traits_type::length()
|
|
* [497]13683 bogus warning about passing non-PODs through ellipsis
|
|
* [498]13688 Derived class is denied access to protected base class member
|
|
class
|
|
* [499]13774 Member variable cleared in virtual multiple inheritance class
|
|
* [500]13884 Protect sstream.tcc from extern template use
|
|
|
|
Java compiler and library
|
|
|
|
* [501]10746 [win32] garbage collection crash in GCJ
|
|
|
|
Objective-C compiler and library
|
|
|
|
* [502]11433 Crash due to dereferencing null pointer when querying
|
|
protocol
|
|
|
|
Fortran compiler and library
|
|
|
|
* [503]12633 logical expression gives incorrect result with -fugly-logint
|
|
option
|
|
* [504]13037 [gcse-lm] g77 generates incorrect code
|
|
* [505]13213 Hex constant problem when compiling with -fugly-logint and
|
|
-ftypeless-boz
|
|
|
|
x86-specific (Intel/AMD)
|
|
|
|
* [506]4490 ICE with -m128bit-long-double
|
|
* [507]12292 [x86_64] ICE: RTL check: expected code `const_int', have
|
|
`reg' in make_field_assignment, in combine.c
|
|
* [508]12441 ICE: can't find a register to spill
|
|
* [509]12943 array static-init failure under -fpic, -fPIC
|
|
* [510]13608 Incorrect code with -O3 -ffast-math
|
|
|
|
PowerPC-specific
|
|
|
|
* [511]11598 testcase gcc.dg/20020118-1.c fails runtime check of
|
|
__attribute__((aligned(16)))
|
|
* [512]11793 ICE in extract_insn, in recog.c (const_vector's)
|
|
* [513]12467 vmsumubm emitted when vmsummbm appropriate (typo in
|
|
altivec.md)
|
|
* [514]12537 g++ generates writeable text sections
|
|
|
|
SPARC-specific
|
|
|
|
* [515]12496 wrong result for __atomic_add(&value, -1) when using -O0 -m64
|
|
* [516]12865 mprotect call to make trampoline executable may fail
|
|
* [517]13354 ICE in sparc_emit_set_const32
|
|
|
|
ARM-specific
|
|
|
|
* [518]10467 [arm] ICE in pre_insert_copy_insn,
|
|
|
|
ia64-specific
|
|
|
|
* [519]11226 ICE passing struct arg with two floats
|
|
* [520]11227 ICE for _Complex float, _Complex long double args
|
|
* [521]12644 GCC 3.3.2 fails to compile glibc on ia64
|
|
* [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn
|
|
* Various fixes for libunwind
|
|
|
|
Alpha-specific
|
|
|
|
* [523]12654 Incorrect comparison code generated for Alpha
|
|
* [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2
|
|
* [525]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2
|
|
|
|
HPPA-specific
|
|
|
|
* [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c
|
|
* [527]12158 [hppa] compilation does not terminate at -O1
|
|
|
|
S390-specific
|
|
|
|
* [528]11992 Wrong built-in code for memcmp with length 1<<24: only
|
|
(1<<24)-1 possible for CLCL-Instruction
|
|
|
|
SH-specific
|
|
|
|
* [529]9365 segfault in gen_far_branch (config/sh/sh.c)
|
|
* [530]10392 optimizer generates faulty array indexing
|
|
* [531]11322 SH profiler outputs multiple definitions of symbol
|
|
* [532]13069 gcc/config/sh/rtems.h broken
|
|
* [533]13302 Putting a va_list in a struct causes seg fault
|
|
* [534]13585 Incorrect optimization of call to sfunc
|
|
* Fix inappropriately exported libgcc functions from the shared library
|
|
|
|
Other embedded target specific
|
|
|
|
* [535]8916 [mcore] unsigned char assign gets hosed.
|
|
* [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c
|
|
* [537]13122 [h8300] local variable gets corrupted by function call when
|
|
-fomit-frame-pointer is given
|
|
* [538]13256 [cris] strict_low_part mistreated in delay slots
|
|
* [539]13373 [mcore] optimization with -frerun-cse-after-loop
|
|
-fexpensive-optimizations produces wrong code on mcore
|
|
|
|
GNU HURD-specific
|
|
|
|
* [540]12561 gcc/config/t-gnu needs updating to work with --with-sysroot
|
|
|
|
Tru64 Unix specific
|
|
|
|
* [541]6243 testsuite fails almost all tests due to no libintl in
|
|
LD_LIBRARY_PATH during test.
|
|
* [542]11397 weak aliases broken on Tru64 UNIX
|
|
|
|
AIX-specific
|
|
|
|
* [543]12505 build failure due to defines of uchar in cpphash.h and
|
|
sys/types.h
|
|
* [544]13150 WEAK symbols not exported by collect2
|
|
|
|
IRIX-specific
|
|
|
|
* [545]12666 fixincludes problem on IRIX 6.5.19m
|
|
|
|
Solaris-specific
|
|
|
|
* [546]12969 Including sys/byteorder.h breaks configure checks
|
|
|
|
Testsuite problems (compiler is not affected)
|
|
|
|
* [547]10819 testsuite creates CR+LF on compiler version lines in test
|
|
summary files
|
|
* [548]11612 abi_check not finding correct libgcc_s.so.1
|
|
|
|
Miscellaneous
|
|
|
|
* [549]13211 using -###, incorrect warnings about unused linker file are
|
|
produced
|
|
_________________________________________________________________
|
|
|
|
GCC 3.3.4
|
|
|
|
This is the [550]list of problem reports (PRs) from GCC's bug tracking
|
|
system that are known to be fixed in the 3.3.4 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
_________________________________________________________________
|
|
|
|
GCC 3.3.5
|
|
|
|
This is the [551]list of problem reports (PRs) from GCC's bug tracking
|
|
system that are known to be fixed in the 3.3.5 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
_________________________________________________________________
|
|
|
|
GCC 3.3.6
|
|
|
|
This is the [552]list of problem reports (PRs) from GCC's bug tracking
|
|
system that are known to be fixed in the 3.3.6 release. This list might not
|
|
be complete (that is, it is possible that some PRs that have been fixed are
|
|
not listed here).
|
|
|
|
Please send FSF & GNU inquiries & questions to [553]gnu@gnu.org. There are
|
|
also [554]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [555]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [556]GCC manuals. If that fails, the [557]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [558]gcc@gnu.org or [559]gcc@gcc.gnu.org. All of
|
|
our lists have [560]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-08-20 [561]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
|
|
2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems
|
|
3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
|
|
4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute
|
|
5. http://gcc.gnu.org/news/dfa.html
|
|
6. http://gcc.gnu.org/gcc-3.3/c99status.html
|
|
7. http://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html
|
|
8. http://gcc.gnu.org/PR10140
|
|
9. http://gcc.gnu.org/PR10198
|
|
10. http://gcc.gnu.org/PR10338
|
|
11. http://gcc.gnu.org/PR3581
|
|
12. http://gcc.gnu.org/PR4382
|
|
13. http://gcc.gnu.org/PR5533
|
|
14. http://gcc.gnu.org/PR6387
|
|
15. http://gcc.gnu.org/PR6412
|
|
16. http://gcc.gnu.org/PR6620
|
|
17. http://gcc.gnu.org/PR6663
|
|
18. http://gcc.gnu.org/PR7068
|
|
19. http://gcc.gnu.org/PR7083
|
|
20. http://gcc.gnu.org/PR7647
|
|
21. http://gcc.gnu.org/PR7675
|
|
22. http://gcc.gnu.org/PR7718
|
|
23. http://gcc.gnu.org/PR8116
|
|
24. http://gcc.gnu.org/PR8358
|
|
25. http://gcc.gnu.org/PR8511
|
|
26. http://gcc.gnu.org/PR8564
|
|
27. http://gcc.gnu.org/PR8660
|
|
28. http://gcc.gnu.org/PR8766
|
|
29. http://gcc.gnu.org/PR8803
|
|
30. http://gcc.gnu.org/PR8846
|
|
31. http://gcc.gnu.org/PR8906
|
|
32. http://gcc.gnu.org/PR9216
|
|
33. http://gcc.gnu.org/PR9261
|
|
34. http://gcc.gnu.org/PR9263
|
|
35. http://gcc.gnu.org/PR9429
|
|
36. http://gcc.gnu.org/PR9516
|
|
37. http://gcc.gnu.org/PR9600
|
|
38. http://gcc.gnu.org/PR9629
|
|
39. http://gcc.gnu.org/PR9672
|
|
40. http://gcc.gnu.org/PR9749
|
|
41. http://gcc.gnu.org/PR9794
|
|
42. http://gcc.gnu.org/PR9829
|
|
43. http://gcc.gnu.org/PR9916
|
|
44. http://gcc.gnu.org/PR9936
|
|
45. http://gcc.gnu.org/PR10262
|
|
46. http://gcc.gnu.org/PR10278
|
|
47. http://gcc.gnu.org/PR10446
|
|
48. http://gcc.gnu.org/PR10451
|
|
49. http://gcc.gnu.org/PR10506
|
|
50. http://gcc.gnu.org/PR10549
|
|
51. http://gcc.gnu.org/PR2001
|
|
52. http://gcc.gnu.org/PR2391
|
|
53. http://gcc.gnu.org/PR2960
|
|
54. http://gcc.gnu.org/PR4046
|
|
55. http://gcc.gnu.org/PR6405
|
|
56. http://gcc.gnu.org/PR6798
|
|
57. http://gcc.gnu.org/PR6871
|
|
58. http://gcc.gnu.org/PR6909
|
|
59. http://gcc.gnu.org/PR7189
|
|
60. http://gcc.gnu.org/PR7642
|
|
61. http://gcc.gnu.org/PR8634
|
|
62. http://gcc.gnu.org/PR8750
|
|
63. http://gcc.gnu.org/PR2161
|
|
64. http://gcc.gnu.org/PR4319
|
|
65. http://gcc.gnu.org/PR8602
|
|
66. http://gcc.gnu.org/PR9177
|
|
67. http://gcc.gnu.org/PR9853
|
|
68. http://gcc.gnu.org/PR45
|
|
69. http://gcc.gnu.org/PR3784
|
|
70. http://gcc.gnu.org/PR764
|
|
71. http://gcc.gnu.org/PR5116
|
|
72. http://gcc.gnu.org/PR2862
|
|
73. http://gcc.gnu.org/PR3663
|
|
74. http://gcc.gnu.org/PR3797
|
|
75. http://gcc.gnu.org/PR3948
|
|
76. http://gcc.gnu.org/PR4137
|
|
77. http://gcc.gnu.org/PR4361
|
|
78. http://gcc.gnu.org/PR4802
|
|
79. http://gcc.gnu.org/PR5837
|
|
80. http://gcc.gnu.org/PR4803
|
|
81. http://gcc.gnu.org/PR5094
|
|
82. http://gcc.gnu.org/PR5730
|
|
83. http://gcc.gnu.org/PR6713
|
|
84. http://gcc.gnu.org/PR7015
|
|
85. http://gcc.gnu.org/PR7086
|
|
86. http://gcc.gnu.org/PR7099
|
|
87. http://gcc.gnu.org/PR7247
|
|
88. http://gcc.gnu.org/PR7441
|
|
89. http://gcc.gnu.org/PR7768
|
|
90. http://gcc.gnu.org/PR7804
|
|
91. http://gcc.gnu.org/PR8099
|
|
92. http://gcc.gnu.org/PR8117
|
|
93. http://gcc.gnu.org/PR8205
|
|
94. http://gcc.gnu.org/PR8645
|
|
95. http://gcc.gnu.org/PR8724
|
|
96. http://gcc.gnu.org/PR8805
|
|
97. http://gcc.gnu.org/PR8691
|
|
98. http://gcc.gnu.org/PR8700
|
|
99. http://gcc.gnu.org/PR8724
|
|
100. http://gcc.gnu.org/PR8949
|
|
101. http://gcc.gnu.org/PR9016
|
|
102. http://gcc.gnu.org/PR9053
|
|
103. http://gcc.gnu.org/PR9152
|
|
104. http://gcc.gnu.org/PR9182
|
|
105. http://gcc.gnu.org/PR9297
|
|
106. http://gcc.gnu.org/PR9318
|
|
107. http://gcc.gnu.org/PR9320
|
|
108. http://gcc.gnu.org/PR9400
|
|
109. http://gcc.gnu.org/PR9424
|
|
110. http://gcc.gnu.org/PR9425
|
|
111. http://gcc.gnu.org/PR9439
|
|
112. http://gcc.gnu.org/PR9474
|
|
113. http://gcc.gnu.org/PR9548
|
|
114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
|
|
115. http://gcc.gnu.org/PR9555
|
|
116. http://gcc.gnu.org/PR9561
|
|
117. http://gcc.gnu.org/PR9563
|
|
118. http://gcc.gnu.org/PR9582
|
|
119. http://gcc.gnu.org/PR9622
|
|
120. http://gcc.gnu.org/PR9683
|
|
121. http://gcc.gnu.org/PR9791
|
|
122. http://gcc.gnu.org/PR9817
|
|
123. http://gcc.gnu.org/PR9825
|
|
124. http://gcc.gnu.org/PR9826
|
|
125. http://gcc.gnu.org/PR9924
|
|
126. http://gcc.gnu.org/PR9946
|
|
127. http://gcc.gnu.org/PR9964
|
|
128. http://gcc.gnu.org/PR9988
|
|
129. http://gcc.gnu.org/PR10033
|
|
130. http://gcc.gnu.org/PR10097
|
|
131. http://gcc.gnu.org/PR10132
|
|
132. http://gcc.gnu.org/PR10180
|
|
133. http://gcc.gnu.org/PR10199
|
|
134. http://gcc.gnu.org/PR10300
|
|
135. http://gcc.gnu.org/PR10427
|
|
136. http://gcc.gnu.org/PR10503
|
|
137. http://gcc.gnu.org/PR5956
|
|
138. http://gcc.gnu.org/PR1832
|
|
139. http://gcc.gnu.org/PR3924
|
|
140. http://gcc.gnu.org/PR5634
|
|
141. http://gcc.gnu.org/PR6367
|
|
142. http://gcc.gnu.org/PR6491
|
|
143. http://gcc.gnu.org/PR6742
|
|
144. http://gcc.gnu.org/PR7113
|
|
145. http://gcc.gnu.org/PR7236
|
|
146. http://gcc.gnu.org/PR7278
|
|
147. http://gcc.gnu.org/PR7384
|
|
148. http://gcc.gnu.org/PR7388
|
|
149. http://gcc.gnu.org/PR8587
|
|
150. http://gcc.gnu.org/PR9038
|
|
151. http://gcc.gnu.org/PR10197
|
|
152. http://gcc.gnu.org/PR6005
|
|
153. http://gcc.gnu.org/PR6389
|
|
154. http://gcc.gnu.org/PR6576
|
|
155. http://gcc.gnu.org/PR6652
|
|
156. http://gcc.gnu.org/PR7060
|
|
157. http://gcc.gnu.org/PR7073
|
|
158. http://gcc.gnu.org/PR7180
|
|
159. http://gcc.gnu.org/PR7416
|
|
160. http://gcc.gnu.org/PR7570
|
|
161. http://gcc.gnu.org/PR7578
|
|
162. http://gcc.gnu.org/PR7611
|
|
163. http://gcc.gnu.org/PR7709
|
|
164. http://gcc.gnu.org/PR7766
|
|
165. http://gcc.gnu.org/PR7785
|
|
166. http://gcc.gnu.org/PR7786
|
|
167. http://gcc.gnu.org/PR8142
|
|
168. http://gcc.gnu.org/PR8234
|
|
169. http://gcc.gnu.org/PR8415
|
|
170. http://gcc.gnu.org/PR8481
|
|
171. http://gcc.gnu.org/PR8593
|
|
172. http://gcc.gnu.org/PR8759
|
|
173. http://gcc.gnu.org/PR8997
|
|
174. http://gcc.gnu.org/PR9253
|
|
175. http://gcc.gnu.org/PR9254
|
|
176. http://gcc.gnu.org/PR9271
|
|
177. http://gcc.gnu.org/PR6767
|
|
178. http://gcc.gnu.org/PR9911
|
|
179. http://gcc.gnu.org/PR10020
|
|
180. http://gcc.gnu.org/PR10546
|
|
181. http://gcc.gnu.org/PR7029
|
|
182. http://gcc.gnu.org/PR2903
|
|
183. http://gcc.gnu.org/PR7873
|
|
184. http://gcc.gnu.org/PR7680
|
|
185. http://gcc.gnu.org/PR8705
|
|
186. http://gcc.gnu.org/PR9986
|
|
187. http://gcc.gnu.org/PR10056
|
|
188. http://gcc.gnu.org/PR6744
|
|
189. http://gcc.gnu.org/PR7361
|
|
190. http://gcc.gnu.org/PR9496
|
|
191. http://gcc.gnu.org/PR7067
|
|
192. http://gcc.gnu.org/PR8480
|
|
193. http://gcc.gnu.org/PR8784
|
|
194. http://gcc.gnu.org/PR10315
|
|
195. http://gcc.gnu.org/PR10267
|
|
196. http://gcc.gnu.org/PR7916
|
|
197. http://gcc.gnu.org/PR7926
|
|
198. http://gcc.gnu.org/PR8555
|
|
199. http://gcc.gnu.org/PR8994
|
|
200. http://gcc.gnu.org/PR9426
|
|
201. http://gcc.gnu.org/PR9806
|
|
202. http://gcc.gnu.org/PR10077
|
|
203. http://gcc.gnu.org/PR10233
|
|
204. http://gcc.gnu.org/PR10286
|
|
205. http://gcc.gnu.org/PR10308
|
|
206. http://gcc.gnu.org/PR11272
|
|
207. http://gcc.gnu.org/PR5754
|
|
208. http://gcc.gnu.org/PR6597
|
|
209. http://gcc.gnu.org/PR6949
|
|
210. http://gcc.gnu.org/PR7053
|
|
211. http://gcc.gnu.org/PR8164
|
|
212. http://gcc.gnu.org/PR8384
|
|
213. http://gcc.gnu.org/PR9559
|
|
214. http://gcc.gnu.org/PR9649
|
|
215. http://gcc.gnu.org/PR9864
|
|
216. http://gcc.gnu.org/PR10432
|
|
217. http://gcc.gnu.org/PR10475
|
|
218. http://gcc.gnu.org/PR10635
|
|
219. http://gcc.gnu.org/PR10661
|
|
220. http://gcc.gnu.org/PR10700
|
|
221. http://gcc.gnu.org/PR10712
|
|
222. http://gcc.gnu.org/PR10796
|
|
223. http://gcc.gnu.org/PR10890
|
|
224. http://gcc.gnu.org/PR10939
|
|
225. http://gcc.gnu.org/PR10956
|
|
226. http://gcc.gnu.org/PR11041
|
|
227. http://gcc.gnu.org/PR11059
|
|
228. http://gcc.gnu.org/PR11083
|
|
229. http://gcc.gnu.org/PR11105
|
|
230. http://gcc.gnu.org/PR11149
|
|
231. http://gcc.gnu.org/PR11228
|
|
232. http://gcc.gnu.org/PR11282
|
|
233. http://gcc.gnu.org/PR11301
|
|
234. http://gcc.gnu.org/PR11308
|
|
235. http://gcc.gnu.org/PR11473
|
|
236. http://gcc.gnu.org/PR11503
|
|
237. http://gcc.gnu.org/PR11513
|
|
238. http://gcc.gnu.org/PR11198
|
|
239. http://gcc.gnu.org/PR11304
|
|
240. http://gcc.gnu.org/PR11381
|
|
241. http://gcc.gnu.org/PR11536
|
|
242. http://gcc.gnu.org/PR11557
|
|
243. http://gcc.gnu.org/PR5897
|
|
244. http://gcc.gnu.org/PR11279
|
|
245. http://gcc.gnu.org/PR11022
|
|
246. http://gcc.gnu.org/PR2330
|
|
247. http://gcc.gnu.org/PR5388
|
|
248. http://gcc.gnu.org/PR5390
|
|
249. http://gcc.gnu.org/PR7877
|
|
250. http://gcc.gnu.org/PR9393
|
|
251. http://gcc.gnu.org/PR10032
|
|
252. http://gcc.gnu.org/PR10468
|
|
253. http://gcc.gnu.org/PR10527
|
|
254. http://gcc.gnu.org/PR10679
|
|
255. http://gcc.gnu.org/PR10682
|
|
256. http://gcc.gnu.org/PR10689
|
|
257. http://gcc.gnu.org/PR10845
|
|
258. http://gcc.gnu.org/PR10849
|
|
259. http://gcc.gnu.org/PR10888
|
|
260. http://gcc.gnu.org/PR10929
|
|
261. http://gcc.gnu.org/PR10931
|
|
262. http://gcc.gnu.org/PR10940
|
|
263. http://gcc.gnu.org/PR10968
|
|
264. http://gcc.gnu.org/PR10990
|
|
265. http://gcc.gnu.org/PR11039
|
|
266. http://gcc.gnu.org/PR11062
|
|
267. http://gcc.gnu.org/PR11095
|
|
268. http://gcc.gnu.org/PR11098
|
|
269. http://gcc.gnu.org/PR11137
|
|
270. http://gcc.gnu.org/PR11154
|
|
271. http://gcc.gnu.org/PR11329
|
|
272. http://gcc.gnu.org/PR11332
|
|
273. http://gcc.gnu.org/PR11431
|
|
274. http://gcc.gnu.org/PR11528
|
|
275. http://gcc.gnu.org/PR11546
|
|
276. http://gcc.gnu.org/PR11567
|
|
277. http://gcc.gnu.org/PR11645
|
|
278. http://gcc.gnu.org/PR5179
|
|
279. http://gcc.gnu.org/PR8204
|
|
280. http://gcc.gnu.org/PR10838
|
|
281. http://gcc.gnu.org/PR10886
|
|
282. http://gcc.gnu.org/PR11349
|
|
283. http://gcc.gnu.org/PR4823
|
|
284. http://gcc.gnu.org/PR8878
|
|
285. http://gcc.gnu.org/PR9815
|
|
286. http://gcc.gnu.org/PR10402
|
|
287. http://gcc.gnu.org/PR10504
|
|
288. http://gcc.gnu.org/PR10673
|
|
289. http://gcc.gnu.org/PR11044
|
|
290. http://gcc.gnu.org/PR11089
|
|
291. http://gcc.gnu.org/PR11420
|
|
292. http://gcc.gnu.org/PR9362
|
|
293. http://gcc.gnu.org/PR10142
|
|
294. http://gcc.gnu.org/PR10663
|
|
295. http://gcc.gnu.org/PR10835
|
|
296. http://gcc.gnu.org/PR10876
|
|
297. http://gcc.gnu.org/PR10955
|
|
298. http://gcc.gnu.org/PR11018
|
|
299. http://gcc.gnu.org/PR11556
|
|
300. http://gcc.gnu.org/PR10907
|
|
301. http://gcc.gnu.org/PR11320
|
|
302. http://gcc.gnu.org/PR11599
|
|
303. http://gcc.gnu.org/PR9745
|
|
304. http://gcc.gnu.org/PR10871
|
|
305. http://gcc.gnu.org/PR11440
|
|
306. http://gcc.gnu.org/PR7594
|
|
307. http://gcc.gnu.org/PR10557
|
|
308. http://gcc.gnu.org/PR11054
|
|
309. http://gcc.gnu.org/PR10834
|
|
310. http://gcc.gnu.org/PR10842
|
|
311. http://gcc.gnu.org/PR11052
|
|
312. http://gcc.gnu.org/PR11183
|
|
313. http://gcc.gnu.org/PR11084
|
|
314. http://gcc.gnu.org/PR10331
|
|
315. http://gcc.gnu.org/PR10413
|
|
316. http://gcc.gnu.org/PR11096
|
|
317. http://gcc.gnu.org/PR2873
|
|
318. http://gcc.gnu.org/PR3163
|
|
319. http://gcc.gnu.org/PR5287
|
|
320. http://gcc.gnu.org/PR10148
|
|
321. http://gcc.gnu.org/PR8787
|
|
322. http://gcc.gnu.org/PR10900
|
|
323. http://gcc.gnu.org/PR1607
|
|
324. http://gcc.gnu.org/PR4252
|
|
325. http://gcc.gnu.org/PR4490
|
|
326. http://gcc.gnu.org/PR10355
|
|
327. http://gcc.gnu.org/PR10726
|
|
328. http://gcc.gnu.org/PR10805
|
|
329. http://gcc.gnu.org/PR10815
|
|
330. http://gcc.gnu.org/PR10877
|
|
331. http://gcc.gnu.org/PR11280
|
|
332. http://gcc.gnu.org/PR11466
|
|
333. http://gcc.gnu.org/PR10737
|
|
334. http://gcc.gnu.org/PR10810
|
|
335. http://gcc.gnu.org/bugzilla/
|
|
336. http://gcc.gnu.org/PR8336
|
|
337. http://gcc.gnu.org/PR9330
|
|
338. http://gcc.gnu.org/PR9631
|
|
339. http://gcc.gnu.org/PR9877
|
|
340. http://gcc.gnu.org/PR11687
|
|
341. http://gcc.gnu.org/PR12263
|
|
342. http://gcc.gnu.org/PR12490
|
|
343. http://gcc.gnu.org/PR7277
|
|
344. http://gcc.gnu.org/PR7939
|
|
345. http://gcc.gnu.org/PR11063
|
|
346. http://gcc.gnu.org/PR11207
|
|
347. http://gcc.gnu.org/PR11522
|
|
348. http://gcc.gnu.org/PR11595
|
|
349. http://gcc.gnu.org/PR11646
|
|
350. http://gcc.gnu.org/PR11665
|
|
351. http://gcc.gnu.org/PR11852
|
|
352. http://gcc.gnu.org/PR11878
|
|
353. http://gcc.gnu.org/PR11883
|
|
354. http://gcc.gnu.org/PR11991
|
|
355. http://gcc.gnu.org/PR12146
|
|
356. http://gcc.gnu.org/PR12215
|
|
357. http://gcc.gnu.org/PR12369
|
|
358. http://gcc.gnu.org/PR12446
|
|
359. http://gcc.gnu.org/PR12510
|
|
360. http://gcc.gnu.org/PR12544
|
|
361. http://gcc.gnu.org/PR9862
|
|
362. http://gcc.gnu.org/PR10962
|
|
363. http://gcc.gnu.org/PR11370
|
|
364. http://gcc.gnu.org/PR11637
|
|
365. http://gcc.gnu.org/PR11885
|
|
366. http://gcc.gnu.org/PR12082
|
|
367. http://gcc.gnu.org/PR12180
|
|
368. http://gcc.gnu.org/PR12340
|
|
369. http://gcc.gnu.org/PR3907
|
|
370. http://gcc.gnu.org/PR5293
|
|
371. http://gcc.gnu.org/PR5296
|
|
372. http://gcc.gnu.org/PR7939
|
|
373. http://gcc.gnu.org/PR8656
|
|
374. http://gcc.gnu.org/PR10147
|
|
375. http://gcc.gnu.org/PR11400
|
|
376. http://gcc.gnu.org/PR11409
|
|
377. http://gcc.gnu.org/PR11740
|
|
378. http://gcc.gnu.org/PR11786
|
|
379. http://gcc.gnu.org/PR11867
|
|
380. http://gcc.gnu.org/PR11928
|
|
381. http://gcc.gnu.org/PR12114
|
|
382. http://gcc.gnu.org/PR12163
|
|
383. http://gcc.gnu.org/PR12181
|
|
384. http://gcc.gnu.org/PR12236
|
|
385. http://gcc.gnu.org/PR12266
|
|
386. http://gcc.gnu.org/PR12296
|
|
387. http://gcc.gnu.org/PR12298
|
|
388. http://gcc.gnu.org/PR12369
|
|
389. http://gcc.gnu.org/PR12337
|
|
390. http://gcc.gnu.org/PR12344
|
|
391. http://gcc.gnu.org/PR12451
|
|
392. http://gcc.gnu.org/PR12486
|
|
393. http://gcc.gnu.org/PR8869
|
|
394. http://gcc.gnu.org/PR9786
|
|
395. http://gcc.gnu.org/PR11689
|
|
396. http://gcc.gnu.org/PR12116
|
|
397. http://gcc.gnu.org/PR12070
|
|
398. http://gcc.gnu.org/PR11184
|
|
399. http://gcc.gnu.org/PR11535
|
|
400. http://gcc.gnu.org/PR11693
|
|
401. http://gcc.gnu.org/PR12224
|
|
402. http://gcc.gnu.org/PR11087
|
|
403. http://gcc.gnu.org/PR11319
|
|
404. http://gcc.gnu.org/PR11949
|
|
405. http://gcc.gnu.org/PR11662
|
|
406. http://gcc.gnu.org/PR11965
|
|
407. http://gcc.gnu.org/PR12301
|
|
408. http://gcc.gnu.org/PR11717
|
|
409. http://gcc.gnu.org/PR11313
|
|
410. http://gcc.gnu.org/PR11712
|
|
411. http://gcc.gnu.org/PR12166
|
|
412. http://gcc.gnu.org/PR12101
|
|
413. http://gcc.gnu.org/PR10988
|
|
414. http://gcc.gnu.org/PR11805
|
|
415. http://gcc.gnu.org/PR11902
|
|
416. http://gcc.gnu.org/PR11903
|
|
417. http://gcc.gnu.org/bugzilla/
|
|
418. http://gcc.gnu.org/PR11890
|
|
419. http://gcc.gnu.org/PR12399
|
|
420. http://gcc.gnu.org/PR13068
|
|
421. http://gcc.gnu.org/PR10060
|
|
422. http://gcc.gnu.org/PR10555
|
|
423. http://gcc.gnu.org/PR10706
|
|
424. http://gcc.gnu.org/PR11496
|
|
425. http://gcc.gnu.org/PR11741
|
|
426. http://gcc.gnu.org/PR12440
|
|
427. http://gcc.gnu.org/PR12632
|
|
428. http://gcc.gnu.org/PR12712
|
|
429. http://gcc.gnu.org/PR12726
|
|
430. http://gcc.gnu.org/PR12890
|
|
431. http://gcc.gnu.org/PR12900
|
|
432. http://gcc.gnu.org/PR13060
|
|
433. http://gcc.gnu.org/PR13289
|
|
434. http://gcc.gnu.org/PR13318
|
|
435. http://gcc.gnu.org/PR13392
|
|
436. http://gcc.gnu.org/PR13574
|
|
437. http://gcc.gnu.org/PR13475
|
|
438. http://gcc.gnu.org/PR13797
|
|
439. http://gcc.gnu.org/PR13824
|
|
440. http://gcc.gnu.org/PR8776
|
|
441. http://gcc.gnu.org/PR10339
|
|
442. http://gcc.gnu.org/PR11350
|
|
443. http://gcc.gnu.org/PR12826
|
|
444. http://gcc.gnu.org/PR12500
|
|
445. http://gcc.gnu.org/PR12941
|
|
446. http://gcc.gnu.org/PR12953
|
|
447. http://gcc.gnu.org/PR13041
|
|
448. http://gcc.gnu.org/PR13507
|
|
449. http://gcc.gnu.org/PR13382
|
|
450. http://gcc.gnu.org/PR13394
|
|
451. http://gcc.gnu.org/PR13400
|
|
452. http://gcc.gnu.org/PR13521
|
|
453. http://gcc.gnu.org/PR2094
|
|
454. http://gcc.gnu.org/PR2294
|
|
455. http://gcc.gnu.org/PR5050
|
|
456. http://gcc.gnu.org/PR9371
|
|
457. http://gcc.gnu.org/PR9546
|
|
458. http://gcc.gnu.org/PR10081
|
|
459. http://gcc.gnu.org/PR10093
|
|
460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
|
|
461. http://gcc.gnu.org/PR10095
|
|
462. http://gcc.gnu.org/PR11554
|
|
463. http://gcc.gnu.org/PR12297
|
|
464. http://gcc.gnu.org/PR12352
|
|
465. http://gcc.gnu.org/PR12438
|
|
466. http://gcc.gnu.org/PR12540
|
|
467. http://gcc.gnu.org/PR12594
|
|
468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
|
|
469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
|
|
470. http://gcc.gnu.org/PR12657
|
|
471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
|
|
472. http://gcc.gnu.org/PR12696
|
|
473. http://gcc.gnu.org/PR12815
|
|
474. http://gcc.gnu.org/PR12862
|
|
475. http://gcc.gnu.org/PR12926
|
|
476. http://gcc.gnu.org/PR12967
|
|
477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
|
|
478. http://gcc.gnu.org/PR12971
|
|
479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
|
|
480. http://gcc.gnu.org/PR13007
|
|
481. http://gcc.gnu.org/PR13009
|
|
482. http://gcc.gnu.org/PR13057
|
|
483. http://gcc.gnu.org/PR13070
|
|
484. http://gcc.gnu.org/PR13081
|
|
485. http://gcc.gnu.org/PR13239
|
|
486. http://gcc.gnu.org/PR13262
|
|
487. http://gcc.gnu.org/PR13290
|
|
488. http://gcc.gnu.org/PR13323
|
|
489. http://gcc.gnu.org/PR13369
|
|
490. http://gcc.gnu.org/PR13371
|
|
491. http://gcc.gnu.org/PR13445
|
|
492. http://gcc.gnu.org/PR13461
|
|
493. http://gcc.gnu.org/PR13462
|
|
494. http://gcc.gnu.org/PR13478
|
|
495. http://gcc.gnu.org/PR13544
|
|
496. http://gcc.gnu.org/PR13650
|
|
497. http://gcc.gnu.org/PR13683
|
|
498. http://gcc.gnu.org/PR13688
|
|
499. http://gcc.gnu.org/PR13774
|
|
500. http://gcc.gnu.org/PR13884
|
|
501. http://gcc.gnu.org/PR10746
|
|
502. http://gcc.gnu.org/PR11433
|
|
503. http://gcc.gnu.org/PR12633
|
|
504. http://gcc.gnu.org/PR13037
|
|
505. http://gcc.gnu.org/PR13213
|
|
506. http://gcc.gnu.org/PR4490
|
|
507. http://gcc.gnu.org/PR12292
|
|
508. http://gcc.gnu.org/PR12441
|
|
509. http://gcc.gnu.org/PR12943
|
|
510. http://gcc.gnu.org/PR13608
|
|
511. http://gcc.gnu.org/PR11598
|
|
512. http://gcc.gnu.org/PR11793
|
|
513. http://gcc.gnu.org/PR12467
|
|
514. http://gcc.gnu.org/PR12537
|
|
515. http://gcc.gnu.org/PR12496
|
|
516. http://gcc.gnu.org/PR12865
|
|
517. http://gcc.gnu.org/PR13354
|
|
518. http://gcc.gnu.org/PR10467
|
|
519. http://gcc.gnu.org/PR11226
|
|
520. http://gcc.gnu.org/PR11227
|
|
521. http://gcc.gnu.org/PR12644
|
|
522. http://gcc.gnu.org/PR13149
|
|
523. http://gcc.gnu.org/PR12654
|
|
524. http://gcc.gnu.org/PR12965
|
|
525. http://gcc.gnu.org/PR13031
|
|
526. http://gcc.gnu.org/PR11634
|
|
527. http://gcc.gnu.org/PR12158
|
|
528. http://gcc.gnu.org/PR11992
|
|
529. http://gcc.gnu.org/PR9365
|
|
530. http://gcc.gnu.org/PR10392
|
|
531. http://gcc.gnu.org/PR11322
|
|
532. http://gcc.gnu.org/PR13069
|
|
533. http://gcc.gnu.org/PR13302
|
|
534. http://gcc.gnu.org/PR13585
|
|
535. http://gcc.gnu.org/PR8916
|
|
536. http://gcc.gnu.org/PR11576
|
|
537. http://gcc.gnu.org/PR13122
|
|
538. http://gcc.gnu.org/PR13256
|
|
539. http://gcc.gnu.org/PR13373
|
|
540. http://gcc.gnu.org/PR12561
|
|
541. http://gcc.gnu.org/PR6243
|
|
542. http://gcc.gnu.org/PR11397
|
|
543. http://gcc.gnu.org/PR12505
|
|
544. http://gcc.gnu.org/PR13150
|
|
545. http://gcc.gnu.org/PR12666
|
|
546. http://gcc.gnu.org/PR12969
|
|
547. http://gcc.gnu.org/PR10819
|
|
548. http://gcc.gnu.org/PR11612
|
|
549. http://gcc.gnu.org/PR13211
|
|
550. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4
|
|
551. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5
|
|
552. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6
|
|
553. mailto:gnu@gnu.org
|
|
554. http://www.gnu.org/home.html#ContactInfo
|
|
555. http://gcc.gnu.org/about.html
|
|
556. http://gcc.gnu.org/onlinedocs/
|
|
557. mailto:gcc-help@gcc.gnu.org
|
|
558. mailto:gcc@gnu.org
|
|
559. mailto:gcc@gcc.gnu.org
|
|
560. http://gcc.gnu.org/lists.html
|
|
561. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.2/index.html
|
|
|
|
GCC 3.2 Release Series
|
|
|
|
April 25, 2003
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 3.2.3.
|
|
|
|
The purpose of the GCC 3.2 release series is to provide a stable platform
|
|
for OS distributors to use building their next releases. A primary objective
|
|
was to stabilize the C++ ABI; we believe that the interface to the compiler
|
|
and the C++ standard library are now relatively stable.
|
|
|
|
Be aware that C++ code compiled by GCC 3.2.x will (in general) not
|
|
interoperate with code compiled by GCC 3.1.1 or earlier.
|
|
|
|
Please refer to our [2]detailed list of news, caveats, and bug-fixes for
|
|
further information.
|
|
|
|
Release History
|
|
|
|
GCC 3.2.3
|
|
April 25, 2003 ([3]changes)
|
|
|
|
GCC 3.2.2
|
|
February 5, 2003 ([4]changes)
|
|
|
|
GCC 3.2.1
|
|
November 19, 2002 ([5]changes)
|
|
|
|
GCC 3.2
|
|
August 14, 2002 ([6]changes)
|
|
|
|
References and Acknowledgements
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
A list of [7]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, improvements, bug fixes, and other changes as well
|
|
as test results to GCC. This [8]amazing group of volunteers is what makes
|
|
GCC successful.
|
|
|
|
For additional information about GCC please refer to the [9]GCC project web
|
|
site or contact the [10]GCC development mailing list.
|
|
|
|
To obtain GCC please use [11]our mirror sites, one of the [12]GNU mirror
|
|
sites, or our CVS server.
|
|
|
|
Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There are
|
|
also [14]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [15]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [16]GCC manuals. If that fails, the [17]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. All of
|
|
our lists have [20]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [21]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://gcc.gnu.org/gcc-3.2/changes.html
|
|
3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
|
|
4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2
|
|
5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1
|
|
6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2
|
|
7. http://gcc.gnu.org/gcc-3.2/buildstat.html
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
9. http://gcc.gnu.org/index.html
|
|
10. mailto:gcc@gcc.gnu.org
|
|
11. http://gcc.gnu.org/mirrors.html
|
|
12. http://www.gnu.org/order/ftp.html
|
|
13. mailto:gnu@gnu.org
|
|
14. http://www.gnu.org/home.html#ContactInfo
|
|
15. http://gcc.gnu.org/about.html
|
|
16. http://gcc.gnu.org/onlinedocs/
|
|
17. mailto:gcc-help@gcc.gnu.org
|
|
18. mailto:gcc@gnu.org
|
|
19. mailto:gcc@gcc.gnu.org
|
|
20. http://gcc.gnu.org/lists.html
|
|
21. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.2/changes.html
|
|
|
|
GCC 3.2 Release Series
|
|
Changes, New Features, and Fixes
|
|
|
|
The latest release in the 3.2 release series is [1]GCC 3.2.3.
|
|
|
|
Caveats and New Features
|
|
|
|
Caveats
|
|
|
|
* The C++ compiler does not correctly zero-initialize pointers-to-data
|
|
members. You must explicitly initialize them. For example: int S::*m(0);
|
|
will work, but depending on default-initialization to zero will not
|
|
work. This bug cannot be fixed in GCC 3.2 without inducing unacceptable
|
|
risks. It will be fixed in GCC 3.3.
|
|
* This GCC release is based on the GCC 3.1 sourcebase, and thus has all
|
|
the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has a number
|
|
of C++ ABI fixes which make its C++ compiler generate binary code which
|
|
is incompatible with the C++ compilers found in earlier GCC releases,
|
|
including GCC 3.1 and GCC 3.1.1.
|
|
|
|
Frontend Enhancements
|
|
|
|
C/C++/Objective-C
|
|
|
|
* The method of constructing the list of directories to be searched for
|
|
header files has been revised. If a directory named by a -I option is a
|
|
standard system include directory, the option is ignored to ensure that
|
|
the default search order for system directories and the special
|
|
treatment of system header files are not defeated.
|
|
* The C and Objective-C compilers no longer accept the "Naming Types"
|
|
extension (typedef foo = bar); it was already unavailable in C++. Code
|
|
which uses it will need to be changed to use the "typeof" extension
|
|
instead: typedef typeof(bar) foo. (We have removed this extension
|
|
without a period of deprecation because it has caused the compiler to
|
|
crash since version 3.0 and no one noticed until very recently. Thus we
|
|
conclude it is not in widespread use.)
|
|
|
|
C++
|
|
|
|
* GCC 3.2 fixed serveral differences between the C++ ABI implemented in
|
|
GCC and the multi-vendor standard, but more have been found since the
|
|
release. 3.2.1 adds a new warning, -Wabi, to warn about code which is
|
|
affected by these bugs. We will fix these bugs in some future release,
|
|
once we are confident that all have been found; until then, it is our
|
|
intention to make changes to the ABI only if they are necessary for
|
|
correct compilation of C++, as opposed to conformance to the ABI
|
|
documents.
|
|
* For details on how to build an ABI compliant compiler for GNU/Linux
|
|
systems, check the [3]common C++ ABI page.
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
IA-32
|
|
|
|
* Fixed a number of bugs in SSE and MMX intrinsics.
|
|
* Fixed common compiler crashes with SSE instruction set enabled (implied
|
|
by -march=pentium3, pentium4, athlon-xp)
|
|
* __m128 and __m128i is not 128bit aligned when used in structures.
|
|
|
|
x86-64
|
|
|
|
* A bug whereby the compiler could generate bad code for bzero has been
|
|
fixed.
|
|
* ABI fixes (implying ABI incompatibilities with previous version in some
|
|
corner cases)
|
|
* Fixed prefetch code generation
|
|
_________________________________________________________________
|
|
|
|
GCC 3.2.3
|
|
|
|
3.2.3 is a bug fix release only; there are no new features that were not
|
|
present in GCC 3.2.2.
|
|
|
|
Bug Fixes
|
|
|
|
This section lists the problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 3.2.3 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here), and some of the titles have been changed to make them more
|
|
clear.
|
|
|
|
Internal Compiler Errors (multi-platform)
|
|
|
|
* [4]3782: (c++) -quiet -fstats produces a segmentation fault in cc1plus
|
|
* [5]6440: (c++) template specializations cause ICE
|
|
* [6]7050: (c++) ICE on: (i ? get_string() : throw)
|
|
* [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c)
|
|
* [8]7982: (c++) ICE due to infinite recursion (using STL set)
|
|
* [9]8068: exceedingly high (infinite) memory usage
|
|
* [10]8178: ICE with __builtin_ffs
|
|
* [11]8396: ICE in copy_to_mode_reg, in explow.c
|
|
* [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c
|
|
* [13]9768: ICE when optimizing inline code at -O2
|
|
* [14]9798: (c++) Infinite recursion (segfault) in
|
|
cp/decl.c:push_using_directive with recursive using directives
|
|
* [15]9799: mismatching structure initializer with nested flexible array
|
|
member: ICE
|
|
* [16]9928: ICE on duplicate enum declaration
|
|
* [17]10114: ICE in mem_loc_descriptor, in dwarf2out.c (affects sparc,
|
|
alpha)
|
|
* [18]10352: ICE in find_reloads_toplev
|
|
* [19]10336: ICE with -Wunreachable-code
|
|
|
|
C/optimizer bugs:
|
|
|
|
* [20]8224: Incorrect joining of signed and unsigned division
|
|
* [21]8613: -O2 produces wrong code with builtin strlen and postincrements
|
|
* [22]8828: gcc reports some code is unreachable when it is not
|
|
* [23]9226: GCSE breaking argument passing
|
|
* [24]9853: miscompilation of non-constant structure initializer
|
|
* [25]9797: C99-style struct initializers are miscompiled
|
|
* [26]9967: Some standard C function calls should not be replaced when
|
|
optimizing for size
|
|
* [27]10116: ce2: invalid merge of join_bb in the context of switch
|
|
statements
|
|
* [28]10171: wrong code for inlined function
|
|
* [29]10175: -Wunreachable-code doesn't work for single lines
|
|
|
|
C++ compiler and library:
|
|
|
|
* [30]8316: Confusing diagnostic for code that misuses conversion
|
|
operators
|
|
* [31]9169: filebuf output fails if codecvt<>::out returns noconv
|
|
* [32]9420: incomplete type incorrectly reported
|
|
* [33]9459: typeof in return type specification of template not supported
|
|
* [34]9507: filebuf::open handles ios_base::ate incorrectly
|
|
* [35]9538: Out-of-bounds memory access in streambuf::sputbackc
|
|
* [36]9602: Total confusion about template/friend/virtual/abstract
|
|
* [37]9993: destructor not called for local object created within and
|
|
returned from infinite loop
|
|
* [38]10167: ieee_1003.1-2001 locale specialisations on a glibc-2.3.2
|
|
system
|
|
|
|
Java compiler and library:
|
|
|
|
* [39]9652: libgcj build fails on irix6.5.1[78]
|
|
* [40]10144: gas on solaris complains about bad .stabs lines for java,
|
|
native as unaffected
|
|
|
|
x86-specific (Intel/AMD):
|
|
|
|
* [41]8746: gcc miscompiles Linux kernel ppa driver on x86
|
|
* [42]9888: -mcpu=k6 -Os produces out of range loop instructions
|
|
* [43]9638: Cross-build for target i386-elf and i586-pc-linux-gnu failed
|
|
* [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib)
|
|
failed
|
|
|
|
SPARC-specific:
|
|
|
|
* [45]7784: [Sparc] ICE in extract_insn, in recog.c
|
|
* [46]7796: sparc extra failure with -m64 on execute/930921-1.c in
|
|
unroll.c
|
|
* [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc
|
|
* [48]8366: [Sparc] C testsuite failure with -m64 -fpic -O in
|
|
execute/loop-2d.c
|
|
* [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc
|
|
* [50]9414: Scheduling bug on Ultrasparc
|
|
* [51]10067: GCC-3.2.2 outputs invalid asm on sparc64
|
|
|
|
m68k-specific:
|
|
|
|
* [52]7248: broken "inclusive or" code
|
|
* [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1
|
|
|
|
PowerPC-specific:
|
|
|
|
* [54]9732: Wrong code with -O2 -fPIC
|
|
* [55]10073: ICE: powerpc cannot split insn
|
|
|
|
Alpha-specific:
|
|
|
|
* [56]7702: optimization problem on a DEC alpha under OSF1
|
|
* [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system
|
|
|
|
HP-specific:
|
|
|
|
* [58]8694: breaks on HP-UX 10.20 (DUP: 9275)
|
|
* [59]9953: (ada) gcc 3.2.x can't build 3.3-branch ada on HP-UX 10
|
|
(missing symbol)
|
|
* [60]10271: Floating point args don't get reloaded across function calls
|
|
with -O2
|
|
|
|
MIPS specific:
|
|
|
|
* [61]6362: mips-irix6 gcc-3.1 C testsuite failure with -mips4 in
|
|
compile/920501-4.c
|
|
|
|
CRIS specific:
|
|
|
|
* [62]10377: gcc-3.2.2 creates bad assembler code for cris
|
|
|
|
Miscellaneous and minor bugs:
|
|
|
|
* [63]6955: collect2 says "core dumped" when there is no core
|
|
_________________________________________________________________
|
|
|
|
GCC 3.2.2
|
|
|
|
Beginning with 3.2.2, GCC's Makefile suite supports redirection of make
|
|
install by means of the DESTDIR variable. Parts of the GCC tree have
|
|
featured that support long before, but now it is available even from the top
|
|
level.
|
|
|
|
Other than that, GCC 3.2.2 is a bug fix release only; there are no new
|
|
features that were not present in GCC 3.2.1.
|
|
|
|
Bug Fixes
|
|
|
|
On the following i386-based systems GCC 3.2.1 broke the C ABI wrt. functions
|
|
returning structures: Cygwin, FreeBSD (GCC 3.2.1 as shipped with FreeBSD 5.0
|
|
does not have this problem), Interix, a.out-based Linux and NetBSD, OpenBSD,
|
|
and Darwin. GCC 3.2.2 reverts this ABI change, and thus restores
|
|
ABI-compatibility with previous releases (except GCC 3.2.1) on these
|
|
platforms.
|
|
|
|
This section lists the problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 3.2.2 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here) and some of the titles have been changed to make them more
|
|
clear.
|
|
|
|
Internal Compiler Errors (multi-platform)
|
|
|
|
* [64]5919: (c++) ICE when passing variable array to template function
|
|
* [65]7129: (c++) ICE with min/max assignment operators (= and >?=)
|
|
* [66]7507: ICE with -O2 when address of called function is a complicated
|
|
expression
|
|
* [67]7622: ICE with nested inline functions if function's address is
|
|
taken
|
|
* [68]7681: (fortran) ICE in compensate_edge, in reg-stack.c (also PR
|
|
[69]9258)
|
|
* [70]8031: (c++) ICE in code comparing typeids and casting from virtual
|
|
base
|
|
* [71]8275: ICE in simplify_subreg
|
|
* [72]8332: (c++) builtin strlen/template interaction causes ICE
|
|
* [73]8372: (c++) ICE on explicit call of destructor
|
|
* [74]8439: (c, not c++) empty struct causes ICE
|
|
* [75]8442: (c++) ICE with nested template classes
|
|
* [76]8518: ICE when compiling mplayer ("extern inline" issue)
|
|
* [77]8615: (c++) ICE with out-of-range character constant template
|
|
argument
|
|
* [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307
|
|
* [79]8799: (c++) ICE: error reporting routines re-entered
|
|
* [80]9328: (c++) ICE with typeof(X) for overloaded X
|
|
* [81]9465: (preprocessor) cpp -traditional ICE on null bytes
|
|
|
|
C++ (compiler and library) bugs
|
|
|
|
* [82]47: scoping in nested classes is broken
|
|
* [83]6745: problems with iostream rdbuf() member function
|
|
* [84]8214: conversion from const char* const to char* sometimes accepted
|
|
illegally
|
|
* [85]8493: builtin strlen and overload resolution (same bug as [86]8332)
|
|
* [87]8503: strange behaviour of function types
|
|
* [88]8727: compiler confused by inheritance from an anonymous struct
|
|
* [89]7445: poor performance of std::locale::classic() in multi-threaded
|
|
applications
|
|
* [90]8230: mishandling of overflow in vector::resize
|
|
* [91]8399: sync_with_stdio(false) breaks unformatted input
|
|
* [92]8662: illegal access of private member of unnamed class is accepted
|
|
* [93]8707: "make distclean" fails in libstdc++-v3 directory
|
|
* [94]8708: __USE_MALLOC doesn't work
|
|
* [95]8790: Use of non-thread-safe strtok in src/localename.cc
|
|
* [96]8887: Bug in date formats with --enable-clocale=generic
|
|
* [97]9076: Call Frame Instructions are not handled correctly during
|
|
unwind operation
|
|
* [98]9151: std::setprecision limited to 16 digits when outputting a
|
|
double to a stream
|
|
* [99]9168: codecvt overwrites output buffers
|
|
* [100]9269: libstdc++ headers: explicit specialization of function must
|
|
precede its first use
|
|
* [101]9322: return value of basic_streambuf<>::getloc affected by
|
|
locale::global
|
|
* [102]9433: segfault in runtime support for dynamic_cast
|
|
|
|
C and optimizer bugs
|
|
|
|
* [103]8032: GCC incorrectly initializes static structs that have flexible
|
|
arrays
|
|
* [104]8639: simple arithmetic expression broken
|
|
* [105]8794: optimization improperly eliminates certain expressions
|
|
* [106]8832: traditional "asm volatile" code is illegally optimized
|
|
* [107]8988: loop optimizer bug: with -O2, code is generated that
|
|
segfaults (found on i386, bug present for all platforms)
|
|
* [108]9492: structure copy clobbers subsequent stores to structure
|
|
|
|
Objective-C bugs
|
|
|
|
* [109]9267: Objective-C parser won't build with newer bison versions
|
|
(e.g. 1.875)
|
|
|
|
Ada bugs
|
|
|
|
* [110]8344: Ada build problem due to conflict between gcc/final.o,
|
|
gcc/ada/final.o
|
|
|
|
Preprocessor bugs
|
|
|
|
* [111]8524: _Pragma within macros is improperly expanded
|
|
* [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with
|
|
-fshort-wchar
|
|
|
|
ARM-specific
|
|
|
|
* [113]9090: arm ICE with >= -O2; regression from gcc-2.95
|
|
|
|
x86-specific (Intel/AMD)
|
|
|
|
* [114]8588: ICE in extract_insn, at recog.c:NNNN (shift instruction)
|
|
* [115]8599: loop unroll bug with -march=k6-3
|
|
* [116]9506: ABI breakage in structure return (affects BSD and Cygwin, but
|
|
not GNU/Linux)
|
|
|
|
FreeBSD 5.0 specific
|
|
|
|
* [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0
|
|
|
|
RTEMS-specific
|
|
|
|
* [118]9292: hppa1.1-rtems configurery problems
|
|
* [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug
|
|
* [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue
|
|
* [121]9296: gthr-rtems regression
|
|
* [122]9316: powerpc-rtems: extending multilibs
|
|
|
|
HP-PA specific
|
|
|
|
* [123]9493: ICE with -O2 when building a simple function
|
|
|
|
Documentation
|
|
|
|
* [124]7341: hyperlink to gcov in GCC documentation doesn't work
|
|
* [125]8947: Please add a warning about "-malign-double" in docs
|
|
* [126]7448, [127]8882: typo cleanups
|
|
_________________________________________________________________
|
|
|
|
GCC 3.2.1
|
|
|
|
3.2.1 adds a new warning, -Wabi. This option warns when GNU C++ generates
|
|
code that is known not to be binary-compatible with the vendor-neutral
|
|
ia32/ia64 ABI. Please consult the GCC manual, included in the distribution,
|
|
for details.
|
|
|
|
This release also removes an old GCC extension, "naming types", and the
|
|
documentation now directs users to use a different GCC extension,
|
|
__typeof__, instead. The feature had evidently been broken for a while.
|
|
|
|
Otherwise, 3.2.1 is a bug fix release only; other than bug fixes and the new
|
|
warning there are no new features that were not present in GCC 3.2.
|
|
|
|
In addition, the previous fix for [128]PR 7445 (poor performance of
|
|
std::locale::classic() in multi-threaded applications) was reverted
|
|
("unfixed"), because the "fix" was not thread-safe.
|
|
|
|
Bug Fixes
|
|
|
|
This section lists the problem reports (PRs) from GCC's bug tracking system
|
|
that are known to be fixed in the 3.2.1 release. This list might not be
|
|
complete (that is, it is possible that some PRs that have been fixed are not
|
|
listed here). As you can see, the number of bug fixes is quite large, so it
|
|
is strongly recommended that users of earlier GCC 3.x releases upgrade to
|
|
GCC 3.2.1.
|
|
|
|
Internal Compiler Errors (multi-platform)
|
|
|
|
* [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c
|
|
* [130]5661: (c++) ICE instantiating template on array of unknown size
|
|
(bad code)
|
|
* [131]6419: (c++) ICE in make_decl_rtl for "longest" attribute on 64-bit
|
|
platforms
|
|
* [132]6994: (c++) ICE in find_function_data
|
|
* [133]7150: preprocessor: GCC -dM -E gives an ICE
|
|
* [134]7160: ICE when optimizing branches without a return value
|
|
* [135]7228: (c++) ICE when using member template and template function
|
|
* [136]7266: (c++) ICE with -pedantic on missing typename
|
|
* [137]7353: ICE from use of "Naming Types" extension, see above
|
|
* [138]7411: ICE in instantiate_virtual_regs_1, in function.c
|
|
* [139]7478: (c++) ICE on static_cast inside template
|
|
* [140]7526: preprocessor core dump when _Pragma implies #pragma
|
|
dependency
|
|
* [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803 is a
|
|
duplicate)
|
|
* [143]7754: (c++) ICE on union with template parameter
|
|
* [144]7788: (c++) redeclaring a definition as an incomplete class causes
|
|
ICE
|
|
* [145]8031: (c++) ICE in comptypes, in cp/typeck.c
|
|
* [146]8055: preprocessor dies with SIG11 when building FreeBSD kernel
|
|
* [147]8067: (c++) ICE due to mishandling of __FUNCTION__ and related
|
|
variables
|
|
* [148]8134: (c++) ICE in force_store_init_value on legal code
|
|
* [149]8149: (c++) ICE on incomplete type
|
|
* [150]8160: (c++) ICE in build_modify_expr, in cp/typeck.c: array
|
|
initialization
|
|
|
|
C++ (compiler and library) bugs
|
|
|
|
* [151]5607: No pointer adjustment in covariant return types
|
|
* [152]6579: Infinite loop with statement expressions in member
|
|
initialization
|
|
* [153]6803: Default copy constructor bug in GCC 3.1
|
|
* [154]7176: g++ confused by friend and static member with same name
|
|
* [155]7188: Segfault with template class and recursive (incorrect)
|
|
initializer list
|
|
* [156]7306: Regression: GCC 3.x fails to compile code with virtual
|
|
inheritance if a method has a variable number of arguments
|
|
* [157]7461: ctype::classic_table() returns offset array on Cygwin
|
|
* [158]7524: f(const float arg[3]) fails
|
|
* [159]7584: Erroneous ambiguous base error on using declaration
|
|
* [160]7676: Member template overloading problem
|
|
* [161]7679: infinite loop when a right parenthesis is missing
|
|
* [162]7811: default locale not taken from environment
|
|
* [163]7961: compare( char *) implemented incorrectly in basic_string<>
|
|
* [164]8071: basic_ostream::operator<<(streambuf*) loops forever if
|
|
streambuf::underflow() leaves gptr() NULL (dups: [165]8127, [166]6745)
|
|
* [167]8096: deque::at() throws std::range_error instead of
|
|
std::out_of_range
|
|
* [168]8127: cout << cin.rdbuf() infinite loop
|
|
* [169]8218: Excessively large memory consumed for classes with large
|
|
array members
|
|
* [170]8287: GCC 3.2: Destructor called for non-constructed local object
|
|
* [171]8347: empty vector range used in string construction causes core
|
|
dump
|
|
* [172]8348: fail() flag is set in istringstream when eof() flag is set
|
|
* [173]8391: regression: infinite loop in cp/decl2.c(finish_file)
|
|
|
|
C and optimizer bugs
|
|
|
|
* [174]6627: -fno-align-functions doesn't seem to disable function
|
|
alignment
|
|
* [175]6631: life_analysis misoptimizes code to initialize fields of a
|
|
structure
|
|
* [176]7102: unsigned char division results in floating exception
|
|
* [177]7120: Run once loop should *always* be unrolled (pessimization)
|
|
* [178]7209: Bug involving array referencing and ?: operator
|
|
* [179]7515: invalid inlining of global function with -O3
|
|
* [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test
|
|
* [181]8467: bug in sibling call optimization
|
|
|
|
Preprocessor bugs
|
|
|
|
* [182]4890: incorrect line markers from the traditional preprocessor
|
|
* [183]7357: -M option omits system headers files (making it the same as
|
|
-MM)
|
|
* [184]7358: Changes to Sun's make Dependencies
|
|
* [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as C
|
|
headers
|
|
* [186]7862: Interrupting GCC -MD removes .d file but not .o
|
|
* [187]8190: Failed compilation deletes -MD dependency file
|
|
* [188]8524: _Pragma within macro is improperly expanded
|
|
|
|
x86 specific (Intel/AMD)
|
|
|
|
* [189]5351: (i686-only) function pass-by-value structure copy corrupts
|
|
stack ([190]7591 is a duplicate)
|
|
* [191]6845, [192]7034, [193]7124, [194]7174: ICE's with
|
|
-march=pentium3/pentium2/athlon (these are all the same underlying bug,
|
|
in MMX register use)
|
|
* [195]7134, [196]7375, [197]7390: ICE with -march=athlon (maybe same as
|
|
above?)
|
|
* [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken
|
|
* [199]6981: wrong code in 64-bit manipulation on x86
|
|
* [200]7242: GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__
|
|
macro
|
|
* [201]7396: ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE
|
|
intrinsics are broken
|
|
* [202]7630: GCC 3.2 breaks on Mozilla 1.0's JS sources with
|
|
-march=pentium4
|
|
* [203]7693: Typo in i386 mmintrin.h header
|
|
* [204]7723: ICE - Pentium3 sse - GCC 3.2
|
|
* [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse
|
|
* [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3
|
|
|
|
PowerPC specific
|
|
|
|
* [207]5967: GCC bug when profiling nested functions on powerpc
|
|
* [208]6984: wrong code generated with -O2, -O3, -Os for do-while loop on
|
|
PowerPC
|
|
* [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
|
|
* [210]7130: miscompiled code for GCC-3.1 in powerpc linux with
|
|
-funroll-all-loops
|
|
* [211]7133: PowerPC ICE: unrecognizable insn
|
|
* [212]7380: ICE in extract_insn, at recog.c:2148
|
|
* [213]8252: ICE on Altivec code with optimization turned on
|
|
* [214]8451: Altivec ICE in GCC 3.2
|
|
|
|
HP/PA specific
|
|
|
|
* [215]7250: __ashrdi3 returns wrong value on 32 bit hppa
|
|
|
|
SPARC specific
|
|
|
|
* [216]6668: when using --disable-multilib, libgcc_s.so is installed in
|
|
the wrong place on sparc-solaris
|
|
* [217]7151: ICE when compiling for UltraSPARC
|
|
* [218]7335: SPARC: ICE in verify_wide_reg (flow.c:557) with long double
|
|
and -O1
|
|
* [219]7842: [REGRESSION] SPARC code gen bug
|
|
|
|
ARM specific
|
|
|
|
* [220]7856: [arm] invalid offset in constant pool reference
|
|
* [221]7967: optimization produces wrong code (ARM)
|
|
|
|
Alpha specific
|
|
|
|
* [222]7374: __builtin_fabsl broken on alpha
|
|
|
|
IBM s390 specific
|
|
|
|
* [223]7370: ICE in fixup_var_refs_1 on s390x
|
|
* [224]7409: loop optimization bug on s390x-linux-gnu
|
|
* [225]8232: s390x: ICE when using bcmp with int length argument
|
|
|
|
SCO specific
|
|
|
|
* [226]7623: SCO OpenServer build fails with machmode.def: undefined
|
|
symbol: BITS_PER_UNIT
|
|
|
|
m68k/Coldfire specific
|
|
|
|
* [227]8314: crtbegin, crtend need to be multilib'ed for this platform
|
|
|
|
Documentation
|
|
|
|
* [228]761: Document some undocumented options
|
|
* [229]5610: Fix documentation about invoking SSE instructions
|
|
(-mfpmath=sse)
|
|
* [230]7484: List -Wmissing-declarations as C-only option
|
|
* [231]7531: -mcmodel not documented for x86-64
|
|
* [232]8120: Update documentation of bad use of ##
|
|
_________________________________________________________________
|
|
|
|
GCC 3.2
|
|
|
|
3.2 is a small bug fix release, but there is a change to the application
|
|
binary interface (ABI), hence the change to the second part of the version
|
|
number.
|
|
|
|
The main purpose of the 3.2 release is to correct a couple of problems in
|
|
the C++ ABI, with the intention of providing a stable interface going
|
|
forward. Accordingly, 3.2 is only a small change to 3.1.1.
|
|
|
|
Bug Fixes
|
|
|
|
C++
|
|
|
|
* [233]7320: g++ 3.2 relocation problem
|
|
* [234]7470: vtable: virtual function pointers not in declaration order
|
|
|
|
libstdc++
|
|
|
|
* [235]6410: Trouble with non-ASCII monetary symbols and wchar_t
|
|
* [236]6503, [237]6642, [238]7186: Problems with comparing or subtracting
|
|
various types of const and non-const iterators
|
|
* [239]7216: ambiguity with basic_iostream::traits_type
|
|
* [240]7220: problem with basic_istream::ignore(0,delimiter)
|
|
* [241]7222: locale::operator==() doesn't work on std::locale("")
|
|
* [242]7286: placement operator delete issue
|
|
* [243]7442: cxxabi.h does not match the C++ ABI
|
|
* [244]7445: poor performance of std::locale::classic() in multi-threaded
|
|
applications
|
|
|
|
x86-64 specific
|
|
|
|
* [245]7291: off-by-one in generated inline bzero code for x86-64
|
|
|
|
Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There are
|
|
also [247]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [248]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [249]GCC manuals. If that fails, the [250]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [251]gcc@gnu.org or [252]gcc@gcc.gnu.org. All of
|
|
our lists have [253]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [254]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
|
|
2. http://gcc.gnu.org/gcc-3.1/changes.html
|
|
3. http://gcc.gnu.org/gcc-3.2/c++-abi.html
|
|
4. http://gcc.gnu.org/PR3782
|
|
5. http://gcc.gnu.org/PR6440
|
|
6. http://gcc.gnu.org/PR7050
|
|
7. http://gcc.gnu.org/PR7741
|
|
8. http://gcc.gnu.org/PR7982
|
|
9. http://gcc.gnu.org/PR8068
|
|
10. http://gcc.gnu.org/PR8178
|
|
11. http://gcc.gnu.org/PR8396
|
|
12. http://gcc.gnu.org/PR8674
|
|
13. http://gcc.gnu.org/PR9768
|
|
14. http://gcc.gnu.org/PR9798
|
|
15. http://gcc.gnu.org/PR9799
|
|
16. http://gcc.gnu.org/PR9928
|
|
17. http://gcc.gnu.org/PR10114
|
|
18. http://gcc.gnu.org/PR10352
|
|
19. http://gcc.gnu.org/PR10336
|
|
20. http://gcc.gnu.org/PR8224
|
|
21. http://gcc.gnu.org/PR8613
|
|
22. http://gcc.gnu.org/PR8828
|
|
23. http://gcc.gnu.org/PR9226
|
|
24. http://gcc.gnu.org/PR9853
|
|
25. http://gcc.gnu.org/PR9797
|
|
26. http://gcc.gnu.org/PR9967
|
|
27. http://gcc.gnu.org/PR10116
|
|
28. http://gcc.gnu.org/PR10171
|
|
29. http://gcc.gnu.org/PR10175
|
|
30. http://gcc.gnu.org/PR8316
|
|
31. http://gcc.gnu.org/PR9169
|
|
32. http://gcc.gnu.org/PR9420
|
|
33. http://gcc.gnu.org/PR9459
|
|
34. http://gcc.gnu.org/PR9507
|
|
35. http://gcc.gnu.org/PR9538
|
|
36. http://gcc.gnu.org/PR9602
|
|
37. http://gcc.gnu.org/PR9993
|
|
38. http://gcc.gnu.org/PR10167
|
|
39. http://gcc.gnu.org/PR9652
|
|
40. http://gcc.gnu.org/PR10144
|
|
41. http://gcc.gnu.org/PR8746
|
|
42. http://gcc.gnu.org/PR9888
|
|
43. http://gcc.gnu.org/PR9638
|
|
44. http://gcc.gnu.org/PR9954
|
|
45. http://gcc.gnu.org/PR7784
|
|
46. http://gcc.gnu.org/PR7796
|
|
47. http://gcc.gnu.org/PR8281
|
|
48. http://gcc.gnu.org/PR8366
|
|
49. http://gcc.gnu.org/PR8726
|
|
50. http://gcc.gnu.org/PR9414
|
|
51. http://gcc.gnu.org/PR10067
|
|
52. http://gcc.gnu.org/PR7248
|
|
53. http://gcc.gnu.org/PR8343
|
|
54. http://gcc.gnu.org/PR9732
|
|
55. http://gcc.gnu.org/PR10073
|
|
56. http://gcc.gnu.org/PR7702
|
|
57. http://gcc.gnu.org/PR9671
|
|
58. http://gcc.gnu.org/PR8694
|
|
59. http://gcc.gnu.org/PR9953
|
|
60. http://gcc.gnu.org/PR10271
|
|
61. http://gcc.gnu.org/PR6362
|
|
62. http://gcc.gnu.org/PR10377
|
|
63. http://gcc.gnu.org/PR6955
|
|
64. http://gcc.gnu.org/PR5919
|
|
65. http://gcc.gnu.org/PR7129
|
|
66. http://gcc.gnu.org/PR7507
|
|
67. http://gcc.gnu.org/PR7622
|
|
68. http://gcc.gnu.org/PR7681
|
|
69. http://gcc.gnu.org/PR9528
|
|
70. http://gcc.gnu.org/PR8031
|
|
71. http://gcc.gnu.org/PR8275
|
|
72. http://gcc.gnu.org/PR8332
|
|
73. http://gcc.gnu.org/PR8372
|
|
74. http://gcc.gnu.org/PR8439
|
|
75. http://gcc.gnu.org/PR8442
|
|
76. http://gcc.gnu.org/PR8518
|
|
77. http://gcc.gnu.org/PR8615
|
|
78. http://gcc.gnu.org/PR8663
|
|
79. http://gcc.gnu.org/PR8799
|
|
80. http://gcc.gnu.org/PR9328
|
|
81. http://gcc.gnu.org/PR9465
|
|
82. http://gcc.gnu.org/PR47
|
|
83. http://gcc.gnu.org/PR6745
|
|
84. http://gcc.gnu.org/PR8214
|
|
85. http://gcc.gnu.org/PR8493
|
|
86. http://gcc.gnu.org/PR8332
|
|
87. http://gcc.gnu.org/PR8503
|
|
88. http://gcc.gnu.org/PR8727
|
|
89. http://gcc.gnu.org/PR7445
|
|
90. http://gcc.gnu.org/PR8230
|
|
91. http://gcc.gnu.org/PR8399
|
|
92. http://gcc.gnu.org/PR8662
|
|
93. http://gcc.gnu.org/PR8707
|
|
94. http://gcc.gnu.org/PR8708
|
|
95. http://gcc.gnu.org/PR8790
|
|
96. http://gcc.gnu.org/PR8887
|
|
97. http://gcc.gnu.org/PR9076
|
|
98. http://gcc.gnu.org/PR9151
|
|
99. http://gcc.gnu.org/PR9168
|
|
100. http://gcc.gnu.org/PR9269
|
|
101. http://gcc.gnu.org/PR9322
|
|
102. http://gcc.gnu.org/PR9433
|
|
103. http://gcc.gnu.org/PR8032
|
|
104. http://gcc.gnu.org/PR8639
|
|
105. http://gcc.gnu.org/PR8794
|
|
106. http://gcc.gnu.org/PR8832
|
|
107. http://gcc.gnu.org/PR8988
|
|
108. http://gcc.gnu.org/PR9492
|
|
109. http://gcc.gnu.org/PR9267
|
|
110. http://gcc.gnu.org/PR8344
|
|
111. http://gcc.gnu.org/PR8524
|
|
112. http://gcc.gnu.org/PR8880
|
|
113. http://gcc.gnu.org/PR9090
|
|
114. http://gcc.gnu.org/PR8588
|
|
115. http://gcc.gnu.org/PR8599
|
|
116. http://gcc.gnu.org/PR9506
|
|
117. http://gcc.gnu.org/PR9484
|
|
118. http://gcc.gnu.org/PR9292
|
|
119. http://gcc.gnu.org/PR9293
|
|
120. http://gcc.gnu.org/PR9295
|
|
121. http://gcc.gnu.org/PR9296
|
|
122. http://gcc.gnu.org/PR9316
|
|
123. http://gcc.gnu.org/PR9493
|
|
124. http://gcc.gnu.org/PR7341
|
|
125. http://gcc.gnu.org/PR8947
|
|
126. http://gcc.gnu.org/PR7448
|
|
127. http://gcc.gnu.org/PR8882
|
|
128. http://gcc.gnu.org/PR7445
|
|
129. http://gcc.gnu.org/PR2521
|
|
130. http://gcc.gnu.org/PR5661
|
|
131. http://gcc.gnu.org/PR6419
|
|
132. http://gcc.gnu.org/PR6994
|
|
133. http://gcc.gnu.org/PR7150
|
|
134. http://gcc.gnu.org/PR7160
|
|
135. http://gcc.gnu.org/PR7228
|
|
136. http://gcc.gnu.org/PR7266
|
|
137. http://gcc.gnu.org/PR7353
|
|
138. http://gcc.gnu.org/PR7411
|
|
139. http://gcc.gnu.org/PR7478
|
|
140. http://gcc.gnu.org/PR7526
|
|
141. http://gcc.gnu.org/PR7721
|
|
142. http://gcc.gnu.org/PR7803
|
|
143. http://gcc.gnu.org/PR7754
|
|
144. http://gcc.gnu.org/PR7788
|
|
145. http://gcc.gnu.org/PR8031
|
|
146. http://gcc.gnu.org/PR8055
|
|
147. http://gcc.gnu.org/PR8067
|
|
148. http://gcc.gnu.org/PR8134
|
|
149. http://gcc.gnu.org/PR8149
|
|
150. http://gcc.gnu.org/PR8160
|
|
151. http://gcc.gnu.org/PR5607
|
|
152. http://gcc.gnu.org/PR6579
|
|
153. http://gcc.gnu.org/PR6803
|
|
154. http://gcc.gnu.org/PR7176
|
|
155. http://gcc.gnu.org/PR7188
|
|
156. http://gcc.gnu.org/PR7306
|
|
157. http://gcc.gnu.org/PR7461
|
|
158. http://gcc.gnu.org/PR7524
|
|
159. http://gcc.gnu.org/PR7584
|
|
160. http://gcc.gnu.org/PR7676
|
|
161. http://gcc.gnu.org/PR7679
|
|
162. http://gcc.gnu.org/PR7811
|
|
163. http://gcc.gnu.org/PR7961
|
|
164. http://gcc.gnu.org/PR8071
|
|
165. http://gcc.gnu.org/PR8127
|
|
166. http://gcc.gnu.org/PR6745
|
|
167. http://gcc.gnu.org/PR8096
|
|
168. http://gcc.gnu.org/PR8127
|
|
169. http://gcc.gnu.org/PR8218
|
|
170. http://gcc.gnu.org/PR8287
|
|
171. http://gcc.gnu.org/PR8347
|
|
172. http://gcc.gnu.org/PR8348
|
|
173. http://gcc.gnu.org/PR8391
|
|
174. http://gcc.gnu.org/PR6627
|
|
175. http://gcc.gnu.org/PR6631
|
|
176. http://gcc.gnu.org/PR7102
|
|
177. http://gcc.gnu.org/PR7120
|
|
178. http://gcc.gnu.org/PR7209
|
|
179. http://gcc.gnu.org/PR7515
|
|
180. http://gcc.gnu.org/PR7814
|
|
181. http://gcc.gnu.org/PR8467
|
|
182. http://gcc.gnu.org/PR4890
|
|
183. http://gcc.gnu.org/PR7357
|
|
184. http://gcc.gnu.org/PR7358
|
|
185. http://gcc.gnu.org/PR7602
|
|
186. http://gcc.gnu.org/PR7862
|
|
187. http://gcc.gnu.org/PR8190
|
|
188. http://gcc.gnu.org/PR8524
|
|
189. http://gcc.gnu.org/PR5351
|
|
190. http://gcc.gnu.org/PR7591
|
|
191. http://gcc.gnu.org/PR6845
|
|
192. http://gcc.gnu.org/PR7034
|
|
193. http://gcc.gnu.org/PR7124
|
|
194. http://gcc.gnu.org/PR7174
|
|
195. http://gcc.gnu.org/PR7134
|
|
196. http://gcc.gnu.org/PR7375
|
|
197. http://gcc.gnu.org/PR7390
|
|
198. http://gcc.gnu.org/PR6890
|
|
199. http://gcc.gnu.org/PR6981
|
|
200. http://gcc.gnu.org/PR7242
|
|
201. http://gcc.gnu.org/PR7396
|
|
202. http://gcc.gnu.org/PR7630
|
|
203. http://gcc.gnu.org/PR7693
|
|
204. http://gcc.gnu.org/PR7723
|
|
205. http://gcc.gnu.org/PR7951
|
|
206. http://gcc.gnu.org/PR8146
|
|
207. http://gcc.gnu.org/PR5967
|
|
208. http://gcc.gnu.org/PR6984
|
|
209. http://gcc.gnu.org/PR7114
|
|
210. http://gcc.gnu.org/PR7130
|
|
211. http://gcc.gnu.org/PR7133
|
|
212. http://gcc.gnu.org/PR7380
|
|
213. http://gcc.gnu.org/PR8252
|
|
214. http://gcc.gnu.org/PR8451
|
|
215. http://gcc.gnu.org/PR7250
|
|
216. http://gcc.gnu.org/PR6668
|
|
217. http://gcc.gnu.org/PR7151
|
|
218. http://gcc.gnu.org/PR7335
|
|
219. http://gcc.gnu.org/PR7842
|
|
220. http://gcc.gnu.org/PR7856
|
|
221. http://gcc.gnu.org/PR7967
|
|
222. http://gcc.gnu.org/PR7374
|
|
223. http://gcc.gnu.org/PR7370
|
|
224. http://gcc.gnu.org/PR7409
|
|
225. http://gcc.gnu.org/PR8232
|
|
226. http://gcc.gnu.org/PR7623
|
|
227. http://gcc.gnu.org/PR8314
|
|
228. http://gcc.gnu.org/PR761
|
|
229. http://gcc.gnu.org/PR5610
|
|
230. http://gcc.gnu.org/PR7484
|
|
231. http://gcc.gnu.org/PR7531
|
|
232. http://gcc.gnu.org/PR8120
|
|
233. http://gcc.gnu.org/PR7320
|
|
234. http://gcc.gnu.org/PR7470
|
|
235. http://gcc.gnu.org/PR6410
|
|
236. http://gcc.gnu.org/PR6503
|
|
237. http://gcc.gnu.org/PR6642
|
|
238. http://gcc.gnu.org/PR7186
|
|
239. http://gcc.gnu.org/PR7216
|
|
240. http://gcc.gnu.org/PR7220
|
|
241. http://gcc.gnu.org/PR7222
|
|
242. http://gcc.gnu.org/PR7286
|
|
243. http://gcc.gnu.org/PR7442
|
|
244. http://gcc.gnu.org/PR7445
|
|
245. http://gcc.gnu.org/PR7291
|
|
246. mailto:gnu@gnu.org
|
|
247. http://www.gnu.org/home.html#ContactInfo
|
|
248. http://gcc.gnu.org/about.html
|
|
249. http://gcc.gnu.org/onlinedocs/
|
|
250. mailto:gcc-help@gcc.gnu.org
|
|
251. mailto:gcc@gnu.org
|
|
252. mailto:gcc@gcc.gnu.org
|
|
253. http://gcc.gnu.org/lists.html
|
|
254. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.1/index.html
|
|
|
|
GCC 3.1
|
|
|
|
July 27, 2002
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 3.1.1.
|
|
|
|
The links below still apply to GCC 3.1.1.
|
|
|
|
May 15, 2002
|
|
|
|
The [2]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 3.1.
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
A list of [3]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed [4]new features, improvements, bug fixes, and other changes as
|
|
well as test results to GCC. This [5]amazing group of volunteers is what
|
|
makes GCC successful.
|
|
|
|
For additional information about GCC please refer to the [6]GCC project web
|
|
site or contact the [7]GCC development mailing list.
|
|
|
|
To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror
|
|
sites, or our CVS server.
|
|
_________________________________________________________________
|
|
|
|
Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There are
|
|
also [11]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [12]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [13]GCC manuals. If that fails, the [14]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [15]gcc@gnu.org or [16]gcc@gcc.gnu.org. All of
|
|
our lists have [17]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [18]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://www.gnu.org/
|
|
3. http://gcc.gnu.org/gcc-3.1/buildstat.html
|
|
4. http://gcc.gnu.org/gcc-3.1/changes.html
|
|
5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
6. http://gcc.gnu.org/index.html
|
|
7. mailto:gcc@gcc.gnu.org
|
|
8. http://gcc.gnu.org/mirrors.html
|
|
9. http://www.gnu.org/order/ftp.html
|
|
10. mailto:gnu@gnu.org
|
|
11. http://www.gnu.org/home.html#ContactInfo
|
|
12. http://gcc.gnu.org/about.html
|
|
13. http://gcc.gnu.org/onlinedocs/
|
|
14. mailto:gcc-help@gcc.gnu.org
|
|
15. mailto:gcc@gnu.org
|
|
16. mailto:gcc@gcc.gnu.org
|
|
17. http://gcc.gnu.org/lists.html
|
|
18. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.1/changes.html
|
|
|
|
GCC 3.1 Release Series
|
|
Changes, New Features, and Fixes
|
|
|
|
Additional changes in GCC 3.1.1
|
|
|
|
* A bug related to how structures and unions are returned has been fixed
|
|
for powerpc-*-netbsd*.
|
|
* An important bug in the implementation of -fprefetch-loop-arrays has
|
|
been fixed. Previously the optimization prefetched random blocks of
|
|
memory for most targets except for i386.
|
|
* The Java compiler now compiles Java programs much faster and also works
|
|
with parallel make.
|
|
* Nested functions have been fixed for mips*-*-netbsd*.
|
|
* Some missing floating point support routines have beed added for
|
|
mips*-*-netbsd*.
|
|
* This [1]message gives additional information about the bugs fixed in
|
|
this release.
|
|
|
|
Caveats
|
|
|
|
* The -traditional C compiler option has been deprecated and will be
|
|
removed in GCC 3.3. (It remains possible to preprocess non-C code with
|
|
the traditional preprocessor.)
|
|
* The default debugging format for most ELF platforms (including GNU/Linux
|
|
and FreeBSD; notable exception is Solaris) has changed from stabs to
|
|
DWARF2. This requires GDB 5.1.1 or later.
|
|
|
|
General Optimizer Improvements
|
|
|
|
* Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat, and
|
|
Andreas Jaeger, SuSE Labs, has contributed [2]infrastructure for profile
|
|
driven optimizations.
|
|
Options -fprofile-arcs and -fbranch-probabilities can now be used to
|
|
improve speed of the generated code by profiling the actual program
|
|
behaviour on typical runs. In the absence of profile info the compiler
|
|
attempts to guess the profile statically.
|
|
* [3]SPEC2000 and SPEC95 benchmark suites are now used daily to monitor
|
|
performance of the generated code.
|
|
According to the SPECInt2000 results on an AMD Athlon CPU, the code
|
|
generated by GCC 3.1 is 6% faster on the average (8.2% faster with
|
|
profile feedback) compared to GCC 3.0. The code produced by GCC 3.0 is
|
|
about 2.1% faster compared to 2.95.3. Tests were done using the -O2
|
|
-march=athlon command-line options.
|
|
* Alexandre Oliva, of Red Hat, has generalized the tree inlining
|
|
infrastructure developed by CodeSourcery, LLC for the C++ front end, so
|
|
that it is now used in the C front end too. Inlining functions as trees
|
|
exposes them earlier to the compiler, giving it more opportunities for
|
|
optimization.
|
|
* Support for data prefetching instructions has been added to the GCC back
|
|
end and several targets. A new __builtin_prefetch intrinsic is available
|
|
to explicitly insert prefetch instructions and experimental support for
|
|
loop array prefetching has been added (see -fprefetch-loop-array
|
|
documentation).
|
|
* Support for emitting debugging information for macros has been added for
|
|
DWARF2. It is activated using -g3.
|
|
|
|
New Languages and Language specific improvements
|
|
|
|
C/C++
|
|
|
|
* A few more [4]ISO C99 features.
|
|
* The preprocessor is 10-50% faster than the preprocessor in GCC 3.0.
|
|
* The preprocessor's symbol table has been merged with the symbol table of
|
|
the C, C++ and Objective-C front ends.
|
|
* The preprocessor consumes less memory than the preprocessor in GCC 3.0,
|
|
often significantly so. On normal input files, it typically consumes
|
|
less memory than pre-3.0 cccp-based GCC, too.
|
|
|
|
C++
|
|
|
|
* -fhonor-std and -fno-honor-std have been removed. -fno-honor-std was a
|
|
workaround to allow std compliant code to work with the non-std
|
|
compliant libstdc++-v2. libstdc++-v3 is std compliant.
|
|
* The C++ ABI has been fixed so that void (A::*)() const is mangled as
|
|
"M1AKFvvE", rather than "MK1AFvvE" as before. This change only affects
|
|
pointer to cv-qualified member function types.
|
|
* The C++ ABI has been changed to correctly handle this code:
|
|
struct A {
|
|
void operator delete[] (void *, size_t);
|
|
};
|
|
|
|
struct B : public A {
|
|
};
|
|
|
|
new B[10];
|
|
|
|
The amount of storage allocated for the array will be greater than it
|
|
was in 3.0, in order to store the number of elements in the array, so
|
|
that the correct size can be passed to operator delete[] when the array
|
|
is deleted. Previously, the value passed to operator delete[] was
|
|
unpredictable.
|
|
This change will only affect code that declares a two-argument operator
|
|
delete[] with a second parameter of type size_t in a base class, and
|
|
does not override that definition in a derived class.
|
|
* The C++ ABI has been changed so that:
|
|
struct A {
|
|
void operator delete[] (void *, size_t);
|
|
void operator delete[] (void *);
|
|
};
|
|
|
|
does not cause unnecessary storage to be allocated when an array of A
|
|
objects is allocated.
|
|
This change will only affect code that declares both of these forms of
|
|
operator delete[], and declared the two-argument form before the
|
|
one-argument form.
|
|
* The C++ ABI has been changed so that when a parameter is passed by
|
|
value, any cleanup for that parameter is performed in the caller, as
|
|
specified by the ia64 C++ ABI, rather than the called function as
|
|
before. As a result, classes with a non-trivial destructor but a trivial
|
|
copy constructor will be passed and returned by invisible reference,
|
|
rather than by bitwise copy as before.
|
|
* G++ now supports the "named return value optimization": for code like
|
|
A f () {
|
|
A a;
|
|
...
|
|
return a;
|
|
}
|
|
|
|
G++ will allocate a in the return value slot, so that the return becomes
|
|
a no-op. For this to work, all return statements in the function must
|
|
return the same variable.
|
|
* Improvements to the C++ library are listed in [5]the libstdc++-v3 FAQ.
|
|
|
|
Objective-C
|
|
|
|
* Annoying linker warnings (due to incorrect code being generated) have
|
|
been fixed.
|
|
* If a class method cannot be found, the compiler no longer issues a
|
|
warning if a corresponding instance method exists in the root class.
|
|
* Forward @protocol declarations have been fixed.
|
|
* Loading of categories has been fixed in certain situations (GNU run time
|
|
only).
|
|
* The class lookup in the run-time library has been rewritten so that
|
|
class method dispatch is more than twice as fast as it used to be (GNU
|
|
run time only).
|
|
|
|
Java
|
|
|
|
* libgcj now includes RMI, java.lang.ref.*, javax.naming, and
|
|
javax.transaction.
|
|
* Property files and other system resources can be compiled into
|
|
executables which use libgcj using the new gcj --resource feature.
|
|
* libgcj has been ported to more platforms. In particular there is now a
|
|
mostly-functional mingw32 (Windows) target port.
|
|
* JNI and CNI invocation interfaces were implemented, so gcj-compiled Java
|
|
code can now be called from a C/C++ application.
|
|
* gcj can now use builtin functions for certain known methods, for
|
|
instance Math.cos.
|
|
* gcj can now automatically remove redundant array-store checks in some
|
|
common cases.
|
|
* The --no-store-checks optimization option was added. This can be used to
|
|
omit runtime store checks for code which is known not to throw
|
|
ArrayStoreException
|
|
* The following third party interface standards were added to libgcj:
|
|
org.w3c.dom and org.xml.sax.
|
|
* java.security has been merged with GNU Classpath. The new package is now
|
|
JDK 1.2 compliant, and much more complete.
|
|
* A bytecode verifier was added to the libgcj interpreter.
|
|
* java.lang.Character was rewritten to comply with the Unicode 3.0
|
|
standard, and improve performance.
|
|
* Partial support for many more locales was added to libgcj.
|
|
* Socket timeouts have been implemented.
|
|
* libgcj has been merged into a single shared library. There are no longer
|
|
separate shared libraries for the garbage collector and zlib.
|
|
* Several performance improvements were made to gcj and libgcj:
|
|
+ Hash synchronization (thin locks)
|
|
+ A special allocation path for finalizer-free objects
|
|
+ Thread-local allocation
|
|
+ Parallel GC, and other GC tweaks
|
|
|
|
Fortran
|
|
|
|
Fortran improvements are listed in [6]the Fortran documentation.
|
|
|
|
Ada
|
|
|
|
[7]Ada Core Technologies, Inc, has contributed its GNAT Ada 95 front end and
|
|
associated tools. The GNAT compiler fully implements the Ada language as
|
|
defined by the ISO/IEC 8652 standard.
|
|
|
|
Please note that the integration of the Ada front end is still work in
|
|
progress.
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
* Hans-Peter Nilsson has contributed a port to [8]MMIX, the CPU
|
|
architecture used in new editions of Donald E. Knuth's The Art of
|
|
Computer Programming.
|
|
* [9]Axis Communications has contributed its port to the CRIS CPU
|
|
architecture, used in the ETRAX system-on-a-chip series. See [10]Axis'
|
|
developer site for technical information.
|
|
* Alexandre Oliva, of Red Hat, has contributed a port to the [11]SuperH
|
|
SH5 64-bit RISC microprocessor architecture, extending the existing SH
|
|
port.
|
|
* UltraSPARC is fully supported in 64-bit mode. The option -m64 enables
|
|
it.
|
|
* For compatibility with the Sun compiler #pragma redefine_extname has
|
|
been implemented on Solaris.
|
|
* The x86 back end has had some noticeable work done to it.
|
|
+ SuSE Labs developers Jan Hubicka, Bo Thorsen and Andreas Jaeger
|
|
have contributed a port to the AMD x86-64 architecture. For more
|
|
information on x86-64 see [12]http://www.x86-64.org.
|
|
+ The compiler now supports MMX, 3DNow!, SSE, and SSE2 instructions.
|
|
Options -mmmx, -m3dnow, -msse, and -msse2 will enable the
|
|
respective instruction sets. Intel C++ compatible MMX/3DNow!/SSE
|
|
intrinsics are implemented. SSE2 intrinsics will be added in next
|
|
major release.
|
|
+ Following those improvements, targets for Pentium MMX, K6-2, K6-3,
|
|
Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were added. Refer
|
|
to the documentation on -march= and -mcpu= options for details.
|
|
+ For those targets that support it, -mfpmath=sse will cause the
|
|
compiler to generate SSE/SSE2 instructions for floating point math
|
|
instead of x87 instructions. Usually, this will lead to quicker
|
|
code — especially on the Pentium 4. Note that only scalar floating
|
|
point instructions are used and GCC does not exploit SIMD features
|
|
yet.
|
|
+ Prefetch support has been added to the Pentium III, Pentium 4,
|
|
K6-2, K6-3, and Athlon series.
|
|
+ Code generated for floating point to integer conversions has been
|
|
improved leading to better performance of many 3D applications.
|
|
* The PowerPC back end has added 64-bit PowerPC GNU/Linux support.
|
|
* C++ support for AIX has been improved.
|
|
* Aldy Hernandez, of Red Hat, Inc, has contributed extensions to the
|
|
PowerPC port supporting the AltiVec programming model (SIMD). The
|
|
support, though presently useful, is experimental and is expected to
|
|
stabilize for 3.2. The support is written to conform to Motorola's
|
|
AltiVec specs. See -maltivec.
|
|
|
|
Obsolete Systems
|
|
|
|
Support for a number of older systems has been declared obsolete in GCC 3.1.
|
|
Unless there is activity to revive them, the next release of GCC will have
|
|
their sources permanently removed.
|
|
|
|
All configurations of the following processor architectures have been
|
|
declared obsolete:
|
|
* MIL-STD-1750A, 1750a-*-*
|
|
* AMD A29k, a29k-*-*
|
|
* Convex, c*-convex-*
|
|
* Clipper, clipper-*-*
|
|
* Elxsi, elxsi-*-*
|
|
* Intel i860, i860-*-*
|
|
* Sun picoJava, pj-*-* and pjl-*-*
|
|
* Western Electric 32000, we32k-*-*
|
|
|
|
Most configurations of the following processor architectures have been
|
|
declared obsolete, but we are preserving a few systems which may have active
|
|
developers. It is unlikely that the remaining systems will survive much
|
|
longer unless we see definite signs of port activity.
|
|
* Motorola 88000 except
|
|
+ Generic a.out, m88k-*-aout*
|
|
+ Generic SVR4, m88k-*-sysv4
|
|
+ OpenBSD, m88k-*-openbsd*
|
|
* NS32k except
|
|
+ NetBSD, ns32k-*-netbsd*
|
|
+ OpenBSD, ns32k-*-openbsd*.
|
|
* ROMP except
|
|
+ OpenBSD, romp-*-openbsd*.
|
|
|
|
Finally, only some configurations of these processor architectures are being
|
|
obsoleted.
|
|
* Alpha:
|
|
+ OSF/1, alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka
|
|
alpha*-*-osf[45], are still supported.)
|
|
* ARM:
|
|
+ RISCiX, arm-*-riscix*.
|
|
* i386:
|
|
+ 386BSD, i?86-*-bsd*
|
|
+ Chorus, i?86-*-chorusos*
|
|
+ DG/UX, i?86-*-dgux*
|
|
+ FreeBSD 1.x, i?86-*-freebsd1.*
|
|
+ IBM AIX, i?86-*-aix*
|
|
+ ISC UNIX, i?86-*-isc*
|
|
+ Linux with pre-BFD linker, i?86-*-linux*oldld*
|
|
+ NEXTstep, i?86-next-*
|
|
+ OSF UNIX, i?86-*-osf1* and i?86-*-osfrose*
|
|
+ RTEMS/coff, i?86-*-rtemscoff*
|
|
+ RTEMS/go32, i?86-go32-rtems*
|
|
+ Sequent/BSD, i?86-sequent-bsd*
|
|
+ Sequent/ptx before version 3, i?86-sequent-ptx[12]* and
|
|
i?86-sequent-sysv3*
|
|
+ SunOS, i?86-*-sunos*
|
|
* Motorola 68000:
|
|
+ Altos, m68[k0]*-altos-*
|
|
+ Apollo, m68[k0]*-apollo-*
|
|
+ Apple A/UX, m68[k0]*-apple-*
|
|
+ Bull, m68[k0]*-bull-*
|
|
+ Convergent, m68[k0]*-convergent-*
|
|
+ Generic SVR3, m68[k0]*-*-sysv3*
|
|
+ ISI, m68[k0]*-isi-*
|
|
+ LynxOS, m68[k0]*-*-lynxos*
|
|
+ NEXT, m68[k0]*-next-*
|
|
+ RTEMS/coff, m68[k0]*-*-rtemscoff*
|
|
+ Sony, m68[k0]*-sony-*
|
|
* MIPS:
|
|
+ DEC Ultrix, mips-*-ultrix* and mips-dec-*
|
|
+ Generic BSD, mips-*-bsd*
|
|
+ Generic System V, mips-*-sysv*
|
|
+ IRIX before version 5, mips-sgi-irix[1234]*
|
|
+ RiscOS, mips-*-riscos*
|
|
+ Sony, mips-sony-*
|
|
+ Tandem, mips-tandem-*
|
|
* SPARC:
|
|
+ RTEMS/a.out, sparc-*-rtemsaout*.
|
|
|
|
Documentation improvements
|
|
|
|
* The old manual ("Using and Porting the GNU Compiler Collection") has
|
|
been replaced by a users manual ("Using the GNU Compiler Collection")
|
|
and a separate internals reference manual ("GNU Compiler Collection
|
|
Internals").
|
|
* More complete and much improved documentation about GCC's internal
|
|
representation used by the C and C++ front ends.
|
|
* Many cleanups and improvements in general.
|
|
|
|
Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There are
|
|
also [14]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [15]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [16]GCC manuals. If that fails, the [17]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. All of
|
|
our lists have [20]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [21]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html
|
|
2. http://gcc.gnu.org/news/profiledriven.html
|
|
3. http://gcc.gnu.org/benchmarks/
|
|
4. http://gcc.gnu.org/gcc-3.1/c99status.html
|
|
5. http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_1
|
|
6. http://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html
|
|
7. http://www.adacore.com/home/
|
|
8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html
|
|
9. http://www.axis.com/
|
|
10. http://developer.axis.com/
|
|
11. http://www.superh.com/
|
|
12. http://www.x86-64.org/
|
|
13. mailto:gnu@gnu.org
|
|
14. http://www.gnu.org/home.html#ContactInfo
|
|
15. http://gcc.gnu.org/about.html
|
|
16. http://gcc.gnu.org/onlinedocs/
|
|
17. mailto:gcc-help@gcc.gnu.org
|
|
18. mailto:gcc@gnu.org
|
|
19. mailto:gcc@gcc.gnu.org
|
|
20. http://gcc.gnu.org/lists.html
|
|
21. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.0/gcc-3.0.html
|
|
|
|
GCC 3.0.4
|
|
|
|
February 20, 2002
|
|
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
|
release of GCC 3.0.4, which is a bug-fix release for the GCC 3.0 series.
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
GCC 3.0.x has several new optimizations, new targets, new languages and many
|
|
other new features, relative to GCC 2.95.x. See the [2]new features page for
|
|
a more complete list.
|
|
|
|
A list of [3]successful builds is updated as new information becomes
|
|
available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, test results, bug fixes, etc to GCC. This
|
|
[4]amazing group of volunteers is what makes GCC successful.
|
|
|
|
And finally, we can't in good conscience fail to mention some [5]caveats to
|
|
using GCC 3.0.x.
|
|
|
|
For additional information about GCC please refer to the [6]GCC project web
|
|
site or contact the [7]GCC development mailing list.
|
|
|
|
To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror
|
|
sites, or our CVS server.
|
|
_________________________________________________________________
|
|
|
|
Previous 3.0.x Releases
|
|
|
|
December 20, 2001: GCC 3.0.3 has been released.
|
|
October 25, 2001: GCC 3.0.2 has been released.
|
|
August 20, 2001: GCC 3.0.1 has been released.
|
|
June 18, 2001: GCC 3.0 has been released.
|
|
|
|
Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There are
|
|
also [11]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [12]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [13]GCC manuals. If that fails, the [14]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [15]gcc@gnu.org or [16]gcc@gcc.gnu.org. All of
|
|
our lists have [17]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [18]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.gnu.org/
|
|
2. http://gcc.gnu.org/gcc-3.0/features.html
|
|
3. http://gcc.gnu.org/gcc-3.0/buildstat.html
|
|
4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
5. http://gcc.gnu.org/gcc-3.0/caveats.html
|
|
6. http://gcc.gnu.org/index.html
|
|
7. mailto:gcc@gcc.gnu.org
|
|
8. http://gcc.gnu.org/mirrors.html
|
|
9. http://www.gnu.org/order/ftp.html
|
|
10. mailto:gnu@gnu.org
|
|
11. http://www.gnu.org/home.html#ContactInfo
|
|
12. http://gcc.gnu.org/about.html
|
|
13. http://gcc.gnu.org/onlinedocs/
|
|
14. mailto:gcc-help@gcc.gnu.org
|
|
15. mailto:gcc@gnu.org
|
|
16. mailto:gcc@gcc.gnu.org
|
|
17. http://gcc.gnu.org/lists.html
|
|
18. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.0/features.html
|
|
|
|
GCC 3.0 New Features
|
|
|
|
Additional changes in GCC 3.0.4
|
|
|
|
* GCC 3.0 now supports newer versions of the [1]NetBSD operating system,
|
|
which use the ELF object file format, on x86 processors.
|
|
* Correct debugging information is generated from functions that have
|
|
lines from multiple files (e.g. yacc output).
|
|
* A fix for whitespace handling in the -traditional preprocessor, which
|
|
can affect Fortran.
|
|
* Fixes to the exception handling runtime.
|
|
* More fixes for bad code generation in C++.
|
|
* A fix for shared library generation under AIX 4.3.
|
|
* Documentation updates.
|
|
* Port of GCC to Tensilica's Xtensa processor contributed.
|
|
* A fix for compiling the PPC Linux kernel (FAT fs wouldn't link).
|
|
|
|
Additional changes in GCC 3.0.3
|
|
|
|
* A fix to correct an accidental change to the PowerPC ABI.
|
|
* Fixes for bad code generation on a variety of architectures.
|
|
* Improvements to the debugging information generated for C++ classes.
|
|
* Fixes for bad code generation in C++.
|
|
* A fix to avoid crashes in the C++ demangler.
|
|
* A fix to the C++ standard library to avoid buffer overflows.
|
|
* Miscellaneous improvements for a variety of architectures.
|
|
|
|
Additional changes in GCC 3.0.2
|
|
|
|
* Fixes for bad code generation during loop unrolling.
|
|
* Fixes for bad code generation by the sibling call optimization.
|
|
* Minor improvements to x86 code generation.
|
|
* Implementation of function descriptors in C++ vtables for IA64.
|
|
* Numerous minor bug-fixes.
|
|
|
|
Additional changes in GCC 3.0.1
|
|
|
|
* C++ fixes for incorrect code-generation.
|
|
* Improved cross-compiling support for the C++ standard library.
|
|
* Fixes for some embedded targets that worked in GCC 2.95.3, but not in
|
|
GCC 3.0.
|
|
* Fixes for various exception-handling bugs.
|
|
* A port to the S/390 architecture.
|
|
|
|
General Optimizer Improvements
|
|
|
|
* [2]Basic block reordering pass.
|
|
* New if-conversion pass with support for conditional (predicated)
|
|
execution.
|
|
* New tail call and sibling call elimination optimizations.
|
|
* New register renaming pass.
|
|
* New (experimental) [3]static single assignment (SSA) representation
|
|
support.
|
|
* New dead-code elimination pass implemented using the SSA representation.
|
|
* [4]Global null pointer test elimination.
|
|
* [5]Global code hoisting/unification.
|
|
* More builtins and optimizations for stdio.h, string.h and old BSD
|
|
functions, as well as for ISO C99 functions.
|
|
* New builtin __builtin_expect for giving hints to the branch predictor.
|
|
|
|
New Languages and Language specific improvements
|
|
|
|
* The GNU Compiler for the Java(TM) language (GCJ) is now integrated and
|
|
supported, including the run-time library containing most common non-GUI
|
|
Java classes, a bytecode interpreter, and the Boehm conservative garbage
|
|
collector. Many bugs have been fixed. GCJ can compile Java source or
|
|
Java bytecodes to either native code or Java class files, and supports
|
|
native methods written in either the standard JNI or the more efficient
|
|
and convenient CNI.
|
|
* Here is a [6]partial list of C++ improvements, both new features and
|
|
those no longer supported.
|
|
* New C++ ABI. On the IA-64 platform GCC is capable of inter-operating
|
|
with other IA-64 compilers.
|
|
* The new ABI also significantly reduces the size of symbol and debug
|
|
information.
|
|
* New [7]C++ support library and many C++ bug fixes, vastly improving our
|
|
conformance to the ISO C++ standard.
|
|
* New [8]inliner for C++.
|
|
* Rewritten C preprocessor, integrated into the C, C++ and Objective C
|
|
compilers, with very many improvements including ISO C99 support and
|
|
[9]improvements to dependency generation.
|
|
* Support for more [10]ISO C99 features.
|
|
* Many improvements to support for checking calls to format functions such
|
|
as printf and scanf, including support for ISO C99 format features,
|
|
extensions from the Single Unix Specification and GNU libc 2.2, checking
|
|
of strfmon formats and features to assist in auditing for format string
|
|
security bugs.
|
|
* New warnings for C code that may have undefined semantics because of
|
|
violations of sequence point rules in the C standard (such as a = a++;,
|
|
a[n] = b[n++]; and a[i++] = i;), included in -Wall.
|
|
* Additional warning option -Wfloat-equal.
|
|
* Improvements to -Wtraditional.
|
|
* Fortran improvements are listed in [11]the Fortran documentation.
|
|
|
|
New Targets and Target Specific Improvements
|
|
|
|
* New x86 back-end, generating much improved code.
|
|
* Support for a generic i386-elf target contributed.
|
|
* New option to emit x86 assembly code using Intel style syntax
|
|
(-mintel-syntax).
|
|
* HPUX 11 support contributed.
|
|
* Improved PowerPC code generation, including scheduled prologue and
|
|
epilogue.
|
|
* Port of GCC to Intel's IA-64 processor contributed.
|
|
* Port of GCC to Motorola's MCore 210 and 340 contributed.
|
|
* New unified back-end for Arm, Thumb and StrongArm contributed.
|
|
* Port of GCC to Intel's XScale processor contributed.
|
|
* Port of GCC to Atmel's AVR microcontrollers contributed.
|
|
* Port of GCC to Mitsubishi's D30V processor contributed.
|
|
* Port of GCC to Matsushita's AM33 processor (a member of the MN10300
|
|
processor family) contributed.
|
|
* Port of GCC to Fujitsu's FR30 processor contributed.
|
|
* Port of GCC to Motorola's 68HC11 and 68HC12 processors contributed.
|
|
* Port of GCC to Sun's picoJava processor core contributed.
|
|
|
|
Documentation improvements
|
|
|
|
* Substantially rewritten and improved C preprocessor manual.
|
|
* Many improvements to other documentation.
|
|
* Manpages for gcc, cpp and gcov are now generated automatically from the
|
|
master Texinfo manual, eliminating the problem of manpages being out of
|
|
date. (The generated manpages are only extracts from the full manual,
|
|
which is provided in Texinfo form, from which info, HTML, other formats
|
|
and a printed manual can be generated.)
|
|
* Generated info files are included in the release tarballs alongside
|
|
their Texinfo sources, avoiding problems on some platforms with building
|
|
makeinfo as part of the GCC distribution.
|
|
|
|
Other significant improvements
|
|
|
|
* Garbage collection used internally by the compiler for most memory
|
|
allocation instead of obstacks.
|
|
* Lengauer and Tarjan algorithm used for computing dominators in the CFG.
|
|
This algorithm can be significantly faster and more space efficient than
|
|
our older algorithm.
|
|
* gccbug script provided to assist in submitting bug reports to our bug
|
|
tracking system. (Bug reports previously submitted directly to our
|
|
mailing lists, for which you received no bug tracking number, should be
|
|
submitted again using gccbug if you can reproduce the problem with GCC
|
|
3.0.)
|
|
* The internal libgcc library is [12]built as a shared library on systems
|
|
that support it.
|
|
* Extensive testsuite included with GCC, with many new tests. In addition
|
|
to tests for GCC bugs that have been fixed, many tests have been added
|
|
for language features, compiler warnings and builtin functions.
|
|
* Additional language-independent warning options -Wpacked, -Wpadded,
|
|
-Wunreachable-code and -Wdisabled-optimization.
|
|
* Target-independent options -falign-functions, -falign-loops and
|
|
-falign-jumps.
|
|
|
|
Plus a great many bug fixes and almost all the [13]features found in GCC
|
|
2.95.
|
|
|
|
Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There are
|
|
also [15]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [16]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [17]GCC manuals. If that fails, the [18]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org. All of
|
|
our lists have [21]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [22]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://www.netbsd.org/
|
|
2. http://gcc.gnu.org/news/reorder.html
|
|
3. http://gcc.gnu.org/news/ssa.html
|
|
4. http://gcc.gnu.org/news/null.html
|
|
5. http://gcc.gnu.org/news/unify.html
|
|
6. http://gcc.gnu.org/gcc-3.0/c++features.html
|
|
7. http://gcc.gnu.org/libstdc++/
|
|
8. http://gcc.gnu.org/news/inlining.html
|
|
9. http://gcc.gnu.org/news/dependencies.html
|
|
10. http://gcc.gnu.org/gcc-3.0/c99status.html
|
|
11. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html
|
|
12. http://gcc.gnu.org/gcc-3.0/libgcc.html
|
|
13. http://gcc.gnu.org/gcc-2.95/features.html
|
|
14. mailto:gnu@gnu.org
|
|
15. http://www.gnu.org/home.html#ContactInfo
|
|
16. http://gcc.gnu.org/about.html
|
|
17. http://gcc.gnu.org/onlinedocs/
|
|
18. mailto:gcc-help@gcc.gnu.org
|
|
19. mailto:gcc@gnu.org
|
|
20. mailto:gcc@gcc.gnu.org
|
|
21. http://gcc.gnu.org/lists.html
|
|
22. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-3.0/caveats.html
|
|
|
|
GCC 3.0 Caveats
|
|
|
|
* -fstrict-aliasing is now part of -O2 and higher optimization levels.
|
|
This allows the compiler to assume the strictest aliasing rules
|
|
applicable to the language being compiled. For C and C++, this activates
|
|
optimizations based on the type of expressions. This optimization may
|
|
thus break old, non-compliant code.
|
|
* Enumerations are now properly promoted to int in function parameters and
|
|
function returns. Normally this change is not visible, but when using
|
|
-fshort-enums this is an ABI change.
|
|
* The undocumented extension that allowed C programs to have a label at
|
|
the end of a compound statement has been deprecated and may be removed
|
|
in a future version. Programs that now generate a warning about this may
|
|
be fixed by adding a null statement (a single semicolon) after the
|
|
label.
|
|
* The poorly documented extension that allowed string constants in C, C++
|
|
and Objective C to contain unescaped newlines has been deprecated and
|
|
may be removed in a future version. Programs using this extension may be
|
|
fixed in several ways: the bare newline may be replaced by \n, or
|
|
preceded by \n\, or string concatenation may be used with the bare
|
|
newline preceded by \n" and " placed at the start of the next line.
|
|
* The Chill compiler is not included in GCC 3.0, because of the lack of a
|
|
volunteer to convert it to use garbage collection.
|
|
* Certain non-standard iostream methods from earlier versions of libstdc++
|
|
are not included in libstdc++ v3, i.e. filebuf::attach, ostream::form,
|
|
and istream::gets. Here are workaround hints for: [1]ostream::form,
|
|
[2]filebuf::attach.
|
|
* The new C++ ABI is not yet fully supported by current (as of 2001-07-01)
|
|
releases and development versions of GDB, or any earlier versions. There
|
|
is a problem setting breakpoints by line number, and other related
|
|
issues that have been fixed in GCC 3.0 but not yet handled in GDB:
|
|
[3]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
|
|
|
|
Please send FSF & GNU inquiries & questions to [4]gnu@gnu.org. There are
|
|
also [5]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [6]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [7]GCC manuals. If that fails, the [8]gcc-help@gcc.gnu.org mailing list
|
|
might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [9]gcc@gnu.org or [10]gcc@gcc.gnu.org. All of our
|
|
lists have [11]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [12]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/onlinedocs/libstdc++/21_strings/howto.html
|
|
2. http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html
|
|
3. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
|
|
4. mailto:gnu@gnu.org
|
|
5. http://www.gnu.org/home.html#ContactInfo
|
|
6. http://gcc.gnu.org/about.html
|
|
7. http://gcc.gnu.org/onlinedocs/
|
|
8. mailto:gcc-help@gcc.gnu.org
|
|
9. mailto:gcc@gnu.org
|
|
10. mailto:gcc@gcc.gnu.org
|
|
11. http://gcc.gnu.org/lists.html
|
|
12. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-2.95/index.html
|
|
|
|
GCC 2.95
|
|
|
|
March 16, 2001: The GNU project and the GCC developers are pleased to
|
|
announce the release of GCC version 2.95.3.
|
|
|
|
Release History
|
|
|
|
GCC 2.95.3
|
|
March 16, 2001
|
|
|
|
GCC 2.95.2
|
|
October 27, 1999
|
|
|
|
GCC 2.95.1
|
|
August 19, 1999
|
|
|
|
GCC 2.95
|
|
July 31, 1999. This is the first release of GCC since the April 1999
|
|
GCC/EGCS reunification and includes nearly a year's worth of new
|
|
development and bugfixes.
|
|
|
|
References and Acknowledgements
|
|
|
|
GCC used to stand for the GNU C Compiler, but since the compiler supports
|
|
several other languages aside from C, it now stands for the GNU Compiler
|
|
Collection.
|
|
|
|
The whole suite has been extensively [1]regression tested and [2]package
|
|
tested. It should be reliable and suitable for widespread use.
|
|
|
|
The compiler has several new optimizations, new targets, new languages and
|
|
other new features. See the [3]new features page for a more complete list of
|
|
new features found in the GCC 2.95 releases.
|
|
|
|
The sources include installation instructions in both HTML and plaintext
|
|
forms in the install directory in the distribution. However, the most up to
|
|
date [4]installation instructions and [5]build/test status are on the web
|
|
pages. We will update those pages as new information becomes available.
|
|
|
|
The GCC developers would like to thank the numerous people that have
|
|
contributed new features, test results, bugfixes, etc to GCC. This
|
|
[6]amazing group of volunteers is what makes GCC successful.
|
|
|
|
And finally, we can't in good conscience fail to mention some [7]caveats to
|
|
using GCC 2.95.
|
|
|
|
Download GCC 2.95 from the [8]GNU FTP server (ftp://ftp.gnu.org)
|
|
[9]Find a GNU mirror site
|
|
[10]Find a GCC mirror site
|
|
|
|
For additional information about GCC please see the [11]GCC project web
|
|
server or contact the [12]GCC development mailing list.
|
|
|
|
Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There are
|
|
also [14]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [15]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [16]GCC manuals. If that fails, the [17]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. All of
|
|
our lists have [20]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [21]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/gcc-2.95/regress.html
|
|
2. http://gcc.gnu.org/gcc-2.95/othertest.html
|
|
3. http://gcc.gnu.org/gcc-2.95/features.html
|
|
4. http://gcc.gnu.org/install/
|
|
5. http://gcc.gnu.org/gcc-2.95/buildstat.html
|
|
6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
7. http://gcc.gnu.org/gcc-2.95/caveats.html
|
|
8. ftp://ftp.gnu.org/pub/gnu/gcc/
|
|
9. http://www.gnu.org/order/ftp.html
|
|
10. http://gcc.gnu.org/mirrors.html
|
|
11. http://gcc.gnu.org/index.html
|
|
12. mailto:gcc@gcc.gnu.org
|
|
13. mailto:gnu@gnu.org
|
|
14. http://www.gnu.org/home.html#ContactInfo
|
|
15. http://gcc.gnu.org/about.html
|
|
16. http://gcc.gnu.org/onlinedocs/
|
|
17. mailto:gcc-help@gcc.gnu.org
|
|
18. mailto:gcc@gnu.org
|
|
19. mailto:gcc@gcc.gnu.org
|
|
20. http://gcc.gnu.org/lists.html
|
|
21. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-2.95/features.html
|
|
|
|
GCC 2.95 New Features
|
|
|
|
* General Optimizer Improvements:
|
|
+ [1]Localized register spilling to improve speed and code density
|
|
especially on small register class machines.
|
|
+ [2]Global CSE using lazy code motion algorithms.
|
|
+ [3]Improved global constant/copy propagation.
|
|
+ [4]Improved control flow graph analysis and manipulation.
|
|
+ [5]Local dead store elimination.
|
|
+ [6]Memory Load hoisting/store sinking in loops.
|
|
+ [7]Type based alias analysis is enabled by default. Note this
|
|
feature will expose bugs in the Linux kernel. Please refer to the
|
|
FAQ (as shipped with GCC 2.95) for additional information on this
|
|
issue.
|
|
+ Major revamp of GIV detection, combination and simplification to
|
|
improve loop performance.
|
|
+ Major improvements to register allocation and reloading.
|
|
* New Languages and Language specific improvements
|
|
+ [8]Many C++ improvements.
|
|
+ [9]Many Fortran improvements.
|
|
+ [10]Java front-end has been integrated. [11]runtime library is
|
|
available separately.
|
|
+ [12]ISO C99 support
|
|
+ [13]Chill front-end and runtime has been integrated.
|
|
+ Boehm garbage collector support in libobjc.
|
|
+ More support for various pragmas which appear in vendor include
|
|
files
|
|
* New Targets and Target Specific Improvements
|
|
+ [14]SPARC backend rewrite.
|
|
+ -mschedule=8000 will optimize code for PA8000 class processors;
|
|
-mpa-risc-2-0 will generate code for PA2.0 processors
|
|
+ Various micro-optimizations for the ia32 port. K6 optimizations
|
|
+ Compiler will attempt to align doubles in the stack on the ia32
|
|
port
|
|
+ Alpha EV6 support
|
|
+ PowerPC 750
|
|
+ RS6000/PowerPC: -mcpu=401 was added as an alias for -mcpu=403.
|
|
-mcpu=e603e was added to do -mcpu=603e and -msoft-float.
|
|
+ c3x, c4x
|
|
+ HyperSPARC
|
|
+ SparcLite86x
|
|
+ sh4
|
|
+ Support for new systems (OpenBSD, FreeBSD, UWIN, Interix,
|
|
arm-linux)
|
|
+ vxWorks targets include support for vxWorks threads
|
|
+ StrongARM 110 and ARM9 support added. ARM Scheduling parameters
|
|
rewritten.
|
|
+ Various changes to the MIPS port to avoid assembler macros, which
|
|
in turn improves performance
|
|
+ Various performance improvements to the i960 port.
|
|
+ Major rewrite of ns32k port
|
|
* Other significant improvements
|
|
+ [15]Ability to dump cfg information and display it using vcg.
|
|
+ The new faster scheme for fixing vendor header files is enabled by
|
|
default.
|
|
+ Experimental internationalization support.
|
|
+ multibyte character support
|
|
+ Some compile-time speedups for pathological problems
|
|
+ Better support for complex types
|
|
* Plus the usual mountain of bugfixes
|
|
* Core compiler is based on the gcc2 development tree from Sept 30, 1998,
|
|
so we have all of the [16]features found in GCC 2.8.
|
|
|
|
Additional Changes in GCC 2.95.1
|
|
|
|
* Generic bugfixes and improvements
|
|
+ Various documentation fixes related to the GCC/EGCS merger.
|
|
+ Fix memory management bug which could lead to spurious aborts, core
|
|
dumps or random parsing errors in the compiler.
|
|
+ Fix a couple bugs in the dwarf1 and dwarf2 debug record support.
|
|
+ Fix infinite loop in the CSE optimizer.
|
|
+ Avoid undefined behavior in compiler FP emulation code
|
|
+ Fix install problem when prefix is overridden on the make install
|
|
command.
|
|
+ Fix problem with unwanted installation of assert.h on some systems.
|
|
+ Fix problem with finding the wrong assembler in a single tree
|
|
build.
|
|
+ Avoid increasing the known alignment of a register that is already
|
|
known to be a pointer.
|
|
* Platform specific bugfixes and improvements
|
|
+ Codegen bugfix for prologue/epilogue for cpu32 target.
|
|
+ Fix long long code generation bug for the Coldfire target.
|
|
+ Fix various aborts in the SH compiler.
|
|
+ Fix bugs in libgcc support library for the SH.
|
|
+ Fix alpha ev6 code generation bug.
|
|
+ Fix problems with EXIT_SUCCESS/EXIT_FAILURE redefinitions on AIX
|
|
platforms.
|
|
+ Fix -fpic code generation bug for rs6000/ppc svr4 targets.
|
|
+ Fix varargs/stdarg code generation bug for rs6000/ppc svr4 targets.
|
|
+ Fix weak symbol handling for rs6000/ppc svr4 targets.
|
|
+ Fix various problems with 64bit code generation for the rs6000/ppc
|
|
port.
|
|
+ Fix codegen bug which caused tetex to be mis-compiled on the x86.
|
|
+ Fix compiler abort in new cfg code exposed by x86 port.
|
|
+ Fix out of range array reference in code convert flat registers to
|
|
the x87 stacked FP register file.
|
|
+ Fix minor vxworks configuration bug.
|
|
+ Fix return type of bsearch for SunOS 4.x.
|
|
* Language & Runtime specific fixes.
|
|
+ The G++ signature extension has been deprecated. It will be removed
|
|
in the next major release of G++. Use of signatures will result in
|
|
a warning from the compiler.
|
|
+ Several bugs relating to templates and namespaces were fixed.
|
|
+ A bug that caused crashes when combining templates with -g on
|
|
DWARF1 platforms was fixed.
|
|
+ Pointers-to-members, virtual functions, and multiple inheritance
|
|
should now work together correctly.
|
|
+ Some code-generation bugs relating to function try blocks were
|
|
fixed.
|
|
+ G++ is a little bit more lenient with certain archaic constructs
|
|
than in GCC 2.95.
|
|
+ Fix to prevent shared library version #s from bring truncated to 1
|
|
digit
|
|
+ Fix missing std:: in the libstdc++ library.
|
|
+ Fix stream locking problems in libio.
|
|
+ Fix problem in java compiler driver.
|
|
|
|
Additional Changes in GCC 2.95.2
|
|
|
|
The -fstrict-aliasing is not enabled by default for GCC 2.95.2. While the
|
|
optimizations performed by -fstrict-aliasing are valid according to the C
|
|
and C++ standards, the optimization have caused some problems, particularly
|
|
with old non-conforming code.
|
|
|
|
The GCC developers are experimenting with ways to warn users about code
|
|
which violates the C/C++ standards, but those warnings are not ready for
|
|
widespread use at this time. Rather than wait for those warnings the GCC
|
|
developers have chosen to disable -fstrict-aliasing by default for the GCC
|
|
2.95.2 release.
|
|
|
|
We strongly encourage developers to find and fix code which violates the
|
|
C/C++ standards as -fstrict-aliasing may be enabled by default in future
|
|
releases. Use the option -fstrict-aliasing to re-enable these optimizations.
|
|
* Generic bugfixes and improvements
|
|
+ Fix incorrectly optimized memory reference in global common
|
|
subexpression elimination (GCSE) optimization pass.
|
|
+ Fix code generation bug in regmove.c in which it could incorrectly
|
|
change a "const" value.
|
|
+ Fix bug in optimization of conditionals involving volatile memory
|
|
references.
|
|
+ Avoid over-allocation of stack space for some procedures.
|
|
+ Fixed bug in the compiler which caused incorrect optimization of an
|
|
obscure series of bit manipulations, shifts and arithmetic.
|
|
+ Fixed register allocator bug which caused teTeX to be mis-compiled
|
|
on SPARC targets.
|
|
+ Avoid incorrect optimization of degenerate case statements for
|
|
certain targets such as the ARM.
|
|
+ Fix out of range memory reference in the jump optimizer.
|
|
+ Avoid dereferencing null pointer in fix-header.
|
|
+ Fix test for GCC specific features so that it is possible to
|
|
bootstrap with gcc-2.6.2 and older versions of GCC.
|
|
+ Fix typo in scheduler which could potentially cause out of range
|
|
memory accesses.
|
|
+ Avoid incorrect loop reversal which caused incorrect code for
|
|
certain loops on PowerPC targets.
|
|
+ Avoid incorrect optimization of switch statements on certain
|
|
targets (for example the ARM).
|
|
* Platform specific bugfixes and improvements
|
|
+ Work around bug in Sun V5.0 compilers which caused bootstrap
|
|
comparison failures on SPARC targets.
|
|
+ Fix SPARC backend bug which caused aborts in final.c.
|
|
+ Fix sparc-hal-solaris2* configuration fragments.
|
|
+ Fix bug in sparc block profiling.
|
|
+ Fix obscure code generation bug for the PARISC targets.
|
|
+ Define __STDC_EXT__ for HPUX configurations.
|
|
+ Various POWERPC64 code generation bugfixes.
|
|
+ Fix abort for PPC targets using ELF (ex GNU/Linux).
|
|
+ Fix collect2 problems for AIX targets.
|
|
+ Correct handling of .file directive for PPC targets.
|
|
+ Fix bug in fix_trunc x86 patterns.
|
|
+ Fix x86 port to correctly pop the FP stack for functions that
|
|
return structures in memory.
|
|
+ Fix minor bug in strlen x86 pattern.
|
|
+ Use stabs debugging instead of dwarf1 for x86-solaris targets.
|
|
+ Fix template repository code to handle leading underscore in
|
|
mangled names.
|
|
+ Fix weak/weak alias support for OpenBSD.
|
|
+ GNU/Linux for the ARM has C++ compatible include files.
|
|
* Language & Runtime specific fixes.
|
|
+ Fix handling of constructor attribute in the C front-end which
|
|
caused problems building the Chill runtime library on some targets.
|
|
+ Fix minor problem merging type qualifiers in the C front-end.
|
|
+ Fix aliasing bug for pointers and references (C/C++).
|
|
+ Fix incorrect "non-constant initializer bug" when -traditional or
|
|
-fwritable-strings is enabled.
|
|
+ Fix build error for Chill front-end on SunOS.
|
|
+ Do not complain about duplicate instantiations when using -frepo
|
|
(C++).
|
|
+ Fix array bounds handling in C++ front-end which caused problems
|
|
with dwarf debugging information in some circumstances.
|
|
+ Fix minor namespace problem.
|
|
+ Fix problem linking java programs.
|
|
|
|
Additional Changes in GCC 2.95.3
|
|
|
|
* Generic bugfixes and improvements
|
|
+ Fix numerous problems that caused incorrect optimization in the
|
|
register reloading code.
|
|
+ Fix numerous problems that caused incorrect optimization in the
|
|
loop optimizer.
|
|
+ Fix aborts in the functions build_insn_chain and scan_loops under
|
|
some circumstances.
|
|
+ Fix an alias analysis bug.
|
|
+ Fix an infinite compilation bug in the combiner.
|
|
+ A few problems with complex number support have been fixed.
|
|
+ It is no longer possible for gcc to act as a fork bomb when
|
|
installed incorrectly.
|
|
+ The -fpack-struct option should be recognized now.
|
|
+ Fixed a bug that caused incorrect code to be generated due to a
|
|
lost stack adjustment.
|
|
* Platform specific bugfixes and improvements
|
|
+ Support building ARM toolchains hosted on Windows.
|
|
+ Fix attribute calculations in ARM toolchains.
|
|
+ arm-linux support has been improved.
|
|
+ Fix a PIC failure on sparc targets.
|
|
+ On ix86 targets, the regparm attribute should now work reliably.
|
|
+ Several updates for the h8300 port.
|
|
+ Fix problem building libio with glibc 2.2.
|
|
|
|
Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There are
|
|
also [18]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [19]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [20]GCC manuals. If that fails, the [21]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. All of
|
|
our lists have [24]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [25]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/news/spill.html
|
|
2. http://gcc.gnu.org/news/lcm.html
|
|
3. http://gcc.gnu.org/news/cprop.html
|
|
4. http://gcc.gnu.org/news/cfg.html
|
|
5. http://gcc.gnu.org/news/dse.html
|
|
6. http://gcc.gnu.org/news/hoist.html
|
|
7. http://gcc.gnu.org/news/alias.html
|
|
8. http://gcc.gnu.org/gcc-2.95/c++features.html
|
|
9. http://gcc.gnu.org/onlinedocs/g77/News.html
|
|
10. http://gcc.gnu.org/java/gcj-announce.txt
|
|
11. http://gcc.gnu.org/news/javaannounce.html
|
|
12. http://gcc.gnu.org/c99status.html
|
|
13. http://gcc.gnu.org/news/chill.html
|
|
14. http://gcc.gnu.org/news/sparc.html
|
|
15. http://gcc.gnu.org/news/egcs-vcg.html
|
|
16. http://gcc.gnu.org/egcs-1.0/features-2.8.html
|
|
17. mailto:gnu@gnu.org
|
|
18. http://www.gnu.org/home.html#ContactInfo
|
|
19. http://gcc.gnu.org/about.html
|
|
20. http://gcc.gnu.org/onlinedocs/
|
|
21. mailto:gcc-help@gcc.gnu.org
|
|
22. mailto:gcc@gnu.org
|
|
23. mailto:gcc@gcc.gnu.org
|
|
24. http://gcc.gnu.org/lists.html
|
|
25. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/gcc-2.95/caveats.html
|
|
|
|
GCC 2.95 Caveats
|
|
|
|
* GCC 2.95 will issue an error for invalid asm statements that had been
|
|
silently accepted by earlier versions of the compiler. This is
|
|
particularly noticeable when compiling older versions of the Linux
|
|
kernel (2.0.xx). Please refer to the FAQ (as shipped with GCC 2.95) for
|
|
more information on this issue.
|
|
* GCC 2.95 implements type based alias analysis to disambiguate memory
|
|
references. Some programs, particularly the Linux kernel violate
|
|
ANSI/ISO aliasing rules and therefore may not operate correctly when
|
|
compiled with GCC 2.95. Please refer to the FAQ (as shipped with GCC
|
|
2.95) for more information on this issue.
|
|
* GCC 2.95 has a known bug in its handling of complex variables for 64bit
|
|
targets. Instead of silently generating incorrect code, GCC 2.95 will
|
|
issue a fatal error for situations it can not handle. This primarily
|
|
affects the Fortran community as Fortran makes more use of complex
|
|
variables than C or C++.
|
|
* GCC 2.95 has an integrated libstdc++, but does not have an integrated
|
|
libg++. Furthermore old libg++ releases will not work with GCC 2.95. You
|
|
can retrieve a recent copy of libg++ from the [1]GCC ftp server.
|
|
Note most C++ programs only need libstdc++.
|
|
* Exception handling may not work with shared libraries, particularly on
|
|
alphas, hppas, rs6000/powerpc and mips based platforms. Exception
|
|
handling is known to work on x86 GNU/Linux platforms with shared
|
|
libraries.
|
|
* In general, GCC 2.95 is more rigorous about rejecting invalid C++ code
|
|
or deprecated C++ constructs than G++ 2.7, G++ 2.8, EGCS 1.0, or EGCS
|
|
1.1. As a result it may be necessary to fix C++ code before it will
|
|
compile with GCC 2.95.
|
|
* G++ is also converting toward the ISO C++ standard; as a result code
|
|
which was previously valid (and thus accepted by other compilers and
|
|
older versions of g++) may no longer be accepted. The flag -fpermissive
|
|
may allow some non-conforming code to compile with GCC 2.95.
|
|
* GCC 2.95 compiled C++ code is not binary compatible with EGCS 1.1.x,
|
|
EGCS 1.0.x or GCC 2.8.x.
|
|
* GCC 2.95 does not have changes from the GCC 2.8 tree that were made
|
|
between Sept 30, 1998 and April 30, 1999 (the official end of the GCC
|
|
2.8 project). Future GCC releases will include all the changes from the
|
|
defunct GCC 2.8 sources.
|
|
|
|
Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There are
|
|
also [3]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [4]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [5]GCC manuals. If that fails, the [6]gcc-help@gcc.gnu.org mailing list
|
|
might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org. All of our
|
|
lists have [9]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [10]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz
|
|
2. mailto:gnu@gnu.org
|
|
3. http://www.gnu.org/home.html#ContactInfo
|
|
4. http://gcc.gnu.org/about.html
|
|
5. http://gcc.gnu.org/onlinedocs/
|
|
6. mailto:gcc-help@gcc.gnu.org
|
|
7. mailto:gcc@gnu.org
|
|
8. mailto:gcc@gcc.gnu.org
|
|
9. http://gcc.gnu.org/lists.html
|
|
10. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/egcs-1.1/index.html
|
|
|
|
EGCS 1.1
|
|
|
|
September 3, 1998: We are pleased to announce the release of EGCS 1.1.
|
|
December 1, 1998: We are pleased to announce the release of EGCS 1.1.1.
|
|
March 15, 1999: We are pleased to announce the release of EGCS 1.1.2.
|
|
|
|
EGCS is a free software project to further the development of the GNU
|
|
compilers using an open development environment.
|
|
|
|
EGCS 1.1 is a major new release of the EGCS compiler system. It has been
|
|
[1]extensively tested and is believed to be stable and suitable for
|
|
widespread use.
|
|
|
|
EGCS 1.1 is based on an June 6, 1998 snapshot of the GCC 2.8 development
|
|
sources; it contains all of the new features found in GCC 2.8.1 as well as
|
|
all new development from GCC up to June 6, 1998.
|
|
|
|
EGCS 1.1 also contains many improvements and features not found in GCC or in
|
|
older versions of EGCS:
|
|
* Global common subexpression elimination and global constant/copy
|
|
propagation (aka [2]gcse)
|
|
* Ongoing improvements to the [3]alias analysis support to allow for
|
|
better optimizations throughout the compiler.
|
|
* Vastly improved [4]C++ compiler and integrated C++ runtime libraries.
|
|
* Fixes for the /tmp symlink race security problems.
|
|
* New targets including mips16, arm-thumb and 64 bit PowerPC.
|
|
* Improvements to GNU Fortran (g77) compiler and runtime library made
|
|
since g77 version 0.5.23.
|
|
|
|
See the [5]new features page for a more complete list of new features found
|
|
in EGCS 1.1 releases.
|
|
|
|
EGCS 1.1.1 is a minor update to fix several serious problems in EGCS 1.1:
|
|
* General improvements and fixes
|
|
+ Avoid some stack overflows when compiling large functions.
|
|
+ Avoid incorrect loop invariant code motions.
|
|
+ Fix some core dumps on Linux kernel code.
|
|
+ Bring back the imake -Di386 and friends fix from EGCS 1.0.2.
|
|
+ Fix code generation problem in gcse.
|
|
+ Various documentation related fixes.
|
|
* g++/libstdc++ improvements and fixes
|
|
+ MT safe EH fix for setjmp/longjmp based exception handling.
|
|
+ Fix a few bad interactions between optimization and exception
|
|
handling.
|
|
+ Fixes for demangling of template names starting with "__".
|
|
+ Fix a bug that would fail to run destructors in some cases with
|
|
-O2.
|
|
+ Fix 'new' of classes with virtual bases.
|
|
+ Fix crash building Qt on the Alpha.
|
|
+ Fix failure compiling WIFEXITED macro on GNU/Linux.
|
|
+ Fix some -frepo failures.
|
|
* g77 and libf2c improvements and fixes
|
|
+ Various documentation fixes.
|
|
+ Avoid compiler crash on RAND intrinsic.
|
|
+ Fix minor bugs in makefiles exposed by BSD make programs.
|
|
+ Define _XOPEN_SOURCE for libI77 build to avoid potential problems
|
|
on some 64-bit systems.
|
|
+ Fix problem with implicit endfile on rewind.
|
|
+ Fix spurious recursive I/O errors.
|
|
* platform specific improvements and fixes
|
|
+ Match all versions of UnixWare7.
|
|
+ Do not assume x86 SVR4 or UnixWare targets can handle stabs.
|
|
+ Fix PPC/RS6000 LEGITIMIZE_ADDRESS macro and bug in conversion from
|
|
unsigned ints to double precision floats.
|
|
+ Fix ARM ABI issue with NetBSD.
|
|
+ Fix a few arm code generation bugs.
|
|
+ Fixincludes will fix additional broken SCO OpenServer header files.
|
|
+ Fix a m68k backend bug which caused invalid offsets in reg+d
|
|
addresses.
|
|
+ Fix problems with 64bit AIX 4.3 support.
|
|
+ Fix handling of long longs for varargs/stdarg functions on the ppc.
|
|
+ Minor fixes to CPP predefines for Windows.
|
|
+ Fix code generation problems with gpr<->fpr copies for 64bit ppc.
|
|
+ Fix a few coldfire code generation bugs.
|
|
+ Fix some more header file problems on SunOS 4.x.
|
|
+ Fix assert.h handling for RTEMS.
|
|
+ Fix Windows handling of TREE_SYMBOL_REFERENCED.
|
|
+ Fix x86 compiler abort in reg-stack pass.
|
|
+ Fix cygwin/windows problem with section attributes.
|
|
+ Fix Alpha code generation problem exposed by SMP Linux kernels.
|
|
+ Fix typo in m68k 32->64bit integer conversion.
|
|
+ Make sure target libraries build with -fPIC for PPC & Alpha
|
|
targets.
|
|
|
|
EGCS 1.1.2 is a minor update to fix several serious problems in EGCS 1.1.1:
|
|
* General improvements and fixes
|
|
+ Fix bug in loop optimizer which caused the SPARC (and potentially
|
|
other) ports to segfault.
|
|
+ Fix infinite recursion in alias analysis and combiner code.
|
|
+ Fix bug in regclass preferencing.
|
|
+ Fix incorrect loop reversal which caused incorrect code to be
|
|
generated for several targets.
|
|
+ Fix return value for builtin memcpy.
|
|
+ Reduce compile time for certain loops which exposed quadratic
|
|
behavior in the loop optimizer.
|
|
+ Fix bug which caused volatile memory to be written multiple times
|
|
when only one write was needed/desired.
|
|
+ Fix compiler abort in caller-save.c
|
|
+ Fix combiner bug which caused incorrect code generation for certain
|
|
division by constant operations.
|
|
+ Fix incorrect code generation due to a bug in range check
|
|
optimizations.
|
|
+ Fix incorrect code generation due to mis-handling of clobbered
|
|
values in CSE.
|
|
+ Fix compiler abort/segfault due to incorrect register splitting
|
|
when unrolling loops.
|
|
+ Fix code generation involving autoincremented addresses with
|
|
ternary operators.
|
|
+ Work around bug in the scheduler which caused qt to be mis-compiled
|
|
on some platforms.
|
|
+ Fix code generation problems with -fshort-enums.
|
|
+ Tighten security for temporary files.
|
|
+ Improve compile time for codes which make heavy use of overloaded
|
|
functions.
|
|
+ Fix multiply defined constructor/destructor symbol problems.
|
|
+ Avoid setting bogus RPATH environment variable during bootstrap.
|
|
+ Avoid GNU-make dependencies in the texinfo subdir.
|
|
+ Install CPP wrapper script in $(prefix)/bin if --enable-cpp.
|
|
--enable-cpp= can be used to specify an additional install
|
|
directory for the cpp wrapper script.
|
|
+ Fix CSE bug which caused incorrect label-label refs to appear on
|
|
some platforms.
|
|
+ Avoid linking in EH routines from libgcc if they are not needed.
|
|
+ Avoid obscure bug in aliasing code.
|
|
+ Fix bug in weak symbol handling.
|
|
* Platform-specific improvements and fixes
|
|
+ Fix detection of PPro/PII on Unixware 7.
|
|
+ Fix compiler segfault when building spec99 and other programs for
|
|
SPARC targets.
|
|
+ Fix code-generation bugs for integer and floating point conditional
|
|
move instructions on the PPro/PII.
|
|
+ Use fixincludes to fix byteorder problems on i?86-*-sysv.
|
|
+ Fix build failure for the arc port.
|
|
+ Fix floating point format configuration for i?86-gnu port.
|
|
+ Fix problems with hppa1.0-hp-hpux10.20 configuration when threads
|
|
are enabled.
|
|
+ Fix coldfire code generation bugs.
|
|
+ Fix "unrecognized insn" problems for Alpha and PPC ports.
|
|
+ Fix h8/300 code generation problem with floating point values in
|
|
memory.
|
|
+ Fix unrecognized insn problems for the m68k port.
|
|
+ Fix namespace-pollution problem for the x86 port.
|
|
+ Fix problems with old assembler on x86 NeXT systems.
|
|
+ Fix PIC code-generation problems for the SPARC port.
|
|
+ Fix minor bug with LONG_CALLS in PowerPC SVR4 support.
|
|
+ Fix minor ISO namespace violation in Alpha varargs/stdarg support.
|
|
+ Fix incorrect "braf" instruction usage for the SH port.
|
|
+ Fix minor bug in va-sh which prevented its use with -ansi.
|
|
+ Fix problems recognizing and supporting FreeBSD.
|
|
+ Handle OpenBSD systems correctly.
|
|
+ Minor fixincludes fix for Digital UNIX 4.0B.
|
|
+ Fix problems with ctors/dtors in SCO shared libraries.
|
|
+ Abort instead of generating incorrect code for PPro/PII floating
|
|
point conditional moves.
|
|
+ Avoid multiply defined symbols on Linux/GNU systems using
|
|
libc-5.4.xx.
|
|
+ Fix abort in alpha compiler.
|
|
* Fortran-specific fixes
|
|
+ Fix the IDate intrinsic (VXT) (in libg2c) so the returned year is
|
|
in the documented, non-Y2K-compliant range of 0-99, instead of
|
|
being returned as 100 in the year 2000.
|
|
+ Fix the `Date_and_Time' intrinsic (in libg2c) to return the
|
|
milliseconds value properly in Values(8).
|
|
+ Fix the `LStat' intrinsic (in libg2c) to return device-ID
|
|
information properly in SArray(7).
|
|
|
|
Each release includes installation instructions in both HTML and plaintext
|
|
forms (see the INSTALL directory in the toplevel directory of the
|
|
distribution). However, we also keep the most up to date [6]installation
|
|
instructions and [7]build/test status on our web page. We will update those
|
|
pages as new information becomes available.
|
|
|
|
The EGCS project would like to thank the numerous people that have
|
|
contributed new features, test results, bugfixes, etc. This [8]amazing group
|
|
of volunteers is what makes EGCS successful.
|
|
|
|
And finally, we can't in good conscience fail to mention some [9]caveats to
|
|
using EGCS 1.1.
|
|
|
|
Download EGCS from egcs.cygnus.com (USA California).
|
|
|
|
The EGCS 1.1 release is also available on many mirror sites.
|
|
[10]Goto mirror list to find a closer site.
|
|
|
|
Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There are
|
|
also [12]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [13]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [14]GCC manuals. If that fails, the [15]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. All of
|
|
our lists have [18]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [19]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html
|
|
2. http://gcc.gnu.org/news/gcse.html
|
|
3. http://gcc.gnu.org/news/alias.html
|
|
4. http://gcc.gnu.org/egcs-1.1/c++features.html
|
|
5. http://gcc.gnu.org/egcs-1.1/features.html
|
|
6. http://gcc.gnu.org/install/
|
|
7. http://gcc.gnu.org/egcs-1.1/buildstat.html
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|
9. http://gcc.gnu.org/egcs-1.1/caveats.html
|
|
10. http://gcc.gnu.org/mirrors.html
|
|
11. mailto:gnu@gnu.org
|
|
12. http://www.gnu.org/home.html#ContactInfo
|
|
13. http://gcc.gnu.org/about.html
|
|
14. http://gcc.gnu.org/onlinedocs/
|
|
15. mailto:gcc-help@gcc.gnu.org
|
|
16. mailto:gcc@gnu.org
|
|
17. mailto:gcc@gcc.gnu.org
|
|
18. http://gcc.gnu.org/lists.html
|
|
19. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/egcs-1.1/features.html
|
|
|
|
EGCS 1.1 new features
|
|
|
|
* Integrated GNU Fortran (g77) compiler and runtime library with
|
|
improvements, based on [1]g77 version 0.5.23.
|
|
* Vast improvements in the C++ compiler; so many they have [2]page of
|
|
their own!
|
|
* Compiler implements [3]global common subexpression elimination and
|
|
global copy/constant propagation.
|
|
* More major improvements in the [4]alias analysis code.
|
|
* More major improvements in the exception handling code to improve
|
|
performance, lower static overhead and provide the infrastructure for
|
|
future improvements.
|
|
* The infamous /tmp symlink race security problems have been fixed.
|
|
* The regmove optimization pass has been nearly completely rewritten to
|
|
improve performance of generated code.
|
|
* The compiler now recomputes register usage information before local
|
|
register allocation. By providing more accurate information to the
|
|
priority based allocator, we get better register allocation.
|
|
* The register reloading phase of the compiler optimizes spill code much
|
|
better than in previous releases.
|
|
* Some bad interactions between the register allocator and instruction
|
|
scheduler have been fixed, resulting in much better code for certain
|
|
programs. Additionally, we have tuned the scheduler in various ways to
|
|
improve performance of generated code for some architectures.
|
|
* The compiler's branch shortening algorithms have been significantly
|
|
improved to work better on targets which align jump targets.
|
|
* The compiler now supports -Os to prefer optimizing for code space over
|
|
optimizing for code speed.
|
|
* The compiler will now totally eliminate library calls which compute
|
|
constant values. This primarily helps targets with no integer div/mul
|
|
support and targets without floating point support.
|
|
* The compiler now supports an extensive "--help" option.
|
|
* cpplib has been greatly improved and may be suitable for limited use.
|
|
* Memory footprint for the compiler has been significantly reduced for
|
|
some pathological cases.
|
|
* The time to build EGCS has been improved for certain targets
|
|
(particularly the alpha and mips platforms).
|
|
* Many infrastructure improvements throughout the compiler, plus the usual
|
|
mountain of bugfixes and minor improvements.
|
|
* Target dependent improvements:
|
|
+ SPARC port now includes V8 plus and V9 support as well as
|
|
performance tuning for Ultra class machines. The SPARC port now
|
|
uses the Haifa scheduler.
|
|
+ Alpha port has been tuned for the EV6 processor and has an
|
|
optimized expansion of memcpy/bzero. The Alpha port now uses the
|
|
Haifa scheduler.
|
|
+ RS6000/PowerPC: support for the Power64 architecture and AIX 4.3.
|
|
The RS6000/PowerPC port now uses the Haifa scheduler.
|
|
+ x86: Alignment of static store data and jump targets is per Intel
|
|
recommendations now. Various improvements throughout the x86 port
|
|
to improve performance on Pentium processors (including improved
|
|
epilogue sequences for Pentium chips and backend improvements which
|
|
should help register allocation on all x86 variants. Conditional
|
|
move support has been fixed and enabled for PPro processors. The
|
|
x86 port also better supports 64bit operations now. Unixware 7, a
|
|
System V Release 5 target, is now supported and SCO OpenServer
|
|
targets can support GAS.
|
|
+ MIPS has improved multiply/multiply-add support and now includes
|
|
mips16 ISA support.
|
|
+ M68k has many micro-optimizations and Coldfire fixes.
|
|
* Core compiler is based on the GCC development tree from June 9, 1998, so
|
|
we have all of the [5]features found in GCC 2.8.
|
|
|
|
Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There are
|
|
also [7]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [8]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [9]GCC manuals. If that fails, the [10]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [11]gcc@gnu.org or [12]gcc@gcc.gnu.org. All of
|
|
our lists have [13]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [14]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/onlinedocs/g77/News.html
|
|
2. http://gcc.gnu.org/egcs-1.1/c++features.html
|
|
3. http://gcc.gnu.org/news/gcse.html
|
|
4. http://gcc.gnu.org/news/alias.html
|
|
5. http://gcc.gnu.org/egcs-1.0/features-2.8.html
|
|
6. mailto:gnu@gnu.org
|
|
7. http://www.gnu.org/home.html#ContactInfo
|
|
8. http://gcc.gnu.org/about.html
|
|
9. http://gcc.gnu.org/onlinedocs/
|
|
10. mailto:gcc-help@gcc.gnu.org
|
|
11. mailto:gcc@gnu.org
|
|
12. mailto:gcc@gcc.gnu.org
|
|
13. http://gcc.gnu.org/lists.html
|
|
14. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/egcs-1.1/caveats.html
|
|
|
|
EGCS 1.1 Caveats
|
|
|
|
* EGCS has an integrated libstdc++, but does not have an integrated
|
|
libg++. Furthermore old libg++ releases will not work with EGCS; HJ Lu
|
|
has made a libg++-2.8.1.2 snapshot available which may work with EGCS.
|
|
Note most C++ programs only need libstdc++.
|
|
* Exception handling may not work with shared libraries, particularly on
|
|
alphas, hppas, rs6000/powerpc and mips based platforms. Exception
|
|
handling is known to work on x86-linux platforms with shared libraries.
|
|
* Some versions of the Linux kernel have bugs which prevent them from
|
|
being compiled or from running when compiled by EGCS. See the FAQ (as
|
|
shipped with EGCS 1.1) for additional information.
|
|
* In general, EGCS is more rigorous about rejecting invalid C++ code or
|
|
deprecated C++ constructs than g++-2.7, g++-2.8 or EGCS 1.0. As a result
|
|
it may be necessary to fix C++ code before it will compile with EGCS.
|
|
* G++ is also converting toward the ISO C++ standard; as a result code
|
|
which was previously valid (and thus accepted by other compilers and
|
|
older versions of g++) may no longer be accepted.
|
|
* EGCS 1.1 compiled C++ code is not binary compatible with EGCS 1.0.x or
|
|
GCC 2.8.x due to changes necessary to support thread safe exception
|
|
handling.
|
|
|
|
Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There are
|
|
also [2]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [3]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [4]GCC manuals. If that fails, the [5]gcc-help@gcc.gnu.org mailing list
|
|
might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. All of our
|
|
lists have [8]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [9]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. mailto:gnu@gnu.org
|
|
2. http://www.gnu.org/home.html#ContactInfo
|
|
3. http://gcc.gnu.org/about.html
|
|
4. http://gcc.gnu.org/onlinedocs/
|
|
5. mailto:gcc-help@gcc.gnu.org
|
|
6. mailto:gcc@gnu.org
|
|
7. mailto:gcc@gcc.gnu.org
|
|
8. http://gcc.gnu.org/lists.html
|
|
9. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/egcs-1.0/index.html
|
|
|
|
EGCS 1.0
|
|
|
|
December 3, 1997: We are pleased to announce the release of EGCS 1.0.
|
|
January 6, 1998: We are pleased to announce the release of EGCS 1.0.1.
|
|
March 16, 1998: We are pleased to announce the release of EGCS 1.0.2.
|
|
May 15, 1998 We are pleased to announce the release of EGCS 1.0.3.
|
|
|
|
EGCS is a collaborative effort involving several groups of hackers using an
|
|
open development model to accelerate development and testing of GNU
|
|
compilers and runtime libraries.
|
|
|
|
An important goal of EGCS is to allow wide scale testing of experimental
|
|
features and optimizations; therefore, EGCS contains some features and
|
|
optimizations which are still under development. However, EGCS has been
|
|
carefully tested and should be comparable in quality to most GCC releases.
|
|
|
|
EGCS 1.0 is based on an August 2, 1997 snapshot of the GCC 2.8 development
|
|
sources; it contains nearly all of the new features found in GCC 2.8.
|
|
|
|
EGCS 1.0 also contains many improvements and features not found in GCC 2.7
|
|
and even the GCC 2.8 series (which was released after the original EGCS 1.0
|
|
release).
|
|
* Integrated C++ runtime libraries, including support for most major
|
|
GNU/Linux systems!
|
|
* The integrated libstdc++ library includes a verbatim copy of SGI's STL
|
|
release.
|
|
* Integrated GNU Fortran compiler.
|
|
* New instruction scheduler.
|
|
* New alias analysis code.
|
|
|
|
See the [1]new features page for a more complete list of new features.
|
|
|
|
EGCS 1.0.1 is a minor update to the EGCS 1.0 compiler to fix a few critical
|
|
bugs and add support for Red Hat 5.0 Linux. Changes since the EGCS 1.0
|
|
release:
|
|
* Add support for Red Hat 5.0 Linux and better support for Linux systems
|
|
using glibc2.
|
|
Many programs failed to link when compiled with EGCS 1.0 on Red Hat 5.0
|
|
or on systems with newer versions of glibc2. EGCS 1.0.1 should fix these
|
|
problems.
|
|
* Compatibility with both EGCS 1.0 and GCC 2.8 libgcc exception handling
|
|
interfaces.
|
|
To avoid future compatibility problems, we strongly urge anyone who is
|
|
planning on distributing shared libraries that contain C++ code to
|
|
upgrade to EGCS 1.0.1 first.
|
|
Soon after EGCS 1.0 was released, the GCC developers made some
|
|
incompatible changes in libgcc's exception handling interfaces. These
|
|
changes were needed to solve problems on some platforms. This means that
|
|
GCC 2.8.0, when released, will not be seamlessly compatible with shared
|
|
libraries built by EGCS 1.0. The reason is that the libgcc.a in GCC
|
|
2.8.0 will not contain a function needed by the old interface.
|
|
The result of this is that there may be compatibility problems with
|
|
shared libraries built by EGCS 1.0 when used with GCC 2.8.0.
|
|
With EGCS 1.0.1, generated code uses the new (GCC 2.8.0) interface, and
|
|
libgcc.a has the support routines for both the old and the new
|
|
interfaces (so EGCS 1.0.1 and EGCS 1.0 code can be freely mixed, and
|
|
EGCS 1.0.1 and GCC 2.8.0 code can be freely mixed).
|
|
The maintainers of GCC 2.x have decided against including seamless
|
|
support for the old interface in 2.8.0, since it was never "official",
|
|
so to avoid future compatibility problems we recommend against
|
|
distributing any shared libraries built by EGCS 1.0 that contain C++
|
|
code (upgrade to 1.0.1 and use that).
|
|
* Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends.
|
|
The x86 changes fix code generation errors exposed when building glibc2
|
|
and the Linux dynamic linker (ld.so).
|
|
The hppa change fixes a compiler abort when configured for use with
|
|
RTEMS.
|
|
The MIPS changes fix problems with the definition of LONG_MAX on newer
|
|
systems, allow for command line selection of the target ABI, and fix one
|
|
code generation problem.
|
|
The rs6000/ppc change fixes some problems with passing structures to
|
|
varargs/stdarg functions.
|
|
* A few machine independent bugfixes, mostly to fix code generation errors
|
|
when building Linux kernels or glibc.
|
|
* Fix a few critical exception handling and template bugs in the C++
|
|
compiler.
|
|
* Fix Fortran namelist bug on alphas.
|
|
* Fix build problems on x86-solaris systems.
|
|
|
|
EGCS 1.0.2 is a minor update to the EGCS 1.0.1 compiler to fix several
|
|
serious problems in EGCS 1.0.1.
|
|
* General improvements and fixes
|
|
+ Memory consumption significantly reduced, especially for templates
|
|
and inline functions.
|
|
+ Fix various problems with glibc2.1.
|
|
+ Fix loop optimization bug exposed by rs6000/ppc port.
|
|
+ Fix to avoid potential code generation problems in jump.c.
|
|
+ Fix some undefined symbol problems in dwarf1 debug support.
|
|
* g++/libstdc++ improvements and fixes
|
|
+ libstdc++ in the EGCS release has been updated and should be link
|
|
compatible with libstdc++-2.8.
|
|
+ Various fixes in libio/libstdc++ to work better on Linux systems.
|
|
+ Fix problems with duplicate symbols on systems that do not support
|
|
weak symbols.
|
|
+ Memory corruption bug and undefined symbols in bastring have been
|
|
fixed.
|
|
+ Various exception handling fixes.
|
|
+ Fix compiler abort for very long thunk names.
|
|
* g77 improvements and fixes
|
|
+ Fix compiler crash for omitted bound in Fortran CASE statement.
|
|
+ Add missing entries to g77 lang-options.
|
|
+ Fix problem with -fpedantic in the g77 compiler.
|
|
+ Fix "backspace" problem with g77 on alphas.
|
|
+ Fix x86 backend problem with Fortran literals and -fpic.
|
|
+ Fix some of the problems with negative subscripts for g77 on
|
|
alphas.
|
|
+ Fixes for Fortran builds on cygwin32/mingw32.
|
|
* platform specific improvements and fixes
|
|
+ Fix long double problems on x86 (exposed by glibc).
|
|
+ x86 ports define i386 again to keep imake happy.
|
|
+ Fix exception handling support on NetBSD ports.
|
|
+ Several changes to collect2 to fix many problems with AIX.
|
|
+ Define __ELF__ for rs6000/linux.
|
|
+ Fix -mcall-linux problem on rs6000/linux.
|
|
+ Fix stdarg/vararg problem for rs6000/linux.
|
|
+ Allow autoconf to select a proper install problem on AIX 3.1.
|
|
+ m68k port support includes -mcpu32 option as well as cpu32
|
|
multilibs.
|
|
+ Fix stdarg bug for irix6.
|
|
+ Allow EGCS to build on irix5 without the gnu assembler.
|
|
+ Fix problem with static linking on sco5.
|
|
+ Fix bootstrap on sco5 with native compiler.
|
|
+ Fix for abort building newlib on H8 target.
|
|
+ Fix fixincludes handling of math.h on SunOS.
|
|
+ Minor fix for Motorola 3300 m68k systems.
|
|
|
|
EGCS 1.0.3 is a minor update to the EGCS 1.0.2 compiler to fix a few
|
|
problems reported by Red Hat for builds of Red Hat 5.1.
|
|
* Generic bugfixes:
|
|
+ Fix a typo in the libio library which resulted in incorrect
|
|
behavior of istream::get.
|
|
+ Fix the Fortran negative array index problem.
|
|
+ Fix a major problem with the ObjC runtime thread support exposed by
|
|
glibc2.
|
|
+ Reduce memory consumption of the Haifa scheduler.
|
|
* Target specific bugfixes:
|
|
+ Fix one x86 floating point code generation bug exposed by glibc2
|
|
builds.
|
|
+ Fix one x86 internal compiler error exposed by glibc2 builds.
|
|
+ Fix profiling bugs on the Alpha.
|
|
+ Fix ImageMagick & emacs 20.2 build problems on the Alpha.
|
|
+ Fix rs6000/ppc bug when converting values from integer types to
|
|
floating point types.
|
|
|
|
The EGCS 1.0 releases include installation instructions in both HTML and
|
|
plaintext forms (see the INSTALL directory in the toplevel directory of the
|
|
distribution). However, we also keep the most up to date [2]installation
|
|
instructions and [3]build/test status on our web page. We will update those
|
|
pages as new information becomes available.
|
|
|
|
And, we can't in good conscience fail to mention some [4]caveats to using
|
|
EGCS.
|
|
|
|
Update: Big thanks to Stanford for providing a high speed link for
|
|
downloading EGCS (go.cygnus.com)!
|
|
|
|
Download EGCS from ftp.cygnus.com (USA California) or go.cygnus.com (USA
|
|
California -- High speed link provided by Stanford).
|
|
|
|
The EGCS 1.0 release is also available many mirror sites.
|
|
[5]Goto mirror list to find a closer site
|
|
|
|
We'd like to thank the numerous people that have contributed new features,
|
|
test results, bugfixes, etc. Unfortunately, they're far too numerous to
|
|
mention by name.
|
|
|
|
Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There are
|
|
also [7]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [8]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [9]GCC manuals. If that fails, the [10]gcc-help@gcc.gnu.org mailing
|
|
list might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [11]gcc@gnu.org or [12]gcc@gcc.gnu.org. All of
|
|
our lists have [13]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [14]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/egcs-1.0/features.html
|
|
2. http://gcc.gnu.org/install/
|
|
3. http://gcc.gnu.org/egcs-1.0/buildstat.html
|
|
4. http://gcc.gnu.org/egcs-1.0/caveats.html
|
|
5. http://gcc.gnu.org/mirrors.html
|
|
6. mailto:gnu@gnu.org
|
|
7. http://www.gnu.org/home.html#ContactInfo
|
|
8. http://gcc.gnu.org/about.html
|
|
9. http://gcc.gnu.org/onlinedocs/
|
|
10. mailto:gcc-help@gcc.gnu.org
|
|
11. mailto:gcc@gnu.org
|
|
12. mailto:gcc@gcc.gnu.org
|
|
13. http://gcc.gnu.org/lists.html
|
|
14. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/egcs-1.0/features.html
|
|
|
|
EGCS 1.0 features
|
|
|
|
* Core compiler is based on the gcc2 development tree from Aug 2, 1997, so
|
|
we have most of the [1]features found in GCC 2.8.
|
|
* Integrated GNU Fortran compiler based on g77-0.5.22-19970929.
|
|
* Vast improvements in the C++ compiler; so many they have [2]page of
|
|
their own!
|
|
* Integrated C++ runtime libraries, including support for most major linux
|
|
systems!
|
|
* New instruction scheduler from IBM Haifa which includes support for
|
|
function wide instruction scheduling as well as superscalar scheduling.
|
|
* Significantly improved alias analysis code.
|
|
* Improved register allocation for two address machines.
|
|
* Significant code generation improvements for Fortran code on Alphas.
|
|
* Various optimizations from the g77 project as well as improved loop
|
|
optimizations.
|
|
* Dwarf2 debug format support for some targets.
|
|
* egcs libstdc++ includes the SGI STL implementation without changes.
|
|
* As a result of these and other changes, egcs libstc++ is not binary
|
|
compatible with previous releases of libstdc++.
|
|
* Various new ports -- UltraSPARC, Irix6.2 & Irix6.3 support, The SCO
|
|
Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and 1.1),
|
|
Support for RTEMS on several embedded targets, Support for arm-linux,
|
|
Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and MN103, NEC V850,
|
|
Sparclet, Solaris & Linux on PowerPCs, etc.
|
|
* Integrated testsuites for gcc, g++, g77, libstdc++ and libio.
|
|
* RS6000/PowerPC ports generate code which can run on all RS6000/PowerPC
|
|
variants by default.
|
|
* -mcpu= and -march= switches for the x86 port to allow better control
|
|
over how the x86 port generates code.
|
|
* Includes the template repository patch (aka repo patch); note the new
|
|
template code makes repo obsolete for ELF systems using gnu-ld such as
|
|
Linux.
|
|
* Plus the usual assortment of bugfixes and improvements.
|
|
|
|
Please send FSF & GNU inquiries & questions to [3]gnu@gnu.org. There are
|
|
also [4]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [5]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [6]GCC manuals. If that fails, the [7]gcc-help@gcc.gnu.org mailing list
|
|
might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [8]gcc@gnu.org or [9]gcc@gcc.gnu.org. All of our
|
|
lists have [10]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [11]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/egcs-1.0/features-2.8.html
|
|
2. http://gcc.gnu.org/egcs-1.0/c++features.html
|
|
3. mailto:gnu@gnu.org
|
|
4. http://www.gnu.org/home.html#ContactInfo
|
|
5. http://gcc.gnu.org/about.html
|
|
6. http://gcc.gnu.org/onlinedocs/
|
|
7. mailto:gcc-help@gcc.gnu.org
|
|
8. mailto:gcc@gnu.org
|
|
9. mailto:gcc@gcc.gnu.org
|
|
10. http://gcc.gnu.org/lists.html
|
|
11. http://validator.w3.org/check/referer
|
|
======================================================================
|
|
http://gcc.gnu.org/egcs-1.0/caveats.html
|
|
|
|
EGCS 1.0 Caveats
|
|
|
|
* EGCS has an integrated libstdc++, but does not have an integrated
|
|
libg++. Furthermore old libg++ releases will not work with egc; HJ Lu
|
|
has made a libg++-2.8.1.2 available which may work with EGCS.
|
|
Note most C++ programs only need libstdc++.
|
|
* Note that using -pedantic or -Wreturn-type can cause an explosion in the
|
|
amount of memory needed for template-heavy C++ code, such as code that
|
|
uses STL. Also note that -Wall includes -Wreturn-type, so if you use
|
|
-Wall you will need to specify -Wno-return-type to turn it off.
|
|
* Exception handling may not work with shared libraries, particularly on
|
|
alphas, hppas, and mips based platforms. Exception handling is known to
|
|
work on x86-linux platforms with shared libraries.
|
|
* Some versions of the Linux kernel have bugs which prevent them from
|
|
being compiled or from running when compiled by EGCS. See the FAQ (as
|
|
shipped with EGCS 1.0) for additional information.
|
|
* In general, EGCS is more rigorous about rejecting invalid C++ code or
|
|
deprecated C++ constructs than G++ 2.7. As a result it may be necessary
|
|
to fix C++ code before it will compile with EGCS.
|
|
* G++ is also aggressively tracking the C++ standard; as a result code
|
|
which was previously valid (and thus accepted by other compilers and
|
|
older versions of G++) may no longer be accepted.
|
|
* EGCS 1.0 may not work with Red Hat Linux 5.0 on all targets. EGCS 1.0.x
|
|
and later releases should work with Red Hat Linux 5.0.
|
|
|
|
Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There are
|
|
also [2]other ways to contact the FSF.
|
|
|
|
These pages are maintained by [3]the GCC team.
|
|
|
|
|
|
For questions related to the use of GCC, please consult these web pages and
|
|
the [4]GCC manuals. If that fails, the [5]gcc-help@gcc.gnu.org mailing list
|
|
might help.
|
|
Please send comments on these web pages and the development of GCC to our
|
|
developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. All of our
|
|
lists have [8]public archives.
|
|
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
Boston, MA 02110, USA.
|
|
|
|
Verbatim copying and distribution of this entire article is permitted in any
|
|
medium, provided this notice is preserved.
|
|
Last modified 2007-07-25 [9]Valid XHTML 1.0
|
|
|
|
References
|
|
|
|
1. mailto:gnu@gnu.org
|
|
2. http://www.gnu.org/home.html#ContactInfo
|
|
3. http://gcc.gnu.org/about.html
|
|
4. http://gcc.gnu.org/onlinedocs/
|
|
5. mailto:gcc-help@gcc.gnu.org
|
|
6. mailto:gcc@gnu.org
|
|
7. mailto:gcc@gcc.gnu.org
|
|
8. http://gcc.gnu.org/lists.html
|
|
9. http://validator.w3.org/check/referer
|
|
======================================================================
|