1//===- Formatters.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_PDB_NATIVE_FORMATTERS_H 10#define LLVM_DEBUGINFO_PDB_NATIVE_FORMATTERS_H 11 12#include "llvm/ADT/ArrayRef.h" 13#include "llvm/ADT/StringRef.h" 14#include "llvm/DebugInfo/CodeView/Formatters.h" 15#include "llvm/DebugInfo/PDB/Native/RawConstants.h" 16#include "llvm/DebugInfo/PDB/Native/RawTypes.h" 17#include "llvm/Support/FormatProviders.h" 18 19#define FORMAT_CASE(Value, Name) \ 20 case Value: \ 21 Stream << Name; \ 22 break; 23 24namespace llvm { 25template <> struct format_provider<pdb::PdbRaw_ImplVer> { 26 static void format(const pdb::PdbRaw_ImplVer &V, llvm::raw_ostream &Stream, 27 StringRef Style) { 28 switch (V) { 29 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC110, "VC110") 30 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC140, "VC140") 31 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC2, "VC2") 32 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC4, "VC4") 33 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC41, "VC41") 34 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC50, "VC50") 35 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC70, "VC70") 36 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC70Dep, "VC70Dep") 37 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC80, "VC80") 38 FORMAT_CASE(pdb::PdbRaw_ImplVer::PdbImplVC98, "VC98") 39 } 40 } 41}; 42} 43 44#endif 45