]> granicus.if.org Git - llvm/commitdiff
[PDB] Merge in types and items from type servers (/Zi)
authorReid Kleckner <rnk@google.com>
Tue, 18 Jul 2017 00:21:25 +0000 (00:21 +0000)
committerReid Kleckner <rnk@google.com>
Tue, 18 Jul 2017 00:21:25 +0000 (00:21 +0000)
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

index 0914afaaa94771a38e1fe4d8e3154b8a4a295ae0..a055ce9e2e4516c0776db60a751e829db6e6662f 100644 (file)
@@ -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