1 //===- FunctionId.h ---------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_DEBUGINFO_CODEVIEW_FUNCTIONID_H
10 #define LLVM_DEBUGINFO_CODEVIEW_FUNCTIONID_H
11 
12 #include <cinttypes>
13 
14 namespace llvm {
15 namespace codeview {
16 
17 class FunctionId {
18 public:
FunctionId()19   FunctionId() : Index(0) {}
20 
FunctionId(uint32_t Index)21   explicit FunctionId(uint32_t Index) : Index(Index) {}
22 
getIndex()23   uint32_t getIndex() const { return Index; }
24 
25 private:
26   uint32_t Index;
27 };
28 
29 inline bool operator==(const FunctionId &A, const FunctionId &B) {
30   return A.getIndex() == B.getIndex();
31 }
32 
33 inline bool operator!=(const FunctionId &A, const FunctionId &B) {
34   return A.getIndex() != B.getIndex();
35 }
36 
37 inline bool operator<(const FunctionId &A, const FunctionId &B) {
38   return A.getIndex() < B.getIndex();
39 }
40 
41 inline bool operator<=(const FunctionId &A, const FunctionId &B) {
42   return A.getIndex() <= B.getIndex();
43 }
44 
45 inline bool operator>(const FunctionId &A, const FunctionId &B) {
46   return A.getIndex() > B.getIndex();
47 }
48 
49 inline bool operator>=(const FunctionId &A, const FunctionId &B) {
50   return A.getIndex() >= B.getIndex();
51 }
52 }
53 }
54 
55 #endif
56