diff options
| author | Aidan Hobson Sayers <aidanhs@cantab.net> | 2017-10-10 13:11:28 +0100 |
|---|---|---|
| committer | Aidan Hobson Sayers <aidanhs@cantab.net> | 2017-10-10 13:14:51 +0100 |
| commit | 8628d51c3b4c9a45e9066019f0e0853da7643794 (patch) | |
| tree | df94651d0061bdf5db75e3cd6c8cd3b3e293aa5f /src/rustllvm/RustWrapper.cpp | |
| parent | 911d95bfe3076f2ed61798a1cf7373db9852c64f (diff) | |
| download | rust-8628d51c3b4c9a45e9066019f0e0853da7643794.tar.gz rust-8628d51c3b4c9a45e9066019f0e0853da7643794.zip | |
Band-aid fix to stop race conditions in llvm errors
This is a big hammer, but should be effective at completely removing a few issues, including inconsistent error messages and segfaults when LLVM workers race to report results LLVM_THREAD_LOCAL has been present in LLVM since 8 months before 3.7 (the earliest supported LLVM version that Rust can use) Maybe fixes #43402 (third time lucky?)
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index bc616f64881..20ea8d70302 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -57,7 +57,7 @@ static AtomicOrdering fromRust(LLVMAtomicOrdering Ordering) { llvm_unreachable("Invalid LLVMAtomicOrdering value!"); } -static char *LastError; +static LLVM_THREAD_LOCAL char *LastError; extern "C" LLVMMemoryBufferRef LLVMRustCreateMemoryBufferWithContentsOfFile(const char *Path) { |
