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
llvm.patch
Description: Binary data
clang.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
