diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -1124,6 +1124,9 @@ Builder.defineMacro("__GLIBCXX_BITSIZE_INT_N_0", "128"); } + if (LangOpts.RelativeCXXABIVTables) + Builder.defineMacro("__RELATIVE_CXX_ABI_VTABLES"); + // Get other target #defines. TI.getTargetDefines(LangOpts, Builder); } diff --git a/clang/test/Preprocessor/predefined-macros.c b/clang/test/Preprocessor/predefined-macros.c --- a/clang/test/Preprocessor/predefined-macros.c +++ b/clang/test/Preprocessor/predefined-macros.c @@ -199,3 +199,7 @@ // CHECK-HIP-DEV: #define __HIPCC__ 1 // CHECK-HIP-DEV: #define __HIP_DEVICE_COMPILE__ 1 // CHECK-HIP-DEV: #define __HIP__ 1 + +// RUN: %clang_cc1 %s -E -dM -o - -fexperimental-relative-c++-abi-vtables \ +// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-RELATIVE-VTABLES +// CHECK-RELATIVE-VTABLES: #define __RELATIVE_CXX_ABI_VTABLES 1