diff options
Diffstat (limited to 'gcc/cp/NEWS')
-rw-r--r-- | gcc/cp/NEWS | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/gcc/cp/NEWS b/gcc/cp/NEWS index 869ba057b2d..97d4cd83f51 100644 --- a/gcc/cp/NEWS +++ b/gcc/cp/NEWS @@ -1,9 +1,37 @@ +*** Changes in GCC 3.2.2: + +* G++ no longer allows in-class initializations of static data members + that do not have arithmetic or enumeration type. For example: + + struct S { + static const char* const p = "abc"; + }; + + is no longer accepted. + + Use the standards-conformant form: + + struct S { + static const char* const p; + }; + + const char* const S::p = "abc"; + + instead. + + (ISO C++ is even stricter; it does not allow in-class + initializations of floating-point types.) + *** Changes in GCC 3.1: * -fhonor-std and -fno-honor-std have been removed. -fno-honor-std was a workaround to allow std compliant code to work with the non-std compliant libstdc++-v2. libstdc++-v3 is std compliant. +* The C++ ABI has been fixed so that `void (A::*)() const' is mangled as + "M1AKFvvE", rather than "MK1AFvvE" as before. This change only affects + pointer to cv-qualified member function types. + * The C++ ABI has been changed to correctly handle this code: struct A { @@ -42,7 +70,10 @@ * The C++ ABI has been changed so that when a parameter is passed by value, any cleanup for that parameter is performed in the caller, as specified - by the ia64 C++ ABI, rather than the called function as before. + by the ia64 C++ ABI, rather than the called function as before. As a + result, classes with a non-trivial destructor but a trivial copy + constructor will be passed and returned by invisible reference, rather + than by bitwise copy as before. * G++ now supports the "named return value optimization": for code like |