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
14namespace llvm {
15namespace codeview {
16
17class FunctionId {
18public:
19  FunctionId() : Index(0) {}
20
21  explicit FunctionId(uint32_t Index) : Index(Index) {}
22
23  uint32_t getIndex() const { return Index; }
24
25private:
26  uint32_t Index;
27};
28
29inline bool operator==(const FunctionId &A, const FunctionId &B) {
30  return A.getIndex() == B.getIndex();
31}
32
33inline bool operator!=(const FunctionId &A, const FunctionId &B) {
34  return A.getIndex() != B.getIndex();
35}
36
37inline bool operator<(const FunctionId &A, const FunctionId &B) {
38  return A.getIndex() < B.getIndex();
39}
40
41inline bool operator<=(const FunctionId &A, const FunctionId &B) {
42  return A.getIndex() <= B.getIndex();
43}
44
45inline bool operator>(const FunctionId &A, const FunctionId &B) {
46  return A.getIndex() > B.getIndex();
47}
48
49inline bool operator>=(const FunctionId &A, const FunctionId &B) {
50  return A.getIndex() >= B.getIndex();
51}
52}
53}
54
55#endif
56