Author: Leonard Chan Date: 2020-10-08T10:30:54-07:00 New Revision: 64c0792946b792839b2f39e4e208fdd7398aaea0
URL: https://github.com/llvm/llvm-project/commit/64c0792946b792839b2f39e4e208fdd7398aaea0 DIFF: https://github.com/llvm/llvm-project/commit/64c0792946b792839b2f39e4e208fdd7398aaea0.diff LOG: [clang][feature] Add cxx_abi_relative_vtable feature This will be enabled if relative vtables is enabled. Differential revision: https://reviews.llvm.org/D85924 Added: clang/test/Lexer/has_feature_cxx_abi_relative_vtable.cpp Modified: clang/include/clang/Basic/Features.def Removed: ################################################################################ diff --git a/clang/include/clang/Basic/Features.def b/clang/include/clang/Basic/Features.def index 999bcb7e2e29..302c56763c39 100644 --- a/clang/include/clang/Basic/Features.def +++ b/clang/include/clang/Basic/Features.def @@ -256,5 +256,7 @@ EXTENSION(gnu_asm, LangOpts.GNUAsm) EXTENSION(gnu_asm_goto_with_outputs, LangOpts.GNUAsm) EXTENSION(matrix_types, LangOpts.MatrixTypes) +FEATURE(cxx_abi_relative_vtable, LangOpts.CPlusPlus && LangOpts.RelativeCXXABIVTables) + #undef EXTENSION #undef FEATURE diff --git a/clang/test/Lexer/has_feature_cxx_abi_relative_vtable.cpp b/clang/test/Lexer/has_feature_cxx_abi_relative_vtable.cpp new file mode 100644 index 000000000000..d0f0c27b09d3 --- /dev/null +++ b/clang/test/Lexer/has_feature_cxx_abi_relative_vtable.cpp @@ -0,0 +1,13 @@ +// RUN: %clang_cc1 -E %s -triple x86_64-linux-gnu -x c++ -o - | FileCheck %s --check-prefix=NO-RELATIVE-VTABLE +// RUN: %clang_cc1 -E %s -triple x86_64-linux-gnu -x c++ -fexperimental-relative-c++-abi-vtables -o - | FileCheck %s --check-prefix=RELATIVE-VTABLE +// RUN: %clang_cc1 -E %s -triple x86_64-linux-gnu -x c++ -fno-experimental-relative-c++-abi-vtables -o - | FileCheck %s --check-prefix=NO-RELATIVE-VTABLE +// RUN: %clang_cc1 -E %s -triple x86_64-linux-gnu -x c -fexperimental-relative-c++-abi-vtables -o - | FileCheck %s --check-prefix=NO-RELATIVE-VTABLE + +#if __has_feature(cxx_abi_relative_vtable) +int has_relative_vtable(); +#else +int has_no_relative_vtable(); +#endif + +// RELATIVE-VTABLE: has_relative_vtable +// NO-RELATIVE-VTABLE: has_no_relative_vtable _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits