mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
[FileCollector] Fix that the file system case-sensitivity check was inverted
real_path returns an `std::error_code` which evaluates to `true` in case an error happens and `false` if not. This code was checking the inverse, so case-insensitive file systems ended up being detected as case sensitive. Tested using an LLDB reproducer test as we anyway need a real file system and also some matching logic to detect whether the respective file system is case-sensitive (which the test is doing via some Python checks that we can't really emulate with the usual FileCheck logic). Fixes rdar://67003004 Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D96795
This commit is contained in:
parent
c5e37509c1
commit
8e3d373535
@ -35,7 +35,7 @@ static bool isCaseSensitivePath(StringRef Path) {
|
|||||||
SmallString<256> TmpDest = Path, UpperDest, RealDest;
|
SmallString<256> TmpDest = Path, UpperDest, RealDest;
|
||||||
|
|
||||||
// Remove component traversals, links, etc.
|
// Remove component traversals, links, etc.
|
||||||
if (!sys::fs::real_path(Path, TmpDest))
|
if (sys::fs::real_path(Path, TmpDest))
|
||||||
return true; // Current default value in vfs.yaml
|
return true; // Current default value in vfs.yaml
|
||||||
Path = TmpDest;
|
Path = TmpDest;
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ static bool isCaseSensitivePath(StringRef Path) {
|
|||||||
// sensitive in the absence of real_path, since this is the YAMLVFSWriter
|
// sensitive in the absence of real_path, since this is the YAMLVFSWriter
|
||||||
// default.
|
// default.
|
||||||
UpperDest = Path.upper();
|
UpperDest = Path.upper();
|
||||||
if (sys::fs::real_path(UpperDest, RealDest) && Path.equals(RealDest))
|
if (!sys::fs::real_path(UpperDest, RealDest) && Path.equals(RealDest))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user