| 1 | This file contains information about GCC releases which has been generated
|
|---|
| 2 | automatically from the online release notes. It covers releases of GCC
|
|---|
| 3 | (and the former EGCS project) since EGCS 1.0, on the line of development
|
|---|
| 4 | that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2,
|
|---|
| 5 | see ONEWS.
|
|---|
| 6 |
|
|---|
| 7 | ======================================================================
|
|---|
| 8 | http://gcc.gnu.org/gcc-3.3/index.html
|
|---|
| 9 |
|
|---|
| 10 | GCC 3.3 Release Series
|
|---|
| 11 |
|
|---|
| 12 | June 28, 2004
|
|---|
| 13 |
|
|---|
| 14 | The [1]GNU project and the GCC developers are pleased to announce the
|
|---|
| 15 | release of GCC 3.3.4. This release was actually completed on May 31,
|
|---|
| 16 | but various reasons delayed the actual announcement.
|
|---|
| 17 |
|
|---|
| 18 | The GCC 3.3 release series includes numerous [2]new features,
|
|---|
| 19 | improvements, bug fixes, and other changes, thanks to an [3]amazing
|
|---|
| 20 | group of volunteers.
|
|---|
| 21 |
|
|---|
| 22 | Release History
|
|---|
| 23 |
|
|---|
| 24 | GCC 3.3.3
|
|---|
| 25 | February 14, 2004 ([4]changes)
|
|---|
| 26 |
|
|---|
| 27 | GCC 3.3.2
|
|---|
| 28 | October 16, 2003 ([5]changes)
|
|---|
| 29 |
|
|---|
| 30 | GCC 3.3.1
|
|---|
| 31 | August 8, 2003 ([6]changes)
|
|---|
| 32 |
|
|---|
| 33 | GCC 3.3
|
|---|
| 34 | May 14, 2003 ([7]changes)
|
|---|
| 35 |
|
|---|
| 36 | References and Acknowledgements
|
|---|
| 37 |
|
|---|
| 38 | GCC used to stand for the GNU C Compiler, but since the compiler
|
|---|
| 39 | supports several other languages aside from C, it now stands for the
|
|---|
| 40 | GNU Compiler Collection.
|
|---|
| 41 |
|
|---|
| 42 | A list of [8]successful builds is updated as new information becomes
|
|---|
| 43 | available.
|
|---|
| 44 |
|
|---|
| 45 | The GCC developers would like to thank the numerous people that have
|
|---|
| 46 | contributed new features, improvements, bug fixes, and other changes
|
|---|
| 47 | as well as test results to GCC. This [9]amazing group of volunteers is
|
|---|
| 48 | what makes GCC successful.
|
|---|
| 49 |
|
|---|
| 50 | For additional information about GCC please refer to the [10]GCC
|
|---|
| 51 | project web site or contact the [11]GCC development mailing list.
|
|---|
| 52 |
|
|---|
| 53 | To obtain GCC please use [12]our mirror sites, one of the [13]GNU
|
|---|
| 54 | mirror sites, or [14]our CVS server.
|
|---|
| 55 | _________________________________________________________________
|
|---|
| 56 |
|
|---|
| 57 | Please send FSF & GNU inquiries & questions to [15][email protected]. There
|
|---|
| 58 | are also [16]other ways to contact the FSF.
|
|---|
| 59 |
|
|---|
| 60 | These pages are maintained by [17]the GCC team.
|
|---|
| 61 |
|
|---|
| 62 |
|
|---|
| 63 | For questions related to the use of GCC, please consult these web
|
|---|
| 64 | pages and the [18]GCC manuals. If that fails, the
|
|---|
| 65 | [19][email protected] mailing list might help.
|
|---|
| 66 | Please send comments on these web pages and the development of GCC
|
|---|
| 67 | to our developer mailing list at [20][email protected] or
|
|---|
| 68 | [21][email protected]. All of our lists have [22]public archives.
|
|---|
| 69 |
|
|---|
| 70 | Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite
|
|---|
| 71 | 330, Boston, MA 02111, USA.
|
|---|
| 72 |
|
|---|
| 73 | Verbatim copying and distribution of this entire article is permitted
|
|---|
| 74 | in any medium, provided this notice is preserved.
|
|---|
| 75 |
|
|---|
| 76 | Last modified 2004-08-06 [23]Valid XHTML 1.0
|
|---|
| 77 |
|
|---|
| 78 | References
|
|---|
| 79 |
|
|---|
| 80 | 1. http://www.gnu.org/
|
|---|
| 81 | 2. http://gcc.gnu.org/gcc-3.3/changes.html
|
|---|
| 82 | 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|---|
| 83 | 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
|
|---|
| 84 | 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
|
|---|
| 85 | 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
|
|---|
| 86 | 7. http://gcc.gnu.org/gcc-3.3/changes.html
|
|---|
| 87 | 8. http://gcc.gnu.org/gcc-3.3/buildstat.html
|
|---|
| 88 | 9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|---|
| 89 | 10. http://gcc.gnu.org/index.html
|
|---|
| 90 | 11. mailto:[email protected]
|
|---|
| 91 | 12. http://gcc.gnu.org/mirrors.html
|
|---|
| 92 | 13. http://www.gnu.org/order/ftp.html
|
|---|
| 93 | 14. http://gcc.gnu.org/cvs.html
|
|---|
| 94 | 15. mailto:[email protected]
|
|---|
| 95 | 16. http://www.gnu.org/home.html#ContactInfo
|
|---|
| 96 | 17. http://gcc.gnu.org/about.html
|
|---|
| 97 | 18. http://gcc.gnu.org/onlinedocs/
|
|---|
| 98 | 19. mailto:[email protected]
|
|---|
| 99 | 20. mailto:[email protected]
|
|---|
| 100 | 21. mailto:[email protected]
|
|---|
| 101 | 22. http://gcc.gnu.org/lists.html
|
|---|
| 102 | 23. http://validator.w3.org/check/referer
|
|---|
| 103 | ======================================================================
|
|---|
| 104 | http://gcc.gnu.org/gcc-3.3/changes.html
|
|---|
| 105 |
|
|---|
| 106 | GCC 3.3 Release Series
|
|---|
| 107 | Changes, New Features, and Fixes
|
|---|
| 108 |
|
|---|
| 109 | The latest release in the 3.3 release series is [1]GCC 3.3.3.
|
|---|
| 110 |
|
|---|
| 111 | Caveats
|
|---|
| 112 |
|
|---|
| 113 | * The preprocessor no longer accepts multi-line string literals.
|
|---|
| 114 | They were deprecated in 3.0, 3.1, and 3.2.
|
|---|
| 115 | * The preprocessor no longer supports the -A- switch when appearing
|
|---|
| 116 | alone. -A- followed by an assertion is still supported.
|
|---|
| 117 | * Support for all the systems [2]obsoleted in GCC 3.1 has been
|
|---|
| 118 | removed from GCC 3.3. See below for a [3]list of systems which are
|
|---|
| 119 | obsoleted in this release.
|
|---|
| 120 | * Checking for null format arguments has been decoupled from the
|
|---|
| 121 | rest of the format checking mechanism. Programs which use the
|
|---|
| 122 | format attribute may regain this functionality by using the new
|
|---|
| 123 | [4]nonnull function attribute. Note that all functions for which
|
|---|
| 124 | GCC has a built-in format attribute, an appropriate built-in
|
|---|
| 125 | nonnull attribute is also applied.
|
|---|
| 126 | * The DWARF (version 1) debugging format has been deprecated and
|
|---|
| 127 | will be removed in a future version of GCC. Version 2 of the DWARF
|
|---|
| 128 | debugging format will continue to be supported for the foreseeable
|
|---|
| 129 | future.
|
|---|
| 130 | * The C and Objective-C compilers no longer accept the "Naming
|
|---|
| 131 | Types" extension (typedef foo = bar); it was already unavailable
|
|---|
| 132 | in C++. Code which uses it will need to be changed to use the
|
|---|
| 133 | "typeof" extension instead: typedef typeof(bar) foo. (We have
|
|---|
| 134 | removed this extension without a period of deprecation because it
|
|---|
| 135 | has caused the compiler to crash since version 3.0 and no one
|
|---|
| 136 | noticed until very recently. Thus we conclude it is not in
|
|---|
| 137 | widespread use.)
|
|---|
| 138 | * The -traditional C compiler option has been removed. It was
|
|---|
| 139 | deprecated in 3.1 and 3.2. (Traditional preprocessing remains
|
|---|
| 140 | available.) The <varargs.h> header, used for writing variadic
|
|---|
| 141 | functions in traditional C, still exists but will produce an error
|
|---|
| 142 | message if used.
|
|---|
| 143 | * GCC 3.3.1 automatically places zero-initialized variables in the
|
|---|
| 144 | .bss section on some operating systems. Versions of GNU Emacs up
|
|---|
| 145 | to (and including) 21.3 will not work correctly when using this
|
|---|
| 146 | optimization; you can use -fno-zero-initialized-in-bss to disable
|
|---|
| 147 | it.
|
|---|
| 148 |
|
|---|
| 149 | General Optimizer Improvements
|
|---|
| 150 |
|
|---|
| 151 | * A new scheme for accurately describing processor pipelines, the
|
|---|
| 152 | [5]DFA scheduler, has been added.
|
|---|
| 153 | * Pavel Nejedly, Charles University Prague, has contributed new file
|
|---|
| 154 | format used by the edge coverage profiler (-fprofile-arcs).
|
|---|
| 155 | The new format is robust and diagnoses common mistakes where
|
|---|
| 156 | profiles from different versions (or compilations) of the program
|
|---|
| 157 | are combined resulting in nonsensical profiles and slow code to
|
|---|
| 158 | produced with profile feedback. Additionally this format allows
|
|---|
| 159 | extra data to be gathered. Currently, overall statistics are
|
|---|
| 160 | produced helping optimizers to identify hot spots of a program
|
|---|
| 161 | globally replacing the old intra-procedural scheme and resulting
|
|---|
| 162 | in better code. Note that the gcov tool from older GCC versions
|
|---|
| 163 | will not be able to parse the profiles generated by GCC 3.3 and
|
|---|
| 164 | vice versa.
|
|---|
| 165 | * Jan Hubicka, SuSE Labs, has contributed a new superblock formation
|
|---|
| 166 | pass enabled using -ftracer. This pass simplifies the control flow
|
|---|
| 167 | of functions allowing other optimizations to do better job.
|
|---|
| 168 | He also contributed the function reordering pass
|
|---|
| 169 | (-freorder-functions) to optimize function placement using profile
|
|---|
| 170 | feedback.
|
|---|
| 171 |
|
|---|
| 172 | New Languages and Language specific improvements
|
|---|
| 173 |
|
|---|
| 174 | C/ObjC/C++
|
|---|
| 175 |
|
|---|
| 176 | * The preprocessor now accepts directives within macro arguments. It
|
|---|
| 177 | processes them just as if they had not been within macro
|
|---|
| 178 | arguments.
|
|---|
| 179 | * The separate ISO and traditional preprocessors have been
|
|---|
| 180 | completely removed. The front end handles either type of
|
|---|
| 181 | preprocessed output if necessary.
|
|---|
| 182 | * In C99 mode preprocessor arithmetic is done in the precision of
|
|---|
| 183 | the target's intmax_t, as required by that standard.
|
|---|
| 184 | * The preprocessor can now copy comments inside macros to the output
|
|---|
| 185 | file when the macro is expanded. This feature, enabled using the
|
|---|
| 186 | -CC option, is intended for use by applications which place
|
|---|
| 187 | metadata or directives inside comments, such as lint.
|
|---|
| 188 | * The method of constructing the list of directories to be searched
|
|---|
| 189 | for header files has been revised. If a directory named by a -I
|
|---|
| 190 | option is a standard system include directory, the option is
|
|---|
| 191 | ignored to ensure that the default search order for system
|
|---|
| 192 | directories and the special treatment of system header files are
|
|---|
| 193 | not defeated.
|
|---|
| 194 | * A few more [6]ISO C99 features now work correctly.
|
|---|
| 195 | * A new function attribute, nonnull, has been added which allows
|
|---|
| 196 | pointer arguments to functions to be specified as requiring a
|
|---|
| 197 | non-null value. The compiler currently uses this information to
|
|---|
| 198 | issue a warning when it detects a null value passed in such an
|
|---|
| 199 | argument slot.
|
|---|
| 200 | * A new type attribute, may_alias, has been added. Accesses to
|
|---|
| 201 | objects with types with this attribute are not subjected to
|
|---|
| 202 | type-based alias analysis, but are instead assumed to be able to
|
|---|
| 203 | alias any other type of objects, just like the char type.
|
|---|
| 204 |
|
|---|
| 205 | C++
|
|---|
| 206 |
|
|---|
| 207 | * Type based alias analysis has been implemented for C++ aggregate
|
|---|
| 208 | types.
|
|---|
| 209 |
|
|---|
| 210 | Objective-C
|
|---|
| 211 |
|
|---|
| 212 | * Generate an error if Objective-C objects are passed by value in
|
|---|
| 213 | function and method calls.
|
|---|
| 214 | * When -Wselector is used, check the whole list of selectors at the
|
|---|
| 215 | end of compilation, and emit a warning if a @selector() is not
|
|---|
| 216 | known.
|
|---|
| 217 | * Define __NEXT_RUNTIME__ when compiling for the NeXT runtime.
|
|---|
| 218 | * No longer need to include objc/objc-class.h to compile self calls
|
|---|
| 219 | in class methods (NeXT runtime only).
|
|---|
| 220 | * New -Wundeclared-selector option.
|
|---|
| 221 | * Removed selector bloating which was causing object files to be 10%
|
|---|
| 222 | bigger on average (GNU runtime only).
|
|---|
| 223 | * Using at run time @protocol() objects has been fixed in certain
|
|---|
| 224 | situations (GNU runtime only).
|
|---|
| 225 | * Type checking has been fixed and improved in many situations
|
|---|
| 226 | involving protocols.
|
|---|
| 227 |
|
|---|
| 228 | Java
|
|---|
| 229 |
|
|---|
| 230 | * The java.sql and javax.sql packages now implement the JDBC 3.0
|
|---|
| 231 | (JDK 1.4) API.
|
|---|
| 232 | * The JDK 1.4 assert facility has been implemented.
|
|---|
| 233 | * The bytecode interpreter is now direct threaded and thus faster.
|
|---|
| 234 |
|
|---|
| 235 | Fortran
|
|---|
| 236 |
|
|---|
| 237 | * Fortran improvements are listed in [7]the Fortran documentation.
|
|---|
| 238 |
|
|---|
| 239 | Ada
|
|---|
| 240 |
|
|---|
| 241 | * Ada tasking now works with glibc 2.3.x threading libraries.
|
|---|
| 242 |
|
|---|
| 243 | New Targets and Target Specific Improvements
|
|---|
| 244 |
|
|---|
| 245 | * The following changes have been made to the HP-PA port:
|
|---|
| 246 | + The port now defaults to scheduling for the PA8000 series of
|
|---|
| 247 | processors.
|
|---|
| 248 | + Scheduling support for the PA7300 processor has been added.
|
|---|
| 249 | + The 32-bit port now supports weak symbols under HP-UX 11.
|
|---|
| 250 | + The handling of initializers and finalizers has been improved
|
|---|
| 251 | under HP-UX 11. The 64-bit port no longer uses collect2.
|
|---|
| 252 | + Dwarf2 EH support has been added to the 32-bit linux port.
|
|---|
| 253 | + ABI fixes to correct the passing of small structures by
|
|---|
| 254 | value.
|
|---|
| 255 | * The SPARC, HP-PA, SH4, and x86/pentium ports have been converted
|
|---|
| 256 | to use the DFA processor pipeline description.
|
|---|
| 257 | * The following NetBSD configurations for the SuperH processor
|
|---|
| 258 | family have been added:
|
|---|
| 259 | + SH3, big-endian, sh-*-netbsdelf*
|
|---|
| 260 | + SH3, little-endian, shle-*-netbsdelf*
|
|---|
| 261 | + SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd*
|
|---|
| 262 | + SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd*
|
|---|
| 263 | + SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd*
|
|---|
| 264 | + SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd*
|
|---|
| 265 | * The following changes have been made to the IA-32/x86-64 port:
|
|---|
| 266 | + SSE2 and 3dNOW! intrinsics are now supported.
|
|---|
| 267 | + Support for thread local storage has been added to the IA-32
|
|---|
| 268 | and x86-64 ports.
|
|---|
| 269 | + The x86-64 port has been significantly improved.
|
|---|
| 270 | * The following changes have been made to the MIPS port:
|
|---|
| 271 | + All configurations now accept the -mabi switch. Note that you
|
|---|
| 272 | will need appropriate multilibs for this option to work
|
|---|
| 273 | properly.
|
|---|
| 274 | + ELF configurations will always pass an ABI flag to the
|
|---|
| 275 | assembler, except when the MIPS EABI is selected.
|
|---|
| 276 | + -mabi=64 no longer selects MIPS IV code.
|
|---|
| 277 | + The -mcpu option, which was deprecated in 3.1 and 3.2, has
|
|---|
| 278 | been removed from this release.
|
|---|
| 279 | + -march now changes the core ISA level. In previous releases,
|
|---|
| 280 | it would change the use of processor-specific extensions, but
|
|---|
| 281 | would leave the core ISA unchanged. For example, mips64-elf
|
|---|
| 282 | -march=r8000 will now generate MIPS IV code.
|
|---|
| 283 | + Under most configurations, -mipsN now acts as a synonym for
|
|---|
| 284 | -march.
|
|---|
| 285 | + There are some new preprocessor macros to describe the -march
|
|---|
| 286 | and -mtune settings. See the documentation of those options
|
|---|
| 287 | for details.
|
|---|
| 288 | + Support for the NEC VR-Series processors has been added. This
|
|---|
| 289 | includes the 54xx, 5500, and 41xx series.
|
|---|
| 290 | + Support for the Sandcraft sr71k processor has been added.
|
|---|
| 291 | * The following changes have been made to the S/390 port:
|
|---|
| 292 | + Support to build the Java runtime libraries has been added.
|
|---|
| 293 | Java is now enabled by default on s390-*-linux* and
|
|---|
| 294 | s390x-*-linux* targets.
|
|---|
| 295 | + Multilib support for the s390x-*-linux* target has been
|
|---|
| 296 | added; this allows to build 31-bit binaries using the -m31
|
|---|
| 297 | option.
|
|---|
| 298 | + Support for thread local storage has been added.
|
|---|
| 299 | + Inline assembler code may now use the 'Q' constraint to
|
|---|
| 300 | specify memory operands without index register.
|
|---|
| 301 | + Various platform-specific performance improvements have been
|
|---|
| 302 | implemented; in particular, the compiler now uses the BRANCH
|
|---|
| 303 | ON COUNT family of instructions and makes more frequent use
|
|---|
| 304 | of the TEST UNDER MASK family of instructions.
|
|---|
| 305 | * The following changes have been made to the PowerPC port:
|
|---|
| 306 | + Support for IBM Power4 processor added.
|
|---|
| 307 | + Support for Motorola e500 SPE added.
|
|---|
| 308 | + Support for AIX 5.2 added.
|
|---|
| 309 | + Function and Data sections now supported on AIX.
|
|---|
| 310 | + Sibcall optimizations added.
|
|---|
| 311 | * The support for H8 Tiny is added to the H8/300 port with -mn.
|
|---|
| 312 |
|
|---|
| 313 | Obsolete Systems
|
|---|
| 314 |
|
|---|
| 315 | Support for a number of older systems has been declared obsolete in
|
|---|
| 316 | GCC 3.3. Unless there is activity to revive them, the next release of
|
|---|
| 317 | GCC will have their sources permanently removed.
|
|---|
| 318 |
|
|---|
| 319 | All configurations of the following processor architectures have been
|
|---|
| 320 | declared obsolete:
|
|---|
| 321 | * Matsushita MN10200, mn10200-*-*
|
|---|
| 322 | * Motorola 88000, m88k-*-*
|
|---|
| 323 | * IBM ROMP, romp-*-*
|
|---|
| 324 |
|
|---|
| 325 | Also, some individual systems have been obsoleted:
|
|---|
| 326 | * Alpha
|
|---|
| 327 | + Interix, alpha*-*-interix*
|
|---|
| 328 | + Linux libc1, alpha*-*-linux*libc1*
|
|---|
| 329 | + Linux ECOFF, alpha*-*-linux*ecoff*
|
|---|
| 330 | * ARM
|
|---|
| 331 | + Generic a.out, arm*-*-aout*
|
|---|
| 332 | + Conix, arm*-*-conix*
|
|---|
| 333 | + "Old ABI," arm*-*-oabi
|
|---|
| 334 | + StrongARM/COFF, strongarm-*-coff*
|
|---|
| 335 | * HPPA (PA-RISC)
|
|---|
| 336 | + Generic OSF, hppa1.0-*-osf*
|
|---|
| 337 | + Generic BSD, hppa1.0-*-bsd*
|
|---|
| 338 | + HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]*
|
|---|
| 339 | + HiUX, hppa*-*-hiux*
|
|---|
| 340 | + Mach Lites, hppa*-*-lites*
|
|---|
| 341 | * Intel 386 family
|
|---|
| 342 | + Windows NT 3.x, i?86-*-win32
|
|---|
| 343 | * MC68000 family
|
|---|
| 344 | + HP systems, m68000-hp-bsd* and m68k-hp-bsd*
|
|---|
| 345 | + Sun systems, m68000-sun-sunos*, m68k-sun-sunos*, and
|
|---|
| 346 | m68k-sun-mach*
|
|---|
| 347 | + AT&T systems, m68000-att-sysv*
|
|---|
| 348 | + Atari systems, m68k-atari-sysv*
|
|---|
| 349 | + Motorola systems, m68k-motorola-sysv*
|
|---|
| 350 | + NCR systems, m68k-ncr-sysv*
|
|---|
| 351 | + Plexus systems, m68k-plexus-sysv*
|
|---|
| 352 | + Commodore systems, m68k-cbm-sysv*
|
|---|
| 353 | + Citicorp TTI, m68k-tti-*
|
|---|
| 354 | + Unos, m68k-crds-unos*
|
|---|
| 355 | + Concurrent RTU, m68k-ccur-rtu*
|
|---|
| 356 | + Linux a.out, m68k-*-linux*aout*
|
|---|
| 357 | + Linux libc1, m68k-*-linux*libc1*
|
|---|
| 358 | + pSOS, m68k-*-psos*
|
|---|
| 359 | * MIPS
|
|---|
| 360 | + Generic ECOFF, mips*-*-ecoff*
|
|---|
| 361 | + SINIX, mips-sni-sysv4
|
|---|
| 362 | + Orion RTEMS, mips64orion-*-rtems*
|
|---|
| 363 | * National Semiconductor 32000
|
|---|
| 364 | + OpenBSD, ns32k-*-openbsd*
|
|---|
| 365 | * POWER (aka RS/6000) and PowerPC
|
|---|
| 366 | + AIX versions 1, 2, and 3, rs6000-ibm-aix[123]*
|
|---|
| 367 | + Bull BOSX, rs6000-bull-bosx
|
|---|
| 368 | + Generic Mach, rs6000-*-mach*
|
|---|
| 369 | + Generic SysV, powerpc*-*-sysv*
|
|---|
| 370 | + Linux libc1, powerpc*-*-linux*libc1*
|
|---|
| 371 | * Sun SPARC
|
|---|
| 372 | + Generic a.out, sparc-*-aout*, sparclet-*-aout*,
|
|---|
| 373 | sparclite-*-aout*, and sparc86x-*-aout*
|
|---|
| 374 | + NetBSD a.out, sparc-*-netbsd*aout*
|
|---|
| 375 | + Generic BSD, sparc-*-bsd*
|
|---|
| 376 | + ChorusOS, sparc-*-chorusos*
|
|---|
| 377 | + Linux a.out, sparc-*-linux*aout*
|
|---|
| 378 | + Linux libc1, sparc-*-linux*libc1*
|
|---|
| 379 | + LynxOS, sparc-*-lynxos*
|
|---|
| 380 | + Solaris on HAL hardware, sparc-hal-solaris2*
|
|---|
| 381 | + SunOS versions 3 and 4, sparc-*-sunos[34]*
|
|---|
| 382 | * NEC V850
|
|---|
| 383 | + RTEMS, v850-*-rtems*
|
|---|
| 384 | * VAX
|
|---|
| 385 | + VMS, vax-*-vms*
|
|---|
| 386 |
|
|---|
| 387 | Documentation improvements
|
|---|
| 388 |
|
|---|
| 389 | Other significant improvements
|
|---|
| 390 |
|
|---|
| 391 | * Almost all front-end dependencies in the compiler have been
|
|---|
| 392 | separated out into a set of language hooks. This should make
|
|---|
| 393 | adding a new front end clearer and easier.
|
|---|
| 394 | * One effect of removing the separate preprocessor is a small
|
|---|
| 395 | increase in the robustness of the compiler in general, and the
|
|---|
| 396 | maintainability of target descriptions. Previously target-specific
|
|---|
| 397 | built-in macros and others, such as __FAST_MATH__, had to be
|
|---|
| 398 | handled with so-called specs that were hard to maintain. Often
|
|---|
| 399 | they would fail to behave properly when conflicting options were
|
|---|
| 400 | supplied on the command line, and define macros in the user's
|
|---|
| 401 | namespace even when strict ISO compliance was requested.
|
|---|
| 402 | Integrating the preprocessor has cleanly solved these issues.
|
|---|
| 403 | * The Makefile suite now supports redirection of make install by
|
|---|
| 404 | means of the variable DESTDIR.
|
|---|
| 405 | _________________________________________________________________
|
|---|
| 406 |
|
|---|
| 407 | GCC 3.3
|
|---|
| 408 |
|
|---|
| 409 | Detailed release notes for the GCC 3.3 release follow.
|
|---|
| 410 |
|
|---|
| 411 | Bug Fixes
|
|---|
| 412 |
|
|---|
| 413 | bootstrap failures
|
|---|
| 414 |
|
|---|
| 415 | * [8]10140 cross compiler build failures: missing __mempcpy (DUP:
|
|---|
| 416 | [9]10198,[10]10338)
|
|---|
| 417 |
|
|---|
| 418 | Internal compiler errors (multi-platform)
|
|---|
| 419 |
|
|---|
| 420 | * [11]3581 large string causes segmentation fault in cc1
|
|---|
| 421 | * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
|
|---|
| 422 | * [13]5533 (c++) ICE when processing std::accumulate(begin, end,
|
|---|
| 423 | init, invalid_op)
|
|---|
| 424 | * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
|
|---|
| 425 | * [15]6412 (c++) ICE in retrieve_specialization
|
|---|
| 426 | * [16]6620 (c++) partial template specialization causes an ICE
|
|---|
| 427 | (segmentation fault)
|
|---|
| 428 | * [17]6663 (c++) ICE with attribute aligned
|
|---|
| 429 | * [18]7068 ICE with incomplete types
|
|---|
| 430 | * [19]7083 (c++) ICE using -gstabs with dodgy class derivation
|
|---|
| 431 | * [20]7647 (c++) ICE when data member has the name of the enclosing
|
|---|
| 432 | class
|
|---|
| 433 | * [21]7675 ICE in fixup_var_refs_1
|
|---|
| 434 | * [22]7718 'complex' template instantiation causes ICE
|
|---|
| 435 | * [23]8116 (c++) ICE in member template function
|
|---|
| 436 | * [24]8358 (ada) Ada compiler accesses freed memory, crashes
|
|---|
| 437 | * [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation
|
|---|
| 438 | fault
|
|---|
| 439 | * [26]8564 (c++) ICE in find_function_data, in function.c
|
|---|
| 440 | * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
|
|---|
| 441 | * [28]8766 (c++) ICE after failed initialization of static template
|
|---|
| 442 | variable
|
|---|
| 443 | * [29]8803 ICE in instantiate_virtual_regs_1, in function.c
|
|---|
| 444 | * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
|
|---|
| 445 | * [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class
|
|---|
| 446 | definition
|
|---|
| 447 | * [32]9216 (c++) ICE on missing template parameter
|
|---|
| 448 | * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c
|
|---|
| 449 | * [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO
|
|---|
| 450 | loop
|
|---|
| 451 | * [35]9429 (c++) ICE in template instantiation with a pointered new
|
|---|
| 452 | operator
|
|---|
| 453 | * [36]9516 Internal error when using a big array
|
|---|
| 454 | * [37]9600 (c++) ICE with typedefs in template class
|
|---|
| 455 | * [38]9629 (c++) virtual inheritance segfault
|
|---|
| 456 | * [39]9672 (c++) ICE: Error reporting routines re-entered
|
|---|
| 457 | * [40]9749 (c++) ICE in write_expression on invalid function
|
|---|
| 458 | prototype
|
|---|
| 459 | * [41]9794 (fortran) ICE: floating point exception during constant
|
|---|
| 460 | folding
|
|---|
| 461 | * [42]9829 (c++) Missing colon in nested namespace usage causes ICE
|
|---|
| 462 | * [43]9916 (c++) ICE with noreturn function in ?: statement
|
|---|
| 463 | * [44]9936 ICE with local function and variable-length 2d array
|
|---|
| 464 | * [45]10262 (c++) cc1plus crashes with large generated code
|
|---|
| 465 | * [46]10278 (c++) ICE in parser for invalid code
|
|---|
| 466 | * [47]10446 (c++) ICE on definition of nonexistent member function
|
|---|
| 467 | of nested class in a class template
|
|---|
| 468 | * [48]10451 (c++) ICE in grokdeclarator on spurious mutable
|
|---|
| 469 | declaration
|
|---|
| 470 | * [49]10506 (c++) ICE in build_new at cp/init.c with
|
|---|
| 471 | -fkeep-inline-functions and multiple inheritance
|
|---|
| 472 | * [50]10549 (c++) ICE in store_bit_field on bitfields that exceed
|
|---|
| 473 | the precision of the declared type
|
|---|
| 474 |
|
|---|
| 475 | Optimization bugs
|
|---|
| 476 |
|
|---|
| 477 | * [51]2001 Inordinately long compile times in reload CSE regs
|
|---|
| 478 | * [52]2391 Exponential compilation time explosion in combine
|
|---|
| 479 | * [53]2960 Duplicate loop conditions even with -Os
|
|---|
| 480 | * [54]4046 redundant conditional branch
|
|---|
| 481 | * [55]6405 Loop-unrolling related performance regressions
|
|---|
| 482 | * [56]6798 very long compile time with large case-statement
|
|---|
| 483 | * [57]6871 const objects shouldn't be moved to .bss
|
|---|
| 484 | * [58]6909 problem w/ -Os on modified loop-2c.c test case
|
|---|
| 485 | * [59]7189 gcc -O2 -Wall does not print ``control reaches end of
|
|---|
| 486 | non-void function'' warning
|
|---|
| 487 | * [60]7642 optimization problem with signbit()
|
|---|
| 488 | * [61]8634 incorrect code for inlining of memcpy under -O2
|
|---|
| 489 | * [62]8750 Cygwin prolog generation erroneously emitting __alloca as
|
|---|
| 490 | regular function call
|
|---|
| 491 |
|
|---|
| 492 | C front end
|
|---|
| 493 |
|
|---|
| 494 | * [63]2161 long if-else cascade overflows parser stack
|
|---|
| 495 | * [64]4319 short accepted on typedef'd char
|
|---|
| 496 | * [65]8602 incorrect line numbers in warning messages when using
|
|---|
| 497 | inline functions
|
|---|
| 498 | * [66]9177 -fdump-translation-unit: C front end deletes
|
|---|
| 499 | function_decl AST nodes and breaks debugging dumps
|
|---|
| 500 | * [67]9853 miscompilation of non-constant structure initializer
|
|---|
| 501 |
|
|---|
| 502 | c++ compiler and library
|
|---|
| 503 |
|
|---|
| 504 | * [68]45 legal template specialization code is rejected (DUP:
|
|---|
| 505 | [69]3784)
|
|---|
| 506 | * [70]764 lookup failure: friend operator and dereferencing a
|
|---|
| 507 | pointer and templates (DUP: [71]5116)
|
|---|
| 508 | * [72]2862 gcc accepts invalid explicit instantiation syntax (DUP:
|
|---|
| 509 | 2863)
|
|---|
| 510 | * [73]3663 G++ doesn't check access control during template
|
|---|
| 511 | instantiation
|
|---|
| 512 | * [74]3797 gcc fails to emit explicit specialization of a template
|
|---|
| 513 | member
|
|---|
| 514 | * [75]3948 Two destructors are called when no copy destructor is
|
|---|
| 515 | defined (ABI change)
|
|---|
| 516 | * [76]4137 Conversion operator within template is not accepted
|
|---|
| 517 | * [77]4361 bogus ambiguity taking the address of a member template
|
|---|
| 518 | * [78]4802 g++ accepts illegal template code (access to private
|
|---|
| 519 | member; DUP: [79]5837)
|
|---|
| 520 | * [80]4803 inline function is used but never defined, and g++ does
|
|---|
| 521 | not object
|
|---|
| 522 | * [81]5094 Partial specialization cannot be friend?
|
|---|
| 523 | * [82]5730 complex<double>::norm() -- huge slowdown from
|
|---|
| 524 | egcs-2.91.66
|
|---|
| 525 | * [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run
|
|---|
| 526 | time
|
|---|
| 527 | * [84]7015 certain __asm__ constructs rejected
|
|---|
| 528 | * [85]7086 compile time regression (quadratic behavior in
|
|---|
| 529 | fixup_var_refs)
|
|---|
| 530 | * [86]7099 G++ doesn't set the noreturn attribute on std::exit and
|
|---|
| 531 | std::abort
|
|---|
| 532 | * [87]7247 copy constructor missing when inlining enabled (invalid
|
|---|
| 533 | optimization?)
|
|---|
| 534 | * [88]7441 string array initialization compilation time regression
|
|---|
| 535 | from seconds to minutes
|
|---|
| 536 | * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong
|
|---|
| 537 | * [90]7804 bad printing of floating point constant in warning
|
|---|
| 538 | message
|
|---|
| 539 | * [91]8099 Friend classes and template specializations
|
|---|
| 540 | * [92]8117 member function pointers and multiple inheritance
|
|---|
| 541 | * [93]8205 using declaration and multiple inheritance
|
|---|
| 542 | * [94]8645 unnecessary non-zero checks in stl_tree.h
|
|---|
| 543 | * [95]8724 explicit destructor call for incomplete class allowed
|
|---|
| 544 | * [96]8805 compile time regression with many member variables
|
|---|
| 545 | * [97]8691 -O3 and -fno-implicit-templates are incompatible
|
|---|
| 546 | * [98]8700 unhelpful error message for binding temp to reference
|
|---|
| 547 | * [99]8724 explicit destructor call for incomplete class allowed
|
|---|
| 548 | * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems
|
|---|
| 549 | * [101]9016 Failure to consistently constant fold "constant" C++
|
|---|
| 550 | objects
|
|---|
| 551 | * [102]9053 g++ confused about ambiguity of overloaded function
|
|---|
| 552 | templates
|
|---|
| 553 | * [103]9152 undefined virtual thunks
|
|---|
| 554 | * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out
|
|---|
| 555 | * [105]9297 data corruption due to codegen bug (when copying.)
|
|---|
| 556 | * [106]9318 i/ostream::operator>>/<<(streambuf*) broken
|
|---|
| 557 | * [107]9320 Incorrect usage of traits_type::int_type in
|
|---|
| 558 | stdio_filebuf
|
|---|
| 559 | * [108]9400 bogus -Wshadow warning: shadowed declaration of this in
|
|---|
| 560 | local classes
|
|---|
| 561 | * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters
|
|---|
| 562 | * [110]9425 filebuf::pbackfail broken (DUP: [111]9439)
|
|---|
| 563 | * [112]9474 GCC freezes in compiling a weird code mixing <iostream>
|
|---|
| 564 | and <iostream.h>
|
|---|
| 565 | * [113]9548 Incorrect results from setf(ios::fixed) and
|
|---|
| 566 | precision(-1) [114][DR 231]
|
|---|
| 567 | * [115]9555 ostream inserters fail to set badbit on exception
|
|---|
| 568 | * [116]9561 ostream inserters rethrow exception of wrong type
|
|---|
| 569 | * [117]9563 ostream::sentry returns true after a failed preparation
|
|---|
| 570 | * [118]9582 one-definition rule violation in std::allocator
|
|---|
| 571 | * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors
|
|---|
| 572 | * [120]9683 bug in initialization chains for static const variables
|
|---|
| 573 | from template classes
|
|---|
| 574 | * [121]9791 -Woverloaded-virtual reports hiding of destructor
|
|---|
| 575 | * [122]9817 collate::compare doesn't handle nul characters
|
|---|
|
|---|