This started with what I assumed would be a trivial patch to use
llvm::sys::fs::UniqueID instead of using st_dev and st_ino directly.

Unfortunately, we are passing a stat buffer through most of the file
manager, so the patch got somewhat verbose.

We cannot also just replace "struct stat" with
llvm::sys::fs::file_status, since we want to be able to construct fake
ones, and file_status has different members on unix and windows.

What the patch does is:

* Record only the information that clang is actually using.
* Use llvm::sys::fs::status instead of stat and fstat.
* Use llvm::sys::fs::UniqueID
* Delete the old windows versions of UniqueDirContainer and
UniqueFileContainer since the "unix" one now works on windows too.

Since the use of dev/inode has reached libclang, I have also patched
llvm to make it clear that
UniqueID has device and file components instead of being made of
arbitrary 128 bits.

Cheers,
Rafael

Attachment: llvm.patch
Description: Binary data

Attachment: clang.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to