From: Petr Hosek Date: Mon, 17 Sep 2018 05:25:47 +0000 (+0000) Subject: [Lexer] Add xray_instrument feature X-Git-Tag: llvmorg-8.0.0-rc1~8588 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=00f51c0904dac4983d196e04bffac062edb25511;p=platform%2Fupstream%2Fllvm.git [Lexer] Add xray_instrument feature This can be used to detect whether the code is being built with XRay instrumentation using the __has_feature(xray_instrument) predicate. Differential Revision: https://reviews.llvm.org/D52159 llvm-svn: 342358 --- diff --git a/clang/include/clang/Basic/Features.def b/clang/include/clang/Basic/Features.def index 05c5a5b..f816d18 100644 --- a/clang/include/clang/Basic/Features.def +++ b/clang/include/clang/Basic/Features.def @@ -37,6 +37,7 @@ FEATURE(address_sanitizer, FEATURE(hwaddress_sanitizer, LangOpts.Sanitize.hasOneOf(SanitizerKind::HWAddress | SanitizerKind::KernelHWAddress)) +FEATURE(xray_instrument, LangOpts.XRayInstrument) FEATURE(assume_nonnull, true) FEATURE(attribute_analyzer_noreturn, true) FEATURE(attribute_availability, true) diff --git a/clang/test/Lexer/has_feature_xray_instrument.cpp b/clang/test/Lexer/has_feature_xray_instrument.cpp new file mode 100644 index 0000000..cd2750d --- /dev/null +++ b/clang/test/Lexer/has_feature_xray_instrument.cpp @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -E -fxray-instrument %s -o - | FileCheck --check-prefix=CHECK-XRAY %s +// RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-NO-XRAY %s + +#if __has_feature(xray_instrument) +int XRayInstrumentEnabled(); +#else +int XRayInstrumentDisabled(); +#endif + +// CHECK-XRAY: XRayInstrumentEnabled +// CHECK-NO-XRAY: XRayInstrumentDisabled