[clang] opencl: Ensure printf symbol is not mangled. (PR #150210)

via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 23 04:25:49 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Felix Weiglhofer (fweig)

<details>
<summary>Changes</summary>

Fixes #<!-- -->122453.

---
Full diff: https://github.com/llvm/llvm-project/pull/150210.diff


1 Files Affected:

- (modified) clang/lib/Headers/opencl-c-base.h (+9-1) 


``````````diff
diff --git a/clang/lib/Headers/opencl-c-base.h b/clang/lib/Headers/opencl-c-base.h
index 2b7f5043e09e4..49987a044e253 100644
--- a/clang/lib/Headers/opencl-c-base.h
+++ b/clang/lib/Headers/opencl-c-base.h
@@ -697,7 +697,15 @@ template <typename _Tp> struct __remove_address_space<__constant _Tp> {
 #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
 // OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
 
-int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2)));
+#ifdef __OPENCL_CPP_VERSION__
+#define CLINKAGE extern "C"
+#else
+#define CLINKAGE
+#endif
+
+CLINKAGE int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2)));
+
+#undef CLINKAGE
 #endif
 
 #ifdef cl_intel_device_side_avc_motion_estimation

``````````

</details>


https://github.com/llvm/llvm-project/pull/150210


More information about the cfe-commits mailing list