A.3. Changes in GCC

Red Hat Developer Toolset 6.0 is distributed with GCC 6.2.1, which provides a number of bug fixes and new features over the version included in Red Hat Enterprise Linux and the previous version of Red Hat Developer Toolset.

A.3.1. Changes Since Red Hat Developer Toolset 4.1

The following features have been added since the release of GCC in Red Hat Developer Toolset 4.1:
  • The C++ compiler defaults to C++14 rather than C++98. Certain experimental C++17 language and runtime features have also been made available.
  • Source locations are now tracked as ranges rather than points, which allows much richer diagnostics as well as "fixit" hints.
  • New warnings have been implemented for statically detecting certain likely programming errors, including: negative shifts, shift overflow, tautological comparisons, null pointer dereferences, duplicated conditions, and misleading indentation.
  • Various optimizer improvements have been added, particularly in alias analysis which helps to remove abstraction penalties for C++ code, improvements in the vectorizer, redundancy elimination, useless conditional elimination, and others.
  • OpenMP 4.5 support for C and C++ has been added.
  • Additional sanitizers to detect undefined behavior at runtime have been added.
  • A new option, -mfloat128, has been implemented. It allows users to experiment with IEEE 128-bit floating point.
    The 64-bit IBM POWER architecture now supports IEEE 128-bit floating-point using the __float128 data type. Note that Red Hat Developer Toolset does not enable this support default, and __float128 is not supported by the Red Hat Enterprise Linux 7 runtime.

Platform-Specific Improvements

The following improvements have been made to support for individual platforms:
  • Support has been added for Intel Skylake processors with support for the AVX-512 extensions and the following instruction sets: Foundation (F), Byte and Word (BW), Doubleword and Quadword (DQ), Vector Length Extensions (VL), and Conflict Detection (CD).
  • Support has been added for 64-bit ARM (AArch64) LSE extensions and support for new implementations and code-generation tuning for those implementations of the AArch64 ISA.
  • Early support has been added for IEEE 128-bit floating point.
  • Support for the z13 processor of the IBM z Systems architecture has been added.