GCC 3.2.1 (the last in the 3.2.x series, it seems) has been released. Lots of bugfixes in here. Notably, some MMX, SSE, and x86-64 bugs have been fixed.
Additionally, the method of constructing the list of directories to be searched for header files has been revised. If you specify a standard include dir with -I (for example: -I/usr/include), the compiler will ignore it; this is so you don't change the search order for standard include dirs.
[ changes from Nov 11 draft: add 8314, fix description of 4890, refer
to preprocessor/8524 instead of Debian BT system, fix typos ]
Release notes for GCC 3.2.1
[ note that as I write this 3.2.1 has not yet been released, but Mark
Mitchell has created the pre-release tarball and the window for bug
fixes is closed ].
This version is current as of Nov 12, 2002.
This document lists the problem reports (PRs) from GCC's bug tracking
system (GNATS) 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.
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 PR 7445 (poor performance of
std::locale::classic() in multi-threaded applications) was reverted
("unfixed"), because the "fix" was not thread-safe.
Thanks to Daniel Jacobowitz for doing an early draft of this list.
To learn more about a particular PR, visit the link
and enter the PR number in the "View Problem Report" dialog box. Then
click the "View" button. It's not necessary to log in to view reports.
My sorting is slightly different from the GNATS categories, and I changed
some of the titles to make them more clear.
First, internal compiler errors (ICEs). These are multi-platform; some
processor-specific ICEs are listed in separate sections below.
2521 (c++) ICE in build_ptrmemfunc, in cp/typeck.c
5661 (c++) ICE instantiating template on array of unknown size (bad code)
6419 (c++) ICE in make_decl_rtl for "longest" attribute on 64-bit platforms
6994 (c++) ICE in find_function_data
7150 preprocessor: GCC -dM -E gives an ICE
7160 ICE when optimizing branches without a return value
7228 (c++) ICE when using member template and template function
7266 (c++) ICE with -pedantic on missing typename
7353 ICE from use of "Naming Types" extension, see above
7411 ICE in instantiate_virtual_regs_1, in function.c
7478 (c++) ICE on static_cast inside template
7526 preprocessor core dump when _Pragma implies #pragma dependency
7721 (c++) ICE on simple (but incorrect) template (7803 is a duplicate)
7754 (c++) ICE on union with template parameter
7788 (c++) redeclaring a definition as an incomplete class causes ICE
8031 (c++) ICE in comptypes, in cp/typeck.c
8055 preprocessor dies with SIG11 when building FreeBSD kernel
8067 (c++) ICE due to mishandling of __FUNCTION__ and related variables
8134 (c++) ICE in force_store_init_value on legal code
8149 (c++) ICE on incomplete type
8160 (c++) ICE in build_modify_expr, in cp/typeck.c: array initialization
C++ (compiler and library) bugs
5607 No pointer adjustment in covariant return types
6579 Infinite loop with statement expressions in member initialization
6803 Default copy constructor bug in GCC 3.1
7176 g++ confused by friend and static member with same name
7188 Segfault with template class and recursive (incorrect) initializer list
7306 Regression: GCC 3.x fails to compile code with virtual inheritance if a
method has a variable number of arguments
7461 ctype::classic_table() returns offset array on Cygwin
7524 f(const float arg) fails
7584 Erroneous ambiguous base error on using declaration
7676 Member template overloading problem
7679 infinite loop when a right parenthesis is missing
7811 default locale not taken from environment
7961 compare( char *) implemented incorrectly in basic_string