llvm/clang/test/Driver/threadsafe-statics.clcpp
Justas Janickas b13fc7311e [OpenCL] __cpp_threadsafe_static_init is by default undefined in OpenCL mode.
Definition of `__cpp_threadsafe_static_init` macro is controlled by
language option Opts.ThreadsafeStatics. This patch sets language
option to false by default in OpenCL mode, resulting in macro
`__cpp_threadsafe_static_init` being undefined. Default value can be
overridden using command line option -fthreadsafe-statics.

Change is supposed to address portability because not all OpenCL
vendors support thread safe implementation of static initialization.

Fixes llvm.org/PR48012

Differential Revision: https://reviews.llvm.org/D107163
2021-08-02 14:10:15 +01:00

12 lines
632 B
Plaintext

// RUN: %clang -### -c -DNO_THREADSAFE_STATICS %s 2>&1 | FileCheck --check-prefix=CHECK-NO-THREADSAFE-STATICS %s
// RUN: %clang -### -fno-threadsafe-statics -DNO_THREADSAFE_STATICS -c %s 2>&1 | FileCheck --check-prefix=CHECK-NO-THREADSAFE-STATICS %s
// CHECK-NO-THREADSAFE-STATICS: "-cc1"
// CHECK-NO-THREADSAFE-STATICS: "-fno-threadsafe-statics"
// CHECK-NO-THREADSAFE-STATICS-NOT: "-fthreadsafe-statics"
// RUN: %clang -### -fthreadsafe-statics -DTHREADSAFE_STATICS -c %s 2>&1 | FileCheck --check-prefix=CHECK-THREADSAFE-STATICS %s
// CHECK-THREADSAFE-STATICS: "-cc1"
// CHECK-THREADSAFE-STATICS-NOT: "-fno-threadsafe-statics"