aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1/NEWS')
-rw-r--r--gcc-4.2.1/NEWS8737
1 files changed, 8737 insertions, 0 deletions
diff --git a/gcc-4.2.1/NEWS b/gcc-4.2.1/NEWS
new file mode 100644
index 000000000..f73c76983
--- /dev/null
+++ b/gcc-4.2.1/NEWS
@@ -0,0 +1,8737 @@
+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
+
+ July 18, 2007
+
+ The [1]GNU project and the GCC developers are pleased to announce the
+ release of GCC 4.2.1.
+
+ This release is a bug-fix release, containing fixes for regressions in GCC
+ 4.2.0 relative to previous releases of GCC.
+
+ May 13, 2007
+
+ The [2]GNU project and the GCC developers are pleased to announce the
+ release of GCC 4.2.0.
+
+ This release is a major release, containing new features (as well as many
+ other improvements) relative to GCC 4.1.x.
+
+Release History
+
+ 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-07-19 [20]Valid XHTML 1.0
+
+References
+
+ 1. http://www.gnu.org/
+ 2. http://www.gnu.org/
+ 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 <template <typename> class C>
+ void f(C<double>) {}
+
+ template <typename T, typename U = int>
+ struct S {};
+
+ template void f(S<double>);
+
+ 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 <random>, <complex>, 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-05-12 [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-02-14 [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 <template <typename> class C>
+ void f(C<double>) {}
+
+ template <typename T, typename U = int>
+ struct S {};
+
+ template void f(S<double>);
+
+ 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 <ext/vstring.h>. 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 <altivec.h> 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-02-14 [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-02-03 [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 <typename T> struct A {
+ class B {};
+};
+class C {
+ template <typename T> friend class A<T>::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-02-03 [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 2006-06-21 [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 <varargs.h>. Use <stdarg.h> 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 <class T1> struct A {
+ template <class T2> struct B {
+ void callme(void);
+ };
+
+ template <int N> 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 <class T> void template_func(void)
+ {
+ // Use 'template' to prefix member templates within
+ // dependent types (a has type A<T>, which depends on
+ // the template parameter T).
+ A<T> 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<T>::B<int> is
+ // the name of a type (again, dependent).
+ typename A<T>::template B<int> 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<K> a;
+ a.bar<0>();
+ A<K>::B<float> 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 <typename T> struct B {
+ int m;
+ int n;
+ int f ();
+ int g ();
+ };
+ int n;
+ int g ();
+ template <typename T> struct C : B<T> {
+ 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<T>::h,
+ template <typename T> void C<T>::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 <typename T> struct C : B<T> {
+ using B<T>::m;
+ using B<T>::f;
+ using B<T>::n;
+ using B<T>::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 <int> 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 <int N>
+ 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 <template <class> class TT> class X {};
+ template <class T> class Y {
+ X<Y> 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 <typename T>
+ class C {
+ friend void f<> (C&);
+ };
+ is rejected. You must first declare f as a template,
+ template <typename T>
+ 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 <typename T> struct A {
+ void f();
+ };
+ class C {
+ template <typename T> friend void A<T>::f();
+ };
+ * You must use template <> to introduce template specializations, as
+ required by the standard. For example,
+ template <typename T>
+ struct S;
+
+ struct S<int> { };
+ is rejected. You must write,
+ template <> struct S<int> {};
+ * 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 <int> 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<char,
+ std::char_traits<char> >::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 <cmath> 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 '<declaration error>'
+ * [365]23797 ICE on typename outside template
+ * [366]23965 Bogus error message: no matching function for call to
+ 'foo(<type error>)'
+ * [367]24052 &#`label_decl' not supported by dump_expr#<expression error>
+ * [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 2006-06-21 [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 2006-06-21 [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
+ <varargs.h> 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<double>::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 <iostream> and
+ <iostream.h>
+ * [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<const unsigned
+ 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<wchar_t>::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 <complex> 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 2006-11-12 [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 2006-06-21 [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: <string> breaks <ctype.h> 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<T>::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<char, char, mbstate_t> 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<char>::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 2006-06-21 [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 2006-06-21 [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-02-18 [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-02-01 [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-02-24 [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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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=<dirname> 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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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
+======================================================================