mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
Fix initialization-order bug in llvm::Support::TimeValue. TimeValue::now() is explicitly called during module initialization of lib/Support/Process.cpp. It reads the field of global object PosixZeroTime, which is not guaranteed to be initialized at this point. Found by AddressSanitizer with -fsanitize=init-order option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175509 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -17,11 +17,16 @@
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
const TimeValue::SecondsType
|
||||
TimeValue::PosixZeroTimeSeconds = -946684800;
|
||||
const TimeValue::SecondsType
|
||||
TimeValue::Win32ZeroTimeSeconds = -12591158400ULL;
|
||||
|
||||
const TimeValue TimeValue::MinTime = TimeValue ( INT64_MIN,0 );
|
||||
const TimeValue TimeValue::MaxTime = TimeValue ( INT64_MAX,0 );
|
||||
const TimeValue TimeValue::ZeroTime = TimeValue ( 0,0 );
|
||||
const TimeValue TimeValue::PosixZeroTime = TimeValue ( -946684800,0 );
|
||||
const TimeValue TimeValue::Win32ZeroTime = TimeValue ( -12591158400ULL,0 );
|
||||
const TimeValue TimeValue::PosixZeroTime = TimeValue ( PosixZeroTimeSeconds,0 );
|
||||
const TimeValue TimeValue::Win32ZeroTime = TimeValue ( Win32ZeroTimeSeconds,0 );
|
||||
|
||||
void
|
||||
TimeValue::normalize( void ) {
|
||||
|
Reference in New Issue
Block a user