OSDN Git Service

[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 0914afa..a055ce9 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