This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
3.3 release notes (final)
- From: Joe Buck <jbuck at synopsys dot com>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 14 May 2003 10:50:21 -0700
- Subject: 3.3 release notes (final)
This document lists the problem reports (PRs) from GCC's bug tracking
system (GNATS, soon to be replaced by Bugzilla) that are known to be fixed
in the 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). In
fact, it's quite likely that I've missed a few. In addition, some
compatibility issues with GCC 3.2 through GCC 3.2.3 are discussed
(thanks to Loren James Rittle for help with this).
3.3 is a major release; changes are described in
http://gcc.gnu.org/gcc-3.3/changes.html
Part I: compatibility issues
3.3 is intended to be ABI (application binary interface) compatible with
3.2.x, including for C++, EXCEPT on certain platforms where the default
exception-handling method has changed (hppa-linux-gnu and m68k-linux-gnu).
There are two parts to this compatibility: compatibility of object code
compiled from user source, and compatibility with between versions of the
shared libstdc++ library. Object code compatibility should work fine; the
ABI has not changed. For shared library versions, C++ binaries produced
by 3.2.x should work fine with the shared library from GCC 3.3, but we
can't give any assurances about the reverse direction.
For hppa-linux-gnu and m68k-linux-gnu, you must configure GCC 3.3 with
--enable-sjlj-exceptions to get binary compatibility with GCC 3.2.x.
The version of libstdc++ included with 3.3 is intended to be completely
implementation compatible with that shipped with 3.2.X EXCEPT on i386
ports (anything configured as i386-*-*, no matter the real CPU) WHEN the
generated code is actually used in a multi-threaded context where the
default spin-lock implementation has changed. Luckily, the old and new
implementations will correctly interoperate without any link or run-time
conflicts in single-threaded contexts. However, the old and new
implementations do not lock the bus accesses in any manner that ensures
thread safety when the implementations are mixed.
For i386-*-* which is really an i486 or greater, you may configure GCC
3.3 as i486-*-* to get binary compatibility with GCC 3.2.x configured
as i386-*-*.
Part II: the bug list
To learn more about a particular PR, visit the link
http://gcc.gnu.org/PRnnnn
where the nnnn's are replaced with the number for the PR. For example,
see
http://gcc.gnu.org/PR7926
Alternatively, you can visit
http://gcc.gnu.org/bugzilla/
to use the Bugzilla interface to the bug database.
The sorting is slightly different from the GNATS (or Bugzilla) categories,
and some of the titles have been changed to make them more clear.
bootstrap failures:
10140 cross compiler build failures: missing __mempcpy (DUP: 10198,10338)
Internal compiler errors (ICEs):
3581 large string causes segmentation fault in cc1
4382 __builtin_{set,long}jmp with -O3 can crash the compiler
6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
6412 (c++) ICE in retrieve_specialization
6620 (c++) partial template specialization causes an ICE (segmentation
fault)
6663 (c++) ICE with attribute aligned
7068 ICE with incomplete types
7647 (c++) ICE when data member has the name of the enclosing class
7675 ICE in fixup_var_refs_1
7718 'complex' template instantiation causes ICE
8116 (c++) ICE in member template function
8511 (c++) ICE: (hopefully) reproducible cc1plus SIGSEGV
8564 (c++) ICE in find_function_data, in function.c
8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
8766 (c++) ICE after failed initialization of static template variable
8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
8906 (c++) ICE (Segmentation fault) when parsing nested-class definition
9216 (c++) ICE on missing template parameter
9261 (c++) ICE in arg_assoc, in cp/decl2.c
9263 (fortran) ICE caused by invalid PARAMETER in implied DO loop
9429 (c++) ICE in template instantiation with a pointered new operator
9516 Internal error when using a big array
9600 (c++) ICE with typedefs in template class
9629 (c++) virtual inheritance segfault
9672 (c++) ICE: Error reporting routines re-entered
9749 (c++) ICE in write_expression on invalid function prototype
9794 (fortran) ICE: floating point exception during constant folding
9829 (c++) Missing colon in nested namespace usage causes ICE
9916 (c++) ICE with noreturn function in ?: statement
9936 ICE with local function and variable-length 2d array
10262 (c++) cc1plus crashes with large generated code
10278 (c++) ICE in parser for invalid code
10446 (c++) ICE on definition of nonexistent member function of nested
class in a class template
10451 (c++) ICE in grokdeclarator on spurious mutable declaration
10506 (c++) ICE in build_new at cp/init.c with -fkeep-inline-functions
and multiple inheritance
10549 (c++) ICE in store_bit_field on bitfields that exceed the precision
of the declared type
optimization:
2001 Inordinately long compile times in reload CSE regs
2391 Exponential compilation time explosion in combine
2960 Duplicate loop conditions even with -Os
4046 redundant conditional branch
6405 Loop-unrolling related performance regressions
6798 very long compile time with large case-statement
6871 const objects shouldn't be moved to .bss
6909 problem w/ -Os on modified loop-2c.c test case
7189 gcc -O2 -Wall does not print ``control reaches end of non-void
function'' warning
7642 optimization problem with signbit()
8634 incorrect code for inlining of memcpy under -O2
8750 Cygwin prolog generation erroneously emitting __alloca as regular
function call
8803 Internal compiler error in instantiate_virtual_regs_1, in function.c
c front end:
2161 long if-else cascade overflows parser stack
4319 short accepted on typedef'd char
8602 incorrect line numbers in warning messages when using inline functions
9177 -fdump-translation-unit: C front end deletes function_decl AST nodes
and breaks debugging dumps
9853 miscompilation of non-constant structure initializer
c++ compiler and library:
45 legal template specialization code is rejected (DUP: 3784)
764 lookup failure: friend operator and dereferencing a pointer and
templates (DUP: 5116)
2862 gcc accepts invalid explicit instantiation syntax (DUP: 2863)
3663 G++ doesn't check access control during template instantiation
3797 gcc fails to emit explicit specialization of a template member
3948 Two destructors are called when no copy destructor is defined (ABI
change)
4361 bogus ambiguity taking the address of a member template
4802 g++ accepts illegal template code (access to private member; DUP: 5387)
4803 inline function is used but never defined, and g++ does not object
5730 complex<double>::norm() -- huge slowdown from egcs-2.91.66
6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run time
7015 certain __asm__ constructs rejected
7086 compile time regression (quadratic behavior in fixup_var_refs)
7099 G++ doesn't set the noreturn attribute on std::exit and std::abort
7247 copy constructor missing when inlining enabled (invalid
optimization?)
7441 string array initialization compilation time regression from seconds
to minutes
7768 __PRETTY_FUNCTION__ for template destructor is wrong
7804 bad printing of floating point constant in warning message
8099 Friend classes and template specializations
8117 member function pointers and multiple inheritance
8205 using declaration and multiple inheritance
8645 unnecessary non-0 checks in stl_tree.h
8724 explicit destructor call for incomplete class allowed
8805 compile time regression with many member variables
8691 -O3 and -fno-implicit-templates are incompatible
8700 unhelpful error message for binding temp to reference
8724 explicit destructor call for incomplete class allowed
8949 numeric_limits<>::denorm_min() and is_iec559 problems
9016 Failure to consistently constant fold "constant" C++ objects
9053 g++ confused about ambiguity of overloaded function templates
9152 undefined virtual thunks
9182 basic_filebuf<> does not report errors in codecvt<>::out
9297 data corruption due to codegen bug (when copying.)
9318 i/ostream::operator>>/<<(streambuf*) broken
9320 Incorrect usage of traits_type::int_type in stdio_filebuf
9400 bogus -Wshadow warning: shadowed declaration of THIS in local classes
9424 i/ostream::operator>>/<<(streambuf*) drops characters
9425 filebuf::pbackfail broken (DUP: 9439)
9474 GCC freezes in compiling a weird code mixing <iostream> and
<iostream.h>
9548 Incorrect results from setf(ios::fixed) and precision(-1) [DR231]
9555 ostream inserters fail to set badbit on exception
9561 ostream inserters rethrow exception of wrong type
9563 ostream::sentry returns true after a failed preparation
9582 one-definition rule violation in std::allocator
9622 __PRETTY_FUNCTION__ incorrect in template destructors
9683 bug in initialization chains for static const variables from
template classes
9791 -Woverloaded-virtual reports hiding of destructor
9817 collate::compare doesn't handle nul characters
9825 filebuf::sputbackc breaks sbumpc
9826 operator>>(basic_istream, basic_string) fails to compile with custom
traits
9924 Multiple using statements for builtin functions not allowed
9946 destructor is not called for temporary object
9964 filebuf::close() sometimes fails to close file
9988 filebuf::overflow writes EOF to file
10033 optimization breaks polymorphic references w/ 'typeid' operator
10097 filebuf::underflow drops characters
10132 filebuf destructor can throw exceptions
10180 gcc fails to warn about non-inlined function
10199 method parametrized by template does not work everywhere
10300 use of array-new (nothrow) in segfaults on NULL return
10427 Stack corruption with variable-length automatic arrays and virtual
destructors
10503 Compilation never stops in fixed_type_or_null
Objective-C:
5956 selectors aren't matched properly when added to the selector table
Fortran compiler and library:
1832 list directed i/o overflow hangs, -fbounds-check doesn't detect
3924 g77 generates code that is rejected by GAS if COFF debug info requested
5634 doc: explain that configure --prefix=~/... does not work
6367 multiple repeat counts confuse namelist read into array
6491 Logical operations error on logicals when using -fugly-logint
6742 Generation of C++ Prototype for FORTRAN and extern "C"
7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5
7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct
access file
7278 g77 "bug"; the executable misbehaves (with -O2 -fno-automatic)
7384 DATE_AND_TIME milliseconds field inactive on Windows
7388 Incorrect output with 0-based array of characters
8587 Double complex zero ** double precision number -> NaN instead of zero
9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown
register name line-length-none
10197 Direct access files not unformatted by default
Java compiler and library:
6005 gcj fails to build rhug on alpha
6389 System.getProperty("") should always throw an IllegalArgumentException
6576 java.util.ResourceBundle.getResource ignores locale
6652 new java.io.File("").getCanonicalFile() throws exception
7060 getMethod() doesn't search super interface
7073 bytecode interpreter gives wrong answer for interface getSuperclass()
7180 possible bug in javax.naming.spi.NamingManager.getPlusPath()
7416 java.security startup refs "GNU libgcj.security"
7570 Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)
7611 Internal error while compiling libjava with -O
7709 NullPointerException in _Jv_ResolvePoolEntry
7766 ZipInputStream.available returns 0 immediately after construction
7785 Calendar.getTimeInMillis/setTimeInMillis should be public
7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
8142 '$' in class names vs. dlopen 'dynamic string tokens'
8234 ZipInputStream chokes when InputStream.read() returns small chunks
8415 reflection bug: exception info for Method
8481 java.Random.nextInt(int) may return negative
8593 Error reading GZIPped files with BufferedReader
8759 java.beans.Introspector has no flushCaches() or flushFromCaches() methods
8997 spin() calls Thread.sleep
9253 on win32, java.io.File.listFiles("C:\\") returns pwd instead of the
root content of C:
9254 java::lang::Object::wait(), threads-win32.cc returns wrong return codes
9271 Severe bias in java.security.SecureRandom
preprocessor:
7029 preprocessor should ignore #warning with -M
ARM-specific:
2903 [arm] Optimization bug with long long arithmetic
7873 arm-linux-gcc fails when assigning address to a bit field
FreeBSD-specific (other BSDs affected?):
7680 float functions undefined in math.h/cmath with #define _XOPEN_SOURCE
HP-UX or HP-PA-specific
8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
9986 [HP-UX] Incorrect transformation of fputs_unlocked to fputc_unlocked
10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
m68hc11-specific:
6744 Bad assembler code generated: reference to pseudo register z
7361 Internal compiler error in reload_cse_simplify_operands, in reload1.c
MIPS-specific:
9496 [mips-linux] bug in optimizer?
PowerPC-specific:
7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of space
8480 reload ICEs for LAPACK code on powerpc64-linux
8784 [AIX] Internal compiler error in simplify_gen_subreg
10315 [powerpc] CE: in extract_insn, in recog.c
Sparc-specific:
10267 (documentation) Wrong build instructions for *-*-solaris2*
x86-specific:
7916 ICE in instantiate_virtual_register_1
7926 (c++) i486 instructions in header files make c++ programs crash on i386
8555 ICE in gen_split_1231
8994 ICE with -O -march=pentium4
9426 ICE with -fssa -funroll-loops -fprofile-arcs
9806 ICE in inline assembly with -fPIC flag
10077 gcc -msse2 generates movd to move dwords between xmm regs
10233 64-bit comparison only comparing bottom 32-bits
10286 type-punning doesn't work with __m64 and -O
10308 [x86] ICE with -O -fgcse or -O2
In addition to PRs described above, the following closed PRs were reported
against CVS branches, but the problems described were not present in any
released 3.2.x compilers.
7086 7128 7154 7211 7230 7238 7344 7389 7598 7782 7910 7919 7930 7931 8002
8006 8048 8062 8077 8080 8083 8087 8165 8179 8186 8202 8213 8227 8289 8322
8338 8342 8389 8408 8461 8492 8497 8501 8534 8553 8572 8625 8688 8702 8720
8748 8848 8849 8866 8870 9030 9038 9054 9068 9100 9165 9167 9195 9210 9234
9255 9264 9336 9342 9367 9373 9387 9394 9437 9453 9533 9594 9623 9651 9659
9681 9700 9704 9722 9727 9729 9809 9820 9868 9878 9879 9881 9886 9892 9934
9965 9970 9974 9994 10024 10031 10047 10062 10066 10072 10083 10087 10091
10145 10158 10201 10202 10205 10216 10245 10276 10336 10405 10452 10471
10515 10527 10551 10556 10570 10582 10604 10650 10658 10745