This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 1/2] add GCC_FINAL to ansidecl.h
- From: tbsaunde+gcc at tbsaunde dot org
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 10 Aug 2015 08:05:13 -0400
- Subject: [PATCH 1/2] add GCC_FINAL to ansidecl.h
- Authentication-results: sourceware.org; auth=none
From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
Hi,
This allows classes and virtual functions to be marked as final if the compiler
supports C++11, or is gcc 4.7 or later.
bootstrapped + regtested on x86_64-linux-gnu, ok?
Trev
include/ChangeLog:
2015-08-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* ansidecl.h (GCC_FINAL): New macro.
---
include/ansidecl.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/include/ansidecl.h b/include/ansidecl.h
index 224627d..6e4bfc2 100644
--- a/include/ansidecl.h
+++ b/include/ansidecl.h
@@ -313,6 +313,15 @@ 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
+#else
+#define GCC_FINAL
+#endif
+
#ifdef __cplusplus
}
#endif
--
2.4.0