diff options
author | Nick Clifton <nickc@redhat.com> | 2017-07-31 15:08:32 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2017-07-31 15:08:32 +0100 |
commit | c48a4d983400ade9cfba0531905245eb454afe08 (patch) | |
tree | b92a785c760f79a74b9d6214df44c901002ce2a9 /include/ansidecl.h | |
parent | 7e5ed83b229681f57d807f79fbea3703c8121afa (diff) | |
download | binutils-c48a4d983400ade9cfba0531905245eb454afe08.zip binutils-c48a4d983400ade9cfba0531905245eb454afe08.tar.gz binutils-c48a4d983400ade9cfba0531905245eb454afe08.tar.bz2 |
Fix compile time error when using ansidecl.h with an old version of GCC.
PR 21850
* ansidecl.h (OVERRIDE): Protect check of __cplusplus value with
#idef __cplusplus.
Diffstat (limited to 'include/ansidecl.h')
-rw-r--r-- | include/ansidecl.h | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/include/ansidecl.h b/include/ansidecl.h index 6c0c837..0a74098 100644 --- a/include/ansidecl.h +++ b/include/ansidecl.h @@ -328,22 +328,28 @@ So instead we use the macro below and test it against specific values. */ For gcc, use "-std=c++11" to enable C++11 support; gcc 6 onwards enables this by default (actually GNU++14). */ -#if __cplusplus >= 201103 -/* C++11 claims to be available: use it. final/override were only - implemented in 4.7, though. */ -# if GCC_VERSION < 4007 +#if defined __cplusplus +# if __cplusplus >= 201103 + /* C++11 claims to be available: use it. Final/override were only + implemented in 4.7, though. */ +# if GCC_VERSION < 4007 +# define OVERRIDE +# define FINAL +# else +# define OVERRIDE override +# define FINAL final +# endif +# elif GCC_VERSION >= 4007 + /* G++ 4.7 supports __final in C++98. */ # define OVERRIDE -# define FINAL +# define FINAL __final # else -# define OVERRIDE override -# define FINAL final + /* No C++11 support; leave the macros empty. */ +# define OVERRIDE +# define FINAL # endif -#elif GCC_VERSION >= 4007 -/* G++ 4.7 supports __final in C++98. */ -# define OVERRIDE -# define FINAL __final #else -/* No C++11 support; leave the macros empty: */ + /* No C++11 support; leave the macros empty. */ # define OVERRIDE # define FINAL #endif |