Expose that the unique file ID has a device and a file component.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 1 Aug 2013 21:36:02 +0000 (21:36 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 1 Aug 2013 21:36:02 +0000 (21:36 +0000)
The use of sd_dev and st_ino has reached libclang, so expose the two components
in UniqueID so that we can use it in clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187616 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/FileSystem.h

index 60455a411414ecb0ce5ea3c42677f15598dddf3b..c130b478e3188d681cb404b8c2d6f3631d1945e6 100644 (file)
@@ -126,16 +126,22 @@ inline perms operator~(perms x) {
 }
 
 class UniqueID {
-  uint64_t A;
-  uint64_t B;
+  uint64_t Device;
+  uint64_t File;
 
 public:
   UniqueID() {}
-  UniqueID(uint64_t A, uint64_t B) : A(A), B(B) {}
+  UniqueID(uint64_t Device, uint64_t File) : Device(Device), File(File) {}
   bool operator==(const UniqueID &Other) const {
-    return A == Other.A && B == Other.B;
+    return Device == Other.Device && File == Other.File;
   }
   bool operator!=(const UniqueID &Other) const { return !(*this == Other); }
+  bool operator<(const UniqueID &Other) const {
+    return Device < Other.Device ||
+           (Device == Other.Device && File < Other.File);
+  }
+  uint64_t getDevice() const { return Device; }
+  uint64_t getFile() const { return File; }
 };
 
 /// file_status - Represents the result of a call to stat and friends. It has