diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 933a91877c9b8..45dedf1d82553 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -475,6 +475,8 @@ static void InitializeStandardPredefinedMacros(const TargetInfo &TI, } if (LangOpts.SYCL) { + // DPCPP compiler identification macro + Builder.defineMacro("__DPCPP_COMPILER__", "1"); // SYCL Version is set to a value when building SYCL applications if (LangOpts.getSYCLVersion() == LangOptions::SYCL_2017) { Builder.defineMacro("CL_SYCL_LANGUAGE_VERSION", "121"); diff --git a/clang/test/Preprocessor/predefined-macros.c b/clang/test/Preprocessor/predefined-macros.c index e406b9a705709..bf57ab97c5d9e 100644 --- a/clang/test/Preprocessor/predefined-macros.c +++ b/clang/test/Preprocessor/predefined-macros.c @@ -214,3 +214,11 @@ // 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 -fsycl -o - \ +// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-FSYCL +// CHECK-FSYCL: #define __DPCPP_COMPILER__ 1 + +// RUN: %clang_cc1 %s -E -dM -o - \ +// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-NO-FSYCL +// CHECK-NO-FSYCL-NOT: #define __DPCPP_COMPILER__ 1