1//===- PDBExtras.h - helper functions and classes for PDBs -------*- C++-*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLVM_DEBUGINFO_PDB_PDBEXTRAS_H
11#define LLVM_DEBUGINFO_PDB_PDBEXTRAS_H
12
13#include "PDBTypes.h"
14#include "llvm/Support/raw_ostream.h"
15#include <unordered_map>
16
17namespace llvm {
18typedef std::unordered_map<PDB_SymType, int> TagStats;
19
20raw_ostream &operator<<(raw_ostream &OS, const PDB_VariantType &Value);
21raw_ostream &operator<<(raw_ostream &OS, const PDB_CallingConv &Conv);
22raw_ostream &operator<<(raw_ostream &OS, const PDB_DataKind &Data);
23raw_ostream &operator<<(raw_ostream &OS, const PDB_RegisterId &Reg);
24raw_ostream &operator<<(raw_ostream &OS, const PDB_LocType &Loc);
25raw_ostream &operator<<(raw_ostream &OS, const PDB_ThunkOrdinal &Thunk);
26raw_ostream &operator<<(raw_ostream &OS, const PDB_Checksum &Checksum);
27raw_ostream &operator<<(raw_ostream &OS, const PDB_Lang &Lang);
28raw_ostream &operator<<(raw_ostream &OS, const PDB_SymType &Tag);
29raw_ostream &operator<<(raw_ostream &OS, const PDB_MemberAccess &Access);
30raw_ostream &operator<<(raw_ostream &OS, const PDB_UdtType &Type);
31raw_ostream &operator<<(raw_ostream &OS, const PDB_UniqueId &Id);
32
33raw_ostream &operator<<(raw_ostream &OS, const Variant &Value);
34raw_ostream &operator<<(raw_ostream &OS, const VersionInfo &Version);
35raw_ostream &operator<<(raw_ostream &OS, const TagStats &Stats);
36}
37
38#endif
39