Merge pull request #2324 from leaf-potato/unittest
Fix unit test running error under arch64
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
#endif // _MSC_VER
|
||||
|
||||
#define BAIDU_VOLATILE_THREAD_LOCAL(type, var_name, default_value) \
|
||||
BAIDU_THREAD_LOCAL type var_name = default_value; \
|
||||
BAIDU_THREAD_LOCAL type var_name = default_value; \
|
||||
static __attribute__((noinline, unused)) type get_##var_name(void) { \
|
||||
asm volatile(""); \
|
||||
return var_name; \
|
||||
@@ -46,10 +46,10 @@
|
||||
var_name = v; \
|
||||
}
|
||||
|
||||
#if defined(__clang__)
|
||||
// Clang compiler is incorrectly caching the address of thread_local variables
|
||||
// across a suspend-point. The following macros used to disable the volatile
|
||||
// thread local access optimization.
|
||||
#if (defined (__aarch64__) && defined (__GNUC__)) || defined(__clang__)
|
||||
// GNU compiler under aarch and Clang compiler is incorrectly caching the
|
||||
// address of thread_local variables across a suspend-point. The following
|
||||
// macros used to disable the volatile thread local access optimization.
|
||||
#define BAIDU_GET_VOLATILE_THREAD_LOCAL(var_name) get_##var_name()
|
||||
#define BAIDU_GET_PTR_VOLATILE_THREAD_LOCAL(var_name) get_ptr_##var_name()
|
||||
#define BAIDU_SET_VOLATILE_THREAD_LOCAL(var_name, value) set_##var_name(value)
|
||||
|
||||
Reference in New Issue
Block a user