Author: Joseph Huber Date: 2026-05-07T09:46:14-05:00 New Revision: c8f4fe35a29534d420cd73f317fa1dabfe7560ee
URL: https://github.com/llvm/llvm-project/commit/c8f4fe35a29534d420cd73f317fa1dabfe7560ee DIFF: https://github.com/llvm/llvm-project/commit/c8f4fe35a29534d420cd73f317fa1dabfe7560ee.diff LOG: [Clang] Add macro for `__VULKAN__` environment (#196103) Summary: Adds a macro like for `__LINUX__` or `__WIN32`. The intention here is to let code differentiate between vulkan variants or not. Added: Modified: clang/lib/Basic/Targets/SPIR.cpp clang/test/Preprocessor/predefined-macros.c Removed: ################################################################################ diff --git a/clang/lib/Basic/Targets/SPIR.cpp b/clang/lib/Basic/Targets/SPIR.cpp index e55a6ed8bc63f..b6d6b213d78ed 100644 --- a/clang/lib/Basic/Targets/SPIR.cpp +++ b/clang/lib/Basic/Targets/SPIR.cpp @@ -89,6 +89,8 @@ void BaseSPIRVTargetInfo::getTargetDefines(const LangOptions &Opts, DefineStd(Builder, "SPIRV", Opts); if (Opts.HLSL) DefineStd(Builder, "spirv", Opts); + if (getTriple().isVulkanOS()) + Builder.defineMacro("__VULKAN__"); } void SPIRVTargetInfo::getTargetDefines(const LangOptions &Opts, diff --git a/clang/test/Preprocessor/predefined-macros.c b/clang/test/Preprocessor/predefined-macros.c index 8dbb477be4c5d..ab85cfc00b42a 100644 --- a/clang/test/Preprocessor/predefined-macros.c +++ b/clang/test/Preprocessor/predefined-macros.c @@ -238,6 +238,13 @@ // CHECK-SPIRV64-NOT: #define __SPIRV32__ 1 // CHECK-SPIRV64-NOT: #define __spirv__ 1 +// RUN: %clang_cc1 %s -E -dM -o - -x c -triple spirv64-unknown-vulkan \ +// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIRV64-VULKAN +// CHECK-SPIRV64-VULKAN-DAG: #define __SPIRV__ 1 +// CHECK-SPIRV64-VULKAN-DAG: #define __SPIRV64__ 1 +// CHECK-SPIRV64-VULKAN-DAG: #define __VULKAN__ 1 +// CHECK-SPIRV64-VULKAN-NOT: #define __SPIRV32__ 1 + // RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spirv64-amd-amdhsa \ // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIRV64-AMDGCN // RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spirv64-amd-amdhsa -fatomic-ignore-denormal-mode \ _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
