From b672df825ad9d6b4b16ddadb73c9b012c04ded05 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Tue, 18 Jul 2017 00:21:25 +0000 Subject: [PATCH] [PDB] Merge in types and items from type servers (/Zi) Summary: Object files compiled with /Zi emit type information into a type server PDB. The .debug$S section will contain a single TypeServer2Record with the absolute path and GUID of the type server. LLD needs to load the type server PDB and merge all types and items it finds in it into the destination PDB. Depends on D35495 Reviewers: ruiu, inglorion Subscribers: zturner, llvm-commits Differential Revision: https://reviews.llvm.org/D35504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308235 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/DebugInfo/CodeView/GUID.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/llvm/DebugInfo/CodeView/GUID.h b/include/llvm/DebugInfo/CodeView/GUID.h index 0914afaaa94..a055ce9e2e4 100644 --- a/include/llvm/DebugInfo/CodeView/GUID.h +++ b/include/llvm/DebugInfo/CodeView/GUID.h @@ -27,6 +27,26 @@ inline bool operator==(const GUID &LHS, const GUID &RHS) { return 0 == ::memcmp(LHS.Guid, RHS.Guid, sizeof(LHS.Guid)); } +inline bool operator<(const GUID &LHS, const GUID &RHS) { + return ::memcmp(LHS.Guid, RHS.Guid, sizeof(LHS.Guid)) < 0; +} + +inline bool operator<=(const GUID &LHS, const GUID &RHS) { + return ::memcmp(LHS.Guid, RHS.Guid, sizeof(LHS.Guid)) <= 0; +} + +inline bool operator>(const GUID &LHS, const GUID &RHS) { + return !(LHS <= RHS); +} + +inline bool operator>=(const GUID &LHS, const GUID &RHS) { + return !(LHS < RHS); +} + +inline bool operator!=(const GUID &LHS, const GUID &RHS) { + return !(LHS == RHS); +} + raw_ostream &operator<<(raw_ostream &OS, const GUID &Guid); } // namespace codeview -- 2.11.0