#ifndef LLVM_REMARKS_REMARK_H
#define LLVM_REMARKS_REMARK_H
#include "llvm-c/Remarks.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/CBindingWrapping.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
#include <string>
namespace llvm {
namespace remarks {
constexpr uint64_t CurrentRemarkVersion = …;
struct RemarkLocation { … };
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(…)
struct Argument { … };
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(…)
enum class Type { … };
inline StringRef typeToStr(Type Ty) { … }
struct Remark { … };
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(…)
template <typename T>
bool operator<(const std::optional<T> &LHS, const std::optional<T> &RHS) { … }
inline bool operator==(const RemarkLocation &LHS, const RemarkLocation &RHS) { … }
inline bool operator!=(const RemarkLocation &LHS, const RemarkLocation &RHS) { … }
inline bool operator<(const RemarkLocation &LHS, const RemarkLocation &RHS) { … }
inline bool operator==(const Argument &LHS, const Argument &RHS) { … }
inline bool operator!=(const Argument &LHS, const Argument &RHS) { … }
inline bool operator<(const Argument &LHS, const Argument &RHS) { … }
inline bool operator==(const Remark &LHS, const Remark &RHS) { … }
inline bool operator!=(const Remark &LHS, const Remark &RHS) { … }
inline bool operator<(const Remark &LHS, const Remark &RHS) { … }
inline raw_ostream &operator<<(raw_ostream &OS, const RemarkLocation &RLoc) { … }
inline raw_ostream &operator<<(raw_ostream &OS, const Argument &Arg) { … }
inline raw_ostream &operator<<(raw_ostream &OS, const Remark &Remark) { … }
}
}
#endif