This file contains information about GCC releases which has been generated automatically from the online release notes. It covers releases of GCC (and the former EGCS project) since EGCS 1.0, on the line of development that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2, see ONEWS. ====================================================================== http://gcc.gnu.org/gcc-4.2/index.html GCC 4.2 Release Series July 18, 2007 The [1]GNU project and the GCC developers are pleased to announce the release of GCC 4.2.1. This release is a bug-fix release, containing fixes for regressions in GCC 4.2.0 relative to previous releases of GCC. May 13, 2007 The [2]GNU project and the GCC developers are pleased to announce the release of GCC 4.2.0. This release is a major release, containing new features (as well as many other improvements) relative to GCC 4.1.x. Release History GCC 4.2.1 July 18, 2007 ([3]changes) GCC 4.2.0 May 13, 2007 ([4]changes) References and Acknowledgements GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection. A list of [5]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as well as test results to GCC. This [6]amazing group of volunteers is what makes GCC successful. For additional information about GCC please refer to the [7]GCC project web site or contact the [8]GCC development mailing list. To obtain GCC please use [9]our mirror sites, one of the [10]GNU mirror sites, or [11]our SVN server. Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There are also [13]other ways to contact the FSF. These pages are maintained by [14]the GCC team. For questions related to the use of GCC, please consult these web pages and the [15]GCC manuals. If that fails, the [16]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC to our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. All of our lists have [19]public archives. Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. Last modified 2007-07-19 [20]Valid XHTML 1.0 References 1. http://www.gnu.org/ 2. http://www.gnu.org/ 3. http://gcc.gnu.org/gcc-4.2/changes.html 4. http://gcc.gnu.org/gcc-4.2/changes.html 5. http://gcc.gnu.org/gcc-4.2/buildstat.html 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 7. http://gcc.gnu.org/index.html 8. mailto:gcc@gcc.gnu.org 9. http://gcc.gnu.org/mirrors.html 10. http://www.gnu.org/order/ftp.html 11. http://gcc.gnu.org/svn.html 12. mailto:gnu@gnu.org 13. http://www.gnu.org/home.html#ContactInfo 14. http://gcc.gnu.org/about.html 15. http://gcc.gnu.org/onlinedocs/ 16. mailto:gcc-help@gcc.gnu.org 17. mailto:gcc@gnu.org 18. mailto:gcc@gcc.gnu.org 19. http://gcc.gnu.org/lists.html 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/changes.html GCC 4.2 Release Series Changes, New Features, and Fixes Caveats * GCC no longer accepts the -fshared-data option. This option has had no effect in any GCC 4 release; the targets to which the option used to apply had been removed before GCC 4.0. General Optimizer Improvements * New command-line options specify the possible relationships among parameters and between parameters and global data. For example, -fargument-noalias-anything specifies that arguments do not alias any other storage. Each language will automatically use whatever option is required by the language standard. You should not need to use these options yourself. New Languages and Language specific improvements * [1]OpenMP is now supported for the C, C++ and Fortran compilers. * New command line options -fstrict-overflow and -Wstrict-overflow have been added. -fstrict-overflow tells the compiler that it may assume that the program follows the strict signed overflow semantics permitted for the language: for C and C++ this means that the compiler may assume that signed overflow does not occur. For example, a loop like for (i = 1; i > 0; i *= 2) is presumably intended to continue looping until i overflows. With -fstrict-overflow, the compiler may assume that signed overflow will not occur, and transform this into an infinite loop. -fstrict-overflow is turned on by default at -O2, and may be disabled via -fno-strict-overflow. The -Wstrict-overflow option may be used to warn about cases where the compiler assumes that signed overflow will not occur. It takes five different levels: -Wstrict-overflow=1 to 5. See the [2]documentation for details. -Wstrict-overflow=1 is enabled by -Wall. * The new command line option -fno-toplevel-reorder directs GCC to emit top-level functions, variables, and asm statements in the same order that they appear in the input file. This is intended to support existing code which relies on a particular ordering (for example, code which uses top-level asm statements to switch sections). For new code, it is generally better to use function and variable attributes. The -fno-toplevel-reorder option may be used for most cases which currently use -fno-unit-at-a-time. The -fno-unit-at-a-time option will be removed in some future version of GCC. If you know of a case which requires -fno-unit-at-a-time which is not fixed by -fno-toplevel-reorder, please [3]open a bug report. C family * The pragma redefine_extname will now macro expand its tokens for compatibility with SunPRO. * In the next release of GCC, 4.3, -std=c99 or -std=gnu99 will direct GCC to handle inline functions as specified in the C99 standard. In preparation for this, GCC 4.2 will warn about any use of non-static inline functions in gnu99 or c99 mode. This new warning may be disabled with the new gnu_inline function attribute or the new -fgnu89-inline command line option. Also, GCC 4.2 and later will define one of the preprocessor macros __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__ to indicate the semantics of inline functions in the current compilation. * A new command line option -Waddress has been added to warn about suspicious uses of memory addresses as, for example, using the address of a function in a conditional expression, and comparisons against the memory address of a string literal. This warning is enabled by -Wall. C++ * C++ visibility handling has been overhauled. Restricted visiblity is propagated from classes to members, from functions to local statics, and from templates and template arguments to instantiations, unless the latter has explicitly declared visibility. The visibility attribute for a class must come between the class-key and the name, not after the closing brace. Attributes are now allowed for enums and elaborated-type-specifiers that only declare a type. Members of the anonymous namespace are now local to a particular translation unit, along with any other declarations which use them, though they are still treated as having external linkage for language semantics. * The (undocumented) extension which permitted templates with default arguments to be bound to template template parameters with fewer parameters has been removed. For example: template