-A-
switch when appearing alone. -A- followed by an
assertion is still supported.format attribute may regain this
functionality by using the new 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.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.)-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..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.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.
intmax_t, as required by that
standard.-CC option, is intended for use by
applications which place metadata or directives inside comments,
such as lint.-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.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.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.-Wselector is used, check the whole list of
selectors at the end of compilation, and emit a warning if a
@selector() is not known.__NEXT_RUNTIME__ when compiling for the
NeXT runtime.objc/objc-class.h to
compile self calls in class methods (NeXT runtime only).-Wundeclared-selector option.@protocol() objects has been
fixed in certain situations (GNU runtime only).java.sql and javax.sql packages now
implement the JDBC 3.0 (JDK 1.4) API. assert facility has been
implemented.sh-*-netbsdelf*shle-*-netbsdelf*sh5-*-netbsd*sh5le-*-netbsd*sh64-*-netbsd*sh64le-*-netbsd*-mabi
switch. Note that you will need appropriate multilibs
for this option to work properly.-mabi=64 no longer selects MIPS IV code.-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.-mipsN now acts as a
synonym for -march.-march and -mtune settings.
See the documentation of those options for details.s390-*-linux*
and s390x-*-linux* targets.s390x-*-linux* target
has been added; this allows to build 31-bit binaries using
the -m31 option.BRANCH ON COUNT family of instructions
and makes more frequent use of the TEST UNDER MASK
family of instructions.-mn.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:
mn10200-*-*m88k-*-*romp-*-*Also, some individual systems have been obsoleted:
alpha*-*-interix*alpha*-*-linux*libc1*alpha*-*-linux*ecoff*arm*-*-aout*arm*-*-conix*arm*-*-oabistrongarm-*-coff*hppa1.0-*-osf*hppa1.0-*-bsd*hppa1.[01]-*-hpux[789]*hppa*-*-hiux*hppa*-*-lites*i?86-*-win32m68000-hp-bsd*
and m68k-hp-bsd*m68000-sun-sunos*,
m68k-sun-sunos*,
and m68k-sun-mach*m68000-att-sysv*m68k-atari-sysv*m68k-motorola-sysv*m68k-ncr-sysv*m68k-plexus-sysv*m68k-cbm-sysv*m68k-tti-*m68k-crds-unos*m68k-ccur-rtu*m68k-*-linux*aout*m68k-*-linux*libc1*m68k-*-psos*mips*-*-ecoff*mips-sni-sysv4mips64orion-*-rtems*ns32k-*-openbsd*rs6000-ibm-aix[123]*rs6000-bull-bosxrs6000-*-mach*powerpc*-*-sysv*powerpc*-*-linux*libc1*sparc-*-aout*,
sparclet-*-aout*,
sparclite-*-aout*,
and sparc86x-*-aout*sparc-*-netbsd*aout*sparc-*-bsd*sparc-*-chorusos*sparc-*-linux*aout*sparc-*-linux*libc1*sparc-*-lynxos*sparc-hal-solaris2*sparc-*-sunos[34]*v850-*-rtems*vax-*-vms*__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.make install by means of the variable
DESTDIR.Detailed release notes for the GCC 3.3 release follow.
__builtin_{set,long}jmp with -O3 can crash the compilerstd::accumulate(begin, end, init, invalid_op)-fpic -gdwarf-2 -g1 combination gives ICE in dwarf2outretrieve_specializationaligned-gstabs with dodgy class derivationfixup_var_refs_1find_function_data, in function.ctsubst_expr, in cp/pt.cinstantiate_virtual_regs_1, in function.cfr_FR@euro locale is setarg_assoc, in cp/decl2.cPARAMETER in implied DO loopnew operatorwrite_expression on invalid function prototypenoreturn function in ?: statementgrokdeclarator on spurious mutable declarationbuild_new at cp/init.c with -fkeep-inline-functions and multiple inheritancestore_bit_field on bitfields that exceed the precision of the declared type-Osconst objects shouldn't be moved to .bss-Os on modified loop-2c.c test case-O2 -Wall does not print ``control reaches end of non-void function'' warningsignbit()-O2__alloca as regular function callif-else cascade overflows parser stacktypedef'd char-fdump-translation-unit: C front end deletes function_decl AST nodes and breaks debugging dumps-- huge slowdown from egcs-2.91.66-O2 leads to seg fault at run time__asm__ constructs rejected noreturn attribute on std::exit and std::abort__PRETTY_FUNCTION__ for template destructor is wrongstl_tree.h-O3 and -fno-implicit-templates are incompatiblenumeric_limits<>::denorm_min() and is_iec559 problemsbasic_filebuf<> does not report errors in codecvt<>::outi/ostream::operator>>/<<(streambuf*) brokentraits_type::int_type in stdio_filebuf-Wshadow warning: shadowed declaration of this in local classesi/ostream::operator>>/<<(streambuf*) drops charactersfilebuf::pbackfail broken (DUP: 9439)<iostream> and <iostream.h>setf(ios::fixed) and precision(-1) [DR 231]ostream inserters fail to set badbit on exceptionostream inserters rethrow exception of wrong typeostream::sentry returns true after a failed preparationstd::allocator__PRETTY_FUNCTION__ incorrect in template destructorsconst variables from template classes-Woverloaded-virtual reports hiding of destructorcollate::compare doesn't handle nul charactersfilebuf::sputbackc breaks sbumpcoperator>>(basic_istream, basic_string) fails to compile with custom traitsusing statements for builtin functions not allowedfilebuf::close() sometimes fails to close filefilebuf::overflow writes EOF to filetypeid operatorfilebuf::underflow drops charactersfilebuf destructor can throw exceptionsfixed_type_or_null-fbounds-check doesn't detect--prefix=~/... does not work-fugly-logintextern "C"g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct access file -O2 -fno-automatic)DATE_AND_TIME milliseconds field inactive on Windows-> NaN instead of zero-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-noneSystem.getProperty("") should always throw an IllegalArgumentExceptionjava.util.ResourceBundle.getResource ignores localenew java.io.File("").getCanonicalFile() throws exceptiongetMethod() doesn't search super interfacegetSuperclass()javax.naming.spi.NamingManager.getPlusPath()java.security startup refs "GNU libgcj.security"Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)-ONullPointerException in _Jv_ResolvePoolEntryZipInputStream.available returns 0 immediately after constructionCalendar.getTimeInMillis/setTimeInMillis should be publicTimeZone.getDSTSavings() from JDK1.4 not implementeddlopen 'dynamic string tokens'ZipInputStream chokes when InputStream.read() returns small chunksjava.Random.nextInt(int) may return negativeBufferedReaderjava.beans.Introspector has no flushCaches() or flushFromCaches() methodsspin() calls Thread.sleepjava.io.File.listFiles("C:\\") returns pwd instead of the root content of C:java::lang::Object::wait(), threads-win32.cc returns wrong return codesjava.security.SecureRandommake gnatlib-shared fails on -laddr2linegnatmake fails to link when GCC configured with --with-sjlj-exceptions=yes#warning with -Mlong long arithmeticconst variables from template classes-Woverloaded-virtual reports hiding of destructorcollate::compare doesn't handle nul charactersfilebuf::sputbackc breaks sbumpcoperator>>(basic_istream, basic_string) fails to compile with custom traitsusing statements for builtin functions not allowedfilebuf::close() sometimes fails to close filefilebuf::overflow writes EOF to filetypeid operatorfilebuf::underflow drops charactersfilebuf destructor can throw exceptionsfixed_type_or_null-fbounds-check doesn't detect--prefix=~/... does not work-fugly-logintextern "C"g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct access file -O2 -fno-automatic)DATE_AND_TIME milliseconds field inactive on Windows-> NaN instead of zero-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-noneSystem.getProperty("") should always throw an IllegalArgumentExceptionjava.util.ResourceBundle.getResource ignores localenew java.io.File("").getCanonicalFile() throws exceptiongetMethod() doesn't search super interfacegetSuperclass()javax.naming.spi.NamingManager.getPlusPath()java.security startup refs "GNU libgcj.security"Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)-ONullPointerException in _Jv_ResolvePoolEntryZipInputStream.available returns 0 immediately after constructionCalendar.getTimeInMillis/setTimeInMillis should be publicTimeZone.getDSTSavings() from JDK1.4 not implementeddlopen 'dynamic string tokens'ZipInputStream chokes when InputStream.read() returns small chunksjava.Random.nextInt(int) may return negativeBufferedReaderjava.beans.Introspector has no flushCaches() or flushFromCaches() methodsspin() calls Thread.sleepjava.io.File.listFiles("C:\\") returns pwd instead of the root content of C:java::lang::Object::wait(), threads-win32.cc returns wrong return codesjava.security.SecureRandommake gnatlib-shared fails on -laddr2linegnatmake fails to link when GCC configured with --with-sjlj-exceptions=yes#warning with -Mlong long arithmeticconst variables from template classes-Woverloaded-virtual reports hiding of destructorcollate::compare doesn't handle nul charactersfilebuf::sputbackc breaks sbumpcoperator>>(basic_istream, basic_string) fails to compile with custom traitsusing statements for builtin functions not allowedfilebuf::close() sometimes fails to close filefilebuf::overflow writes EOF to filetypeid operatorfilebuf::underflow drops charactersfilebuf destructor can throw exceptionsfixed_type_or_null-fbounds-check doesn't detect--prefix=~/... does not work-fugly-logintextern "C"g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct access file -O2 -fno-automatic)DATE_AND_TIME milliseconds field inactive on Windows-> NaN instead of zero-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-noneSystem.getProperty("") should always throw an IllegalArgumentExceptionjava.util.ResourceBundle.getResource ignores localenew java.io.File("").getCanonicalFile() throws exceptiongetMethod() doesn't search super interfacegetSuperclass()javax.naming.spi.NamingManager.getPlusPath()java.security startup refs "GNU libgcj.security"Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)-ONullPointerException in _Jv_ResolvePoolEntryZipInputStream.available returns 0 immediately after constructionCalendar.getTimeInMillis/setTimeInMillis should be publicTimeZone.getDSTSavings() from JDK1.4 not implementeddlopen 'dynamic string tokens'ZipInputStream chokes when InputStream.read() returns small chunksjava.Random.nextInt(int) may return negativeBufferedReaderjava.beans.Introspector has no flushCaches() or flushFromCaches() methodsspin() calls Thread.sleepjava.io.File.listFiles("C:\\") returns pwd instead of the root content of C:java::lang::Object::wait(), threads-win32.cc returns wrong return codesjava.security.SecureRandommake gnatlib-shared fails on -laddr2linegnatmake fails to link when GCC configured with --with-sjlj-exceptions=yes#warning with -Mlong long arithmeticconst variables from template classes-Woverloaded-virtual reports hiding of destructorcollate::compare doesn't handle nul charactersfilebuf::sputbackc breaks sbumpcoperator>>(basic_istream, basic_string) fails to compile with custom traitsusing statements for builtin functions not allowedfilebuf::close() sometimes fails to close filefilebuf::overflow writes EOF to filetypeid operatorfilebuf::underflow drops charactersfilebuf destructor can throw exceptionsfixed_type_or_null-fbounds-check doesn't detect--prefix=~/... does not work-fugly-logintextern "C"g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct access file -O2 -fno-automatic)DATE_AND_TIME milliseconds field inactive on Windows-> NaN instead of zero-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-noneSystem.getProperty("") should always throw an IllegalArgumentExceptionjava.util.ResourceBundle.getResource ignores localenew java.io.File("").getCanonicalFile() throws exceptiongetMethod() doesn't search super interfacegetSuperclass()javax.naming.spi.NamingManager.getPlusPath()java.security startup refs "GNU libgcj.security"Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)-ONullPointerException in _Jv_ResolvePoolEntryZipInputStream.available returns 0 immediately after constructionCalendar.getTimeInMillis/setTimeInMillis should be publicTimeZone.getDSTSavings() from JDK1.4 not implementeddlopen 'dynamic string tokens'ZipInputStream chokes when InputStream.read() returns small chunksjava.Random.nextInt(int) may return negativeBufferedReaderjava.beans.Introspector has no flushCaches() or flushFromCaches() methodsspin() calls Thread.sleepjava.io.File.listFiles("C:\\") returns pwd instead of the root content of C:java::lang::Object::wait(), threads-win32.cc returns wrong return codesjava.security.SecureRandommake gnatlib-shared fails on -laddr2linegnatmake fails to link when GCC configured with --with-sjlj-exceptions=yes#warning with -Mlong long arithmeticconst variables from template classes-Woverloaded-virtual reports hiding of destructorcollate::compare doesn't handle nul charactersfilebuf::sputbackc breaks sbumpcoperator>>(basic_istream, basic_string) fails to compile with custom traitsusing statements for builtin functions not allowedfilebuf::close() sometimes fails to close filefilebuf::overflow writes EOF to filetypeid operatorfilebuf::underflow drops charactersfilebuf destructor can throw exceptionsfixed_type_or_null-fbounds-check doesn't detect--prefix=~/... does not work-fugly-logintextern "C"g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct access file -O2 -fno-automatic)DATE_AND_TIME milliseconds field inactive on Windows-> NaN instead of zero-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-noneSystem.getProperty("") should always throw an IllegalArgumentExceptionjava.util.ResourceBundle.getResource ignores localenew java.io.File("").getCanonicalFile() throws exceptiongetMethod() doesn't search super interfacegetSuperclass()javax.naming.spi.NamingManager.getPlusPath()java.security startup refs "GNU libgcj.security"Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)-ONullPointerException in _Jv_ResolvePoolEntryZipInputStream.available returns 0 immediately after constructionCalendar.getTimeInMillis/setTimeInMillis should be publicTimeZone.getDSTSavings() from JDK1.4 not implementeddlopen 'dynamic string tokens'ZipInputStream chokes when InputStream.read() returns small chunksjava.Random.nextInt(int) may return negativeBufferedReaderjava.beans.Introspector has no flushCaches() or flushFromCaches() methodsspin() calls Thread.sleepjava.io.File.listFiles("C:\\") returns pwd instead of the root content of C:java::lang::Object::wait(), threads-win32.cc returns wrong return codesjava.security.SecureRandommake gnatlib-shared fails on -laddr2linegnatmake fails to link when GCC configured with --with-sjlj-exceptions=yes#warning with -Mlong long arithmeticconst variables from template classes-Woverloaded-virtual reports hiding of destructorcollate::compare doesn't handle nul charactersfilebuf::sputbackc breaks sbumpcoperator>>(basic_istream, basic_string) fails to compile with custom traitsusing statements for builtin functions not allowedfilebuf::close() sometimes fails to close filefilebuf::overflow writes EOF to filetypeid operatorfilebuf::underflow drops charactersfilebuf destructor can throw exceptionsfixed_type_or_null-fbounds-check doesn't detect--prefix=~/... does not work-fugly-logintextern "C"g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct access file -O2 -fno-automatic)DATE_AND_TIME milliseconds field inactive on Windows-> NaN instead of zero-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-noneSystem.getProperty("") should always throw an IllegalArgumentExceptionjava.util.ResourceBundle.getResource ignores localenew java.io.File("").getCanonicalFile() throws exceptiongetMethod() doesn't search super interfacegetSuperclass()javax.naming.spi.NamingManager.getPlusPath()java.security startup refs "GNU libgcj.security"Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)-ONullPointerException in _Jv_ResolvePoolEntryZipInputStream.available returns 0 immediately after constructionCalendar.getTimeInMillis/setTimeInMillis should be publicTimeZone.getDSTSavings() from JDK1.4 not implementeddlopen 'dynamic string tokens'ZipInputStream chokes when InputStream.read() returns small chunksjava.Random.nextInt(int) may return negativeBufferedReaderjava.beans.Introspector has no flushCaches() or flushFromCaches() methodsspin() calls Thread.sleepjava.io.File.listFiles("C:\\") returns pwd instead of the root content of C:java::lang::Object::wait(), threads-win32.cc returns wrong return codesjava.security.SecureRandommake gnatlib-shared fails on -laddr2linegnatmake fails to link when GCC configured with --with-sjlj-exceptions=yes#warning with -Mlong long arithmeticconst variables from template classes-Woverloaded-virtual reports hiding of destructorcollate::compare doesn't handle nul charactersfilebuf::sputbackc breaks sbumpcoperator>>(basic_istream, basic_string) fails to compile with custom traitsusing statements for builtin functions not allowedfilebuf::close() sometimes fails to close filefilebuf::overflow writes EOF to filetypeid operatorfilebuf::underflow drops charactersfilebuf destructor can throw exceptionsfixed_type_or_null-fbounds-check doesn't detect--prefix=~/... does not work-fugly-logintextern "C"g77.f-torture/execute/f90-intrinsic-bit.f -Os on irix6.5OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should assume a direct access file -O2 -fno-automatic)DATE_AND_TIME milliseconds field inactive on Windows-> NaN instead of zero-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-noneSystem.getProperty("") should always throw an IllegalArgumentExceptionjava.util.ResourceBundle.getResource ignores localenew java.io.File("").getCanonicalFile() throws exceptiongetMethod() doesn't search super interfacegetSuperclass()javax.naming.spi.NamingManager.getPlusPath()java.security startup refs "GNU libgcj.security"Runtime.exec with null envp: child doesn't inherit parent env (DUP: 7578)-ONullPointerException in _Jv_ResolvePoolEntryZipInputStream.available returns 0 immediately after constructionCalendar.getTimeInMillis/setTimeInMillis should be publicTimeZone.getDSTSavings() from JDK1.4 not implementeddlopen 'dynamic string tokens'ZipInputStream chokes when InputStream.read() returns small chunksjava.Random.nextInt(int) may return negativeBufferedReaderjava.beans.Introspector has no flushCaches() or flushFromCaches() methodsspin() calls Thread.sleepjava.io.File.listFiles("C:\\") returns pwd instead of the root content of C:java::lang::Object::wait(), threads-win32.cc returns wrong return codesjava.security.SecureRandommake gnatlib-shared fails on -laddr2linegnatmake fails to link when GCC configured with --with-sjlj-exceptions=yes#warning with -Mlong long arithmetic