diff options
Diffstat (limited to 'compiler/optimizing/code_generator.h')
-rw-r--r-- | compiler/optimizing/code_generator.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h index 9872efaa4a..576f363a67 100644 --- a/compiler/optimizing/code_generator.h +++ b/compiler/optimizing/code_generator.h @@ -59,8 +59,12 @@ static int32_t constexpr kPrimIntMax = 0x7fffffff; // Maximum value for a primitive long. static int64_t constexpr kPrimLongMax = INT64_C(0x7fffffffffffffff); -static const ReadBarrierOption gCompilerReadBarrierOption = - gUseReadBarrier ? kWithReadBarrier : kWithoutReadBarrier; +// Depending on configuration, `gUseReadBarrier` can be a static const variable. +// Static variable initialization order across different compilation units is not defined, +// so function is used instead of static variable `gCompilerReadBarrierOption`. +inline ReadBarrierOption GetCompilerReadBarrierOption() { + return gUseReadBarrier ? kWithReadBarrier : kWithoutReadBarrier; +} constexpr size_t status_lsb_position = SubtypeCheckBits::BitStructSizeOf(); constexpr size_t status_byte_offset = |