aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorDouglas <Douglas.Gliner@sony.com>2025-05-16 06:40:45 -0700
committerGitHub <noreply@github.com>2025-05-16 06:40:45 -0700
commit8eafd93034063971f08a06faa7a75a616b9866b6 (patch)
tree2c10d84ae4ebc7eec8e1e2182561c0b09234b7c8 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent910220b84fa18ce2cbb2e21dd53b9f3d0ae582a7 (diff)
downloadllvm-8eafd93034063971f08a06faa7a75a616b9866b6.zip
llvm-8eafd93034063971f08a06faa7a75a616b9866b6.tar.gz
llvm-8eafd93034063971f08a06faa7a75a616b9866b6.tar.bz2
[Support] Set `OF_Delete` for `InMemoryBuffer`'s call to `openFileForWrite` under `commit` (#140109)
https://github.com/llvm/llvm-project/pull/134787 unintentionally enabled `--mmap-output-file` by default under LLD which caused the Windows-only test `lld\test\ELF\link-open-file.test` to fail. This failure uncovered what appears to be an inconsistency on Windows between `createOnDiskBuffer` and `createInMemoryBuffer` with respect to `DELETE` access for the output file. The output file created by `createOnDiskBuffer` sets the flag `OF_Delete` as part of `fs::TempFile::create` while the output file created by `createInMemoryBuffer` sets `OF_None` under `InMemoryBuffer::commit`. The test `lld\test\ELF\link-open-file.test` ensures that if `FILE_SHARE_DELETE` is _not_ specified for an output file that LLD is expected to overwrite, LLD should fail. This only happens if: "the file or device has been opened for delete access" which is only done for `fs::TempFile::create`. See https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew#FILE_SHARE_DELETE. Therefore, I propose setting `OF_Delete` for `InMemoryBuffer::commit`'s call to `openFileForWrite` to stay consistent with `fs::TempFile::create`.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions