|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5 |
|
| #
35ab2a11 |
| 02-Jun-2022 |
Paul Pluzhnikov <[email protected]> |
Fix a buglet in remove_dots().
The function promises to canonicalize the path, but neglected to do so for the root component.
For example, calling remove_dots("/tmp/foo.c", Style::windows_backslash
Fix a buglet in remove_dots().
The function promises to canonicalize the path, but neglected to do so for the root component.
For example, calling remove_dots("/tmp/foo.c", Style::windows_backslash) resulted in "/tmp\foo.c". Now it produces "\tmp\foo.c".
Also fix FIXME in the corresponding test.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D126412
show more ...
|
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
6aa8a836 |
| 08-Apr-2022 |
Paul Robinson <[email protected]> |
[RGT] Use GTEST_SKIP() in more places where we skip a test
Simply returning will report the test as PASSED when it didn't really do anything. SKIPPED is the correct result for these.
Found by the R
[RGT] Use GTEST_SKIP() in more places where we skip a test
Simply returning will report the test as PASSED when it didn't really do anything. SKIPPED is the correct result for these.
Found by the Rotten Green Tests project.
show more ...
|
| #
ffaf667a |
| 08-Apr-2022 |
Alexandre Ganea <[email protected]> |
[Support][unittests] Silence warning when building with Clang 13 on Windows.
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
| #
e9211e03 |
| 20-Jan-2022 |
serge-sans-paille <[email protected]> |
Remove dependency from raw_ostream on <chrono>
The tryLockFor method from raw_fd_sotreamis the sole user of that header, and it's not referenced in the mono repo. I still chose to keep it (may be us
Remove dependency from raw_ostream on <chrono>
The tryLockFor method from raw_fd_sotreamis the sole user of that header, and it's not referenced in the mono repo. I still chose to keep it (may be useful for downstream user) but added a transient type that's forward declared to hold the duration parameter.
Notable changes:
- "llvm/Support/Duration.h" must be included in order to use tryLockFor. - "llvm/Support/raw_ostream.h" no longer includes <chrono>
This sole change has an interesting impact on the number of processed line, as measured by:
clang++ -E -Iinclude -I../llvm/include ../llvm/lib/Support/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l
before: 7917500 after: 7835142
Discourse thread on the topic: https://llvm.discourse.group/t/include-what-you-use-include-cleanup/5831
show more ...
|
| #
38ac4093 |
| 21-Jan-2022 |
Archibald Elliott <[email protected]> |
[NFCI][Support] Avoid ASSERT_/EXPECT_TRUE(A <op> B)
The error messages in tests are far better when a test fails if the test is written using ASSERT_/EXPECT_<operator>(A, B) rather than ASSERT_/EXPE
[NFCI][Support] Avoid ASSERT_/EXPECT_TRUE(A <op> B)
The error messages in tests are far better when a test fails if the test is written using ASSERT_/EXPECT_<operator>(A, B) rather than ASSERT_/EXPECT_TRUE(A <operator> B).
This commit updates all of llvm/unittests/Support to use these macros where possible.
This change has not been possible in: - llvm/unittests/Support/FSUniqueIDTest.cpp - due to not overloading operators beyond ==, != and <. - llvm/unittests/Support/BranchProbabilityTest.cpp - where the unchanged tests are of the operator overloads themselves.
There are other possibilities of this conversion not being valid, which have not applied in these tests, as they do not use NULL (they use nullptr), and they do not use const char* (they use std::string or StringRef).
Reviewed By: mubashar_
Differential Revision: https://reviews.llvm.org/D117319
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc2 |
|
| #
345223a7 |
| 07-Dec-2021 |
Duncan P. N. Exon Smith <[email protected]> |
Support: Extract sys::fs::readNativeFileToEOF() from MemoryBuffer
Extract the `readNativeFile()` loop from `MemoryBuffer::getMemoryBufferForStream()` into `readNativeFileToEOF()` to allow reuse. The
Support: Extract sys::fs::readNativeFileToEOF() from MemoryBuffer
Extract the `readNativeFile()` loop from `MemoryBuffer::getMemoryBufferForStream()` into `readNativeFileToEOF()` to allow reuse. The chunk size is configurable; the default of `4*4096` is exposed as `sys::fs::DefaultReadChunkSize` to allow sizing of SmallVectors.
There's somewhere I'd like to read a usually-small file without overhead of a MemoryBuffer; extracting existing logic rather than duplicating it.
Differential Revision: https://reviews.llvm.org/D115397
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
f4d83c56 |
| 05-Oct-2021 |
Martin Storsjö <[email protected]> |
[Support] [Windows] Convert paths to the preferred form
This normalizes most paths (except ones input from the user as command line arguments) into the preferred form, if `real_style()` evaluates to
[Support] [Windows] Convert paths to the preferred form
This normalizes most paths (except ones input from the user as command line arguments) into the preferred form, if `real_style()` evaluates to `windows_forward`.
Differential Revision: https://reviews.llvm.org/D111880
show more ...
|
| #
a8b54834 |
| 04-Oct-2021 |
Martin Storsjö <[email protected]> |
[Support] Add a new path style for Windows with forward slashes
This behaves just like the regular Windows style, with both separator forms accepted, but with get_separator() returning forward slash
[Support] Add a new path style for Windows with forward slashes
This behaves just like the regular Windows style, with both separator forms accepted, but with get_separator() returning forward slashes.
Add a more descriptive name for the existing style, keeping the old name around as an alias initially.
Add a new function `make_preferred()` (like the C++17 `std::filesystem::path` function with the same name), which converts windows paths to the preferred separator form (while this one works on any platform and takes a `path::Style` argument).
Contrary to `native()` (just like `make_preferred()` in `std::filesystem`), this doesn't do anything at all on Posix, it doesn't try to reinterpret backslashes into forward slashes there.
Differential Revision: https://reviews.llvm.org/D111879
show more ...
|
| #
8077a19f |
| 29-Oct-2021 |
Duncan P. N. Exon Smith <[email protected]> |
Support: Remove sys::path::is_style_native()
Remove sys::path::is_style_native(), which was added alongside is_style_windows() and is_style_posix().
Thinking a bit about the windows forward-slash s
Support: Remove sys::path::is_style_native()
Remove sys::path::is_style_native(), which was added alongside is_style_windows() and is_style_posix().
Thinking a bit about the windows forward-slash style variant in https://reviews.llvm.org/D111879, it's not clear to me how the new sys::path::is_style_native() should behave for them.
- Should it return true for both `windows_slash` and `windows_backslash`? - Should it return true for only one of them?
I can think of hypothetical uses and justifications for either one, and I could also imagine clients guessing either behaviour when just looking at the function name in code.
Call sites will probably be more clear if they don't use this function, and instead write out the code:
``` // Is "S" the coarse-grained native style? if (is_style_windows(S) == is_style_windows(Style::native))
// Is "S" the fine-grained native style? if (is_style_windows(S) == is_style_windows(Style::native) && preferred_separator(S) == preferred_separator(Style::native)) ```
Can always add this again if someone needs it and can justify one behaviour over the other, but for now might as well avoid growing users.
show more ...
|
| #
0d5b6423 |
| 21-Oct-2021 |
Duncan P. N. Exon Smith <[email protected]> |
Support: Reduce stats in fs::copy_file on Darwin
fs::copy_file() on Darwin has a nice optimization to clone the file when possible. Change the implementation to use clonefile() directly, instead of
Support: Reduce stats in fs::copy_file on Darwin
fs::copy_file() on Darwin has a nice optimization to clone the file when possible. Change the implementation to use clonefile() directly, instead of the higher-level copyfile(). The latter does the wrong thing for symlinks, which requires calling `stat` first...
With that out of the way, optimistically call clonefile() all the time, and then for any error that's recoverable try again with copyfile() (without the COPYFILE_CLONE flag, as before).
Differential Revision: https://reviews.llvm.org/D112250
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
4e4883e1 |
| 16-Sep-2021 |
Duncan P. N. Exon Smith <[email protected]> |
Support: Expose sys::path::is_style_{posix,windows,native}()
Expose three helpers in namespace llvm::sys::path to detect the path rules followed by sys::path::Style.
- is_style_posix() - is_style_w
Support: Expose sys::path::is_style_{posix,windows,native}()
Expose three helpers in namespace llvm::sys::path to detect the path rules followed by sys::path::Style.
- is_style_posix() - is_style_windows() - is_style_native()
This are constexpr functions that that will allow a bunch of path-related code to stop checking `_WIN32`.
Originally I looked at adding system_style(), analogous to sys::endian::system_endianness(), but future patches (from others) will add more Windows style variants for slash preferences. These helpers should be resilient to that change, allowing callers to detect basic path rules.
Differential Revision: https://reviews.llvm.org/D112288
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
cbed6e5b |
| 12-May-2021 |
Abhina Sreeskantharajan <[email protected]> |
[SystemZ][z/OS] Fix warning caused by umask returning a signed integer type
On z/OS, umask() returns an int because mode_t is type int, however it is being compared to an unsigned int. This patch fi
[SystemZ][z/OS] Fix warning caused by umask returning a signed integer type
On z/OS, umask() returns an int because mode_t is type int, however it is being compared to an unsigned int. This patch fixes the following warning we see when compiling Path.cpp.
``` comparison of integers of different signs: 'const int' and 'const unsigned int' ```
Reviewed By: muiez
Differential Revision: https://reviews.llvm.org/D102326
show more ...
|
| #
0db6488a |
| 09-Apr-2021 |
Duncan P. N. Exon Smith <[email protected]> |
Support: Add move semantics to mapped_file_region
Update llvm::sys::fs::mapped_file_region to have a move constructor and a move assignment operator, allowing it to be used as an Optional. Also, upd
Support: Add move semantics to mapped_file_region
Update llvm::sys::fs::mapped_file_region to have a move constructor and a move assignment operator, allowing it to be used as an Optional. Also, update FileOutputBuffer's OnDiskBuffer to take advantage of this, avoiding an extra allocation from the unique_ptr.
A nice follow-up would be to make the mapped_file_region constructor private and replace its use with a factory function, such as mapped_file_region::create(), that returns an Expected (or ErrorOr). I don't plan on doing that immediately, but I might swing back later.
No functionality change, besides the saved allocation in OnDiskBuffer.
Differential Revision: https://reviews.llvm.org/D100159
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init |
|
| #
429088b9 |
| 27-Jan-2021 |
Duncan P. N. Exon Smith <[email protected]> |
Support: Extract fs::resize_file_before_mapping_readwrite from FileOutputBuffer
Add a variant of `fs::resize_file` for use immediately before opening a file with `mapped_file_region::readwrite`. On
Support: Extract fs::resize_file_before_mapping_readwrite from FileOutputBuffer
Add a variant of `fs::resize_file` for use immediately before opening a file with `mapped_file_region::readwrite`. On Windows, `_chsize` (`ftruncate`) is slow, but `CreateFileMapping` (`mmap`) automatically extends the file so the call to `fs::resize_file` can be skipped.
This optimization was added to `FileOutputBuffer` in da9bc2e56d5a5c6332a9def1a0065eb399182b93; this commit just extracts the logic out and adds a unit test.
Differential Revision: https://reviews.llvm.org/D95490
show more ...
|
| #
82b3e28e |
| 06-Apr-2021 |
Abhina Sreeskantharajan <[email protected]> |
[SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text
Problem: On SystemZ we need to open text files in text mode. On Windows, files opened in text mode adds a C
[SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text
Problem: On SystemZ we need to open text files in text mode. On Windows, files opened in text mode adds a CRLF '\r\n' which may not be desirable.
Solution: This patch adds two new flags
- OF_CRLF which indicates that CRLF translation is used. - OF_TextWithCRLF = OF_Text | OF_CRLF indicates that the file is text and uses CRLF translation.
Developers should now use either the OF_Text or OF_TextWithCRLF for text files and OF_None for binary files. If the developer doesn't want carriage returns on Windows, they should use OF_Text, if they do want carriage returns on Windows, they should use OF_TextWithCRLF.
So this is the behaviour per platform with my patch:
z/OS: OF_None: open in binary mode OF_Text : open in text mode OF_TextWithCRLF: open in text mode
Windows: OF_None: open file with no carriage return OF_Text: open file with no carriage return OF_TextWithCRLF: open file with carriage return
The Major change is in llvm/lib/Support/Windows/Path.inc to only set text mode if the OF_CRLF is set. ``` if (Flags & OF_CRLF) CrtOpenFlags |= _O_TEXT; ```
These following files are the ones that still use OF_Text which I left unchanged. I modified all these except raw_ostream.cpp in recent patches so I know these were previously in Binary mode on Windows. ./llvm/lib/Support/raw_ostream.cpp ./llvm/lib/TableGen/Main.cpp ./llvm/tools/dsymutil/DwarfLinkerForBinary.cpp ./llvm/unittests/Support/Path.cpp ./clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp ./clang/lib/Frontend/CompilerInstance.cpp ./clang/lib/Driver/Driver.cpp ./clang/lib/Driver/ToolChains/Clang.cpp
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D99426
show more ...
|
| #
c6047101 |
| 25-Mar-2021 |
Markus Böck <[email protected]> |
[Support][Windows] Make sure only executables are found by sys::findProgramByName
The function utilizes Windows' SearchPathW function, which as I found out today, may also return directories. After
[Support][Windows] Make sure only executables are found by sys::findProgramByName
The function utilizes Windows' SearchPathW function, which as I found out today, may also return directories. After looking at the Unix implementation of the file I found that it contains a check whether the found path is also executable. While fixing the Windows implementation, I also learned that sys::fs::access returns successfully when querying whether directories are executable, which the Unix version does not.
This patch makes both of these functions equivalent to their Unix implementation and insures that any path returned by sys::findProgramByName on Windows may only be executable, just like the Unix implementation.
The equivalent additions I have made to the Windows implementation, in the Unix implementation are here: sys::findProgramByName: https://github.com/llvm/llvm-project/blob/39ecfe614350fa5db7b8f13f81212f8e3831a390/llvm/lib/Support/Unix/Program.inc#L90 sys::fs::access: https://github.com/llvm/llvm-project/blob/c2a84771bb63947695ea50b89160c02b36fb634d/llvm/lib/Support/Unix/Path.inc#L608
I encountered this issue when running the LLVM testsuite. Commands of the form not test ... would fail to correctly execute test.exe, which is part of GnuWin32, as it actually tried to execute a folder called test, which happened to be in a directory on my PATH.
Differential Revision: https://reviews.llvm.org/D99357
show more ...
|
|
Revision tags: llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4 |
|
| #
a1217620 |
| 24-Sep-2020 |
Mikael Holmen <[email protected]> |
[unittests] Use std::make_tuple to make some toolchains happy again
My toolchain stopped working (LLVM 8.0, libstdc++ 5.4.0) after 577adda:
06:25:37 ../unittests/Support/Path.cpp:91:7: error: chose
[unittests] Use std::make_tuple to make some toolchains happy again
My toolchain stopped working (LLVM 8.0, libstdc++ 5.4.0) after 577adda:
06:25:37 ../unittests/Support/Path.cpp:91:7: error: chosen constructor is explicit in copy-initialization 06:25:37 {"", false, false}, {"/", true, true}, {"/foo", true, true}, 06:25:37 ^~~~~~~~~~~~~~~~~~ 06:25:37 /proj/flexasic/app/llvm/8.0/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:479:19: note: explicit constructor declared here 06:25:37 constexpr tuple(_UElements&&... __elements) 06:25:37 ^
This commit adds explicit calls to std::make_tuple to work around the problem.
show more ...
|
| #
577adda5 |
| 23-Sep-2020 |
Vinicius Tinti <[email protected]> |
[Support/Path] Add path::is_absolute_gnu
Implements IS_ABSOLUTE_PATH from GNU tools.
C++17 is_absolute behavior is different the from the behavior defined by GNU tools.
According to cppreference.c
[Support/Path] Add path::is_absolute_gnu
Implements IS_ABSOLUTE_PATH from GNU tools.
C++17 is_absolute behavior is different the from the behavior defined by GNU tools.
According to cppreference.com, C++17 states: "An absolute path is a path that unambiguously identifies the location of a file without reference to an additional starting location."
In other words, the rules are: 1. POSIX style paths with nonempty root directory are absolute. 2. Windows style paths with nonempty root name and root directory are absolute. 3. No other paths are absolute.
GNU rules are: 1. Paths starting with a path separator are absolute. 2. Windows style paths are also absolute if they start with a character followed by ':'. 3. No other paths are absolute.
On Windows style the path "C:\Users\Default" has "C:" as root name and "\" as root directory.
Hence "C:" on Windows is absolute under GNU rules and not absolute under C++17 because it has no root directory. Likewise "/" and "\" on Windows are absolute under GNU and are not absolute under C++17 due to empty root name.
Related to PR46368.
Differential Revision: https://reviews.llvm.org/D87667
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1 |
|
| #
032ed39d |
| 29-Apr-2020 |
Serge Pavlov <[email protected]> |
[Support] Class to facilitate file locking
This change define RAII class `FileLocker` and methods `lock` and `tryLockFor` of the class `raw_fd_stream` to facilitate using file locks.
Differential R
[Support] Class to facilitate file locking
This change define RAII class `FileLocker` and methods `lock` and `tryLockFor` of the class `raw_fd_stream` to facilitate using file locks.
Differential Revision: https://reviews.llvm.org/D79066
show more ...
|
| #
f6eb5daa |
| 13-Jul-2020 |
Andrew Ng <[email protected]> |
[Support] Fix Windows directory_iterator_construct out of bounds
Fix incorrect use of the size of Path when accessing PathUTF16, as the UTF-16 path can be shorter. Added unit test for coverage of th
[Support] Fix Windows directory_iterator_construct out of bounds
Fix incorrect use of the size of Path when accessing PathUTF16, as the UTF-16 path can be shorter. Added unit test for coverage of this test case.
Thanks to Ding Fei (danix800) for the code fix, see https://reviews.llvm.org/D83321.
Differential Revision: https://reviews.llvm.org/D83689
show more ...
|
| #
cd209f1a |
| 03-Jul-2020 |
Sam McCall <[email protected]> |
[Support] Add path::user_config_directory for $XDG_CONFIG_HOME etc
Reviewers: hokein
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D83128
|
| #
dab859d1 |
| 23-Jun-2020 |
David Zarzycki <[email protected]> |
Reland: [clang driver] Move default module cache from system temporary directory
This fixes a unit test. Otherwise here is the original commit:
1) Shared writable directories like /tmp are a securi
Reland: [clang driver] Move default module cache from system temporary directory
This fixes a unit test. Otherwise here is the original commit:
1) Shared writable directories like /tmp are a security problem. 2) Systems provide dedicated cache directories these days anyway. 3) This also refines LLVM's cache_directory() on Darwin platforms to use the Darwin per-user cache directory.
Reviewers: compnerd, aprantl, jakehehrlich, espindola, respindola, ilya-biryukov, pcc, sammccall
Reviewed By: compnerd, sammccall
Subscribers: hiraditya, llvm-commits, cfe-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D82362
show more ...
|
| #
0c1b88ec |
| 04-Jun-2020 |
Jan Korous <[email protected]> |
[Support][NFC] Tests for root_name(), root_directory() and root_path()
It's literally just doc comments converted to unittests.
|
| #
8577595e |
| 03-Jun-2020 |
Serge Pavlov <[email protected]> |
Revert "[Support] Add file lock/unlock functions"
This reverts commit f51bc4fb60fbcef26d18eff549fc68307fd46489. It broke the Solaris buildbots (Builder clang-solaris11-sparcv9 Build #5494 <http://la
Revert "[Support] Add file lock/unlock functions"
This reverts commit f51bc4fb60fbcef26d18eff549fc68307fd46489. It broke the Solaris buildbots (Builder clang-solaris11-sparcv9 Build #5494 <http://lab.llvm.org:8014/builders/clang-solaris11-sparcv9/builds/54).
show more ...
|
| #
f51bc4fb |
| 22-Apr-2020 |
Serge Pavlov <[email protected]> |
[Support] Add file lock/unlock functions
New functions `lockFile`, `tryLockFile` and `unlockFile` implement simple file locking. They lock or unlock entire file. This must be enough to support simul
[Support] Add file lock/unlock functions
New functions `lockFile`, `tryLockFile` and `unlockFile` implement simple file locking. They lock or unlock entire file. This must be enough to support simulataneous writes to log files in parallel builds.
Differential Revision: https://reviews.llvm.org/D78896
show more ...
|