From: Nick Clifton Date: Fri, 15 Sep 2017 14:53:48 +0000 (+0000) Subject: Fix compile time error when using ansidecl.h with an old version of GCC. X-Git-Tag: upstream/12.2.0~36950 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=efae2b2f9b70196b6e282a2cebb97b6f00714a36;p=platform%2Fupstream%2Fgcc.git Fix compile time error when using ansidecl.h with an old version of GCC. include/ 2017-07-31 Nick Clifton Binutils PR 21850 * ansidecl.h (OVERRIDE): Protect check of __cplusplus value with #idef __cplusplus. From-SVN: r252822 --- diff --git a/include/ChangeLog b/include/ChangeLog index c7ce259..4703588 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -8,6 +8,12 @@ * simple-object.h (simple_object_copy_lto_debug_sections): New function. +2017-07-31 Nick Clifton + + Binutils PR 21850 + * ansidecl.h (OVERRIDE): Protect check of __cplusplus value with + #idef __cplusplus. + 2017-07-02 Jan Kratochvil * dwarf2.def (DW_IDX_compile_unit, DW_IDX_type_unit, DW_IDX_die_offset) diff --git a/include/ansidecl.h b/include/ansidecl.h index f6e1761..ab3b895 100644 --- a/include/ansidecl.h +++ b/include/ansidecl.h @@ -334,22 +334,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