Skip to content

Commit 03ff41f

Browse files
[SYCL][NFC] Add missing #undef for SPIR-V macros (#5815)
This PR ensures that we don't leak `__SPIRV*` macro definitions from our header files
1 parent 840fffd commit 03ff41f

File tree

2 files changed

+36
-14
lines changed

2 files changed

+36
-14
lines changed

sycl/include/CL/__spirv/spirv_ops.hpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,29 @@ __SPIRV_ATOMICS(__SPIRV_ATOMIC_UNSIGNED, unsigned long long)
274274
__SPIRV_ATOMICS(__SPIRV_ATOMIC_MINMAX, Min)
275275
__SPIRV_ATOMICS(__SPIRV_ATOMIC_MINMAX, Max)
276276

277+
#undef __SPIRV_ATOMICS
278+
#undef __SPIRV_ATOMIC_AND
279+
#undef __SPIRV_ATOMIC_BASE
280+
#undef __SPIRV_ATOMIC_CMP_EXCHANGE
281+
#undef __SPIRV_ATOMIC_EXCHANGE
282+
#undef __SPIRV_ATOMIC_FADD
283+
#undef __SPIRV_ATOMIC_FLOAT
284+
#undef __SPIRV_ATOMIC_FMAX
285+
#undef __SPIRV_ATOMIC_FMIN
286+
#undef __SPIRV_ATOMIC_IADD
287+
#undef __SPIRV_ATOMIC_ISUB
288+
#undef __SPIRV_ATOMIC_LOAD
289+
#undef __SPIRV_ATOMIC_MINMAX
290+
#undef __SPIRV_ATOMIC_OR
291+
#undef __SPIRV_ATOMIC_SIGNED
292+
#undef __SPIRV_ATOMIC_SMAX
293+
#undef __SPIRV_ATOMIC_SMIN
294+
#undef __SPIRV_ATOMIC_STORE
295+
#undef __SPIRV_ATOMIC_UMAX
296+
#undef __SPIRV_ATOMIC_UMIN
297+
#undef __SPIRV_ATOMIC_UNSIGNED
298+
#undef __SPIRV_ATOMIC_XOR
299+
277300
extern SYCL_EXTERNAL __attribute__((opencl_global)) void *
278301
__spirv_GenericCastToPtrExplicit_ToGlobal(const void *Ptr,
279302
__spv::StorageClass::Flag S) noexcept;

sycl/test/basic_tests/macros.cpp

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %s -o %t.out
2-
//==------------------- macros.cpp - SYCL buffer basic test ----------------==//
1+
// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -fsycl-device-only -dM -E %s -o %t.device
2+
// RUN: %clangxx %fsycl-host-only -dM -E %s -o %t.host
33
//
4-
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5-
// See https://llvm.org/LICENSE.txt for license information.
6-
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+
// FIXME: we should also check that we don't leak __SYCL* and SYCL* macro from
5+
// our header files.
6+
// RUN: FileCheck %s < %t.device --check-prefixes=DEVICE,COMMON \
7+
// RUN: --implicit-check-not=__SPIRV
8+
// RUN: FileCheck %s < %t.host --check-prefixes=COMMON \
9+
// RUN: --implicit-check-not=__SPIRV
710
//
8-
//===----------------------------------------------------------------------===//
11+
// COMMON-DAG: #define SYCL_LANGUAGE_VERSION
12+
// COMMON-DAG: #define __SYCL_COMPILER_VERSION
13+
//
14+
// DEVICE-DAG: #define SYCL_EXTERNAL
15+
// DEVICE-DAG: #define __SYCL_DEVICE_ONLY__
916

1017
#include <CL/sycl.hpp>
11-
#include <iostream>
12-
13-
int main() {
14-
std::cout << "SYCL language version: " << SYCL_LANGUAGE_VERSION << std::endl;
15-
std::cout << "SYCL compiler version: " << __SYCL_COMPILER_VERSION
16-
<< std::endl;
17-
return 0;
18-
}

0 commit comments

Comments
 (0)