This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
gcc 3.2.1 release notes (final)
- From: Joe Buck <Joe dot Buck at synopsys dot com>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 12 Nov 2002 22:43:54 -0800 (PST)
- Subject: gcc 3.2.1 release notes (final)
[ 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
http://GCC.gnu.org/cgi-bin/gnatsweb.pl
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<char>::classic_table() returns offset array on Cygwin
7524 f(const float arg[3]) 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<>
8071 basic_ostream::operator<<(streambuf*) loops forever if
streambuf::underflow() leaves gptr() NULL (dups: 8127, 6745)
8096 deque::at() throws std::range_error instead of std::out_of_range
8127 cout << cin.rdbuf() infinite loop
8218 Excessively large memory consumed for classes with large array members
8287 GCC 3.2: Destructor called for non-constructed local object
8347 empty vector range used in string construction causes core dump
8348 fail() flag is set in istringstream when eof() flag is set
8391 regression: infinite loop in cp/decl2.c(finish_file)
C and optimizer bugs
6627 -fno-align-functions doesn't seem to disable function alignment
6631 life_analysis misoptimizes code to initialize fields of a structure
7102 unsigned char division results in floating exception
7120 Run once loop should *always* be unrolled (pessimization)
7209 Bug involving array referencing and ?: operator
7515 invalid inlining of global function with -O3
7814 incorrect scheduling for glibc-2.2.92 strcpy test
8467 bug in sibling call optimization
Preprocessor bugs
4890 incorrect line markers from the traditional preprocessor
7357 -M option omits system headers files (making it the same as -MM)
7358 Changes to Sun's make Dependencies
7602 C++ header files found in CPLUS_INCLUDE_PATH treated as C headers
7862 Interrupting GCC -MD removes .d file but not .o
8190 Failed compilation deletes -MD dependency file
8524 _Pragma within macro is improperly expanded
x86-specific (Intel/AMD):
5351 (i686-only) function pass-by-value structure copy corrupts stack
(7591 is a duplicate)
6845,7034,7124,7174: ICE's with -march=pentium3/pentium2/athlon
(these are all the same underlying bug, in MMX register use)
7134,7375,7390 ICE with -march=athlon (maybe same as above?)
6890 xmmintrin.h, _MM_TRANSPOSE4_PS is broken
6981 wrong code in 64-bit manipulation on x86
7242 GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__ macro
7396 ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE intrinsics
are broken
7630 GCC 3.2 breaks on Mozilla 1.0's JS sources with -march=pentium4
7693 Typo in i386 mmintrin.h header
7723 ICE - Pentium3 sse - GCC 3.2
7951 ICE on -march=pentium4 -O2 -mfpmath=sse
8146 (i686 only) gcc 3.2 miscompiles gcc 2.95.3
PowerPC-specific:
5967 GCC bug when profiling nested functions on powerpc
6984 wrong code generated with -O2, -O3, -Os for do-while loop on PowerPC
7114 PowerPC: ICE building strcoll.op from glibc-2.2.5
7130 miscompiled code for GCC-3.1 in powerpc linux with -funroll-all-loops
7133 PowerPC ICE: unrecognizable insn
7380 ICE in extract_insn, at recog.c:2148
8252 ICE on Altivec code with optimization turned on
8451 Altivec ICE in GCC 3.2
HP/PA specific:
7250 __ashrdi3 returns wrong value on 32 bit hppa
SPARC-specific:
6668 when using --disable-multilib, libgcc_s.so is installed in the
wrong place on sparc-solaris
7151 ICE when compiling for UltraSPARC
7335 SPARC: ICE in verify_wide_reg (flow.c:557) with long double and -O1
7842 [REGRESSION] SPARC code gen bug
ARM-specific:
7856 [arm] invalid offset in constant pool reference
7967 optimization produces wrong code (ARM)
Alpha-specific:
7374 __builtin_fabsl broken on alpha
IBM s390-specific:
7370 ICE in fixup_var_refs_1 on s390x
7409 loop optimization bug on s390x-linux-gnu
8232 s390x: ICE when using bcmp with 'int' length argument
SCO-specific:
7623 SCO OpenServer build fails with machmode.def: undefined symbol:
BITS_PER_UNIT
m68k/Coldfire specific:
8314 crtbegin, crtend need to be multilib'ed for this platform
Documentation:
761 Document some undocumented options
5610 Fix documentation about invoking SSE instructions (-mfpmath=sse)
7484 List -Wmissing-declarations as C-only option
7531 -mcmodel not documented for x86-64
8120 Update documentation of bad use of ##