The following sections specifies the GCC compiler extensions that are not supported by C/C++test. The limitations apply to the supported GCC-based compilers, as well as custom GCC compiler builds. See http://gcc.gnu.org/onlinedocs for more information about GNU compiler extensions.
Arrays of Variable Length as Arguments to Functions
void tester (int len, char data[len][len]) { } |
Virtual Function With Overridden Return Type
class A { public: virtual void* a(); }; class B: public A { public: virtual B* a(); // Return type changed from void* to (compatible) B*. // It is ok in GCC but EDG will complain }; |
Restricting Pointer Aliasing for Member functions
class T { public: void fn(); }; void T::fn () __restrict__ // EDG won't compile this { } |
Function Attributes
void fatal () __attribute__ ((noreturn)); void fatal () { } typedef void voidfn (); volatile voidfn fatal; // EDG: declaration is incompatible with // "void fatal()" |
Friend Declarations
class A; namespace N { class B { friend class A; // In GCC 4.0+ it refer to N::A (which has not been // declared yet) But EDG and older GCCs refer to ::A int _private; }; class A { void foo() { B b; b._private = 0; // EDG inaccessible field. } }; } |
Same as for GCC 4.0.x.
Same as for GCC 4.0.x.
Same as for GCC 4.0.x
Same as for GCC 4.0.x
Same as for GCC 4.0.x
Same as for GCC 4.0.x
Same as for GCC 4.0.x
Same as for GCC 4.0.x
Same as for GCC 4.0.x
Same as for GCC 4.0.x.
Same as for GCC 4.0.x
Same as for GCC 4.0.x.
Same as for GCC 4.0.x.
C++20 features are not supported.
Same as for GCC 4.0.x.
C++20 features are not supported.
Same as for GCC 4.0.x.
C++20 features are not supported.
Same as for GCC 4.0.x.
C++20 features are not supported.