This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 ##


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]