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