Switch all uses of LLVM_OVERRIDE to just use 'override' directly.
[oota-llvm.git] / include / llvm / Support / Compiler.h
index 321910c0139f3148f3c0ccf817faa31276a2a9be..c2545542480214436f50619bd1a78ad5f11eb6ac 100644 (file)
 #define LLVM_DELETED_FUNCTION
 #endif
 
+/// LLVM_FINAL - Expands to 'final' if the compiler supports it.
+/// Use to mark classes or virtual methods as final.
+#if __has_feature(cxx_override_control) || \
+    (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC_PREREQ(4, 7)) || \
+    LLVM_MSC_PREREQ(1700)
+#define LLVM_FINAL final
+#else
+#define LLVM_FINAL
+#endif
+
 /// LLVM_OVERRIDE - Expands to 'override' if the compiler supports it.
 /// Use to mark virtual methods as overriding a base class method.
 #if __has_feature(cxx_override_control) || \