From 4d305dca5240536036a5fe0145afde9807130eb4 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 1 Aug 2013 21:36:02 +0000 Subject: [PATCH] Expose that the unique file ID has a device and a file component. 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. llvm-svn: 187616 --- llvm/include/llvm/Support/FileSystem.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/llvm/include/llvm/Support/FileSystem.h b/llvm/include/llvm/Support/FileSystem.h index 60455a411414..c130b478e318 100644 --- a/llvm/include/llvm/Support/FileSystem.h +++ b/llvm/include/llvm/Support/FileSystem.h @@ -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 -- GitLab