Update to 4.8.2.
[platform/upstream/gcc48.git] / NEWS
diff --git a/NEWS b/NEWS
index 216d337..34a4582 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,27 +5,843 @@ 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.8/index.html
+                             GCC 4.8 Release Series
+
+   October 16, 2013
+
+   The [1]GNU project and the GCC developers are pleased to announce the
+   release of GCC 4.8.2.
+
+   This release is a bug-fix release, containing fixes for regressions in
+   GCC 4.8.1 relative to previous releases of GCC.
+
+Release History
+
+   GCC 4.8.2
+          October 16, 2013 ([2]changes, [3]documentation)
+
+   GCC 4.8.1
+          May 31, 2013 ([4]changes, [5]documentation)
+
+   GCC 4.8.0
+          March 22, 2013 ([6]changes, [7]documentation)
+
+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 [8]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 [9]amazing group of volunteers is
+   what makes GCC successful.
+
+   For additional information about GCC please refer to the [10]GCC
+   project web site or contact the [11]GCC development mailing list.
+
+   To obtain GCC please use [12]our mirror sites or [13]our SVN server.
+
+
+    For questions related to the use of GCC, please consult these web
+    pages and the [14]GCC manuals. If that fails, the
+    [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+    web pages and the development of GCC are welcome on our developer
+    list at [16]gcc@gcc.gnu.org. All of [17]our lists have public
+    archives.
+
+   Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and
+   distribution of this entire article is permitted in any medium,
+   provided this notice is preserved.
+
+   These pages are [19]maintained by the GCC team. Last modified
+   2013-10-16[20].
+
+References
+
+   1. http://www.gnu.org/
+   2. http://gcc.gnu.org/gcc-4.8/changes.html
+   3. http://gcc.gnu.org/onlinedocs/4.8.2/
+   4. http://gcc.gnu.org/gcc-4.8/changes.html
+   5. http://gcc.gnu.org/onlinedocs/4.8.1/
+   6. http://gcc.gnu.org/gcc-4.8/changes.html
+   7. http://gcc.gnu.org/onlinedocs/4.8.0/
+   8. http://gcc.gnu.org/gcc-4.8/buildstat.html
+   9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+  10. http://gcc.gnu.org/index.html
+  11. mailto:gcc@gcc.gnu.org
+  12. http://gcc.gnu.org/mirrors.html
+  13. http://gcc.gnu.org/svn.html
+  14. http://gcc.gnu.org/onlinedocs/
+  15. mailto:gcc-help@gcc.gnu.org
+  16. mailto:gcc@gcc.gnu.org
+  17. http://gcc.gnu.org/lists.html
+  18. http://www.fsf.org/
+  19. http://gcc.gnu.org/about.html
+  20. http://validator.w3.org/check/referer
+======================================================================
+http://gcc.gnu.org/gcc-4.8/changes.html
+                             GCC 4.8 Release Series
+                        Changes, New Features, and Fixes
+
+Caveats
+
+   GCC now uses C++ as its implementation language. This means that to
+   build GCC from sources, you will need a C++ compiler that understands
+   C++ 2003. For more details on the rationale and specific changes,
+   please refer to the [1]C++ conversion page.
+
+   To enable the Graphite framework for loop optimizations you now need
+   CLooG version 0.18.0 and ISL version 0.11.1. Both can be obtained from
+   the [2]GCC infrastructure directory. The installation manual contains
+   more information about requirements to build GCC.
+
+   GCC now uses a more aggressive analysis to derive an upper bound for
+   the number of iterations of loops using constraints imposed by language
+   standards. This may cause non-conforming programs to no longer work as
+   expected, such as SPEC CPU 2006 464.h264ref and 416.gamess. A new
+   option, -fno-aggressive-loop-optimizations, was added to disable this
+   aggressive analysis. In some loops that have known constant number of
+   iterations, but undefined behavior is known to occur in the loop before
+   reaching or during the last iteration, GCC will warn about the
+   undefined behavior in the loop instead of deriving lower upper bound of
+   the number of iterations for the loop. The warning can be disabled with
+   -Wno-aggressive-loop-optimizations.
+
+   On ARM, a bug has been fixed in GCC's implementation of the AAPCS rules
+   for the layout of vectors that could lead to wrong code being
+   generated. Vectors larger than 8 bytes in size are now by default
+   aligned to an 8-byte boundary. This is an ABI change: code that makes
+   explicit use of vector types may be incompatible with binary objects
+   built with older versions of GCC. Auto-vectorized code is not affected
+   by this change.
+
+   On AVR, support has been removed for the command-line option
+   -mshort-calls deprecated in GCC 4.7.
+
+   On AVR, the configure option --with-avrlibc supported since GCC 4.7.2
+   is turned on per default for all non-RTEMS configurations. This option
+   arranges for a better integration of [3]AVR Libc with avr-gcc. For
+   technical details, see [4]PR54461. To turn off the option in non-RTEMS
+   configurations, use --with-avrlibc=no. If the compiler is configured
+   for RTEMS, the option is always turned off.
+
+   More information on porting to GCC 4.8 from previous versions of GCC
+   can be found in the [5]porting guide for this release.
+
+General Optimizer Improvements (and Changes)
+
+     * DWARF4 is now the default when generating DWARF debug information.
+       When -g is used on a platform that uses DWARF debugging
+       information, GCC will now default to -gdwarf-4
+       -fno-debug-types-section.
+       GDB 7.5, Valgrind 3.8.0 and elfutils 0.154 debug information
+       consumers support DWARF4 by default. Before GCC 4.8 the default
+       version used was DWARF2. To make GCC 4.8 generate an older DWARF
+       version use -g together with -gdwarf-2 or -gdwarf-3. The default
+       for Darwin and VxWorks is still -gdwarf-2 -gstrict-dwarf.
+     * A new general optimization level, -Og, has been introduced. It
+       addresses the need for fast compilation and a superior debugging
+       experience while providing a reasonable level of runtime
+       performance. Overall experience for development should be better
+       than the default optimization level -O0.
+     * A new option -ftree-partial-pre was added to control the partial
+       redundancy elimination (PRE) optimization. This option is enabled
+       by default at the -O3 optimization level, and it makes PRE more
+       aggressive.
+     * The option -fconserve-space has been removed; it was no longer
+       useful on most targets since GCC supports putting variables into
+       BSS without making them common.
+     * The struct reorg and matrix reorg optimizations (command-line
+       options -fipa-struct-reorg and -fipa-matrix-reorg) have been
+       removed. They did not always work correctly, nor did they work with
+       link-time optimization (LTO), hence were only applicable to
+       programs consisting of a single translation unit.
+     * Several scalability bottle-necks have been removed from GCC's
+       optimization passes. Compilation of extremely large functions, e.g.
+       due to the use of the flatten attribute in the "Eigen" C++ linear
+       algebra templates library, is significantly faster than previous
+       releases of GCC.
+     * Link-time optimization (LTO) improvements:
+          + LTO partitioning has been rewritten for better reliability and
+            maintanibility. Several important bugs leading to link
+            failures have been fixed.
+     * Interprocedural optimization improvements:
+          + A new symbol table has been implemented. It builds on existing
+            callgraph and varpool modules and provide a new API. Unusual
+            symbol visibilities and aliases are handled more consistently
+            leading to, for example, more aggressive unreachable code
+            removal with LTO.
+          + The inline heuristic can now bypass limits on the size of of
+            inlined functions when the inlining is particularly
+            profitable. This happens, for example, when loop bounds or
+            array strides get propagated.
+          + Values passed through aggregates (either by value or
+            reference) are now propagated at the inter-procedural level
+            leading to better inlining decisions (for example in the case
+            of Fortran array descriptors) and devirtualization.
+     * [6]AddressSanitizer , a fast memory error detector, has been added
+       and can be enabled via -fsanitize=address. Memory access
+       instructions will be instrumented to detect heap-, stack-, and
+       global-buffer overflow as well as use-after-free bugs. To get nicer
+       stacktraces, use -fno-omit-frame-pointer. The AddressSanitizer is
+       available on IA-32/x86-64/x32/PowerPC/PowerPC64 GNU/Linux and on
+       x86-64 Darwin.
+     * [7]ThreadSanitizer has been added and can be enabled via
+       -fsanitize=thread. Instructions will be instrumented to detect data
+       races. The ThreadSanitizer is available on x86-64 GNU/Linux.
+     * A new local register allocator (LRA) has been implemented, which
+       replaces the 26 year old reload pass and improves generated code
+       quality. For now it is active on the ia32 and x86-64 targets.
+     * Support for transactional memory has been implemented on the
+       following architectures: IA-32/x86-64, ARM, PowerPC, SH, Sparc, and
+       Alpha.
+
+New Languages and Language specific improvements
+
+  C family
+
+     * Each diagnostic emitted now includes the original source line and a
+       caret '^' indicating the column. The option
+       -fno-diagnostics-show-caret suppresses this information.
+     * The option -ftrack-macro-expansion=2 is now enabled by default.
+       This allows the compiler to display the macro expansion stack in
+       diagnostics. Combined with the caret information, an example
+       diagnostic showing these two features is:
+
+t.c:1:94: error: invalid operands to binary < (have `struct mystruct' and `float
+')
+ #define MYMAX(A,B)    __extension__ ({ __typeof__(A) __a = (A); __typeof__(B) _
+_b = (B); __a < __b ? __b : __a; })
+
+              ^
+t.c:7:7: note: in expansion of macro 'MYMAX'
+   X = MYMAX(P, F);
+       ^
+
+     * A new -Wsizeof-pointer-memaccess warning has been added (also
+       enabled by -Wall) to warn about suspicious length parameters to
+       certain string and memory built-in functions if the argument uses
+       sizeof. This warning warns e.g. about memset (ptr, 0, sizeof
+       (ptr)); if ptr is not an array, but a pointer, and suggests a
+       possible fix, or about memcpy (&foo, ptr, sizeof (&foo));.
+     * The new option -Wpedantic is an alias for -pedantic, which is now
+       deprecated. The forms -Wno-pedantic, -Werror=pedantic, and
+       -Wno-error=pedantic work in the same way as for any other -W
+       option. One caveat is that -Werror=pedantic is not equivalent to
+       -pedantic-errors, since the latter makes into errors some warnings
+       that are not controlled by -Wpedantic, and the former only affects
+       diagnostics that are disabled when using -Wno-pedantic.
+     * The option -Wshadow no longer warns if a declaration shadows a
+       function declaration, unless the former declares a function or
+       pointer to function, because this is [8]a common and valid case in
+       real-world code.
+
+  C++
+
+     * G++ now implements the [9]C++11 thread_local keyword; this differs
+       from the GNU __thread keyword primarily in that it allows dynamic
+       initialization and destruction semantics. Unfortunately, this
+       support requires a run-time penalty for references to
+       non-function-local thread_local variables defined in a different
+       translation unit even if they don't need dynamic initialization, so
+       users may want to continue to use __thread for TLS variables with
+       static initialization semantics.
+       If the programmer can be sure that no use of the variable in a
+       non-defining TU needs to trigger dynamic initialization (either
+       because the variable is statically initialized, or a use of the
+       variable in the defining TU will be executed before any uses in
+       another TU), they can avoid this overhead with the
+       -fno-extern-tls-init option.
+       OpenMP threadprivate variables now also support dynamic
+       initialization and destruction by the same mechanism.
+     * G++ now implements the [10]C++11 attribute syntax, e.g.
+
+[[noreturn]] void f();
+
+       and also the alignment specifier, e.g.
+
+alignas(double) int i;
+
+     * G++ now implements [11]C++11 inheriting constructors, e.g.
+
+struct A { A(int); };
+struct B: A { using A::A; }; // defines B::B(int)
+B b(42); // OK
+
+     * As of GCC 4.8.1, G++ implements the change to decltype semantics
+       from [12]N3276.
+
+struct A f();
+decltype(f()) g();    // OK, return type of f() is not required to be complete.
+
+     * As of GCC 4.8.1, G++ implements [13]C++11 ref-qualifiers, e.g.
+
+struct A { int f() &; };
+int i = A().f();  // error, f() requires an lvalue object
+
+     * G++ now supports a -std=c++1y option for experimentation with
+       features proposed for the next revision of the standard, expected
+       around 2014. Currently the only difference from -std=c++11 is
+       support for return type deduction in normal functions, as proposed
+       in [14]N3386. Status of C++1y features in GCC 4.8 can be found
+       [15]here.
+     * The G++ namespace association extension, __attribute ((strong)),
+       has been deprecated. Inline namespaces should be used instead.
+     * G++ now supports a -fext-numeric-literal option to control whether
+       GNU numeric literal suffixes are accepted as extensions or
+       processed as C++11 user-defined numeric literal suffixes. The flag
+       is on (use suffixes for GNU literals) by default for -std=gnu++*,
+       and -std=c++98. The flag is off (use suffixes for user-defined
+       literals) by default for -std=c++11 and later.
+
+    Runtime Library (libstdc++)
+
+     * [16]Improved experimental support for the new ISO C++ standard,
+       C++11, including:
+          + forward_list meets the allocator-aware container requirements;
+          + this_thread::sleep_for(), this_thread::sleep_until() and
+            this_thread::yield() are defined without requiring the
+            configure option --enable-libstdcxx-time;
+     * Improvements to <random>:
+          + SSE optimized normal_distribution.
+          + Use of hardware RNG instruction for random_device on new x86
+            processors (requires the assembler to support the
+            instruction.)
+       and <ext/random>:
+          + New random number engine simd_fast_mersenne_twister_engine
+            with an optimized SSE implementation.
+          + New random number distributions beta_distribution,
+            normal_mv_distribution, rice_distribution,
+            nakagami_distribution, pareto_distribution, k_distribution,
+            arcsine_distribution, hoyt_distribution.
+     * Added --disable-libstdcxx-verbose configure option to disable
+       diagnostic messages issued when a process terminates abnormally.
+       This may be useful for embedded systems to reduce the size of
+       executables that link statically to the library.
+
+  Fortran
+
+     * Compatibility notice:
+          + Module files: The version of module files (.mod) has been
+            incremented. Fortran MODULEs compiled by earlier GCC versions
+            have to be recompiled, when they are USEd by files compiled
+            with GCC 4.8. GCC 4.8 is not able to read .mod files created
+            by earlier versions; attempting to do so gives an error
+            message.
+            Note: The ABI of the produced assembler data itself has not
+            changed; object files and libraries are fully compatible with
+            older versions except as noted below.
+          + ABI: Some internal names (used in the assembler/object file)
+            have changed for symbols declared in the specification part of
+            a module. If an affected module - or a file using it via use
+            association - is recompiled, the module and all files which
+            directly use such symbols have to be recompiled as well. This
+            change only affects the following kind of module symbols:
+               o Procedure pointers. Note: C-interoperable function
+                 pointers (type(c_funptr)) are not affected nor are
+                 procedure-pointer components.
+               o Deferred-length character strings.
+     * The [17]BACKTRACE intrinsic subroutine has been added. It shows a
+       backtrace at an arbitrary place in user code; program execution
+       continues normally afterwards.
+     * The [18]-Wc-binding-type warning option has been added (disabled by
+       default). It warns if the a variable might not be C interoperable;
+       in particular, if the variable has been declared using an intrinsic
+       type with default kind instead of using a kind parameter defined
+       for C interoperability in the intrinsic ISO_C_Binding module.
+       Before, this warning was always printed. The -Wc-binding-type
+       option is enabled by -Wall.
+     * The [19]-Wrealloc-lhs and -Wrealloc-lhs-all warning command-line
+       options have been added, which diagnose when code to is inserted
+       for automatic (re)allocation of a variable during assignment. This
+       option can be used to decide whether it is safe to use
+       [20]-fno-realloc-lhs. Additionally, it can be used to find
+       automatic (re)allocation in hot loops. (For arrays, replacing
+       "var=" by "var(:)=" disables the automatic reallocation.)
+     * The [21]-Wcompare-reals command-line option has been added. When
+       this is set, warnings are issued when comparing REAL or COMPLEX
+       types for equality and inequality; consider replacing a == b by
+       abs(a-b) < eps with a suitable eps. -Wcompare-reals is enabled by
+       -Wextra.
+     * The [22]-Wtarget-lifetime command-line option has been added
+       (enabled with -Wall), which warns if the pointer in a pointer
+       assignment might outlive its target.
+     * Reading floating point numbers which use "q" for the exponential
+       (such as 4.0q0) is now supported as vendor extension for better
+       compatibility with old data files. It is strongly recommended to
+       use for I/O the equivalent but standard conforming "e" (such as
+       4.0e0).
+       (For Fortran source code, consider replacing the "q" in
+       floating-point literals by a kind parameter (e.g. 4.0e0_qp with a
+       suitable qp). Note that - in Fortran source code - replacing "q" by
+       a simple "e" is not equivalent.)
+     * The GFORTRAN_TMPDIR environment variable for specifying a
+       non-default directory for files opened with STATUS="SCRATCH", is
+       not used anymore. Instead gfortran checks the POSIX/GNU standard
+       TMPDIR environment variable. If TMPDIR is not defined, gfortran
+       falls back to other methods to determine the directory for
+       temporary files as documented in the [23]user manual.
+     * [24]Fortran 2003:
+          + Support for unlimited polymorphic variables (CLASS(*)) has
+            been added. Nonconstant character lengths are not yet
+            supported.
+     * [25]TS 29113:
+          + Assumed types (TYPE(*)) are now supported.
+          + Experimental support for assumed-rank arrays (dimension(..))
+            has been added. Note that currently gfortran's own array
+            descriptor is used, which is different from the one defined in
+            TS29113, see [26]gfortran's header file or use the [27]Chasm
+            Language Interoperability Tools.
+
+  Go
+
+     * GCC 4.8.0 and 4.8.1 implement a preliminary version of the Go 1.1
+       release. The library support is not quite complete.
+     * Go has been tested on GNU/Linux and Solaris platforms for various
+       processors including x86, x86_64, PowerPC, SPARC, and Alpha. It may
+       work on other platforms as well.
+
+New Targets and Target Specific Improvements
+
+  AArch64
+
+     * A new port has been added to support AArch64, the new 64-bit
+       architecture from ARM. Note that this is a separate port from the
+       existing 32-bit ARM port.
+     * The port provides initial support for the Cortex-A53 and the
+       Cortex-A57 processors with the command line options
+       -mcpu=cortex-a53 and -mcpu=cortex-a57.
+
+  ARM
+
+     * Initial support has been added for the AArch32 extensions defined
+       in the ARMv8 architecture.
+     * Code generation improvements for the Cortex-A7 and Cortex-A15 CPUs.
+     * A new option, -mcpu=marvell-pj4, has been added to generate code
+       for the Marvell PJ4 processor.
+     * The compiler can now automatically generate the VFMA, VFMS, REVSH
+       and REV16 instructions.
+     * A new vectorizer cost model for Advanced SIMD configurations to
+       improve the auto-vectorization strategies used.
+     * The scheduler now takes into account the number of live registers
+       to reduce the amount of spilling that can occur. This should
+       improve code performance in large functions. The limit can be
+       removed by using the option -fno-sched-pressure.
+     * Improvements have been made to the Marvell iWMMX code generation
+       and support for the iWMMX2 SIMD unit has been added. The option
+       -mcpu=iwmmxt2 can be used to enable code generation for the latter.
+     * A number of code generation improvements for Thumb2 to reduce code
+       size when compiling for the M-profile processors.
+     * The RTEMS (arm-rtems) port has been updated to use the EABI.
+     * Code generation support for the old FPA and Maverick floating-point
+       architectures has been removed. Ports that previously relied on
+       these features have also been removed. This includes the targets:
+          + arm*-*-linux-gnu (use arm*-*-linux-gnueabi)
+          + arm*-*-elf (use arm*-*-eabi)
+          + arm*-*-uclinux* (use arm*-*-uclinux*eabi)
+          + arm*-*-ecos-elf (no alternative)
+          + arm*-*-freebsd (no alternative)
+          + arm*-wince-pe* (no alternative).
+
+  AVR
+
+     * Support for the "Embedded C" fixed-point has been added. For
+       details, see the [28]GCC wiki and the [29]user manual. The support
+       is not complete.
+     * A new print modifier %r for register operands in inline assembler
+       is supported. It will print the raw register number without the
+       register prefix 'r':
+    /* Return the most significant byte of 'val', a 64-bit value.  */
+
+    unsigned char msb (long long val)
+    {
+      unsigned char c;
+      __asm__ ("mov %0, %r1+7" : "=r" (c) : "r" (val));
+      return c;
+    }
+       The inline assembler in this example will generate code like
+    mov r24, 8+7
+       provided c is allocated to R24 and val is allocated to R8...R15.
+       This works because the GNU assembler accepts plain register numbers
+       without register prefix.
+     * Static initializers with 3-byte symbols are supported now:
+    extern const __memx char foo;
+    const __memx void *pfoo = &foo;
+       This requires at least Binutils 2.23.
+
+  IA-32/x86-64
+
+     * Allow -mpreferred-stack-boundary=3 for the x86-64 architecture with
+       SSE extensions disabled. Since the x86-64 ABI requires 16 byte
+       stack alignment, this is ABI incompatible and intended to be used
+       in controlled environments where stack space is an important
+       limitation. This option will lead to wrong code when functions
+       compiled with 16 byte stack alignment (such as functions from a
+       standard library) are called with misaligned stack. In this case,
+       SSE instructions may lead to misaligned memory access traps. In
+       addition, variable arguments will be handled incorrectly for 16
+       byte aligned objects (including x87 long double and __int128),
+       leading to wrong results. You must build all modules with
+       -mpreferred-stack-boundary=3, including any libraries. This
+       includes the system libraries and startup modules.
+     * Support for the new Intel processor codename Broadwell with RDSEED,
+       ADCX, ADOX, PREFETCHW is available through -madx, -mprfchw,
+       -mrdseed command-line options.
+     * Support for the Intel RTM and HLE intrinsics, built-in functions
+       and code generation is available via -mrtm and -mhle.
+     * Support for the Intel FXSR, XSAVE and XSAVEOPT instruction sets.
+       Intrinsics and built-in functions are available via -mfxsr, -mxsave
+       and -mxsaveopt respectively.
+     * New -maddress-mode=[short|long] options for x32.
+       -maddress-mode=short overrides default 64-bit addresses to 32-bit
+       by emitting the 0x67 address-size override prefix. This is the
+       default address mode for x32.
+     * New built-in functions to detect run-time CPU type and ISA:
+          + A built-in function __builtin_cpu_is has been added to detect
+            if the run-time CPU is of a particular type. It returns a
+            positive integer on a match and zero otherwise. It accepts one
+            string literal argument, the CPU name. For example,
+            __builtin_cpu_is("westmere") returns a positive integer if the
+            run-time CPU is an Intel Core i7 Westmere processor. Please
+            refer to the [30]user manual for the list of valid CPU names
+            recognized.
+          + A built-in function __builtin_cpu_supports has been added to
+            detect if the run-time CPU supports a particular ISA feature.
+            It returns a positive integer on a match and zero otherwise.
+            It accepts one string literal argument, the ISA feature. For
+            example, __builtin_cpu_supports("ssse3") returns a positive
+            integer if the run-time CPU supports SSSE3 instructions.
+            Please refer to the [31]user manual for the list of valid ISA
+            names recognized.
+       Caveat: If these built-in functions are called before any static
+       constructors are invoked, like during IFUNC initialization, then
+       the CPU detection initialization must be explicitly run using this
+       newly provided built-in function, __builtin_cpu_init. The
+       initialization needs to be done only once. For example, this is how
+       the invocation would look like inside an IFUNC initializer:
+    static void (*some_ifunc_resolver(void))(void)
+    {
+      __builtin_cpu_init();
+      if (__builtin_cpu_is("amdfam10h") ...
+      if (__builtin_cpu_supports("popcnt") ...
+    }
+
+     * Function Multiversioning Support with G++:
+       It is now possible to create multiple function versions each
+       targeting a specific processor and/or ISA. Function versions have
+       the same signature but different target attributes. For example,
+       here is a program with function versions:
+    __attribute__ ((target ("default")))
+    int foo(void)
+    {
+      return 1;
+    }
+
+    __attribute__ ((target ("sse4.2")))
+    int foo(void)
+    {
+      return 2;
+    }
+
+    int main (void)
+    {
+      int (*p) = &foo;
+      assert ((*p)() == foo());
+      return 0;
+    }
+
+       Please refer to this [32]wiki for more information.
+     * The x86 backend has been improved to allow option -fschedule-insns
+       to work reliably. This option can be used to schedule instructions
+       better and leads to improved performace in certain cases.
+     * Windows MinGW-w64 targets (*-w64-mingw*) require at least r5437
+       from the Mingw-w64 trunk.
+     * Support for new AMD family 15h processors (Steamroller core) is now
+       available through the -march=bdver3 and -mtune=bdver3 options.
+     * Support for new AMD family 16h processors (Jaguar core) is now
+       available through the -march=btver2 and -mtune=btver2 options.
+
+  FRV
+
+     * This target now supports the -fstack-usage command-line option.
+
+  MIPS
+
+     * GCC can now generate code specifically for the R4700, Broadcom XLP
+       and MIPS 34kn processors. The associated -march options are
+       -march=r4700, -march=xlp and -march=34kn respectively.
+     * GCC now generates better DSP code for MIPS 74k cores thanks to
+       further scheduling optimizations.
+     * The MIPS port now supports the -fstack-check option.
+     * GCC now passes the -mmcu and -mno-mcu options to the assembler.
+     * Previous versions of GCC would silently accept -fpic and -fPIC for
+       -mno-abicalls targets like mips*-elf. This combination was not
+       intended or supported, and did not generate position-independent
+       code. GCC 4.8 now reports an error when this combination is used.
+
+  PowerPC / PowerPC64 / RS6000
+
+     * SVR4 configurations (GNU/Linux, FreeBSD, NetBSD) no longer save,
+       restore or update the VRSAVE register by default. The respective
+       operating systems manage the VRSAVE register directly.
+     * Large TOC support has been added for AIX through the command line
+       option -mcmodel=large.
+     * Native Thread-Local Storage support has been added for AIX.
+     * VMX (Altivec) and VSX instruction sets now are enabled implicitly
+       when targetting processors that support those hardware features on
+       AIX 6.1 and above.
+
+  RX
+
+     * This target will now issue a warning message whenever multiple fast
+       interrupt handlers are found in the same compilation unit. This
+       feature can be turned off by the new
+       -mno-warn-multiple-fast-interrupts command-line option.
+
+  S/390, System z
+
+     * Support for the IBM zEnterprise zEC12 processor has been added.
+       When using the -march=zEC12 option, the compiler will generate code
+       making use of the following new instructions:
+          + load and trap instructions
+          + 2 new compare and trap instructions
+          + rotate and insert selected bits - without CC clobber
+       The -mtune=zEC12 option enables zEC12 specific instruction
+       scheduling without making use of new instructions.
+     * Register pressure sensitive instruction scheduling is enabled by
+       default.
+     * The ifunc function attribute is enabled by default.
+     * memcpy and memcmp invokations on big memory chunks or with run time
+       lengths are not generated inline anymore when tuning for z10 or
+       higher. The purpose is to make use of the IFUNC optimized versions
+       in Glibc.
+
+  SH
+
+     * The default alignment settings have been reduced to be less
+       aggressive. This results in more compact code for optimization
+       levels other than -Os.
+     * Improved support for the __atomic built-in functions:
+          + A new option -matomic-model=model selects the model for the
+            generated atomic sequences. The following models are
+            supported:
+
+              soft-gusa
+                      Software gUSA sequences (SH3* and SH4* only). On
+                      SH4A targets this will now also partially utilize
+                      the movco.l and movli.l instructions. This is the
+                      default when the target is sh3*-*-linux* or
+                      sh4*-*-linux*.
+
+              hard-llcs
+                      Hardware movco.l / movli.l sequences (SH4A only).
+
+              soft-tcb
+                      Software thread control block sequences.
+
+              soft-imask
+                      Software interrupt flipping sequences (privileged
+                      mode only). This is the default when the target is
+                      sh1*-*-linux* or sh2*-*-linux*.
+
+              none
+                      Generates function calls to the respective __atomic
+                      built-in functions. This is the default for SH64
+                      targets or when the target is not sh*-*-linux*.
+
+          + The option -msoft-atomic has been deprecated. It is now an
+            alias for -matomic-model=soft-gusa.
+          + A new option -mtas makes the compiler generate the tas.b
+            instruction for the __atomic_test_and_set built-in function
+            regardless of the selected atomic model.
+          + The __sync functions in libgcc now reflect the selected atomic
+            model when building the toolchain.
+     * Added support for the mov.b and mov.w instructions with
+       displacement addressing.
+     * Added support for the SH2A instructions movu.b and movu.w.
+     * Various improvements to code generated for integer arithmetic.
+     * Improvements to conditional branches and code that involves the T
+       bit. A new option -mzdcbranch tells the compiler to favor
+       zero-displacement branches. This is enabled by default for SH4*
+       targets.
+     * The pref instruction will now be emitted by the __builtin_prefetch
+       built-in function for SH3* targets.
+     * The fmac instruction will now be emitted by the fmaf standard
+       function and the __builtin_fmaf built-in function.
+     * The -mfused-madd option has been deprecated in favor of the
+       machine-independent -ffp-contract option. Notice that the fmac
+       instruction will now be generated by default for expressions like a
+       * b + c. This is due to the compiler default setting
+       -ffp-contract=fast.
+     * Added new options -mfsrra and -mfsca to allow the compiler using
+       the fsrra and fsca instructions on targets other than SH4A (where
+       they are already enabled by default).
+     * Added support for the __builtin_bswap32 built-in function. It is
+       now expanded as a sequence of swap.b and swap.w instructions
+       instead of a library function call.
+     * The behavior of the -mieee option has been fixed and the negative
+       form -mno-ieee has been added to control the IEEE conformance of
+       floating point comparisons. By default -mieee is now enabled and
+       the option -ffinite-math-only implicitly sets -mno-ieee.
+     * Added support for the built-in functions __builtin_thread_pointer
+       and __builtin_set_thread_pointer. This assumes that GBR is used to
+       hold the thread pointer of the current thread. Memory loads and
+       stores relative to the address returned by __builtin_thread_pointer
+       will now also utilize GBR based displacement address modes.
+     * The -mdiv= option for targets other than SHmedia has been fixed and
+       documented.
+
+  SPARC
+
+     * Added optimized instruction scheduling for Niagara4.
+
+  TILE-Gx
+
+     * Added support for the -mcmodel=MODEL command-line option. The
+       models supported are small and large.
+
+  V850
+
+     * This target now supports the E3V5 architecture via the use of the
+       new -mv850e3v5 command-line option. It also has experimental
+       support for the e3v5 LOOP instruction which can be enabled via the
+       new -mloop command-line option.
+
+  XStormy16
+
+     * This target now supports the -fstack-usage command-line option.
+
+Operating Systems
+
+  Windows (Cygwin)
+
+     * Executables are now linked against shared libgcc by default. The
+       previous default was to link statically, which can still be done by
+       explicitly specifying -static or static-libgcc on the command line.
+       However it is strongly advised against, as it will cause problems
+       for any application that makes use of DLLs compiled by GCC. It
+       should be alright for a monolithic stand-alone application that
+       only links against the Windows DLLs, but offers little or no
+       benefit.
+
+GCC 4.8.1
+
+   This is the [33]list of problem reports (PRs) from GCC's bug tracking
+   system that are known to be fixed in the 4.8.1 release. This list might
+   not be complete (that is, it is possible that some PRs that have been
+   fixed are not listed here).
+
+   The C++11 <chrono> std::chrono::system_clock and
+   std::chrono::steady_clock classes have changed ABI in GCC 4.8.1, they
+   both are now separate (never typedefs of each other), both use
+   std::chrono::nanoseconds resolution, on most GNU/Linux configurations
+   std::chrono::steady_clock is now finally monotonic, and both classes
+   are mangled differently than in the previous GCC releases.
+   std::chrono::system_clock::now() with std::chrono::microseconds resp.
+   std::chrono::seconds resolution is still exported for backwards
+   compatibility with default configured libstdc++. Note that libstdc++
+   configured with --enable-libstdcxx-time= used to be ABI incompatible
+   with default configured libstdc++ for those two classes and no ABI
+   compatibility can be offered for those configurations, so any C++11
+   code that uses those classes and has been compiled and linked against
+   libstdc++ configured with the non-default --enable-libstdcxx-time=
+   configuration option needs to be recompiled.
+
+GCC 4.8.2
+
+   This is the [34]list of problem reports (PRs) from GCC's bug tracking
+   system that are known to be fixed in the 4.8.2 release. This list might
+   not be complete (that is, it is possible that some PRs that have been
+   fixed are not listed here).
+
+
+    For questions related to the use of GCC, please consult these web
+    pages and the [35]GCC manuals. If that fails, the
+    [36]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+    web pages and the development of GCC are welcome on our developer
+    list at [37]gcc@gcc.gnu.org. All of [38]our lists have public
+    archives.
+
+   Copyright (C) [39]Free Software Foundation, Inc. Verbatim copying and
+   distribution of this entire article is permitted in any medium,
+   provided this notice is preserved.
+
+   These pages are [40]maintained by the GCC team. Last modified
+   2013-10-16[41].
+
+References
+
+   1. http://gcc.gnu.org/wiki/cxx-conversion
+   2. ftp://gcc.gnu.org/pub/gcc/infrastructure/
+   3. http://www.nongnu.org/avr-libc/
+   4. http://gcc.gnu.org/PR54461
+   5. http://gcc.gnu.org/gcc-4.8/porting_to.html
+   6. https://code.google.com/p/address-sanitizer/
+   7. https://code.google.com/p/data-race-test/wiki/ThreadSanitizer
+   8. https://lkml.org/lkml/2006/11/28/239
+   9. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
+  10. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
+  11. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
+  12. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
+  13. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
+  14. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html
+  15. http://gcc.gnu.org/projects/cxx1y.html
+  16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011
+  17. http://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html
+  18. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
+  19. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
+  20. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html
+  21. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
+  22. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html
+  23. http://gcc.gnu.org/onlinedocs/gfortran/TMPDIR.html
+  24. http://gcc.gnu.org/wiki/Fortran2003Status
+  25. http://gcc.gnu.org/wiki/TS29113Status
+  26. http://gcc.gnu.org/viewcvs/trunk/libgfortran/libgfortran.h?content-type=text%2Fplain&view=co
+  27. http://chasm-interop.sourceforge.net/
+  28. http://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support
+  29. http://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html
+  30. http://gcc.gnu.org/onlinedocs/gcc/X86-Built-in-Functions.html#X86-Built-in-Functions
+  31. http://gcc.gnu.org/onlinedocs/gcc/X86-Built-in-Functions.html#X86-Built-in-Functions
+  32. http://gcc.gnu.org/wiki/FunctionMultiVersioning
+  33. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.1
+  34. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.2
+  35. http://gcc.gnu.org/onlinedocs/
+  36. mailto:gcc-help@gcc.gnu.org
+  37. mailto:gcc@gcc.gnu.org
+  38. http://gcc.gnu.org/lists.html
+  39. http://www.fsf.org/
+  40. http://gcc.gnu.org/about.html
+  41. http://validator.w3.org/check/referer
+======================================================================
 http://gcc.gnu.org/gcc-4.7/index.html
                              GCC 4.7 Release Series
 
-   September 20, 2012
+   April 11, 2013
 
    The [1]GNU project and the GCC developers are pleased to announce the
-   release of GCC 4.7.2.
+   release of GCC 4.7.3.
 
    This release is a bug-fix release, containing fixes for regressions in
-   GCC 4.7.1 relative to previous releases of GCC.
+   GCC 4.7.2 relative to previous releases of GCC.
 
 Release History
 
+   GCC 4.7.3
+          April 11, 2013 ([2]changes, [3]documentation)
+
    GCC 4.7.2
-          September 20, 2012 ([2]changes)
+          September 20, 2012 ([4]changes, [5]documentation)
 
    GCC 4.7.1
-          June 14, 2012 ([3]changes)
+          June 14, 2012 ([6]changes, [7]documentation)
 
    GCC 4.7.0
-          March 22, 2012 ([4]changes)
+          March 22, 2012 ([8]changes, [9]documentation)
 
 References and Acknowledgements
 
@@ -33,53 +849,58 @@ References and Acknowledgements
    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
+   A list of [10]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
+   well as test results to GCC. This [11]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.
+   For additional information about GCC please refer to the [12]GCC
+   project web site or contact the [13]GCC development mailing list.
 
-   To obtain GCC please use [9]our mirror sites or [10]our SVN server.
+   To obtain GCC please use [14]our mirror sites or [15]our SVN server.
 
 
     For questions related to the use of GCC, please consult these web
-    pages and the [11]GCC manuals. If that fails, the
-    [12]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+    pages and the [16]GCC manuals. If that fails, the
+    [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these
     web pages and the development of GCC are welcome on our developer
-    list at [13]gcc@gcc.gnu.org. All of [14]our lists have public
+    list at [18]gcc@gcc.gnu.org. All of [19]our lists have public
     archives.
 
-   Copyright (C) [15]Free Software Foundation, Inc. Verbatim copying and
+   Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and
    distribution of this entire article is permitted in any medium,
    provided this notice is preserved.
 
-   These pages are [16]maintained by the GCC team. Last modified
-   2012-09-20[17].
+   These pages are [21]maintained by the GCC team. Last modified
+   2013-04-11[22].
 
 References
 
    1. http://www.gnu.org/
    2. http://gcc.gnu.org/gcc-4.7/changes.html
-   3. http://gcc.gnu.org/gcc-4.7/changes.html
+   3. http://gcc.gnu.org/onlinedocs/4.7.3/
    4. http://gcc.gnu.org/gcc-4.7/changes.html
-   5. http://gcc.gnu.org/gcc-4.7/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://gcc.gnu.org/svn.html
-  11. http://gcc.gnu.org/onlinedocs/
-  12. mailto:gcc-help@gcc.gnu.org
+   5. http://gcc.gnu.org/onlinedocs/4.7.2/
+   6. http://gcc.gnu.org/gcc-4.7/changes.html
+   7. http://gcc.gnu.org/onlinedocs/4.7.1/
+   8. http://gcc.gnu.org/gcc-4.7/changes.html
+   9. http://gcc.gnu.org/onlinedocs/4.7.0/
+  10. http://gcc.gnu.org/gcc-4.7/buildstat.html
+  11. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+  12. http://gcc.gnu.org/index.html
   13. mailto:gcc@gcc.gnu.org
-  14. http://gcc.gnu.org/lists.html
-  15. http://www.fsf.org/
-  16. http://gcc.gnu.org/about.html
-  17. http://validator.w3.org/check/referer
+  14. http://gcc.gnu.org/mirrors.html
+  15. http://gcc.gnu.org/svn.html
+  16. http://gcc.gnu.org/onlinedocs/
+  17. mailto:gcc-help@gcc.gnu.org
+  18. mailto:gcc@gcc.gnu.org
+  19. http://gcc.gnu.org/lists.html
+  20. http://www.fsf.org/
+  21. http://gcc.gnu.org/about.html
+  22. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.7/changes.html
                              GCC 4.7 Release Series
@@ -109,15 +930,15 @@ Caveats
           + Tru64 UNIX V5.1 (alpha*-dec-osf5.1*)
      * On ARM, when compiling for ARMv6 (but not ARMv6-M), ARMv7-A,
        ARMv7-R, or ARMv7-M, the new option -munaligned-access is active by
-       default, which for some source codes generates code that accesses
-       memory on unaligned addresses. This will require the kernel of
-       those systems to enable such accesses (controlled by CP15 register
-       c1, refer to ARM documentation). Alternatively or for compatibility
-       with kernels where unaligned accesses are not supported, all code
-       has to be compiled with -mno-unaligned-access. Linux/ARM in
-       official releases has automatically and unconditionally supported
-       unaligned accesses as emitted by GCC due to this option being
-       active, since Linux version 2.6.28.
+       default, which for some sources generates code that accesses memory
+       on unaligned addresses. This requires the kernel of those systems
+       to enable such accesses (controlled by CP15 register c1, refer to
+       ARM documentation). Alternatively, or for compatibility with
+       kernels where unaligned accesses are not supported, all code has to
+       be compiled with -mno-unaligned-access. Upstream Linux kernel
+       releases have automatically and unconditionally supported unaligned
+       accesses as emitted by GCC due to this option being active since
+       version 2.6.28.
      * Support on ARM for the legacy floating-point accelerator (FPA) and
        the mixed-endian floating-point format that it used has been
        obsoleted. The ports that still use this format have been obsoleted
@@ -151,7 +972,20 @@ Caveats
      * The AVR port's libgcc has been improved and its multilib structure
        has been enhanced. As a result, all objects contributing to an
        application must either be compiled with GCC versions up to 4.6.x
-       or with GCC versions 4.7.0 or later.
+       or with GCC versions 4.7.1 or later. If the compiler is used with
+       AVR Libc, you need a version that supports the new layout, i.e.
+       implements [2]#35407.
+     * The AVR port's -mshort-calls command-line option has been
+       deprecated. It will be removed in the GCC 4.8 release. See -mrelax
+       for a replacement.
+     * The AVR port only references startup code that clears .bss and the
+       common section resp. initializes the .data and .rodata section
+       provided respective sections (or subsections thereof) are not
+       empty, see [3]PR18145. Applications that put all static storage
+       objects into non-standard sections and / or define all static
+       storage objects in assembler modules, must reference __do_clear_bss
+       resp. __do_copy_data by hand or undefine the symbol(s) by means of
+       -Wl,-u,__do_clear_bss resp. -Wl,-u,__do_copy_data.
      * The ARM port's -mwords-little-endian option has been deprecated. It
        will be removed in a future release.
      * Support has been removed for the NetWare x86 configuration
@@ -177,7 +1011,7 @@ Caveats
        not affected by this change. (This change affects GCC versions
        4.7.2 and later.)
      * More information on porting to GCC 4.7 from previous versions of
-       GCC can be found in the [2]porting guide for this release.
+       GCC can be found in the [4]porting guide for this release.
 
 General Optimizer Improvements
 
@@ -280,7 +1114,7 @@ void foo (char *a, const char *b, const char *c, const char *d)
 
 New Languages and Language specific improvements
 
-     * Version 3.1 of the [3]OpenMP specification is now supported for the
+     * Version 3.1 of the [5]OpenMP specification is now supported for the
        C, C++, and Fortran compilers.
 
   Ada
@@ -295,20 +1129,20 @@ New Languages and Language specific improvements
      * A new built-in, __builtin_assume_aligned, has been added, through
        which the compiler can be hinted about pointer alignment and can
        use it to improve generated code.
-     * A new -Wunused-local-typedefs warning was added for C, C++,
+     * A new warning option -Wunused-local-typedefs was added for C, C++,
        Objective-C and Objective-C++. This warning diagnoses typedefs
        locally defined in a function, and otherwise not used.
-     * A new experimental -ftrack-macro-expansion option was added for C,
-       C++, Objective-C, Objective-C++ and Fortran. It allows the compiler
-       to emit diagnostic about the current macro expansion stack when a
-       compilation error occurs in a macro expansion.
+     * A new experimental command-line option -ftrack-macro-expansion was
+       added for C, C++, Objective-C, Objective-C++ and Fortran. It allows
+       the compiler to emit diagnostic about the current macro expansion
+       stack when a compilation error occurs in a macro expansion.
      * Experimental support for transactional memory has been added. It
        includes support in the compiler, as well as a supporting runtime
        library called libitm. To compile code with transactional memory
        constructs, use the -fgnu-tm option.
        Support is currently available for Alpha, ARM, PowerPC, SH, SPARC,
        and 32-bit/64-bit x86 platforms.
-       For more details on transactional memory see [4]the GCC WiKi.
+       For more details on transactional memory see [6]the GCC WiKi.
      * Support for atomic operations specifying the C++11/C11 memory model
        has been added. These new __atomic routines replace the existing
        __sync built-in routines.
@@ -319,7 +1153,7 @@ New Languages and Language specific improvements
        library functions is available on the GCC atomic wiki in the
        "External Atomics Library" section.
        For more details on the memory models and features, see the
-       [5]atomic wiki.
+       [7]atomic wiki.
      * When a binary operation is performed on vector types and one of the
        operands is a uniform vector, it is possible to replace the vector
        with the generating element. For example:
@@ -349,7 +1183,7 @@ res = a - x;  /* means a - {x,x,x,x}  */
      * G++ now accepts the -std=c++11, -std=gnu++11, and -Wc++11-compat
        options, which are equivalent to -std=c++0x, -std=gnu++0x, and
        -Wc++0x-compat, respectively.
-     * G++ now implements [6]C++11 extended friend syntax:
+     * G++ now implements [8]C++11 extended friend syntax:
 
 template<class W>
 class Q
@@ -364,7 +1198,7 @@ struct B
   int ar[Q<B>::I];
 };
 
-     * Thanks to Ville Voutilainen, G++ now implements [7]C++11 explicit
+     * Thanks to Ville Voutilainen, G++ now implements [9]C++11 explicit
        override control.
 
 struct B {
@@ -381,26 +1215,26 @@ struct D : B {
 struct E final { };
 struct F: E { }; // error: deriving from final class
 
-     * G++ now implements [8]C++11 non-static data member initializers.
+     * G++ now implements [10]C++11 non-static data member initializers.
 
 struct A {
   int i = 42;
 } a; // initializes a.i to 42
 
-     * Thanks to Ed Smith-Rowland, G++ now implements [9]C++11
+     * Thanks to Ed Smith-Rowland, G++ now implements [11]C++11
        user-defined literals.
 
 // Not actually a good approximation.  :)
 constexpr long double operator"" _degrees (long double d) { return d * 0.0175; }
 long double pi = 180.0_degrees;
 
-     * G++ now implements [10]C++11 alias-declarations.
+     * G++ now implements [12]C++11 alias-declarations.
 
 template <class T> using Ptr = T*;
 Ptr<int> ip;  // decltype(ip) is int*
 
      * Thanks to Ville Voutilainen and Pedro Lamarao, G++ now implements
-       [11]C++11 delegating constructors.
+       [13]C++11 delegating constructors.
 
 struct A {
   A(int);
@@ -479,14 +1313,14 @@ const int &y = f(2);
        Using-declarations are to be used instead. Furthermore, some
        efforts have been made to improve the support of class scope
        using-declarations. In particular, using-declarations referring to
-       a dependent type now work as expected ([12]bug c++/14258).
+       a dependent type now work as expected ([14]bug c++/14258).
      * The ELF symbol visibility of a template instantiation is now
        properly constrained by the visibility of its template arguments
-       ([13]bug c++/35688).
+       ([15]bug c++/35688).
 
     Runtime Library (libstdc++)
 
-     * [14]Improved experimental support for the new ISO C++ standard,
+     * [16]Improved experimental support for the new ISO C++ standard,
        C++11, including:
           + using noexcept in most of the library;
           + implementations of pointer_traits, allocator_traits and
@@ -502,27 +1336,27 @@ const int &y = f(2);
 
   Fortran
 
-     * The compile flag [15]-fstack-arrays has been added, which causes
+     * The compile flag [17]-fstack-arrays has been added, which causes
        all local arrays to be put on stack memory. For some programs this
        will improve the performance significantly. If your program uses
        very large local arrays, it is possible that you will have to
        extend your runtime limits for stack memory.
-     * The [16]-Ofast flag now also implies [17]-fno-protect-parens and
-       [18]-fstack-arrays.
+     * The [18]-Ofast flag now also implies [19]-fno-protect-parens and
+       [20]-fstack-arrays.
      * Front-end optimizations can now be selected by the
-       [19]-ffrontend-optimize option and deselected by the
+       [21]-ffrontend-optimize option and deselected by the
        -fno-frontend-optimize option.
      * When front-end optimization removes a function call,
-       [20]-Wfunction-elimination warns about that.
+       [22]-Wfunction-elimination warns about that.
      * When performing front-end-optimization, the
-       [21]-faggressive-function-elimination option allows the removal of
+       [23]-faggressive-function-elimination option allows the removal of
        duplicate function calls even for impure functions.
-     * The flag [22]-Wreal-q-constant has been added, which warns if
+     * The flag [24]-Wreal-q-constant has been added, which warns if
        floating-point literals have been specified using q (such as
        1.0q0); the q marker is now supported as a vendor extension to
        denote quad precision (REAL(16) or, if not available, REAL(10)).
        Consider using a kind parameter (such as in 1.0_qp) instead, which
-       can be obtained via [23]SELECTED_REAL_KIND.
+       can be obtained via [25]SELECTED_REAL_KIND.
      * The GFORTRAN_USE_STDERR environment variable has been removed. GNU
        Fortran now always prints error messages to standard error. If you
        wish to redirect standard error, please consult the manual for your
@@ -532,32 +1366,32 @@ const int &y = f(2);
        gfortran will now always abort the program. Whether a core dump is
        generated depends on the user environment settings; see the ulimit
        -c setting for POSIX shells, limit coredumpsize for C shells, and
-       the [24]WER user-mode dumps settings on Windows.
-     * The [25]-fbacktrace option is now enabled by default. When
+       the [26]WER user-mode dumps settings on Windows.
+     * The [27]-fbacktrace option is now enabled by default. When
        encountering a fatal error, gfortran will attempt to print a
        backtrace to standard error before aborting. It can be disabled
        with -fno-backtrace. Note: On POSIX targets with the addr2line
        utility from GNU binutils, GNU Fortran can print a backtrace with
        function name, file name, line number information in addition to
        the addresses; otherwise only the addresses are printed.
-     * [26]Fortran 2003:
+     * [28]Fortran 2003:
           + Generic interface names which have the same name as derived
             types are now supported, which allows to write constructor
             functions. Note that Fortran does not support static
             constructor functions; only default initialization or an
             explicit structure-constructor initialization are available.
-          + [27]Polymorphic (class) arrays are now supported.
-     * [28]Fortran 2008:
+          + [29]Polymorphic (class) arrays are now supported.
+     * [30]Fortran 2008:
           + Support for the DO CONCURRENT construct has been added, which
             allows the user to specify that individual loop iterations
             have no interdependencies.
-          + [29]Coarrays: Full single-image support except for polymorphic
+          + [31]Coarrays: Full single-image support except for polymorphic
             coarrays. Additionally, preliminary support for multiple
-            images via an MPI-based [30]coarray communication library has
+            images via an MPI-based [32]coarray communication library has
             been added. Note: The library version is not yet usable as
             remote coarray access is not yet possible.
-     * [31]TS 29113:
-          + New flag [32]-std=f2008ts permits programs that are expected
+     * [33]TS 29113:
+          + New flag [34]-std=f2008ts permits programs that are expected
             to conform to the Fortran 2008 standard and the draft
             Technical Specification (TS) 29113 on Further Interoperability
             of Fortran with C.
@@ -570,7 +1404,7 @@ const int &y = f(2);
 
   Go
 
-     * GCC 4.7 implements the [33]Go 1 language standard. The library
+     * GCC 4.7 implements the [35]Go 1 language standard. The library
        support in 4.7.0 is not quite complete, due to release timing.
        Release 4.7.1 includes complete support for Go 1. The Go library is
        from the Go 1.0.1 release.
@@ -593,7 +1427,7 @@ New Targets and Target Specific Improvements
 
      * GCC now supports the XMEGA architecture. This requires GNU binutils
        2.22 or later.
-     * Support for the [34]named address spaces __flash, __flash1, ...,
+     * Support for the [36]named address spaces __flash, __flash1, ...,
        __flash5 and __memx has been added. These address spaces locate
        read-only data in flash memory and allow reading from flash memory
        by means of ordinary C code, i.e. without the need of (inline)
@@ -606,14 +1440,14 @@ int add_values (const __flash int *p, int i)
     return values[i] + *p;
 }
 
-     * Support has been added for a new AVR-specific configure option
+     * Support has been added for the AVR-specific configure option
        --with-avrlibc=yes in order to arrange for better integration of
-       [35]AVR-Libc. This configure option is supported in avr-gcc 4.7.2
+       [37]AVR-Libc. This configure option is supported in avr-gcc 4.7.2
        and newer and will only take effect in non-RTEMS configurations. If
        avr-gcc is configured for RTEMS, the option will be ignored which
-       is the same as specifying --with-avrlibc=no. See [36]PR54461 for
+       is the same as specifying --with-avrlibc=no. See [38]PR54461 for
        more technical details.
-     * Support for AVR-specific [37]built-in functions has been added.
+     * Support for AVR-specific [39]built-in functions has been added.
      * Support has been added for the signed and unsigned 24-bit scalar
        integer types __int24 and __uint24.
      * New command-line options -maccumulate-args, -mbranch-cost=cost and
@@ -628,7 +1462,7 @@ int add_values (const __flash int *p, int i)
 
 void set_portb (uint8_t value)
 {
-    asm volatile ("out %0, %i1" :: "r" (value), "n" (&PORTB) : "memory");
+    asm volatile ("out %i0, %1" :: "n" (&PORTB), "r" (value) : "memory");
 }
 
        The offset between an I/O address and the RAM address for that I/O
@@ -695,7 +1529,7 @@ void set_portb (uint8_t value)
        FMA, BMI, BMI2, LZCNT is available through -march=core-avx2.
      * Support for new AMD family 15h processors (Piledriver core) is now
        available through -march=bdver2 and -mtune=bdver2 options.
-     * Support for [38]the x32 psABI is now available through the -mx32
+     * Support for [40]the x32 psABI is now available through the -mx32
        option.
      * Windows mingw targets are using the -mms-bitfields option by
        default.
@@ -763,6 +1597,8 @@ void set_portb (uint8_t value)
           + Utilization of the tst #imm,R0 instruction.
           + Dynamic shift instructions on SH2A.
           + Integer absolute value calculations.
+     * The -mdiv= option for targets other than SHmedia has been fixed and
+       documented.
 
   SPARC
 
@@ -808,123 +1644,136 @@ Other significant improvements
        the DW_AT_producer attribute string in the DWARF debugging
        information.
      * GCC now supports various new GNU extensions to the DWARF debugging
-       information format, like [39]entry value and [40]call site
-       information, [41]typed DWARF stack or [42]a more compact macro
+       information format, like [41]entry value and [42]call site
+       information, [43]typed DWARF stack or [44]a more compact macro
        representation. Support for these extensions has been added to GDB
        7.4. They can be disabled through the -gstrict-dwarf command-line
        option.
 
 GCC 4.7.1
 
-   This is the [43]list of problem reports (PRs) from GCC's bug tracking
+   This is the [45]list of problem reports (PRs) from GCC's bug tracking
    system that are known to be fixed in the 4.7.1 release. This list might
    not be complete (that is, it is possible that some PRs that have been
    fixed are not listed here).
 
-   The Go frontend in the 4.7.1 release fully supports the [44]Go 1
+   The Go frontend in the 4.7.1 release fully supports the [46]Go 1
    language standard.
 
 GCC 4.7.2
 
-   This is the [45]list of problem reports (PRs) from GCC's bug tracking
+   This is the [47]list of problem reports (PRs) from GCC's bug tracking
    system that are known to be fixed in the 4.7.2 release. This list might
    not be complete (that is, it is possible that some PRs that have been
    fixed are not listed here).
 
+GCC 4.7.3
+
+   This is the [48]list of problem reports (PRs) from GCC's bug tracking
+   system that are known to be fixed in the 4.7.3 release. This list might
+   not be complete (that is, it is possible that some PRs that have been
+   fixed are not listed here).
+
 
     For questions related to the use of GCC, please consult these web
-    pages and the [46]GCC manuals. If that fails, the
-    [47]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+    pages and the [49]GCC manuals. If that fails, the
+    [50]gcc-help@gcc.gnu.org mailing list might help. Comments on these
     web pages and the development of GCC are welcome on our developer
-    list at [48]gcc@gcc.gnu.org. All of [49]our lists have public
+    list at [51]gcc@gcc.gnu.org. All of [52]our lists have public
     archives.
 
-   Copyright (C) [50]Free Software Foundation, Inc. Verbatim copying and
+   Copyright (C) [53]Free Software Foundation, Inc. Verbatim copying and
    distribution of this entire article is permitted in any medium,
    provided this notice is preserved.
 
-   These pages are [51]maintained by the GCC team. Last modified
-   2012-09-20[52].
+   These pages are [54]maintained by the GCC team. Last modified
+   2013-04-11[55].
 
 References
 
    1. http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01263.html
-   2. http://gcc.gnu.org/gcc-4.7/porting_to.html
-   3. http://openmp.org/wp/openmp-specifications/
-   4. http://gcc.gnu.org/wiki/TransactionalMemory
-   5. http://gcc.gnu.org/wiki/Atomic/GCCMM
-   6. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
-   7. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
+   2. http://savannah.nongnu.org/bugs/?35407
+   3. http://gcc.gnu.org/PR18145
+   4. http://gcc.gnu.org/gcc-4.7/porting_to.html
+   5. http://openmp.org/wp/openmp-specifications/
+   6. http://gcc.gnu.org/wiki/TransactionalMemory
+   7. http://gcc.gnu.org/wiki/Atomic/GCCMM
    8. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    9. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
   10. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
   11. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
-  12. http://gcc.gnu.org/PR14258
-  13. http://gcc.gnu.org/PR35688
-  14. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/libstdc++/manual/manual/status.html#status.iso.2011
-  15. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
-  16. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689
-  17. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270
-  18. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
-  19. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfrontend-optimize_007d-275
-  20. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWfunction-elimination_007d-170
-  21. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270
-  22. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149
-  23. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html
-  24. http://msdn.microsoft.com/en-us/library/bb787181%28v=vs.85%29.aspx
-  25. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183
-  26. http://gcc.gnu.org/wiki/Fortran2003Status
-  27. http://gcc.gnu.org/wiki/OOP
-  28. http://gcc.gnu.org/wiki/Fortran2008Status
-  29. http://gcc.gnu.org/wiki/Coarray
-  30. http://gcc.gnu.org/wiki/CoarrayLib
-  31. http://gcc.gnu.org/wiki/TS29113Status
-  32. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53
-  33. http://weekly.golang.org/doc/go1.html
-  34. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
-  35. http://nongnu.org/avr-libc/
-  36. http://gcc.gnu.org/PR54461
-  37. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html
-  38. http://sites.google.com/site/x32abi/
-  39. http://www.dwarfstd.org/ShowIssue.php?issue=100909.1
-  40. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2
-  41. http://www.dwarfstd.org/doc/040408.1.html
-  42. http://www.dwarfstd.org/ShowIssue.php?issue=110722.1
-  43. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1
-  44. http://weekly.golang.org/doc/go1.html
-  45. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
-  46. http://gcc.gnu.org/onlinedocs/
-  47. mailto:gcc-help@gcc.gnu.org
-  48. mailto:gcc@gcc.gnu.org
-  49. http://gcc.gnu.org/lists.html
-  50. http://www.fsf.org/
-  51. http://gcc.gnu.org/about.html
-  52. http://validator.w3.org/check/referer
+  12. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
+  13. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
+  14. http://gcc.gnu.org/PR14258
+  15. http://gcc.gnu.org/PR35688
+  16. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/libstdc++/manual/manual/status.html#status.iso.2011
+  17. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
+  18. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689
+  19. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270
+  20. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
+  21. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfrontend-optimize_007d-275
+  22. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWfunction-elimination_007d-170
+  23. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270
+  24. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149
+  25. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html
+  26. http://msdn.microsoft.com/en-us/library/bb787181%28v=vs.85%29.aspx
+  27. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183
+  28. http://gcc.gnu.org/wiki/Fortran2003Status
+  29. http://gcc.gnu.org/wiki/OOP
+  30. http://gcc.gnu.org/wiki/Fortran2008Status
+  31. http://gcc.gnu.org/wiki/Coarray
+  32. http://gcc.gnu.org/wiki/CoarrayLib
+  33. http://gcc.gnu.org/wiki/TS29113Status
+  34. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53
+  35. http://weekly.golang.org/doc/go1.html
+  36. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
+  37. http://nongnu.org/avr-libc/
+  38. http://gcc.gnu.org/PR54461
+  39. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html
+  40. https://sites.google.com/site/x32abi/
+  41. http://www.dwarfstd.org/ShowIssue.php?issue=100909.1
+  42. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2
+  43. http://www.dwarfstd.org/doc/040408.1.html
+  44. http://www.dwarfstd.org/ShowIssue.php?issue=110722.1
+  45. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1
+  46. http://weekly.golang.org/doc/go1.html
+  47. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
+  48. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3
+  49. http://gcc.gnu.org/onlinedocs/
+  50. mailto:gcc-help@gcc.gnu.org
+  51. mailto:gcc@gcc.gnu.org
+  52. http://gcc.gnu.org/lists.html
+  53. http://www.fsf.org/
+  54. http://gcc.gnu.org/about.html
+  55. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.6/index.html
                              GCC 4.6 Release Series
 
-   March 1, 2012
+   April 12, 2013
 
    The [1]GNU project and the GCC developers are pleased to announce the
-   release of GCC 4.6.3.
+   release of GCC 4.6.4.
 
    This release is a bug-fix release, containing fixes for regressions in
-   GCC 4.6.2 relative to previous releases of GCC.
+   GCC 4.6.3 relative to previous releases of GCC.
 
 Release History
 
+   GCC 4.6.4
+          April 12, 2013 ([2]changes, [3]documentation)
+
    GCC 4.6.3
-          March 1, 2012 ([2]changes)
+          March 1, 2012 ([4]changes, [5]documentation)
 
    GCC 4.6.2
-          October 26, 2011 ([3]changes)
+          October 26, 2011 ([6]changes, [7]documentation)
 
    GCC 4.6.1
-          June 27, 2011 ([4]changes)
+          June 27, 2011 ([8]changes, [9]documentation)
 
    GCC 4.6.0
-          March 25, 2011 ([5]changes)
+          March 25, 2011 ([10]changes, [11]documentation)
 
 References and Acknowledgements
 
@@ -932,54 +1781,60 @@ References and Acknowledgements
    supports several other languages aside from C, it now stands for the
    GNU Compiler Collection.
 
-   A list of [6]successful builds is updated as new information becomes
+   A list of [12]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 [7]amazing group of volunteers is
+   well as test results to GCC. This [13]amazing group of volunteers is
    what makes GCC successful.
 
-   For additional information about GCC please refer to the [8]GCC project
-   web site or contact the [9]GCC development mailing list.
+   For additional information about GCC please refer to the [14]GCC
+   project web site or contact the [15]GCC development mailing list.
 
-   To obtain GCC please use [10]our mirror sites or [11]our SVN server.
+   To obtain GCC please use [16]our mirror sites or [17]our SVN server.
 
 
     For questions related to the use of GCC, please consult these web
-    pages and the [12]GCC manuals. If that fails, the
-    [13]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+    pages and the [18]GCC manuals. If that fails, the
+    [19]gcc-help@gcc.gnu.org mailing list might help. Comments on these
     web pages and the development of GCC are welcome on our developer
-    list at [14]gcc@gcc.gnu.org. All of [15]our lists have public
+    list at [20]gcc@gcc.gnu.org. All of [21]our lists have public
     archives.
 
-   Copyright (C) [16]Free Software Foundation, Inc. Verbatim copying and
+   Copyright (C) [22]Free Software Foundation, Inc. Verbatim copying and
    distribution of this entire article is permitted in any medium,
    provided this notice is preserved.
 
-   These pages are [17]maintained by the GCC team. Last modified
-   2012-03-01[18].
+   These pages are [23]maintained by the GCC team. Last modified
+   2013-04-12[24].
 
 References
 
    1. http://www.gnu.org/
    2. http://gcc.gnu.org/gcc-4.6/changes.html
-   3. http://gcc.gnu.org/gcc-4.6/changes.html
+   3. http://gcc.gnu.org/onlinedocs/4.6.4/
    4. http://gcc.gnu.org/gcc-4.6/changes.html
-   5. http://gcc.gnu.org/gcc-4.6/changes.html
-   6. http://gcc.gnu.org/gcc-4.6/buildstat.html
-   7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
-   8. http://gcc.gnu.org/index.html
-   9. mailto:gcc@gcc.gnu.org
-  10. http://gcc.gnu.org/mirrors.html
-  11. http://gcc.gnu.org/svn.html
-  12. http://gcc.gnu.org/onlinedocs/
-  13. mailto:gcc-help@gcc.gnu.org
-  14. mailto:gcc@gcc.gnu.org
-  15. http://gcc.gnu.org/lists.html
-  16. http://www.fsf.org/
-  17. http://gcc.gnu.org/about.html
-  18. http://validator.w3.org/check/referer
+   5. http://gcc.gnu.org/onlinedocs/4.6.3/
+   6. http://gcc.gnu.org/gcc-4.6/changes.html
+   7. http://gcc.gnu.org/onlinedocs/4.6.2/
+   8. http://gcc.gnu.org/gcc-4.6/changes.html
+   9. http://gcc.gnu.org/onlinedocs/4.6.1/
+  10. http://gcc.gnu.org/gcc-4.6/changes.html
+  11. http://gcc.gnu.org/onlinedocs/4.6.0/
+  12. http://gcc.gnu.org/gcc-4.6/buildstat.html
+  13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+  14. http://gcc.gnu.org/index.html
+  15. mailto:gcc@gcc.gnu.org
+  16. http://gcc.gnu.org/mirrors.html
+  17. http://gcc.gnu.org/svn.html
+  18. http://gcc.gnu.org/onlinedocs/
+  19. mailto:gcc-help@gcc.gnu.org
+  20. mailto:gcc@gcc.gnu.org
+  21. http://gcc.gnu.org/lists.html
+  22. http://www.fsf.org/
+  23. http://gcc.gnu.org/about.html
+  24. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.6/changes.html
                              GCC 4.6 Release Series
@@ -1505,8 +2360,7 @@ New Languages and Language specific improvements
      * As a result of these enhancements, GCC can now be used to build
        Objective-C and Objective-C++ software that uses Foundation and
        other important system frameworks with the NeXT runtime on Darwin 9
-       and Darwin 10 (Mac OS X 10.5 and 10.6). Currently this is for m32
-       code only.
+       and Darwin 10 (OSX 10.5 and 10.6).
      * Many bugs in the compiler have been fixed in this release; in
        particular, LTO can now be used when compiling Objective-C and
        Objective-C++ and the parser is much more robust in dealing with
@@ -1741,6 +2595,14 @@ Operating Systems
             The Darwin zeroed memory allocators have been re-written to
             make more use of .zerofill sections. For non-debug code, this
             can reduce object file size significantly.
+          + Objective-C family 64-bit support (NeXT ABI 2).
+            Initial support has been added to support 64-bit Objective-C
+            code using the Darwin/OS X native (NeXT) runtime. ABI version
+            2 will be selected automatically when 64-bit code is built.
+          + Objective-C family 32-bit ABI 1.
+            For 32-bit code ABI 1 is also now also allowed. At present it
+            must be selected manually using -fobjc-abi-version=1 where
+            applicable - i.e. on Darwin 9/10 (OS X 10.5/10.6).
      * x86 Architecture
           + The -mdynamic-no-pic option has been enabled.
             Code supporting -mdynamic-no-pic optimization has been added
@@ -1849,20 +2711,27 @@ GCC 4.6.3
    not be complete (that is, it is possible that some PRs that have been
    fixed are not listed here).
 
+GCC 4.6.4
+
+   This is the [23]list of problem reports (PRs) from GCC's bug tracking
+   system that are known to be fixed in the 4.6.4 release. This list might
+   not be complete (that is, it is possible that some PRs that have been
+   fixed are not listed here).
+
 
     For questions related to the use of GCC, please consult these web
-    pages and the [23]GCC manuals. If that fails, the
-    [24]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+    pages and the [24]GCC manuals. If that fails, the
+    [25]gcc-help@gcc.gnu.org mailing list might help. Comments on these
     web pages and the development of GCC are welcome on our developer
-    list at [25]gcc@gcc.gnu.org. All of [26]our lists have public
+    list at [26]gcc@gcc.gnu.org. All of [27]our lists have public
     archives.
 
-   Copyright (C) [27]Free Software Foundation, Inc. Verbatim copying and
+   Copyright (C) [28]Free Software Foundation, Inc. Verbatim copying and
    distribution of this entire article is permitted in any medium,
    provided this notice is preserved.
 
-   These pages are [28]maintained by the GCC team. Last modified
-   2012-09-19[29].
+   These pages are [29]maintained by the GCC team. Last modified
+   2013-04-12[30].
 
 References
 
@@ -1888,13 +2757,14 @@ References
   20. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1
   21. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2
   22. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3
-  23. http://gcc.gnu.org/onlinedocs/
-  24. mailto:gcc-help@gcc.gnu.org
-  25. mailto:gcc@gcc.gnu.org
-  26. http://gcc.gnu.org/lists.html
-  27. http://www.fsf.org/
-  28. http://gcc.gnu.org/about.html
-  29. http://validator.w3.org/check/referer
+  23. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4
+  24. http://gcc.gnu.org/onlinedocs/
+  25. mailto:gcc-help@gcc.gnu.org
+  26. mailto:gcc@gcc.gnu.org
+  27. http://gcc.gnu.org/lists.html
+  28. http://www.fsf.org/
+  29. http://gcc.gnu.org/about.html
+  30. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.5/index.html
                              GCC 4.5 Release Series
@@ -1956,7 +2826,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [18]maintained by the GCC team. Last modified
-   2012-07-02[19].
+   2012-11-02[19].
 
 References
 
@@ -2627,7 +3497,7 @@ GCC 4.5.4
    provided this notice is preserved.
 
    These pages are [34]maintained by the GCC team. Last modified
-   2012-08-04[35].
+   2012-11-02[35].
 
 References
 
@@ -2736,7 +3606,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [21]maintained by the GCC team. Last modified
-   2012-03-13[22].
+   2012-11-02[22].
 
 References
 
@@ -3366,7 +4236,7 @@ GCC 4.4.7
    provided this notice is preserved.
 
    These pages are [25]maintained by the GCC team. Last modified
-   2012-03-13[26].
+   2012-11-02[26].
 
 References
 
@@ -3463,7 +4333,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [20]maintained by the GCC team. Last modified
-   2011-06-27[21].
+   2012-11-02[21].
 
 References
 
@@ -4268,7 +5138,7 @@ GCC 4.3.6
    provided this notice is preserved.
 
    These pages are [36]maintained by the GCC team. Last modified
-   2011-09-12[37].
+   2012-11-02[37].
 
 References
 
@@ -4370,7 +5240,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [18]maintained by the GCC team. Last modified
-   2011-04-25[19].
+   2012-11-02[19].
 
 References
 
@@ -4699,7 +5569,7 @@ Other significant improvements
    provided this notice is preserved.
 
    These pages are [12]maintained by the GCC team. Last modified
-   2011-04-25[13].
+   2012-11-02[13].
 
 References
 
@@ -4771,7 +5641,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [16]maintained by the GCC team. Last modified
-   2011-04-25[17].
+   2012-11-02[17].
 
 References
 
@@ -5334,7 +6204,7 @@ GCC 4.1.2
    provided this notice is preserved.
 
    These pages are [12]maintained by the GCC team. Last modified
-   2011-04-25[13].
+   2012-11-02[13].
 
 References
 
@@ -5412,7 +6282,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [18]maintained by the GCC team. Last modified
-   2011-04-25[19].
+   2012-11-02[19].
 
 References
 
@@ -5938,7 +6808,7 @@ GCC 4.0.4
    provided this notice is preserved.
 
    These pages are [21]maintained by the GCC team. Last modified
-   2012-08-26[22].
+   2012-11-02[22].
 
 References
 
@@ -6036,7 +6906,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [22]maintained by the GCC team. Last modified
-   2011-04-25[23].
+   2012-11-02[23].
 
 References
 
@@ -7824,7 +8694,7 @@ GCC 3.4.6
    provided this notice is preserved.
 
    These pages are [417]maintained by the GCC team. Last modified
-   2012-04-24[418].
+   2012-11-02[418].
 
 References
 
@@ -8319,7 +9189,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [21]maintained by the GCC team. Last modified
-   2011-04-25[22].
+   2012-11-02[22].
 
 References
 
@@ -9694,7 +10564,7 @@ GCC 3.3.6
    provided this notice is preserved.
 
    These pages are [558]maintained by the GCC team. Last modified
-   2011-10-24[559].
+   2012-11-02[559].
 
 References
 
@@ -10324,7 +11194,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [17]maintained by the GCC team. Last modified
-   2011-04-25[18].
+   2012-11-02[18].
 
 References
 
@@ -10947,7 +11817,7 @@ GCC 3.2
    provided this notice is preserved.
 
    These pages are [251]maintained by the GCC team. Last modified
-   2011-10-24[252].
+   2012-11-02[252].
 
 References
 
@@ -11250,7 +12120,7 @@ http://gcc.gnu.org/gcc-3.1/index.html
    provided this notice is preserved.
 
    These pages are [14]maintained by the GCC team. Last modified
-   2011-04-25[15].
+   2012-11-02[15].
 
 References
 
@@ -11605,7 +12475,7 @@ Documentation improvements
    provided this notice is preserved.
 
    These pages are [18]maintained by the GCC team. Last modified
-   2012-09-09[19].
+   2012-11-02[19].
 
 References
 
@@ -11682,7 +12552,7 @@ Previous 3.0.x Releases
    provided this notice is preserved.
 
    These pages are [14]maintained by the GCC team. Last modified
-   2011-04-25[15].
+   2012-11-02[15].
 
 References
 
@@ -11873,7 +12743,7 @@ Other significant improvements
    provided this notice is preserved.
 
    These pages are [19]maintained by the GCC team. Last modified
-   2011-04-25[20].
+   2012-11-02[20].
 
 References
 
@@ -11945,7 +12815,7 @@ http://gcc.gnu.org/gcc-3.0/caveats.html
    provided this notice is preserved.
 
    These pages are [7]maintained by the GCC team. Last modified
-   2011-04-25[8].
+   2012-11-02[8].
 
 References
 
@@ -12025,7 +12895,7 @@ References and Acknowledgements
    provided this notice is preserved.
 
    These pages are [16]maintained by the GCC team. Last modified
-   2011-04-25[17].
+   2012-11-02[17].
 
 References
 
@@ -12291,7 +13161,7 @@ Additional Changes in GCC 2.95.3
    provided this notice is preserved.
 
    These pages are [22]maintained by the GCC team. Last modified
-   2011-04-25[23].
+   2012-11-02[23].
 
 References
 
@@ -12374,7 +13244,7 @@ http://gcc.gnu.org/gcc-2.95/caveats.html
    provided this notice is preserved.
 
    These pages are [7]maintained by the GCC team. Last modified
-   2011-04-25[8].
+   2012-11-02[8].
 
 References
 
@@ -12595,7 +13465,7 @@ http://gcc.gnu.org/egcs-1.1/index.html
    provided this notice is preserved.
 
    These pages are [16]maintained by the GCC team. Last modified
-   2011-10-24[17].
+   2012-11-02[17].
 
 References
 
@@ -12695,7 +13565,7 @@ http://gcc.gnu.org/egcs-1.1/features.html
    provided this notice is preserved.
 
    These pages are [10]maintained by the GCC team. Last modified
-   2011-04-25[11].
+   2012-11-02[11].
 
 References
 
@@ -12749,7 +13619,7 @@ http://gcc.gnu.org/egcs-1.1/caveats.html
    provided this notice is preserved.
 
    These pages are [6]maintained by the GCC team. Last modified
-   2011-04-25[7].
+   2012-11-02[7].
 
 References
 
@@ -12945,7 +13815,7 @@ http://gcc.gnu.org/egcs-1.0/index.html
    provided this notice is preserved.
 
    These pages are [11]maintained by the GCC team. Last modified
-   2011-10-24[12].
+   2012-11-02[12].
 
 References
 
@@ -13012,7 +13882,7 @@ http://gcc.gnu.org/egcs-1.0/features.html
    provided this notice is preserved.
 
    These pages are [8]maintained by the GCC team. Last modified
-   2011-10-24[9].
+   2012-11-02[9].
 
 References
 
@@ -13065,7 +13935,7 @@ http://gcc.gnu.org/egcs-1.0/caveats.html
    provided this notice is preserved.
 
    These pages are [6]maintained by the GCC team. Last modified
-   2011-04-25[7].
+   2012-11-02[7].
 
 References