From 2121e959e1f601542e8c1712336bbd9994593936 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 14 Oct 2016 15:24:58 +0000 Subject: [PATCH] Move OVERRIDE/FINAL from gcc/coretypes.h to include/ansidecl.h So that GDB and other projects that share the top level can use them. Bootstrapped with all default languages + jit on x86-64 Fedora 23. gcc/ChangeLog: 2016-10-14 Pedro Alves * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h. include/ChangeLog: 2016-10-14 Pedro Alves * ansidecl.h (GCC_FINAL): Delete. (OVERRIDE, FINAL): New, moved from gcc/coretypes.h. From-SVN: r241166 --- gcc/ChangeLog | 5 +++++ gcc/coretypes.h | 25 ------------------------- include/ChangeLog | 5 +++++ include/ansidecl.h | 28 ++++++++++++++++++++++------ 4 files changed, 32 insertions(+), 31 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index efa78dd8e0a..6638830bf80 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-10-14 Pedro Alves + + * coretypes.h (OVERRIDE, FINAL): Delete, moved to + include/ansidecl.h. + 2016-10-14 Catherine Moore * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize diff --git a/gcc/coretypes.h b/gcc/coretypes.h index 70f909dbf7f..869f858d4a1 100644 --- a/gcc/coretypes.h +++ b/gcc/coretypes.h @@ -339,31 +339,6 @@ typedef void (*gt_pointer_operator) (void *, void *); typedef unsigned char uchar; #endif -/* C++11 adds the ability to add "override" after an implementation of a - virtual function in a subclass, to: - (A) document that this is an override of a virtual function - (B) allow the compiler to issue a warning if it isn't (e.g. a mismatch - of the type signature). - - Similarly, it allows us to add a "final" to indicate that no subclass - may subsequently override the vfunc. - - Provide OVERRIDE and FINAL as macros, allowing us to get these benefits - when compiling with C++11 support, but without requiring C++11. - - 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: */ -#define OVERRIDE override -#define FINAL final -#else -/* No C++11 support; leave the macros empty: */ -#define OVERRIDE -#define FINAL -#endif - /* Most host source files will require the following headers. */ #if !defined (GENERATOR_FILE) && !defined (USED_FOR_TARGET) #include "machmode.h" diff --git a/include/ChangeLog b/include/ChangeLog index a37976855b5..18bc5ff8d96 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2016-10-14 Pedro Alves + + * ansidecl.h (GCC_FINAL): Delete. + (OVERRIDE, FINAL): New, moved from gcc/coretypes.h. + 2016-08-15 Jakub Jelinek * dwarf2.def (DW_AT_string_length_bit_size, diff --git a/include/ansidecl.h b/include/ansidecl.h index 6e4bfc21f25..ee934216f07 100644 --- a/include/ansidecl.h +++ b/include/ansidecl.h @@ -313,13 +313,29 @@ So instead we use the macro below and test it against specific values. */ #define ENUM_BITFIELD(TYPE) unsigned int #endif - /* This is used to mark a class or virtual function as final. */ -#if __cplusplus >= 201103L -#define GCC_FINAL final -#elif GCC_VERSION >= 4007 -#define GCC_FINAL __final +/* C++11 adds the ability to add "override" after an implementation of a + virtual function in a subclass, to: + (A) document that this is an override of a virtual function + (B) allow the compiler to issue a warning if it isn't (e.g. a mismatch + of the type signature). + + Similarly, it allows us to add a "final" to indicate that no subclass + may subsequently override the vfunc. + + Provide OVERRIDE and FINAL as macros, allowing us to get these benefits + when compiling with C++11 support, but without requiring C++11. + + 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: */ +#define OVERRIDE override +#define FINAL final #else -#define GCC_FINAL +/* No C++11 support; leave the macros empty: */ +#define OVERRIDE +#define FINAL #endif #ifdef __cplusplus -- 2.30.2