Version 5.0

This version completes our C++17 support.

The following additional C++17 features are now supported:
        - Template argument deduction for class templates
        - Declaring non-type template parameters with auto
        - Guaranteed copy elision
        - Stricter expression evaluation order
        - Pack expansions in using-declarations
        - Extended matching of template template arguments
        - Extensions to aggregate initialization
        - Qualification conversions and pointers to arrays of pointers
        - Constant evaluation for all non-type template arguments

In addition, trigraphs are now disabled by default in C++17 mode (trigraphs
were removed from the language in C++17).

C++17 revised the specification of inheriting constructors.  Version 5.0
includes changes to make our implementation more compatible with the new
specification, but does not yet fully implement "Rewording inheriting
constructors" (P0136R1).

Moments before shipping 5.0, we discovered a defect in our support for
over-aligned allocation (a C++17 feature that we first supported in
version 4.14).  Some cases that use array prefixes to store information
about the array do not provide correctly aligned storage.  We will issue
an update on the cpp-patches list shortly.

The builtin function support incorporates changes in the GCC builtin function
signatures through GCC version 6.4 (for the GCC 6.x versions), GCC version
7.3 (for the GCC 7.x versions) and GCC version 8.2 (for the GCC 8.x
versions).  The clang builtin function signatures incorporate changes through
clang 6.0.1.

As usual, we have fixed bugs, added many minor features, and continued to
improve our various compatibility modes.  See the Changes_5.0 file for
full details (about 7,000 lines).

This release includes new target-dependent variables.  If you are using
run-time target configurations (other than the default ones we provide), you
will need to update those to include new target-specific configuration macros
with appropriate values for each of your target configurations.  The new
target configuration macros that have associated variables are:

       TARG_IA64_ABI_USE_GUARD_ACQUIRE_RELEASE
       TARG_IA64_ABI_USE_INT_STATIC_INIT_GUARD
       TARG_IA64_ABI_USE_VARIANT_ARRAY_COOKIES
       TARG_IA64_ABI_USE_VARIANT_PTR_TO_MEMBER_FUNCTION_REPR
       TARG_IA64_ABI_VARIANT_CTORS_AND_DTORS_RETURN_THIS
       TARG_IA64_ABI_VARIANT_KEY_FUNCTION

Note that if you do not provide the necessary configuration macros, you
will get build errors along the lines of "TARG_XXX_my_config undefined".

In addition, the following target configuration macros have been removed
(see EDGcpfe/19490 in the Changes file for more information):

      TARG_MINIMUM_PACK_ALIGNMENT
      TARG_MAXIMUM_PACK_ALIGNMENT

The default for TARG_LITTLE_ENDIAN has been changed to FALSE (see
EDGcpfe/18933 in the Changes file for more information).
