<div dir="ltr">looking now</div><br><div class="gmail_quote"><div dir="ltr">On Tue, May 30, 2017 at 5:17 PM Peter Collingbourne <<a href="mailto:peter@pcc.me.uk">peter@pcc.me.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Zach,<div><br></div><div>I think your change caused a number of test failures on the sanitizer-x86_64-linux-fast bot.</div><div><a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/5323/steps/check-llvm%20ubsan/logs/stdio" target="_blank">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/5323/steps/check-llvm%20ubsan/logs/stdio</a><br></div><div><a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/5323/steps/check-lld%20asan/logs/stdio" target="_blank">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/5323/steps/check-lld%20asan/logs/stdio</a><br></div><div>Can you please take a look?</div><div><br></div><div>Thanks,</div><div>Peter</div></div><div class="gmail_extra"><br><div class="gmail_quote"></div></div><div class="gmail_extra"><div class="gmail_quote">On Tue, May 30, 2017 at 2:53 PM, Zachary Turner via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: zturner<br>
Date: Tue May 30 16:53:05 2017<br>
New Revision: 304248<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=304248&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=304248&view=rev</a><br>
Log:<br>
[CodeView] Move CodeView YAML code to ObjectYAML.<br>
<br>
This is the beginning of an effort to move the codeview yaml<br>
reader / writer into ObjectYAML so that it can be shared.<br>
Currently the only consumer / producer of CodeView YAML is<br>
llvm-pdbdump, but CodeView can exist outside of PDB files, and<br>
indeed is put into object files and passed to the linker to<br>
produce PDB files.  Furthermore, there are subtle differences<br>
in the types of records that show up in object file CodeView<br>
vs PDB file CodeView, but they are otherwise 99% the same.<br>
<br>
By having this code in ObjectYAML, we can have llvm-pdbdump<br>
reuse this code, while teaching obj2yaml and yaml2obj to use<br>
this syntax for dealing with object files that can contain<br>
CodeView.<br>
<br>
This patch only adds support for CodeView type information<br>
to ObjectYAML.  Subsequent patches will add support for<br>
CodeView symbol information.<br>
<br>
Added:<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewTypes.def<br>
    llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h<br>
    llvm/trunk/lib/ObjectYAML/CodeViewYAML.cpp<br>
Removed:<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecords.def<br>
    llvm/trunk/tools/llvm-pdbdump/YamlSerializationContext.h<br>
    llvm/trunk/tools/llvm-pdbdump/YamlTypeDumper.cpp<br>
    llvm/trunk/tools/llvm-pdbdump/YamlTypeDumper.h<br>
Modified:<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolSerializer.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDeserializer.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecord.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeSerializer.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h<br>
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h<br>
    llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawConstants.h<br>
    llvm/trunk/include/llvm/DebugInfo/PDB/Native/TpiHashing.h<br>
    llvm/trunk/include/llvm/Support/YAMLTraits.h<br>
    llvm/trunk/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp<br>
    llvm/trunk/lib/DebugInfo/CodeView/CVTypeVisitor.cpp<br>
    llvm/trunk/lib/DebugInfo/CodeView/EnumTables.cpp<br>
    llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp<br>
    llvm/trunk/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp<br>
    llvm/trunk/lib/MC/MCCodeView.cpp<br>
    llvm/trunk/lib/ObjectYAML/CMakeLists.txt<br>
    llvm/trunk/lib/ObjectYAML/LLVMBuild.txt<br>
    llvm/trunk/tools/llvm-pdbdump/Analyze.cpp<br>
    llvm/trunk/tools/llvm-pdbdump/CMakeLists.txt<br>
    llvm/trunk/tools/llvm-pdbdump/CompactTypeDumpVisitor.cpp<br>
    llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp<br>
    llvm/trunk/tools/llvm-pdbdump/PdbYaml.h<br>
    llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.cpp<br>
    llvm/trunk/tools/llvm-pdbdump/YAMLOutputStyle.h<br>
    llvm/trunk/tools/llvm-pdbdump/YamlSymbolDumper.cpp<br>
    llvm/trunk/tools/llvm-pdbdump/YamlSymbolDumper.h<br>
    llvm/trunk/tools/llvm-pdbdump/llvm-pdbdump.cpp<br>
<br>
Removed: llvm/trunk/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def?rev=304247&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def?rev=304247&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def (removed)<br>
@@ -1,258 +0,0 @@<br>
-//===-- CVLeafTypes.def - All CodeView leaf types ---------------*- C++ -*-===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// See LEAF_ENUM_e in cvinfo.h. This should match the constants there.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef CV_SYMBOL<br>
-#define CV_SYMBOL(ename, value)<br>
-#endif<br>
-<br>
-#ifndef SYMBOL_RECORD<br>
-#define SYMBOL_RECORD(lf_ename, value, name) CV_SYMBOL(lf_ename, value)<br>
-#endif<br>
-<br>
-#ifndef SYMBOL_RECORD_ALIAS<br>
-#define SYMBOL_RECORD_ALIAS(lf_ename, value, name, alias_name)                   \<br>
-  SYMBOL_RECORD(lf_ename, value, name)<br>
-#endif<br>
-<br>
-// 16 bit symbol types. Not very useful, provided only for reference.<br>
-CV_SYMBOL(S_COMPILE       , 0x0001)<br>
-CV_SYMBOL(S_REGISTER_16t  , 0x0002)<br>
-CV_SYMBOL(S_CONSTANT_16t  , 0x0003)<br>
-CV_SYMBOL(S_UDT_16t       , 0x0004)<br>
-CV_SYMBOL(S_SSEARCH       , 0x0005)<br>
-CV_SYMBOL(S_SKIP          , 0x0007)<br>
-CV_SYMBOL(S_CVRESERVE     , 0x0008)<br>
-CV_SYMBOL(S_OBJNAME_ST    , 0x0009)<br>
-CV_SYMBOL(S_ENDARG        , 0x000a)<br>
-CV_SYMBOL(S_COBOLUDT_16t  , 0x000b)<br>
-CV_SYMBOL(S_MANYREG_16t   , 0x000c)<br>
-CV_SYMBOL(S_RETURN        , 0x000d)<br>
-CV_SYMBOL(S_ENTRYTHIS     , 0x000e)<br>
-CV_SYMBOL(S_BPREL16       , 0x0100)<br>
-CV_SYMBOL(S_LDATA16       , 0x0101)<br>
-CV_SYMBOL(S_GDATA16       , 0x0102)<br>
-CV_SYMBOL(S_PUB16         , 0x0103)<br>
-CV_SYMBOL(S_LPROC16       , 0x0104)<br>
-CV_SYMBOL(S_GPROC16       , 0x0105)<br>
-CV_SYMBOL(S_THUNK16       , 0x0106)<br>
-CV_SYMBOL(S_BLOCK16       , 0x0107)<br>
-CV_SYMBOL(S_WITH16        , 0x0108)<br>
-CV_SYMBOL(S_LABEL16       , 0x0109)<br>
-CV_SYMBOL(S_CEXMODEL16    , 0x010a)<br>
-CV_SYMBOL(S_VFTABLE16     , 0x010b)<br>
-CV_SYMBOL(S_REGREL16      , 0x010c)<br>
-CV_SYMBOL(S_BPREL32_16t   , 0x0200)<br>
-CV_SYMBOL(S_LDATA32_16t   , 0x0201)<br>
-CV_SYMBOL(S_GDATA32_16t   , 0x0202)<br>
-CV_SYMBOL(S_PUB32_16t     , 0x0203)<br>
-CV_SYMBOL(S_LPROC32_16t   , 0x0204)<br>
-CV_SYMBOL(S_GPROC32_16t   , 0x0205)<br>
-CV_SYMBOL(S_THUNK32_ST    , 0x0206)<br>
-CV_SYMBOL(S_BLOCK32_ST    , 0x0207)<br>
-CV_SYMBOL(S_WITH32_ST     , 0x0208)<br>
-CV_SYMBOL(S_LABEL32_ST    , 0x0209)<br>
-CV_SYMBOL(S_CEXMODEL32    , 0x020a)<br>
-CV_SYMBOL(S_VFTABLE32_16t , 0x020b)<br>
-CV_SYMBOL(S_REGREL32_16t  , 0x020c)<br>
-CV_SYMBOL(S_LTHREAD32_16t , 0x020d)<br>
-CV_SYMBOL(S_GTHREAD32_16t , 0x020e)<br>
-CV_SYMBOL(S_SLINK32       , 0x020f)<br>
-CV_SYMBOL(S_LPROCMIPS_16t , 0x0300)<br>
-CV_SYMBOL(S_GPROCMIPS_16t , 0x0301)<br>
-CV_SYMBOL(S_PROCREF_ST    , 0x0400)<br>
-CV_SYMBOL(S_DATAREF_ST    , 0x0401)<br>
-CV_SYMBOL(S_ALIGN         , 0x0402)<br>
-CV_SYMBOL(S_LPROCREF_ST   , 0x0403)<br>
-CV_SYMBOL(S_OEM           , 0x0404)<br>
-<br>
-// All post 16 bit symbol types have the 0x1000 bit set.<br>
-CV_SYMBOL(S_TI16_MAX      , 0x1000)<br>
-<br>
-// Mostly unused "start" symbol types.<br>
-CV_SYMBOL(S_REGISTER_ST   , 0x1001)<br>
-CV_SYMBOL(S_CONSTANT_ST   , 0x1002)<br>
-CV_SYMBOL(S_UDT_ST        , 0x1003)<br>
-CV_SYMBOL(S_COBOLUDT_ST   , 0x1004)<br>
-CV_SYMBOL(S_MANYREG_ST    , 0x1005)<br>
-CV_SYMBOL(S_BPREL32_ST    , 0x1006)<br>
-CV_SYMBOL(S_LDATA32_ST    , 0x1007)<br>
-CV_SYMBOL(S_GDATA32_ST    , 0x1008)<br>
-CV_SYMBOL(S_PUB32_ST      , 0x1009)<br>
-CV_SYMBOL(S_LPROC32_ST    , 0x100a)<br>
-CV_SYMBOL(S_GPROC32_ST    , 0x100b)<br>
-CV_SYMBOL(S_VFTABLE32     , 0x100c)<br>
-CV_SYMBOL(S_REGREL32_ST   , 0x100d)<br>
-CV_SYMBOL(S_LTHREAD32_ST  , 0x100e)<br>
-CV_SYMBOL(S_GTHREAD32_ST  , 0x100f)<br>
-CV_SYMBOL(S_LPROCMIPS_ST  , 0x1010)<br>
-CV_SYMBOL(S_GPROCMIPS_ST  , 0x1011)<br>
-<br>
-CV_SYMBOL(S_COMPILE2_ST   , 0x1013)<br>
-CV_SYMBOL(S_MANYREG2_ST   , 0x1014)<br>
-CV_SYMBOL(S_LPROCIA64_ST  , 0x1015)<br>
-CV_SYMBOL(S_GPROCIA64_ST  , 0x1016)<br>
-CV_SYMBOL(S_LOCALSLOT_ST  , 0x1017)<br>
-CV_SYMBOL(S_PARAMSLOT_ST  , 0x1018)<br>
-CV_SYMBOL(S_ANNOTATION    , 0x1019)<br>
-CV_SYMBOL(S_GMANPROC_ST   , 0x101a)<br>
-CV_SYMBOL(S_LMANPROC_ST   , 0x101b)<br>
-CV_SYMBOL(S_RESERVED1     , 0x101c)<br>
-CV_SYMBOL(S_RESERVED2     , 0x101d)<br>
-CV_SYMBOL(S_RESERVED3     , 0x101e)<br>
-CV_SYMBOL(S_RESERVED4     , 0x101f)<br>
-CV_SYMBOL(S_LMANDATA_ST   , 0x1020)<br>
-CV_SYMBOL(S_GMANDATA_ST   , 0x1021)<br>
-CV_SYMBOL(S_MANFRAMEREL_ST, 0x1022)<br>
-CV_SYMBOL(S_MANREGISTER_ST, 0x1023)<br>
-CV_SYMBOL(S_MANSLOT_ST    , 0x1024)<br>
-CV_SYMBOL(S_MANMANYREG_ST , 0x1025)<br>
-CV_SYMBOL(S_MANREGREL_ST  , 0x1026)<br>
-CV_SYMBOL(S_MANMANYREG2_ST, 0x1027)<br>
-CV_SYMBOL(S_MANTYPREF     , 0x1028)<br>
-CV_SYMBOL(S_UNAMESPACE_ST , 0x1029)<br>
-<br>
-// End of S_*_ST symbols, which do not appear to be generated by modern<br>
-// compilers.<br>
-CV_SYMBOL(S_ST_MAX        , 0x1100)<br>
-<br>
-<br>
-CV_SYMBOL(S_WITH32        , 0x1104)<br>
-CV_SYMBOL(S_MANYREG       , 0x110a)<br>
-CV_SYMBOL(S_LPROCMIPS     , 0x1114)<br>
-CV_SYMBOL(S_GPROCMIPS     , 0x1115)<br>
-CV_SYMBOL(S_MANYREG2      , 0x1117)<br>
-CV_SYMBOL(S_LPROCIA64     , 0x1118)<br>
-CV_SYMBOL(S_GPROCIA64     , 0x1119)<br>
-CV_SYMBOL(S_LOCALSLOT     , 0x111a)<br>
-CV_SYMBOL(S_PARAMSLOT     , 0x111b)<br>
-<br>
-// Managed code symbols.<br>
-CV_SYMBOL(S_MANFRAMEREL   , 0x111e)<br>
-CV_SYMBOL(S_MANREGISTER   , 0x111f)<br>
-CV_SYMBOL(S_MANSLOT       , 0x1120)<br>
-CV_SYMBOL(S_MANMANYREG    , 0x1121)<br>
-CV_SYMBOL(S_MANREGREL     , 0x1122)<br>
-CV_SYMBOL(S_MANMANYREG2   , 0x1123)<br>
-CV_SYMBOL(S_UNAMESPACE    , 0x1124)<br>
-CV_SYMBOL(S_DATAREF       , 0x1126)<br>
-CV_SYMBOL(S_ANNOTATIONREF , 0x1128)<br>
-CV_SYMBOL(S_TOKENREF      , 0x1129)<br>
-CV_SYMBOL(S_GMANPROC      , 0x112a)<br>
-CV_SYMBOL(S_LMANPROC      , 0x112b)<br>
-CV_SYMBOL(S_ATTR_FRAMEREL , 0x112e)<br>
-CV_SYMBOL(S_ATTR_REGISTER , 0x112f)<br>
-CV_SYMBOL(S_ATTR_REGREL   , 0x1130)<br>
-CV_SYMBOL(S_ATTR_MANYREG  , 0x1131)<br>
-<br>
-<br>
-CV_SYMBOL(S_SEPCODE       , 0x1132)<br>
-CV_SYMBOL(S_LOCAL_2005    , 0x1133)<br>
-CV_SYMBOL(S_DEFRANGE_2005 , 0x1134)<br>
-CV_SYMBOL(S_DEFRANGE2_2005, 0x1135)<br>
-CV_SYMBOL(S_DISCARDED     , 0x113b)<br>
-<br>
-// Current symbol types for most procedures as of this writing.<br>
-CV_SYMBOL(S_LPROCMIPS_ID   , 0x1148)<br>
-CV_SYMBOL(S_GPROCMIPS_ID   , 0x1149)<br>
-CV_SYMBOL(S_LPROCIA64_ID   , 0x114a)<br>
-CV_SYMBOL(S_GPROCIA64_ID   , 0x114b)<br>
-<br>
-CV_SYMBOL(S_DEFRANGE_HLSL  , 0x1150)<br>
-CV_SYMBOL(S_GDATA_HLSL     , 0x1151)<br>
-CV_SYMBOL(S_LDATA_HLSL     , 0x1152)<br>
-CV_SYMBOL(S_LOCAL_DPC_GROUPSHARED, 0x1154)<br>
-CV_SYMBOL(S_DEFRANGE_DPC_PTR_TAG, 0x1157)<br>
-CV_SYMBOL(S_DPC_SYM_TAG_MAP, 0x1158)<br>
-CV_SYMBOL(S_ARMSWITCHTABLE , 0x1159)<br>
-CV_SYMBOL(S_POGODATA       , 0x115c)<br>
-CV_SYMBOL(S_INLINESITE2    , 0x115d)<br>
-CV_SYMBOL(S_MOD_TYPEREF    , 0x115f)<br>
-CV_SYMBOL(S_REF_MINIPDB    , 0x1160)<br>
-CV_SYMBOL(S_PDBMAP         , 0x1161)<br>
-CV_SYMBOL(S_GDATA_HLSL32   , 0x1162)<br>
-CV_SYMBOL(S_LDATA_HLSL32   , 0x1163)<br>
-CV_SYMBOL(S_GDATA_HLSL32_EX, 0x1164)<br>
-CV_SYMBOL(S_LDATA_HLSL32_EX, 0x1165)<br>
-<br>
-// Known symbol types<br>
-SYMBOL_RECORD(S_END                  , 0x0006, ScopeEndSym)<br>
-SYMBOL_RECORD_ALIAS(S_INLINESITE_END , 0x114e, InlineSiteEnd, ScopeEndSym)<br>
-SYMBOL_RECORD_ALIAS(S_PROC_ID_END    , 0x114f, ProcEnd, ScopeEndSym)<br>
-<br>
-SYMBOL_RECORD(S_THUNK32       , 0x1102, Thunk32Sym)<br>
-SYMBOL_RECORD(S_TRAMPOLINE    , 0x112c, TrampolineSym)<br>
-SYMBOL_RECORD(S_SECTION       , 0x1136, SectionSym)<br>
-SYMBOL_RECORD(S_COFFGROUP     , 0x1137, CoffGroupSym)<br>
-SYMBOL_RECORD(S_EXPORT        , 0x1138, ExportSym)<br>
-<br>
-SYMBOL_RECORD(S_LPROC32       , 0x110f, ProcSym)<br>
-SYMBOL_RECORD_ALIAS(S_GPROC32       , 0x1110, GlobalProcSym, ProcSym)<br>
-SYMBOL_RECORD_ALIAS(S_LPROC32_ID     , 0x1146, ProcIdSym, ProcSym)<br>
-SYMBOL_RECORD_ALIAS(S_GPROC32_ID     , 0x1147, GlobalProcIdSym, ProcSym)<br>
-SYMBOL_RECORD_ALIAS(S_LPROC32_DPC    , 0x1155, DPCProcSym, ProcSym)<br>
-SYMBOL_RECORD_ALIAS(S_LPROC32_DPC_ID , 0x1156, DPCProcIdSym, ProcSym)<br>
-<br>
-SYMBOL_RECORD(S_REGISTER      , 0x1106, RegisterSym)<br>
-SYMBOL_RECORD(S_PUB32         , 0x110e, PublicSym32)<br>
-<br>
-SYMBOL_RECORD(S_PROCREF       , 0x1125, ProcRefSym)<br>
-SYMBOL_RECORD_ALIAS(S_LPROCREF, 0x1127, LocalProcRef, ProcRefSym)<br>
-<br>
-<br>
-SYMBOL_RECORD(S_ENVBLOCK      , 0x113d, EnvBlockSym)<br>
-<br>
-SYMBOL_RECORD(S_INLINESITE     , 0x114d, InlineSiteSym)<br>
-SYMBOL_RECORD(S_LOCAL         , 0x113e, LocalSym)<br>
-SYMBOL_RECORD(S_DEFRANGE      , 0x113f, DefRangeSym)<br>
-SYMBOL_RECORD(S_DEFRANGE_SUBFIELD, 0x1140, DefRangeSubfieldSym)<br>
-SYMBOL_RECORD(S_DEFRANGE_REGISTER, 0x1141, DefRangeRegisterSym)<br>
-SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL, 0x1142, DefRangeFramePointerRelSym)<br>
-SYMBOL_RECORD(S_DEFRANGE_SUBFIELD_REGISTER, 0x1143, DefRangeSubfieldRegisterSym)<br>
-SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE, 0x1144, DefRangeFramePointerRelFullScopeSym)<br>
-SYMBOL_RECORD(S_DEFRANGE_REGISTER_REL, 0x1145, DefRangeRegisterRelSym)<br>
-SYMBOL_RECORD(S_BLOCK32       , 0x1103, BlockSym)<br>
-SYMBOL_RECORD(S_LABEL32       , 0x1105, LabelSym)<br>
-SYMBOL_RECORD(S_OBJNAME       , 0x1101, ObjNameSym)<br>
-SYMBOL_RECORD(S_COMPILE2      , 0x1116, Compile2Sym)<br>
-SYMBOL_RECORD(S_COMPILE3      , 0x113c, Compile3Sym)<br>
-SYMBOL_RECORD(S_FRAMEPROC     , 0x1012, FrameProcSym)<br>
-SYMBOL_RECORD(S_CALLSITEINFO  , 0x1139, CallSiteInfoSym)<br>
-SYMBOL_RECORD(S_FILESTATIC     , 0x1153, FileStaticSym)<br>
-SYMBOL_RECORD(S_HEAPALLOCSITE  , 0x115e, HeapAllocationSiteSym)<br>
-SYMBOL_RECORD(S_FRAMECOOKIE   , 0x113a, FrameCookieSym)<br>
-<br>
-SYMBOL_RECORD(S_CALLEES        , 0x115a, CallerSym)<br>
-SYMBOL_RECORD_ALIAS(S_CALLERS        , 0x115b, CalleeSym, CallerSym)<br>
-<br>
-SYMBOL_RECORD(S_UDT           , 0x1108, UDTSym)<br>
-SYMBOL_RECORD_ALIAS(S_COBOLUDT      , 0x1109, CobolUDT, UDTSym)<br>
-<br>
-SYMBOL_RECORD(S_BUILDINFO      , 0x114c, BuildInfoSym)<br>
-SYMBOL_RECORD(S_BPREL32       , 0x110b, BPRelativeSym)<br>
-SYMBOL_RECORD(S_REGREL32      , 0x1111, RegRelativeSym)<br>
-<br>
-SYMBOL_RECORD(S_CONSTANT      , 0x1107, ConstantSym)<br>
-SYMBOL_RECORD_ALIAS(S_MANCONSTANT   , 0x112d, ManagedConstant, ConstantSym)<br>
-<br>
-SYMBOL_RECORD(S_LDATA32       , 0x110c, DataSym)<br>
-SYMBOL_RECORD_ALIAS(S_GDATA32       , 0x110d, GlobalData, DataSym)<br>
-SYMBOL_RECORD_ALIAS(S_LMANDATA      , 0x111c, ManagedLocalData, DataSym)<br>
-SYMBOL_RECORD_ALIAS(S_GMANDATA      , 0x111d, ManagedGlobalData, DataSym)<br>
-<br>
-SYMBOL_RECORD(S_LTHREAD32     , 0x1112, ThreadLocalDataSym)<br>
-SYMBOL_RECORD_ALIAS(S_GTHREAD32     , 0x1113, GlobalTLS, ThreadLocalDataSym)<br>
-<br>
-<br>
-#undef CV_SYMBOL<br>
-#undef SYMBOL_RECORD<br>
-#undef SYMBOL_RECORD_ALIAS<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/CodeView.h Tue May 30 16:53:05 2017<br>
@@ -6,6 +6,10 @@<br>
 // License. See LICENSE.TXT for details.<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
+//<br>
+// Defines constants and basic types describing CodeView debug information.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
<br>
 #ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H<br>
 #define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H<br>
@@ -22,28 +26,28 @@ namespace codeview {<br>
 /// documentation and headers talk about this as the "leaf" type.<br>
 enum class TypeRecordKind : uint16_t {<br>
 #define TYPE_RECORD(lf_ename, value, name) name = value,<br>
-#include "TypeRecords.def"<br>
+#include "CodeViewTypes.def"<br>
 };<br>
<br>
 /// Duplicate copy of the above enum, but using the official CV names. Useful<br>
 /// for reference purposes and when dealing with unknown record types.<br>
 enum TypeLeafKind : uint16_t {<br>
 #define CV_TYPE(name, val) name = val,<br>
-#include "TypeRecords.def"<br>
+#include "CodeViewTypes.def"<br>
 };<br>
<br>
 /// Distinguishes individual records in the Symbols subsection of a .debug$S<br>
 /// section. Equivalent to SYM_ENUM_e in cvinfo.h.<br>
 enum class SymbolRecordKind : uint16_t {<br>
 #define SYMBOL_RECORD(lf_ename, value, name) name = value,<br>
-#include "CVSymbolTypes.def"<br>
+#include "CodeViewSymbols.def"<br>
 };<br>
<br>
 /// Duplicate copy of the above enum, but using the official CV names. Useful<br>
 /// for reference purposes and when dealing with unknown record types.<br>
 enum SymbolKind : uint16_t {<br>
 #define CV_SYMBOL(name, val) name = val,<br>
-#include "CVSymbolTypes.def"<br>
+#include "CodeViewSymbols.def"<br>
 };<br>
<br>
 #define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)                            \<br>
@@ -280,7 +284,7 @@ CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Met<br>
 /// Equivalent to CV_LABEL_TYPE_e.<br>
 enum class LabelType : uint16_t {<br>
   Near = 0x0,<br>
-  Far  = 0x4,<br>
+  Far = 0x4,<br>
 };<br>
<br>
 /// Equivalent to CV_modifier_t.<br>
<br>
Added: llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def?rev=304248&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def?rev=304248&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def (added)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def Tue May 30 16:53:05 2017<br>
@@ -0,0 +1,258 @@<br>
+//===-- CVLeafTypes.def - All CodeView leaf types ---------------*- C++ -*-===//<br>
+//<br>
+//                     The LLVM Compiler Infrastructure<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+//<br>
+// See LEAF_ENUM_e in cvinfo.h. This should match the constants there.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#ifndef CV_SYMBOL<br>
+#define CV_SYMBOL(ename, value)<br>
+#endif<br>
+<br>
+#ifndef SYMBOL_RECORD<br>
+#define SYMBOL_RECORD(lf_ename, value, name) CV_SYMBOL(lf_ename, value)<br>
+#endif<br>
+<br>
+#ifndef SYMBOL_RECORD_ALIAS<br>
+#define SYMBOL_RECORD_ALIAS(lf_ename, value, name, alias_name)                   \<br>
+  SYMBOL_RECORD(lf_ename, value, name)<br>
+#endif<br>
+<br>
+// 16 bit symbol types. Not very useful, provided only for reference.<br>
+CV_SYMBOL(S_COMPILE       , 0x0001)<br>
+CV_SYMBOL(S_REGISTER_16t  , 0x0002)<br>
+CV_SYMBOL(S_CONSTANT_16t  , 0x0003)<br>
+CV_SYMBOL(S_UDT_16t       , 0x0004)<br>
+CV_SYMBOL(S_SSEARCH       , 0x0005)<br>
+CV_SYMBOL(S_SKIP          , 0x0007)<br>
+CV_SYMBOL(S_CVRESERVE     , 0x0008)<br>
+CV_SYMBOL(S_OBJNAME_ST    , 0x0009)<br>
+CV_SYMBOL(S_ENDARG        , 0x000a)<br>
+CV_SYMBOL(S_COBOLUDT_16t  , 0x000b)<br>
+CV_SYMBOL(S_MANYREG_16t   , 0x000c)<br>
+CV_SYMBOL(S_RETURN        , 0x000d)<br>
+CV_SYMBOL(S_ENTRYTHIS     , 0x000e)<br>
+CV_SYMBOL(S_BPREL16       , 0x0100)<br>
+CV_SYMBOL(S_LDATA16       , 0x0101)<br>
+CV_SYMBOL(S_GDATA16       , 0x0102)<br>
+CV_SYMBOL(S_PUB16         , 0x0103)<br>
+CV_SYMBOL(S_LPROC16       , 0x0104)<br>
+CV_SYMBOL(S_GPROC16       , 0x0105)<br>
+CV_SYMBOL(S_THUNK16       , 0x0106)<br>
+CV_SYMBOL(S_BLOCK16       , 0x0107)<br>
+CV_SYMBOL(S_WITH16        , 0x0108)<br>
+CV_SYMBOL(S_LABEL16       , 0x0109)<br>
+CV_SYMBOL(S_CEXMODEL16    , 0x010a)<br>
+CV_SYMBOL(S_VFTABLE16     , 0x010b)<br>
+CV_SYMBOL(S_REGREL16      , 0x010c)<br>
+CV_SYMBOL(S_BPREL32_16t   , 0x0200)<br>
+CV_SYMBOL(S_LDATA32_16t   , 0x0201)<br>
+CV_SYMBOL(S_GDATA32_16t   , 0x0202)<br>
+CV_SYMBOL(S_PUB32_16t     , 0x0203)<br>
+CV_SYMBOL(S_LPROC32_16t   , 0x0204)<br>
+CV_SYMBOL(S_GPROC32_16t   , 0x0205)<br>
+CV_SYMBOL(S_THUNK32_ST    , 0x0206)<br>
+CV_SYMBOL(S_BLOCK32_ST    , 0x0207)<br>
+CV_SYMBOL(S_WITH32_ST     , 0x0208)<br>
+CV_SYMBOL(S_LABEL32_ST    , 0x0209)<br>
+CV_SYMBOL(S_CEXMODEL32    , 0x020a)<br>
+CV_SYMBOL(S_VFTABLE32_16t , 0x020b)<br>
+CV_SYMBOL(S_REGREL32_16t  , 0x020c)<br>
+CV_SYMBOL(S_LTHREAD32_16t , 0x020d)<br>
+CV_SYMBOL(S_GTHREAD32_16t , 0x020e)<br>
+CV_SYMBOL(S_SLINK32       , 0x020f)<br>
+CV_SYMBOL(S_LPROCMIPS_16t , 0x0300)<br>
+CV_SYMBOL(S_GPROCMIPS_16t , 0x0301)<br>
+CV_SYMBOL(S_PROCREF_ST    , 0x0400)<br>
+CV_SYMBOL(S_DATAREF_ST    , 0x0401)<br>
+CV_SYMBOL(S_ALIGN         , 0x0402)<br>
+CV_SYMBOL(S_LPROCREF_ST   , 0x0403)<br>
+CV_SYMBOL(S_OEM           , 0x0404)<br>
+<br>
+// All post 16 bit symbol types have the 0x1000 bit set.<br>
+CV_SYMBOL(S_TI16_MAX      , 0x1000)<br>
+<br>
+// Mostly unused "start" symbol types.<br>
+CV_SYMBOL(S_REGISTER_ST   , 0x1001)<br>
+CV_SYMBOL(S_CONSTANT_ST   , 0x1002)<br>
+CV_SYMBOL(S_UDT_ST        , 0x1003)<br>
+CV_SYMBOL(S_COBOLUDT_ST   , 0x1004)<br>
+CV_SYMBOL(S_MANYREG_ST    , 0x1005)<br>
+CV_SYMBOL(S_BPREL32_ST    , 0x1006)<br>
+CV_SYMBOL(S_LDATA32_ST    , 0x1007)<br>
+CV_SYMBOL(S_GDATA32_ST    , 0x1008)<br>
+CV_SYMBOL(S_PUB32_ST      , 0x1009)<br>
+CV_SYMBOL(S_LPROC32_ST    , 0x100a)<br>
+CV_SYMBOL(S_GPROC32_ST    , 0x100b)<br>
+CV_SYMBOL(S_VFTABLE32     , 0x100c)<br>
+CV_SYMBOL(S_REGREL32_ST   , 0x100d)<br>
+CV_SYMBOL(S_LTHREAD32_ST  , 0x100e)<br>
+CV_SYMBOL(S_GTHREAD32_ST  , 0x100f)<br>
+CV_SYMBOL(S_LPROCMIPS_ST  , 0x1010)<br>
+CV_SYMBOL(S_GPROCMIPS_ST  , 0x1011)<br>
+<br>
+CV_SYMBOL(S_COMPILE2_ST   , 0x1013)<br>
+CV_SYMBOL(S_MANYREG2_ST   , 0x1014)<br>
+CV_SYMBOL(S_LPROCIA64_ST  , 0x1015)<br>
+CV_SYMBOL(S_GPROCIA64_ST  , 0x1016)<br>
+CV_SYMBOL(S_LOCALSLOT_ST  , 0x1017)<br>
+CV_SYMBOL(S_PARAMSLOT_ST  , 0x1018)<br>
+CV_SYMBOL(S_ANNOTATION    , 0x1019)<br>
+CV_SYMBOL(S_GMANPROC_ST   , 0x101a)<br>
+CV_SYMBOL(S_LMANPROC_ST   , 0x101b)<br>
+CV_SYMBOL(S_RESERVED1     , 0x101c)<br>
+CV_SYMBOL(S_RESERVED2     , 0x101d)<br>
+CV_SYMBOL(S_RESERVED3     , 0x101e)<br>
+CV_SYMBOL(S_RESERVED4     , 0x101f)<br>
+CV_SYMBOL(S_LMANDATA_ST   , 0x1020)<br>
+CV_SYMBOL(S_GMANDATA_ST   , 0x1021)<br>
+CV_SYMBOL(S_MANFRAMEREL_ST, 0x1022)<br>
+CV_SYMBOL(S_MANREGISTER_ST, 0x1023)<br>
+CV_SYMBOL(S_MANSLOT_ST    , 0x1024)<br>
+CV_SYMBOL(S_MANMANYREG_ST , 0x1025)<br>
+CV_SYMBOL(S_MANREGREL_ST  , 0x1026)<br>
+CV_SYMBOL(S_MANMANYREG2_ST, 0x1027)<br>
+CV_SYMBOL(S_MANTYPREF     , 0x1028)<br>
+CV_SYMBOL(S_UNAMESPACE_ST , 0x1029)<br>
+<br>
+// End of S_*_ST symbols, which do not appear to be generated by modern<br>
+// compilers.<br>
+CV_SYMBOL(S_ST_MAX        , 0x1100)<br>
+<br>
+<br>
+CV_SYMBOL(S_WITH32        , 0x1104)<br>
+CV_SYMBOL(S_MANYREG       , 0x110a)<br>
+CV_SYMBOL(S_LPROCMIPS     , 0x1114)<br>
+CV_SYMBOL(S_GPROCMIPS     , 0x1115)<br>
+CV_SYMBOL(S_MANYREG2      , 0x1117)<br>
+CV_SYMBOL(S_LPROCIA64     , 0x1118)<br>
+CV_SYMBOL(S_GPROCIA64     , 0x1119)<br>
+CV_SYMBOL(S_LOCALSLOT     , 0x111a)<br>
+CV_SYMBOL(S_PARAMSLOT     , 0x111b)<br>
+<br>
+// Managed code symbols.<br>
+CV_SYMBOL(S_MANFRAMEREL   , 0x111e)<br>
+CV_SYMBOL(S_MANREGISTER   , 0x111f)<br>
+CV_SYMBOL(S_MANSLOT       , 0x1120)<br>
+CV_SYMBOL(S_MANMANYREG    , 0x1121)<br>
+CV_SYMBOL(S_MANREGREL     , 0x1122)<br>
+CV_SYMBOL(S_MANMANYREG2   , 0x1123)<br>
+CV_SYMBOL(S_UNAMESPACE    , 0x1124)<br>
+CV_SYMBOL(S_DATAREF       , 0x1126)<br>
+CV_SYMBOL(S_ANNOTATIONREF , 0x1128)<br>
+CV_SYMBOL(S_TOKENREF      , 0x1129)<br>
+CV_SYMBOL(S_GMANPROC      , 0x112a)<br>
+CV_SYMBOL(S_LMANPROC      , 0x112b)<br>
+CV_SYMBOL(S_ATTR_FRAMEREL , 0x112e)<br>
+CV_SYMBOL(S_ATTR_REGISTER , 0x112f)<br>
+CV_SYMBOL(S_ATTR_REGREL   , 0x1130)<br>
+CV_SYMBOL(S_ATTR_MANYREG  , 0x1131)<br>
+<br>
+<br>
+CV_SYMBOL(S_SEPCODE       , 0x1132)<br>
+CV_SYMBOL(S_LOCAL_2005    , 0x1133)<br>
+CV_SYMBOL(S_DEFRANGE_2005 , 0x1134)<br>
+CV_SYMBOL(S_DEFRANGE2_2005, 0x1135)<br>
+CV_SYMBOL(S_DISCARDED     , 0x113b)<br>
+<br>
+// Current symbol types for most procedures as of this writing.<br>
+CV_SYMBOL(S_LPROCMIPS_ID   , 0x1148)<br>
+CV_SYMBOL(S_GPROCMIPS_ID   , 0x1149)<br>
+CV_SYMBOL(S_LPROCIA64_ID   , 0x114a)<br>
+CV_SYMBOL(S_GPROCIA64_ID   , 0x114b)<br>
+<br>
+CV_SYMBOL(S_DEFRANGE_HLSL  , 0x1150)<br>
+CV_SYMBOL(S_GDATA_HLSL     , 0x1151)<br>
+CV_SYMBOL(S_LDATA_HLSL     , 0x1152)<br>
+CV_SYMBOL(S_LOCAL_DPC_GROUPSHARED, 0x1154)<br>
+CV_SYMBOL(S_DEFRANGE_DPC_PTR_TAG, 0x1157)<br>
+CV_SYMBOL(S_DPC_SYM_TAG_MAP, 0x1158)<br>
+CV_SYMBOL(S_ARMSWITCHTABLE , 0x1159)<br>
+CV_SYMBOL(S_POGODATA       , 0x115c)<br>
+CV_SYMBOL(S_INLINESITE2    , 0x115d)<br>
+CV_SYMBOL(S_MOD_TYPEREF    , 0x115f)<br>
+CV_SYMBOL(S_REF_MINIPDB    , 0x1160)<br>
+CV_SYMBOL(S_PDBMAP         , 0x1161)<br>
+CV_SYMBOL(S_GDATA_HLSL32   , 0x1162)<br>
+CV_SYMBOL(S_LDATA_HLSL32   , 0x1163)<br>
+CV_SYMBOL(S_GDATA_HLSL32_EX, 0x1164)<br>
+CV_SYMBOL(S_LDATA_HLSL32_EX, 0x1165)<br>
+<br>
+// Known symbol types<br>
+SYMBOL_RECORD(S_END                  , 0x0006, ScopeEndSym)<br>
+SYMBOL_RECORD_ALIAS(S_INLINESITE_END , 0x114e, InlineSiteEnd, ScopeEndSym)<br>
+SYMBOL_RECORD_ALIAS(S_PROC_ID_END    , 0x114f, ProcEnd, ScopeEndSym)<br>
+<br>
+SYMBOL_RECORD(S_THUNK32       , 0x1102, Thunk32Sym)<br>
+SYMBOL_RECORD(S_TRAMPOLINE    , 0x112c, TrampolineSym)<br>
+SYMBOL_RECORD(S_SECTION       , 0x1136, SectionSym)<br>
+SYMBOL_RECORD(S_COFFGROUP     , 0x1137, CoffGroupSym)<br>
+SYMBOL_RECORD(S_EXPORT        , 0x1138, ExportSym)<br>
+<br>
+SYMBOL_RECORD(S_LPROC32       , 0x110f, ProcSym)<br>
+SYMBOL_RECORD_ALIAS(S_GPROC32       , 0x1110, GlobalProcSym, ProcSym)<br>
+SYMBOL_RECORD_ALIAS(S_LPROC32_ID     , 0x1146, ProcIdSym, ProcSym)<br>
+SYMBOL_RECORD_ALIAS(S_GPROC32_ID     , 0x1147, GlobalProcIdSym, ProcSym)<br>
+SYMBOL_RECORD_ALIAS(S_LPROC32_DPC    , 0x1155, DPCProcSym, ProcSym)<br>
+SYMBOL_RECORD_ALIAS(S_LPROC32_DPC_ID , 0x1156, DPCProcIdSym, ProcSym)<br>
+<br>
+SYMBOL_RECORD(S_REGISTER      , 0x1106, RegisterSym)<br>
+SYMBOL_RECORD(S_PUB32         , 0x110e, PublicSym32)<br>
+<br>
+SYMBOL_RECORD(S_PROCREF       , 0x1125, ProcRefSym)<br>
+SYMBOL_RECORD_ALIAS(S_LPROCREF, 0x1127, LocalProcRef, ProcRefSym)<br>
+<br>
+<br>
+SYMBOL_RECORD(S_ENVBLOCK      , 0x113d, EnvBlockSym)<br>
+<br>
+SYMBOL_RECORD(S_INLINESITE     , 0x114d, InlineSiteSym)<br>
+SYMBOL_RECORD(S_LOCAL         , 0x113e, LocalSym)<br>
+SYMBOL_RECORD(S_DEFRANGE      , 0x113f, DefRangeSym)<br>
+SYMBOL_RECORD(S_DEFRANGE_SUBFIELD, 0x1140, DefRangeSubfieldSym)<br>
+SYMBOL_RECORD(S_DEFRANGE_REGISTER, 0x1141, DefRangeRegisterSym)<br>
+SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL, 0x1142, DefRangeFramePointerRelSym)<br>
+SYMBOL_RECORD(S_DEFRANGE_SUBFIELD_REGISTER, 0x1143, DefRangeSubfieldRegisterSym)<br>
+SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE, 0x1144, DefRangeFramePointerRelFullScopeSym)<br>
+SYMBOL_RECORD(S_DEFRANGE_REGISTER_REL, 0x1145, DefRangeRegisterRelSym)<br>
+SYMBOL_RECORD(S_BLOCK32       , 0x1103, BlockSym)<br>
+SYMBOL_RECORD(S_LABEL32       , 0x1105, LabelSym)<br>
+SYMBOL_RECORD(S_OBJNAME       , 0x1101, ObjNameSym)<br>
+SYMBOL_RECORD(S_COMPILE2      , 0x1116, Compile2Sym)<br>
+SYMBOL_RECORD(S_COMPILE3      , 0x113c, Compile3Sym)<br>
+SYMBOL_RECORD(S_FRAMEPROC     , 0x1012, FrameProcSym)<br>
+SYMBOL_RECORD(S_CALLSITEINFO  , 0x1139, CallSiteInfoSym)<br>
+SYMBOL_RECORD(S_FILESTATIC     , 0x1153, FileStaticSym)<br>
+SYMBOL_RECORD(S_HEAPALLOCSITE  , 0x115e, HeapAllocationSiteSym)<br>
+SYMBOL_RECORD(S_FRAMECOOKIE   , 0x113a, FrameCookieSym)<br>
+<br>
+SYMBOL_RECORD(S_CALLEES        , 0x115a, CallerSym)<br>
+SYMBOL_RECORD_ALIAS(S_CALLERS        , 0x115b, CalleeSym, CallerSym)<br>
+<br>
+SYMBOL_RECORD(S_UDT           , 0x1108, UDTSym)<br>
+SYMBOL_RECORD_ALIAS(S_COBOLUDT      , 0x1109, CobolUDT, UDTSym)<br>
+<br>
+SYMBOL_RECORD(S_BUILDINFO      , 0x114c, BuildInfoSym)<br>
+SYMBOL_RECORD(S_BPREL32       , 0x110b, BPRelativeSym)<br>
+SYMBOL_RECORD(S_REGREL32      , 0x1111, RegRelativeSym)<br>
+<br>
+SYMBOL_RECORD(S_CONSTANT      , 0x1107, ConstantSym)<br>
+SYMBOL_RECORD_ALIAS(S_MANCONSTANT   , 0x112d, ManagedConstant, ConstantSym)<br>
+<br>
+SYMBOL_RECORD(S_LDATA32       , 0x110c, DataSym)<br>
+SYMBOL_RECORD_ALIAS(S_GDATA32       , 0x110d, GlobalData, DataSym)<br>
+SYMBOL_RECORD_ALIAS(S_LMANDATA      , 0x111c, ManagedLocalData, DataSym)<br>
+SYMBOL_RECORD_ALIAS(S_GMANDATA      , 0x111d, ManagedGlobalData, DataSym)<br>
+<br>
+SYMBOL_RECORD(S_LTHREAD32     , 0x1112, ThreadLocalDataSym)<br>
+SYMBOL_RECORD_ALIAS(S_GTHREAD32     , 0x1113, GlobalTLS, ThreadLocalDataSym)<br>
+<br>
+<br>
+#undef CV_SYMBOL<br>
+#undef SYMBOL_RECORD<br>
+#undef SYMBOL_RECORD_ALIAS<br>
<br>
Added: llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewTypes.def<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewTypes.def?rev=304248&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewTypes.def?rev=304248&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewTypes.def (added)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewTypes.def Tue May 30 16:53:05 2017<br>
@@ -0,0 +1,251 @@<br>
+<br>
+//===-- CVLeafTypes.def - All CodeView leaf types ---------------*- C++ -*-===//<br>
+//<br>
+//                     The LLVM Compiler Infrastructure<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+//<br>
+// See LEAF_ENUM_e in cvinfo.h. This should match the constants there.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+// If the type is known, then we have a record describing it in TypeRecord.h.<br>
+<br>
+#ifndef CV_TYPE<br>
+#define CV_TYPE(lf_ename, value)<br>
+#endif<br>
+<br>
+// If the type is known, then we have a record describing it in TypeRecord.h.<br>
+#ifndef TYPE_RECORD<br>
+#define TYPE_RECORD(lf_ename, value, name) CV_TYPE(lf_ename, value)<br>
+#endif<br>
+<br>
+#ifndef TYPE_RECORD_ALIAS<br>
+#define TYPE_RECORD_ALIAS(lf_ename, value, name, alias_name)                   \<br>
+  TYPE_RECORD(lf_ename, value, name)<br>
+#endif<br>
+<br>
+#ifndef MEMBER_RECORD<br>
+#define MEMBER_RECORD(lf_ename, value, name) TYPE_RECORD(lf_ename, value, name)<br>
+#endif<br>
+<br>
+#ifndef MEMBER_RECORD_ALIAS<br>
+#define MEMBER_RECORD_ALIAS(lf_ename, value, name, alias_name)                 \<br>
+  MEMBER_RECORD(lf_ename, value, name)<br>
+#endif<br>
+<br>
+TYPE_RECORD(LF_POINTER, 0x1002, Pointer)<br>
+TYPE_RECORD(LF_MODIFIER, 0x1001, Modifier)<br>
+TYPE_RECORD(LF_PROCEDURE, 0x1008, Procedure)<br>
+TYPE_RECORD(LF_MFUNCTION, 0x1009, MemberFunction)<br>
+TYPE_RECORD(LF_LABEL, 0x000e, Label)<br>
+TYPE_RECORD(LF_ARGLIST, 0x1201, ArgList)<br>
+<br>
+TYPE_RECORD(LF_FIELDLIST, 0x1203, FieldList)<br>
+<br>
+TYPE_RECORD(LF_ARRAY, 0x1503, Array)<br>
+TYPE_RECORD(LF_CLASS, 0x1504, Class)<br>
+TYPE_RECORD_ALIAS(LF_STRUCTURE, 0x1505, Struct, Class)<br>
+TYPE_RECORD_ALIAS(LF_INTERFACE, 0x1519, Interface, Class)<br>
+TYPE_RECORD(LF_UNION, 0x1506, Union)<br>
+TYPE_RECORD(LF_ENUM, 0x1507, Enum)<br>
+TYPE_RECORD(LF_TYPESERVER2, 0x1515, TypeServer2)<br>
+TYPE_RECORD(LF_VFTABLE, 0x151d, VFTable)<br>
+TYPE_RECORD(LF_VTSHAPE, 0x000a, VFTableShape)<br>
+<br>
+TYPE_RECORD(LF_BITFIELD, 0x1205, BitField)<br>
+<br>
+// Member type records. These are generally not length prefixed, and appear<br>
+// inside of a field list record.<br>
+MEMBER_RECORD(LF_BCLASS, 0x1400, BaseClass)<br>
+MEMBER_RECORD_ALIAS(LF_BINTERFACE, 0x151a, BaseInterface, BaseClass)<br>
+<br>
+MEMBER_RECORD(LF_VBCLASS, 0x1401, VirtualBaseClass)<br>
+MEMBER_RECORD_ALIAS(LF_IVBCLASS, 0x1402, IndirectVirtualBaseClass,<br>
+                    VirtualBaseClass)<br>
+<br>
+MEMBER_RECORD(LF_VFUNCTAB, 0x1409, VFPtr)<br>
+MEMBER_RECORD(LF_STMEMBER, 0x150e, StaticDataMember)<br>
+MEMBER_RECORD(LF_METHOD, 0x150f, OverloadedMethod)<br>
+MEMBER_RECORD(LF_MEMBER, 0x150d, DataMember)<br>
+MEMBER_RECORD(LF_NESTTYPE, 0x1510, NestedType)<br>
+MEMBER_RECORD(LF_ONEMETHOD, 0x1511, OneMethod)<br>
+MEMBER_RECORD(LF_ENUMERATE, 0x1502, Enumerator)<br>
+MEMBER_RECORD(LF_INDEX, 0x1404, ListContinuation)<br>
+<br>
+// ID leaf records. Subsequent leaf types may be referenced from .debug$S.<br>
+TYPE_RECORD(LF_FUNC_ID, 0x1601, FuncId)<br>
+TYPE_RECORD(LF_MFUNC_ID, 0x1602, MemberFuncId)<br>
+TYPE_RECORD(LF_BUILDINFO, 0x1603, BuildInfo)<br>
+TYPE_RECORD(LF_SUBSTR_LIST, 0x1604, StringList)<br>
+TYPE_RECORD(LF_STRING_ID, 0x1605, StringId)<br>
+TYPE_RECORD(LF_UDT_SRC_LINE, 0x1606, UdtSourceLine)<br>
+TYPE_RECORD(LF_UDT_MOD_SRC_LINE, 0x1607, UdtModSourceLine)<br>
+<br>
+<br>
+TYPE_RECORD(LF_METHODLIST, 0x1206, MethodOverloadList)<br>
+<br>
+<br>
+// 16 bit type records.<br>
+CV_TYPE(LF_MODIFIER_16t, 0x0001)<br>
+CV_TYPE(LF_POINTER_16t, 0x0002)<br>
+CV_TYPE(LF_ARRAY_16t, 0x0003)<br>
+CV_TYPE(LF_CLASS_16t, 0x0004)<br>
+CV_TYPE(LF_STRUCTURE_16t, 0x0005)<br>
+CV_TYPE(LF_UNION_16t, 0x0006)<br>
+CV_TYPE(LF_ENUM_16t, 0x0007)<br>
+CV_TYPE(LF_PROCEDURE_16t, 0x0008)<br>
+CV_TYPE(LF_MFUNCTION_16t, 0x0009)<br>
+CV_TYPE(LF_COBOL0_16t, 0x000b)<br>
+CV_TYPE(LF_COBOL1, 0x000c)<br>
+CV_TYPE(LF_BARRAY_16t, 0x000d)<br>
+CV_TYPE(LF_NULLLEAF, 0x000f) // LF_NULL<br>
+CV_TYPE(LF_NOTTRAN, 0x0010)<br>
+CV_TYPE(LF_DIMARRAY_16t, 0x0011)<br>
+CV_TYPE(LF_VFTPATH_16t, 0x0012)<br>
+CV_TYPE(LF_PRECOMP_16t, 0x0013)<br>
+CV_TYPE(LF_ENDPRECOMP, 0x0014)<br>
+CV_TYPE(LF_OEM_16t, 0x0015)<br>
+CV_TYPE(LF_TYPESERVER_ST, 0x0016)<br>
+<br>
+CV_TYPE(LF_SKIP_16t, 0x0200)<br>
+CV_TYPE(LF_ARGLIST_16t, 0x0201)<br>
+CV_TYPE(LF_DEFARG_16t, 0x0202)<br>
+CV_TYPE(LF_LIST, 0x0203)<br>
+CV_TYPE(LF_FIELDLIST_16t, 0x0204)<br>
+CV_TYPE(LF_DERIVED_16t, 0x0205)<br>
+CV_TYPE(LF_BITFIELD_16t, 0x0206)<br>
+CV_TYPE(LF_METHODLIST_16t, 0x0207)<br>
+CV_TYPE(LF_DIMCONU_16t, 0x0208)<br>
+CV_TYPE(LF_DIMCONLU_16t, 0x0209)<br>
+CV_TYPE(LF_DIMVARU_16t, 0x020a)<br>
+CV_TYPE(LF_DIMVARLU_16t, 0x020b)<br>
+CV_TYPE(LF_REFSYM, 0x020c)<br>
+<br>
+// 16 bit member types. Generally not length prefixed.<br>
+CV_TYPE(LF_BCLASS_16t, 0x0400)<br>
+CV_TYPE(LF_VBCLASS_16t, 0x0401)<br>
+CV_TYPE(LF_IVBCLASS_16t, 0x0402)<br>
+CV_TYPE(LF_ENUMERATE_ST, 0x0403)<br>
+CV_TYPE(LF_FRIENDFCN_16t, 0x0404)<br>
+CV_TYPE(LF_INDEX_16t, 0x0405)<br>
+CV_TYPE(LF_MEMBER_16t, 0x0406)<br>
+CV_TYPE(LF_STMEMBER_16t, 0x0407)<br>
+CV_TYPE(LF_METHOD_16t, 0x0408)<br>
+CV_TYPE(LF_NESTTYPE_16t, 0x0409)<br>
+CV_TYPE(LF_VFUNCTAB_16t, 0x040a)<br>
+CV_TYPE(LF_FRIENDCLS_16t, 0x040b)<br>
+CV_TYPE(LF_ONEMETHOD_16t, 0x040c)<br>
+CV_TYPE(LF_VFUNCOFF_16t, 0x040d)<br>
+<br>
+CV_TYPE(LF_TI16_MAX, 0x1000)<br>
+<br>
+CV_TYPE(LF_ARRAY_ST, 0x1003)<br>
+CV_TYPE(LF_CLASS_ST, 0x1004)<br>
+CV_TYPE(LF_STRUCTURE_ST, 0x1005)<br>
+CV_TYPE(LF_UNION_ST, 0x1006)<br>
+CV_TYPE(LF_ENUM_ST, 0x1007)<br>
+CV_TYPE(LF_COBOL0, 0x100a)<br>
+CV_TYPE(LF_BARRAY, 0x100b)<br>
+CV_TYPE(LF_DIMARRAY_ST, 0x100c)<br>
+CV_TYPE(LF_VFTPATH, 0x100d)<br>
+CV_TYPE(LF_PRECOMP_ST, 0x100e)<br>
+CV_TYPE(LF_OEM, 0x100f)<br>
+CV_TYPE(LF_ALIAS_ST, 0x1010)<br>
+CV_TYPE(LF_OEM2, 0x1011)<br>
+<br>
+CV_TYPE(LF_SKIP, 0x1200)<br>
+CV_TYPE(LF_DEFARG_ST, 0x1202)<br>
+CV_TYPE(LF_DERIVED, 0x1204)<br>
+CV_TYPE(LF_DIMCONU, 0x1207)<br>
+CV_TYPE(LF_DIMCONLU, 0x1208)<br>
+CV_TYPE(LF_DIMVARU, 0x1209)<br>
+CV_TYPE(LF_DIMVARLU, 0x120a)<br>
+<br>
+// Member type records. These are generally not length prefixed, and appear<br>
+// inside of a field list record.<br>
+CV_TYPE(LF_FRIENDFCN_ST, 0x1403)<br>
+CV_TYPE(LF_MEMBER_ST, 0x1405)<br>
+CV_TYPE(LF_STMEMBER_ST, 0x1406)<br>
+CV_TYPE(LF_METHOD_ST, 0x1407)<br>
+CV_TYPE(LF_NESTTYPE_ST, 0x1408)<br>
+CV_TYPE(LF_FRIENDCLS, 0x140a)<br>
+CV_TYPE(LF_ONEMETHOD_ST, 0x140b)<br>
+CV_TYPE(LF_VFUNCOFF, 0x140c)<br>
+CV_TYPE(LF_NESTTYPEEX_ST, 0x140d)<br>
+CV_TYPE(LF_MEMBERMODIFY_ST, 0x140e)<br>
+CV_TYPE(LF_MANAGED_ST, 0x140f)<br>
+<br>
+CV_TYPE(LF_ST_MAX, 0x1500)<br>
+CV_TYPE(LF_TYPESERVER, 0x1501)<br>
+CV_TYPE(LF_DIMARRAY, 0x1508)<br>
+CV_TYPE(LF_PRECOMP, 0x1509)<br>
+CV_TYPE(LF_ALIAS, 0x150a)<br>
+CV_TYPE(LF_DEFARG, 0x150b)<br>
+CV_TYPE(LF_FRIENDFCN, 0x150c)<br>
+CV_TYPE(LF_NESTTYPEEX, 0x1512)<br>
+CV_TYPE(LF_MEMBERMODIFY, 0x1513)<br>
+CV_TYPE(LF_MANAGED, 0x1514)<br>
+CV_TYPE(LF_STRIDED_ARRAY, 0x1516)<br>
+CV_TYPE(LF_HLSL, 0x1517)<br>
+CV_TYPE(LF_MODIFIER_EX, 0x1518)<br>
+CV_TYPE(LF_VECTOR, 0x151b)<br>
+CV_TYPE(LF_MATRIX, 0x151c)<br>
+<br>
+// ID leaf records. Subsequent leaf types may be referenced from .debug$S.<br>
+<br>
+// Numeric leaf types. These are generally contained in other records, and not<br>
+// encountered in the main type stream.<br>
+<br>
+CV_TYPE(LF_NUMERIC, 0x8000)<br>
+CV_TYPE(LF_CHAR, 0x8000)<br>
+CV_TYPE(LF_SHORT, 0x8001)<br>
+CV_TYPE(LF_USHORT, 0x8002)<br>
+CV_TYPE(LF_LONG, 0x8003)<br>
+CV_TYPE(LF_ULONG, 0x8004)<br>
+CV_TYPE(LF_REAL32, 0x8005)<br>
+CV_TYPE(LF_REAL64, 0x8006)<br>
+CV_TYPE(LF_REAL80, 0x8007)<br>
+CV_TYPE(LF_REAL128, 0x8008)<br>
+CV_TYPE(LF_QUADWORD, 0x8009)<br>
+CV_TYPE(LF_UQUADWORD, 0x800a)<br>
+CV_TYPE(LF_REAL48, 0x800b)<br>
+CV_TYPE(LF_COMPLEX32, 0x800c)<br>
+CV_TYPE(LF_COMPLEX64, 0x800d)<br>
+CV_TYPE(LF_COMPLEX80, 0x800e)<br>
+CV_TYPE(LF_COMPLEX128, 0x800f)<br>
+CV_TYPE(LF_VARSTRING, 0x8010)<br>
+CV_TYPE(LF_OCTWORD, 0x8017)<br>
+CV_TYPE(LF_UOCTWORD, 0x8018)<br>
+CV_TYPE(LF_DECIMAL, 0x8019)<br>
+CV_TYPE(LF_DATE, 0x801a)<br>
+CV_TYPE(LF_UTF8STRING, 0x801b)<br>
+CV_TYPE(LF_REAL16, 0x801c)<br>
+<br>
+// Padding bytes. These are emitted into alignment bytes in the type stream.<br>
+<br>
+CV_TYPE(LF_PAD0, 0xf0)<br>
+CV_TYPE(LF_PAD1, 0xf1)<br>
+CV_TYPE(LF_PAD2, 0xf2)<br>
+CV_TYPE(LF_PAD3, 0xf3)<br>
+CV_TYPE(LF_PAD4, 0xf4)<br>
+CV_TYPE(LF_PAD5, 0xf5)<br>
+CV_TYPE(LF_PAD6, 0xf6)<br>
+CV_TYPE(LF_PAD7, 0xf7)<br>
+CV_TYPE(LF_PAD8, 0xf8)<br>
+CV_TYPE(LF_PAD9, 0xf9)<br>
+CV_TYPE(LF_PAD10, 0xfa)<br>
+CV_TYPE(LF_PAD11, 0xfb)<br>
+CV_TYPE(LF_PAD12, 0xfc)<br>
+CV_TYPE(LF_PAD13, 0xfd)<br>
+CV_TYPE(LF_PAD14, 0xfe)<br>
+CV_TYPE(LF_PAD15, 0xff)<br>
+<br>
+#undef CV_TYPE<br>
+#undef TYPE_RECORD<br>
+#undef TYPE_RECORD_ALIAS<br>
+#undef MEMBER_RECORD<br>
+#undef MEMBER_RECORD_ALIAS<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h Tue May 30 16:53:05 2017<br>
@@ -54,7 +54,7 @@ public:<br>
     return visitKnownRecordImpl(CVR, Record);                                  \<br>
   }<br>
 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
<br>
 private:<br>
   template <typename T> Error visitKnownRecordImpl(CVSymbol &CVR, T &Record) {<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h Tue May 30 16:53:05 2017<br>
@@ -29,7 +29,7 @@ public:<br>
 #define SYMBOL_RECORD(EnumName, EnumVal, Name)                                 \<br>
   Error visitKnownRecord(CVSymbol &CVR, Name &Record) override;<br>
 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
<br>
 private:<br>
   Optional<SymbolKind> Kind;<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolSerializer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolSerializer.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolSerializer.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolSerializer.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolSerializer.h Tue May 30 16:53:05 2017<br>
@@ -55,7 +55,7 @@ public:<br>
     return visitKnownRecordImpl(CVR, Record);                                  \<br>
   }<br>
 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
<br>
 private:<br>
   template <typename RecordKind><br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h Tue May 30 16:53:05 2017<br>
@@ -59,7 +59,7 @@ public:<br>
     return Error::success();                                                   \<br>
   }<br>
 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "llvm/DebugInfo/CodeView/CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
<br>
 private:<br>
   std::vector<SymbolVisitorCallbacks *> Pipeline;<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h Tue May 30 16:53:05 2017<br>
@@ -39,7 +39,7 @@ public:<br>
     return Error::success();                                                   \<br>
   }<br>
 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
 };<br>
<br>
 } // end namespace codeview<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h Tue May 30 16:53:05 2017<br>
@@ -39,7 +39,7 @@ public:<br>
   Error visitKnownMember(CVMemberRecord &CVR, Name##Record &Record) override;<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   StringRef getTypeName(TypeIndex Index) const;<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDeserializer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDeserializer.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDeserializer.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDeserializer.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDeserializer.h Tue May 30 16:53:05 2017<br>
@@ -41,6 +41,7 @@ public:<br>
   TypeDeserializer() = default;<br>
<br>
   template <typename T> static Error deserializeAs(CVType &CVT, T &Record) {<br>
+    Record.Kind = static_cast<TypeRecordKind>(CVT.kind());<br>
     MappingInfo I(CVT.content());<br>
     if (auto EC = I.Mapping.visitTypeBegin(CVT))<br>
       return EC;<br>
@@ -75,7 +76,7 @@ public:<br>
 #define MEMBER_RECORD(EnumName, EnumVal, Name)<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   template <typename RecordType><br>
@@ -127,7 +128,7 @@ public:<br>
   }<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   template <typename RecordType><br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h Tue May 30 16:53:05 2017<br>
@@ -58,7 +58,7 @@ public:<br>
   Error visitKnownMember(CVMemberRecord &CVR, Name##Record &Record) override;<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   void printMemberAttributes(MemberAttributes Attrs);<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecord.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecord.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecord.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecord.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecord.h Tue May 30 16:53:05 2017<br>
@@ -123,13 +123,13 @@ protected:<br>
 public:<br>
   TypeRecordKind getKind() const { return Kind; }<br>
<br>
-private:<br>
   TypeRecordKind Kind;<br>
 };<br>
<br>
 // LF_MODIFIER<br>
 class ModifierRecord : public TypeRecord {<br>
 public:<br>
+  ModifierRecord() = default;<br>
   explicit ModifierRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   ModifierRecord(TypeIndex ModifiedType, ModifierOptions Modifiers)<br>
       : TypeRecord(TypeRecordKind::Modifier), ModifiedType(ModifiedType),<br>
@@ -145,6 +145,7 @@ public:<br>
 // LF_PROCEDURE<br>
 class ProcedureRecord : public TypeRecord {<br>
 public:<br>
+  ProcedureRecord() = default;<br>
   explicit ProcedureRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   ProcedureRecord(TypeIndex ReturnType, CallingConvention CallConv,<br>
                   FunctionOptions Options, uint16_t ParameterCount,<br>
@@ -169,6 +170,7 @@ public:<br>
 // LF_MFUNCTION<br>
 class MemberFunctionRecord : public TypeRecord {<br>
 public:<br>
+  MemberFunctionRecord() = default;<br>
   explicit MemberFunctionRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
<br>
   MemberFunctionRecord(TypeIndex ReturnType, TypeIndex ClassType,<br>
@@ -203,6 +205,7 @@ public:<br>
 // LF_LABEL<br>
 class LabelRecord : public TypeRecord {<br>
 public:<br>
+  LabelRecord() = default;<br>
   explicit LabelRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
<br>
   LabelRecord(LabelType Mode) : TypeRecord(TypeRecordKind::Label), Mode(Mode) {}<br>
@@ -213,6 +216,7 @@ public:<br>
 // LF_MFUNC_ID<br>
 class MemberFuncIdRecord : public TypeRecord {<br>
 public:<br>
+  MemberFuncIdRecord() = default;<br>
   explicit MemberFuncIdRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   MemberFuncIdRecord(TypeIndex ClassType, TypeIndex FunctionType,<br>
                          StringRef Name)<br>
@@ -230,6 +234,7 @@ public:<br>
 // LF_ARGLIST<br>
 class ArgListRecord : public TypeRecord {<br>
 public:<br>
+  ArgListRecord() = default;<br>
   explicit ArgListRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
<br>
   ArgListRecord(TypeRecordKind Kind, ArrayRef<TypeIndex> Indices)<br>
@@ -243,6 +248,7 @@ public:<br>
 // LF_SUBSTR_LIST<br>
 class StringListRecord : public TypeRecord {<br>
 public:<br>
+  StringListRecord() = default;<br>
   explicit StringListRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
<br>
   StringListRecord(TypeRecordKind Kind, ArrayRef<TypeIndex> Indices)<br>
@@ -267,6 +273,7 @@ public:<br>
   static const uint32_t PointerSizeShift = 13;<br>
   static const uint32_t PointerSizeMask = 0xFF;<br>
<br>
+  PointerRecord() = default;<br>
   explicit PointerRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
<br>
   PointerRecord(TypeIndex ReferentType, uint32_t Attrs)<br>
@@ -341,6 +348,7 @@ private:<br>
 // LF_NESTTYPE<br>
 class NestedTypeRecord : public TypeRecord {<br>
 public:<br>
+  NestedTypeRecord() = default;<br>
   explicit NestedTypeRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   NestedTypeRecord(TypeIndex Type, StringRef Name)<br>
       : TypeRecord(TypeRecordKind::NestedType), Type(Type), Name(Name) {}<br>
@@ -355,6 +363,7 @@ public:<br>
 // LF_FIELDLIST<br>
 class FieldListRecord : public TypeRecord {<br>
 public:<br>
+  FieldListRecord() = default;<br>
   explicit FieldListRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   explicit FieldListRecord(ArrayRef<uint8_t> Data)<br>
       : TypeRecord(TypeRecordKind::FieldList), Data(Data) {}<br>
@@ -365,6 +374,7 @@ public:<br>
 // LF_ARRAY<br>
 class ArrayRecord : public TypeRecord {<br>
 public:<br>
+  ArrayRecord() = default;<br>
   explicit ArrayRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   ArrayRecord(TypeIndex ElementType, TypeIndex IndexType, uint64_t Size,<br>
               StringRef Name)<br>
@@ -384,6 +394,7 @@ public:<br>
<br>
 class TagRecord : public TypeRecord {<br>
 protected:<br>
+  TagRecord() = default;<br>
   explicit TagRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   TagRecord(TypeRecordKind Kind, uint16_t MemberCount, ClassOptions Options,<br>
             TypeIndex FieldList, StringRef Name, StringRef UniqueName)<br>
@@ -416,6 +427,7 @@ public:<br>
 // LF_CLASS, LF_STRUCTURE, LF_INTERFACE<br>
 class ClassRecord : public TagRecord {<br>
 public:<br>
+  ClassRecord() = default;<br>
   explicit ClassRecord(TypeRecordKind Kind) : TagRecord(Kind) {}<br>
   ClassRecord(TypeRecordKind Kind, uint16_t MemberCount, ClassOptions Options,<br>
               TypeIndex FieldList, TypeIndex DerivationList,<br>
@@ -447,6 +459,7 @@ public:<br>
<br>
 // LF_UNION<br>
 struct UnionRecord : public TagRecord {<br>
+  UnionRecord() = default;<br>
   explicit UnionRecord(TypeRecordKind Kind) : TagRecord(Kind) {}<br>
   UnionRecord(uint16_t MemberCount, ClassOptions Options, TypeIndex FieldList,<br>
               uint64_t Size, StringRef Name, StringRef UniqueName)<br>
@@ -468,6 +481,7 @@ struct UnionRecord : public TagRecord {<br>
 // LF_ENUM<br>
 class EnumRecord : public TagRecord {<br>
 public:<br>
+  EnumRecord() = default;<br>
   explicit EnumRecord(TypeRecordKind Kind) : TagRecord(Kind) {}<br>
   EnumRecord(uint16_t MemberCount, ClassOptions Options, TypeIndex FieldList,<br>
              StringRef Name, StringRef UniqueName, TypeIndex UnderlyingType)<br>
@@ -482,6 +496,7 @@ public:<br>
 // LF_BITFIELD<br>
 class BitFieldRecord : public TypeRecord {<br>
 public:<br>
+  BitFieldRecord() = default;<br>
   explicit BitFieldRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   BitFieldRecord(TypeIndex Type, uint8_t BitSize, uint8_t BitOffset)<br>
       : TypeRecord(TypeRecordKind::BitField), Type(Type), BitSize(BitSize),<br>
@@ -498,6 +513,7 @@ public:<br>
 // LF_VTSHAPE<br>
 class VFTableShapeRecord : public TypeRecord {<br>
 public:<br>
+  VFTableShapeRecord() = default;<br>
   explicit VFTableShapeRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   explicit VFTableShapeRecord(ArrayRef<VFTableSlotKind> Slots)<br>
       : TypeRecord(TypeRecordKind::VFTableShape), SlotsRef(Slots) {}<br>
@@ -518,6 +534,7 @@ public:<br>
 // LF_TYPESERVER2<br>
 class TypeServer2Record : public TypeRecord {<br>
 public:<br>
+  TypeServer2Record() = default;<br>
   explicit TypeServer2Record(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   TypeServer2Record(StringRef Guid, uint32_t Age, StringRef Name)<br>
       : TypeRecord(TypeRecordKind::TypeServer2), Guid(Guid), Age(Age),<br>
@@ -537,6 +554,7 @@ public:<br>
 // LF_STRING_ID<br>
 class StringIdRecord : public TypeRecord {<br>
 public:<br>
+  StringIdRecord() = default;<br>
   explicit StringIdRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   StringIdRecord(TypeIndex Id, StringRef String)<br>
       : TypeRecord(TypeRecordKind::StringId), Id(Id), String(String) {}<br>
@@ -551,6 +569,7 @@ public:<br>
 // LF_FUNC_ID<br>
 class FuncIdRecord : public TypeRecord {<br>
 public:<br>
+  FuncIdRecord() = default;<br>
   explicit FuncIdRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   FuncIdRecord(TypeIndex ParentScope, TypeIndex FunctionType, StringRef Name)<br>
       : TypeRecord(TypeRecordKind::FuncId), ParentScope(ParentScope),<br>
@@ -570,6 +589,7 @@ public:<br>
 // LF_UDT_SRC_LINE<br>
 class UdtSourceLineRecord : public TypeRecord {<br>
 public:<br>
+  UdtSourceLineRecord() = default;<br>
   explicit UdtSourceLineRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   UdtSourceLineRecord(TypeIndex UDT, TypeIndex SourceFile, uint32_t LineNumber)<br>
       : TypeRecord(TypeRecordKind::UdtSourceLine), UDT(UDT),<br>
@@ -587,6 +607,7 @@ public:<br>
 // LF_UDT_MOD_SRC_LINE<br>
 class UdtModSourceLineRecord : public TypeRecord {<br>
 public:<br>
+  UdtModSourceLineRecord() = default;<br>
   explicit UdtModSourceLineRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   UdtModSourceLineRecord(TypeIndex UDT, TypeIndex SourceFile,<br>
                          uint32_t LineNumber, uint16_t Module)<br>
@@ -607,6 +628,7 @@ public:<br>
 // LF_BUILDINFO<br>
 class BuildInfoRecord : public TypeRecord {<br>
 public:<br>
+  BuildInfoRecord() = default;<br>
   explicit BuildInfoRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   BuildInfoRecord(ArrayRef<TypeIndex> ArgIndices)<br>
       : TypeRecord(TypeRecordKind::BuildInfo),<br>
@@ -619,6 +641,7 @@ public:<br>
 // LF_VFTABLE<br>
 class VFTableRecord : public TypeRecord {<br>
 public:<br>
+  VFTableRecord() = default;<br>
   explicit VFTableRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   VFTableRecord(TypeIndex CompleteClass, TypeIndex OverriddenVFTable,<br>
                 uint32_t VFPtrOffset, StringRef Name,<br>
@@ -646,7 +669,7 @@ public:<br>
 // LF_ONEMETHOD<br>
 class OneMethodRecord : public TypeRecord {<br>
 public:<br>
-  OneMethodRecord() : TypeRecord(TypeRecordKind::OneMethod) {}<br>
+  OneMethodRecord() = default;<br>
   explicit OneMethodRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   OneMethodRecord(TypeIndex Type, MemberAttributes Attrs, int32_t VFTableOffset,<br>
                   StringRef Name)<br>
@@ -678,6 +701,7 @@ public:<br>
 // LF_METHODLIST<br>
 class MethodOverloadListRecord : public TypeRecord {<br>
 public:<br>
+  MethodOverloadListRecord() = default;<br>
   explicit MethodOverloadListRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   MethodOverloadListRecord(ArrayRef<OneMethodRecord> Methods)<br>
       : TypeRecord(TypeRecordKind::MethodOverloadList), Methods(Methods) {}<br>
@@ -689,6 +713,7 @@ public:<br>
 /// For method overload sets.  LF_METHOD<br>
 class OverloadedMethodRecord : public TypeRecord {<br>
 public:<br>
+  OverloadedMethodRecord() = default;<br>
   explicit OverloadedMethodRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   OverloadedMethodRecord(uint16_t NumOverloads, TypeIndex MethodList,<br>
                          StringRef Name)<br>
@@ -706,6 +731,7 @@ public:<br>
 // LF_MEMBER<br>
 class DataMemberRecord : public TypeRecord {<br>
 public:<br>
+  DataMemberRecord() = default;<br>
   explicit DataMemberRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   DataMemberRecord(MemberAttributes Attrs, TypeIndex Type, uint64_t Offset,<br>
                    StringRef Name)<br>
@@ -730,6 +756,7 @@ public:<br>
 // LF_STMEMBER<br>
 class StaticDataMemberRecord : public TypeRecord {<br>
 public:<br>
+  StaticDataMemberRecord() = default;<br>
   explicit StaticDataMemberRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   StaticDataMemberRecord(MemberAttributes Attrs, TypeIndex Type, StringRef Name)<br>
       : TypeRecord(TypeRecordKind::StaticDataMember), Attrs(Attrs), Type(Type),<br>
@@ -750,6 +777,7 @@ public:<br>
 // LF_ENUMERATE<br>
 class EnumeratorRecord : public TypeRecord {<br>
 public:<br>
+  EnumeratorRecord() = default;<br>
   explicit EnumeratorRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   EnumeratorRecord(MemberAttributes Attrs, APSInt Value, StringRef Name)<br>
       : TypeRecord(TypeRecordKind::Enumerator), Attrs(Attrs),<br>
@@ -770,6 +798,7 @@ public:<br>
 // LF_VFUNCTAB<br>
 class VFPtrRecord : public TypeRecord {<br>
 public:<br>
+  VFPtrRecord() = default;<br>
   explicit VFPtrRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   VFPtrRecord(TypeIndex Type)<br>
       : TypeRecord(TypeRecordKind::VFPtr), Type(Type) {}<br>
@@ -782,6 +811,7 @@ public:<br>
 // LF_BCLASS, LF_BINTERFACE<br>
 class BaseClassRecord : public TypeRecord {<br>
 public:<br>
+  BaseClassRecord() = default;<br>
   explicit BaseClassRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   BaseClassRecord(MemberAttributes Attrs, TypeIndex Type, uint64_t Offset)<br>
       : TypeRecord(TypeRecordKind::BaseClass), Attrs(Attrs), Type(Type),<br>
@@ -802,6 +832,7 @@ public:<br>
 // LF_VBCLASS, LF_IVBCLASS<br>
 class VirtualBaseClassRecord : public TypeRecord {<br>
 public:<br>
+  VirtualBaseClassRecord() = default;<br>
   explicit VirtualBaseClassRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   VirtualBaseClassRecord(TypeRecordKind Kind, MemberAttributes Attrs,<br>
                          TypeIndex BaseType, TypeIndex VBPtrType,<br>
@@ -831,6 +862,7 @@ public:<br>
 /// together. The first will end in an LF_INDEX record that points to the next.<br>
 class ListContinuationRecord : public TypeRecord {<br>
 public:<br>
+  ListContinuationRecord() = default;<br>
   explicit ListContinuationRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}<br>
   ListContinuationRecord(TypeIndex ContinuationIndex)<br>
       : TypeRecord(TypeRecordKind::ListContinuation),<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h Tue May 30 16:53:05 2017<br>
@@ -37,7 +37,7 @@ public:<br>
   Error visitKnownMember(CVMemberRecord &CVR, Name##Record &Record) override;<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   Optional<TypeLeafKind> TypeKind;<br>
<br>
Removed: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecords.def<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecords.def?rev=304247&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecords.def?rev=304247&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecords.def (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeRecords.def (removed)<br>
@@ -1,251 +0,0 @@<br>
-<br>
-//===-- CVLeafTypes.def - All CodeView leaf types ---------------*- C++ -*-===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// See LEAF_ENUM_e in cvinfo.h. This should match the constants there.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-// If the type is known, then we have a record describing it in TypeRecord.h.<br>
-<br>
-#ifndef CV_TYPE<br>
-#define CV_TYPE(lf_ename, value)<br>
-#endif<br>
-<br>
-// If the type is known, then we have a record describing it in TypeRecord.h.<br>
-#ifndef TYPE_RECORD<br>
-#define TYPE_RECORD(lf_ename, value, name) CV_TYPE(lf_ename, value)<br>
-#endif<br>
-<br>
-#ifndef TYPE_RECORD_ALIAS<br>
-#define TYPE_RECORD_ALIAS(lf_ename, value, name, alias_name)                   \<br>
-  TYPE_RECORD(lf_ename, value, name)<br>
-#endif<br>
-<br>
-#ifndef MEMBER_RECORD<br>
-#define MEMBER_RECORD(lf_ename, value, name) TYPE_RECORD(lf_ename, value, name)<br>
-#endif<br>
-<br>
-#ifndef MEMBER_RECORD_ALIAS<br>
-#define MEMBER_RECORD_ALIAS(lf_ename, value, name, alias_name)                 \<br>
-  MEMBER_RECORD(lf_ename, value, name)<br>
-#endif<br>
-<br>
-TYPE_RECORD(LF_POINTER, 0x1002, Pointer)<br>
-TYPE_RECORD(LF_MODIFIER, 0x1001, Modifier)<br>
-TYPE_RECORD(LF_PROCEDURE, 0x1008, Procedure)<br>
-TYPE_RECORD(LF_MFUNCTION, 0x1009, MemberFunction)<br>
-TYPE_RECORD(LF_LABEL, 0x000e, Label)<br>
-TYPE_RECORD(LF_ARGLIST, 0x1201, ArgList)<br>
-<br>
-TYPE_RECORD(LF_FIELDLIST, 0x1203, FieldList)<br>
-<br>
-TYPE_RECORD(LF_ARRAY, 0x1503, Array)<br>
-TYPE_RECORD(LF_CLASS, 0x1504, Class)<br>
-TYPE_RECORD_ALIAS(LF_STRUCTURE, 0x1505, Struct, Class)<br>
-TYPE_RECORD_ALIAS(LF_INTERFACE, 0x1519, Interface, Class)<br>
-TYPE_RECORD(LF_UNION, 0x1506, Union)<br>
-TYPE_RECORD(LF_ENUM, 0x1507, Enum)<br>
-TYPE_RECORD(LF_TYPESERVER2, 0x1515, TypeServer2)<br>
-TYPE_RECORD(LF_VFTABLE, 0x151d, VFTable)<br>
-TYPE_RECORD(LF_VTSHAPE, 0x000a, VFTableShape)<br>
-<br>
-TYPE_RECORD(LF_BITFIELD, 0x1205, BitField)<br>
-<br>
-// Member type records. These are generally not length prefixed, and appear<br>
-// inside of a field list record.<br>
-MEMBER_RECORD(LF_BCLASS, 0x1400, BaseClass)<br>
-MEMBER_RECORD_ALIAS(LF_BINTERFACE, 0x151a, BaseInterface, BaseClass)<br>
-<br>
-MEMBER_RECORD(LF_VBCLASS, 0x1401, VirtualBaseClass)<br>
-MEMBER_RECORD_ALIAS(LF_IVBCLASS, 0x1402, IndirectVirtualBaseClass,<br>
-                    VirtualBaseClass)<br>
-<br>
-MEMBER_RECORD(LF_VFUNCTAB, 0x1409, VFPtr)<br>
-MEMBER_RECORD(LF_STMEMBER, 0x150e, StaticDataMember)<br>
-MEMBER_RECORD(LF_METHOD, 0x150f, OverloadedMethod)<br>
-MEMBER_RECORD(LF_MEMBER, 0x150d, DataMember)<br>
-MEMBER_RECORD(LF_NESTTYPE, 0x1510, NestedType)<br>
-MEMBER_RECORD(LF_ONEMETHOD, 0x1511, OneMethod)<br>
-MEMBER_RECORD(LF_ENUMERATE, 0x1502, Enumerator)<br>
-MEMBER_RECORD(LF_INDEX, 0x1404, ListContinuation)<br>
-<br>
-// ID leaf records. Subsequent leaf types may be referenced from .debug$S.<br>
-TYPE_RECORD(LF_FUNC_ID, 0x1601, FuncId)<br>
-TYPE_RECORD(LF_MFUNC_ID, 0x1602, MemberFuncId)<br>
-TYPE_RECORD(LF_BUILDINFO, 0x1603, BuildInfo)<br>
-TYPE_RECORD(LF_SUBSTR_LIST, 0x1604, StringList)<br>
-TYPE_RECORD(LF_STRING_ID, 0x1605, StringId)<br>
-TYPE_RECORD(LF_UDT_SRC_LINE, 0x1606, UdtSourceLine)<br>
-TYPE_RECORD(LF_UDT_MOD_SRC_LINE, 0x1607, UdtModSourceLine)<br>
-<br>
-<br>
-TYPE_RECORD(LF_METHODLIST, 0x1206, MethodOverloadList)<br>
-<br>
-<br>
-// 16 bit type records.<br>
-CV_TYPE(LF_MODIFIER_16t, 0x0001)<br>
-CV_TYPE(LF_POINTER_16t, 0x0002)<br>
-CV_TYPE(LF_ARRAY_16t, 0x0003)<br>
-CV_TYPE(LF_CLASS_16t, 0x0004)<br>
-CV_TYPE(LF_STRUCTURE_16t, 0x0005)<br>
-CV_TYPE(LF_UNION_16t, 0x0006)<br>
-CV_TYPE(LF_ENUM_16t, 0x0007)<br>
-CV_TYPE(LF_PROCEDURE_16t, 0x0008)<br>
-CV_TYPE(LF_MFUNCTION_16t, 0x0009)<br>
-CV_TYPE(LF_COBOL0_16t, 0x000b)<br>
-CV_TYPE(LF_COBOL1, 0x000c)<br>
-CV_TYPE(LF_BARRAY_16t, 0x000d)<br>
-CV_TYPE(LF_NULLLEAF, 0x000f) // LF_NULL<br>
-CV_TYPE(LF_NOTTRAN, 0x0010)<br>
-CV_TYPE(LF_DIMARRAY_16t, 0x0011)<br>
-CV_TYPE(LF_VFTPATH_16t, 0x0012)<br>
-CV_TYPE(LF_PRECOMP_16t, 0x0013)<br>
-CV_TYPE(LF_ENDPRECOMP, 0x0014)<br>
-CV_TYPE(LF_OEM_16t, 0x0015)<br>
-CV_TYPE(LF_TYPESERVER_ST, 0x0016)<br>
-<br>
-CV_TYPE(LF_SKIP_16t, 0x0200)<br>
-CV_TYPE(LF_ARGLIST_16t, 0x0201)<br>
-CV_TYPE(LF_DEFARG_16t, 0x0202)<br>
-CV_TYPE(LF_LIST, 0x0203)<br>
-CV_TYPE(LF_FIELDLIST_16t, 0x0204)<br>
-CV_TYPE(LF_DERIVED_16t, 0x0205)<br>
-CV_TYPE(LF_BITFIELD_16t, 0x0206)<br>
-CV_TYPE(LF_METHODLIST_16t, 0x0207)<br>
-CV_TYPE(LF_DIMCONU_16t, 0x0208)<br>
-CV_TYPE(LF_DIMCONLU_16t, 0x0209)<br>
-CV_TYPE(LF_DIMVARU_16t, 0x020a)<br>
-CV_TYPE(LF_DIMVARLU_16t, 0x020b)<br>
-CV_TYPE(LF_REFSYM, 0x020c)<br>
-<br>
-// 16 bit member types. Generally not length prefixed.<br>
-CV_TYPE(LF_BCLASS_16t, 0x0400)<br>
-CV_TYPE(LF_VBCLASS_16t, 0x0401)<br>
-CV_TYPE(LF_IVBCLASS_16t, 0x0402)<br>
-CV_TYPE(LF_ENUMERATE_ST, 0x0403)<br>
-CV_TYPE(LF_FRIENDFCN_16t, 0x0404)<br>
-CV_TYPE(LF_INDEX_16t, 0x0405)<br>
-CV_TYPE(LF_MEMBER_16t, 0x0406)<br>
-CV_TYPE(LF_STMEMBER_16t, 0x0407)<br>
-CV_TYPE(LF_METHOD_16t, 0x0408)<br>
-CV_TYPE(LF_NESTTYPE_16t, 0x0409)<br>
-CV_TYPE(LF_VFUNCTAB_16t, 0x040a)<br>
-CV_TYPE(LF_FRIENDCLS_16t, 0x040b)<br>
-CV_TYPE(LF_ONEMETHOD_16t, 0x040c)<br>
-CV_TYPE(LF_VFUNCOFF_16t, 0x040d)<br>
-<br>
-CV_TYPE(LF_TI16_MAX, 0x1000)<br>
-<br>
-CV_TYPE(LF_ARRAY_ST, 0x1003)<br>
-CV_TYPE(LF_CLASS_ST, 0x1004)<br>
-CV_TYPE(LF_STRUCTURE_ST, 0x1005)<br>
-CV_TYPE(LF_UNION_ST, 0x1006)<br>
-CV_TYPE(LF_ENUM_ST, 0x1007)<br>
-CV_TYPE(LF_COBOL0, 0x100a)<br>
-CV_TYPE(LF_BARRAY, 0x100b)<br>
-CV_TYPE(LF_DIMARRAY_ST, 0x100c)<br>
-CV_TYPE(LF_VFTPATH, 0x100d)<br>
-CV_TYPE(LF_PRECOMP_ST, 0x100e)<br>
-CV_TYPE(LF_OEM, 0x100f)<br>
-CV_TYPE(LF_ALIAS_ST, 0x1010)<br>
-CV_TYPE(LF_OEM2, 0x1011)<br>
-<br>
-CV_TYPE(LF_SKIP, 0x1200)<br>
-CV_TYPE(LF_DEFARG_ST, 0x1202)<br>
-CV_TYPE(LF_DERIVED, 0x1204)<br>
-CV_TYPE(LF_DIMCONU, 0x1207)<br>
-CV_TYPE(LF_DIMCONLU, 0x1208)<br>
-CV_TYPE(LF_DIMVARU, 0x1209)<br>
-CV_TYPE(LF_DIMVARLU, 0x120a)<br>
-<br>
-// Member type records. These are generally not length prefixed, and appear<br>
-// inside of a field list record.<br>
-CV_TYPE(LF_FRIENDFCN_ST, 0x1403)<br>
-CV_TYPE(LF_MEMBER_ST, 0x1405)<br>
-CV_TYPE(LF_STMEMBER_ST, 0x1406)<br>
-CV_TYPE(LF_METHOD_ST, 0x1407)<br>
-CV_TYPE(LF_NESTTYPE_ST, 0x1408)<br>
-CV_TYPE(LF_FRIENDCLS, 0x140a)<br>
-CV_TYPE(LF_ONEMETHOD_ST, 0x140b)<br>
-CV_TYPE(LF_VFUNCOFF, 0x140c)<br>
-CV_TYPE(LF_NESTTYPEEX_ST, 0x140d)<br>
-CV_TYPE(LF_MEMBERMODIFY_ST, 0x140e)<br>
-CV_TYPE(LF_MANAGED_ST, 0x140f)<br>
-<br>
-CV_TYPE(LF_ST_MAX, 0x1500)<br>
-CV_TYPE(LF_TYPESERVER, 0x1501)<br>
-CV_TYPE(LF_DIMARRAY, 0x1508)<br>
-CV_TYPE(LF_PRECOMP, 0x1509)<br>
-CV_TYPE(LF_ALIAS, 0x150a)<br>
-CV_TYPE(LF_DEFARG, 0x150b)<br>
-CV_TYPE(LF_FRIENDFCN, 0x150c)<br>
-CV_TYPE(LF_NESTTYPEEX, 0x1512)<br>
-CV_TYPE(LF_MEMBERMODIFY, 0x1513)<br>
-CV_TYPE(LF_MANAGED, 0x1514)<br>
-CV_TYPE(LF_STRIDED_ARRAY, 0x1516)<br>
-CV_TYPE(LF_HLSL, 0x1517)<br>
-CV_TYPE(LF_MODIFIER_EX, 0x1518)<br>
-CV_TYPE(LF_VECTOR, 0x151b)<br>
-CV_TYPE(LF_MATRIX, 0x151c)<br>
-<br>
-// ID leaf records. Subsequent leaf types may be referenced from .debug$S.<br>
-<br>
-// Numeric leaf types. These are generally contained in other records, and not<br>
-// encountered in the main type stream.<br>
-<br>
-CV_TYPE(LF_NUMERIC, 0x8000)<br>
-CV_TYPE(LF_CHAR, 0x8000)<br>
-CV_TYPE(LF_SHORT, 0x8001)<br>
-CV_TYPE(LF_USHORT, 0x8002)<br>
-CV_TYPE(LF_LONG, 0x8003)<br>
-CV_TYPE(LF_ULONG, 0x8004)<br>
-CV_TYPE(LF_REAL32, 0x8005)<br>
-CV_TYPE(LF_REAL64, 0x8006)<br>
-CV_TYPE(LF_REAL80, 0x8007)<br>
-CV_TYPE(LF_REAL128, 0x8008)<br>
-CV_TYPE(LF_QUADWORD, 0x8009)<br>
-CV_TYPE(LF_UQUADWORD, 0x800a)<br>
-CV_TYPE(LF_REAL48, 0x800b)<br>
-CV_TYPE(LF_COMPLEX32, 0x800c)<br>
-CV_TYPE(LF_COMPLEX64, 0x800d)<br>
-CV_TYPE(LF_COMPLEX80, 0x800e)<br>
-CV_TYPE(LF_COMPLEX128, 0x800f)<br>
-CV_TYPE(LF_VARSTRING, 0x8010)<br>
-CV_TYPE(LF_OCTWORD, 0x8017)<br>
-CV_TYPE(LF_UOCTWORD, 0x8018)<br>
-CV_TYPE(LF_DECIMAL, 0x8019)<br>
-CV_TYPE(LF_DATE, 0x801a)<br>
-CV_TYPE(LF_UTF8STRING, 0x801b)<br>
-CV_TYPE(LF_REAL16, 0x801c)<br>
-<br>
-// Padding bytes. These are emitted into alignment bytes in the type stream.<br>
-<br>
-CV_TYPE(LF_PAD0, 0xf0)<br>
-CV_TYPE(LF_PAD1, 0xf1)<br>
-CV_TYPE(LF_PAD2, 0xf2)<br>
-CV_TYPE(LF_PAD3, 0xf3)<br>
-CV_TYPE(LF_PAD4, 0xf4)<br>
-CV_TYPE(LF_PAD5, 0xf5)<br>
-CV_TYPE(LF_PAD6, 0xf6)<br>
-CV_TYPE(LF_PAD7, 0xf7)<br>
-CV_TYPE(LF_PAD8, 0xf8)<br>
-CV_TYPE(LF_PAD9, 0xf9)<br>
-CV_TYPE(LF_PAD10, 0xfa)<br>
-CV_TYPE(LF_PAD11, 0xfb)<br>
-CV_TYPE(LF_PAD12, 0xfc)<br>
-CV_TYPE(LF_PAD13, 0xfd)<br>
-CV_TYPE(LF_PAD14, 0xfe)<br>
-CV_TYPE(LF_PAD15, 0xff)<br>
-<br>
-#undef CV_TYPE<br>
-#undef TYPE_RECORD<br>
-#undef TYPE_RECORD_ALIAS<br>
-#undef MEMBER_RECORD<br>
-#undef MEMBER_RECORD_ALIAS<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeSerializer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeSerializer.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeSerializer.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeSerializer.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeSerializer.h Tue May 30 16:53:05 2017<br>
@@ -106,7 +106,7 @@ public:<br>
     return visitKnownMemberImpl<Name##Record>(CVR, Record);                    \<br>
   }<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "llvm/DebugInfo/CodeView/TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   template <typename RecordKind><br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h Tue May 30 16:53:05 2017<br>
@@ -13,8 +13,8 @@<br>
 #include "llvm/ADT/ArrayRef.h"<br>
 #include "llvm/DebugInfo/CodeView/CodeView.h"<br>
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"<br>
-#include "llvm/DebugInfo/CodeView/TypeSerializer.h"<br>
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"<br>
+#include "llvm/DebugInfo/CodeView/TypeSerializer.h"<br>
 #include "llvm/Support/Allocator.h"<br>
 #include "llvm/Support/Error.h"<br>
 #include <algorithm><br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h Tue May 30 16:53:05 2017<br>
@@ -94,7 +94,7 @@ public:<br>
   }<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "llvm/DebugInfo/CodeView/TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) {<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h Tue May 30 16:53:05 2017<br>
@@ -58,7 +58,11 @@ public:<br>
<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
+#undef TYPE_RECORD<br>
+#undef TYPE_RECORD_ALIAS<br>
+#undef MEMBER_RECORD<br>
+#undef MEMBER_RECORD_ALIAS<br>
 };<br>
<br>
 } // end namespace codeview<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawConstants.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawConstants.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawConstants.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawConstants.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/PDB/Native/RawConstants.h Tue May 30 16:53:05 2017<br>
@@ -12,7 +12,6 @@<br>
<br>
 #include "llvm/ADT/BitmaskEnum.h"<br>
 #include "llvm/DebugInfo/CodeView/CodeView.h"<br>
-<br>
 #include <cstdint><br>
<br>
 namespace llvm {<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/PDB/Native/TpiHashing.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/Native/TpiHashing.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/Native/TpiHashing.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/PDB/Native/TpiHashing.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/PDB/Native/TpiHashing.h Tue May 30 16:53:05 2017<br>
@@ -38,7 +38,7 @@ public:<br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
 #define MEMBER_RECORD(EnumName, EnumVal, Name)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "llvm/DebugInfo/CodeView/TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
<br>
 private:<br>
   template <typename RecordKind><br>
<br>
Added: llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h?rev=304248&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h?rev=304248&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h (added)<br>
+++ llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h Tue May 30 16:53:05 2017<br>
@@ -0,0 +1,141 @@<br>
+//===- CodeViewYAML.cpp - CodeView YAMLIO implementation ------------------===//<br>
+//<br>
+//                     The LLVM Compiler Infrastructure<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+//<br>
+// This file defines classes for handling the YAML representation of CodeView<br>
+// Debug Info.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#ifndef LLVM_OBJECTYAML_CODEVIEWYAML_H<br>
+#define LLVM_OBJECTYAML_CODEVIEWYAML_H<br>
+<br>
+#include "llvm/DebugInfo/CodeView/CodeView.h"<br>
+#include "llvm/DebugInfo/CodeView/TypeDeserializer.h"<br>
+#include "llvm/DebugInfo/CodeView/TypeRecord.h"<br>
+#include "llvm/DebugInfo/CodeView/TypeSerializer.h"<br>
+#include "llvm/DebugInfo/CodeView/TypeTableBuilder.h"<br>
+#include "llvm/ObjectYAML/YAML.h"<br>
+<br>
+namespace llvm {<br>
+namespace CodeViewYAML {<br>
+<br>
+namespace detail {<br>
+struct MemberRecordBase;<br>
+struct LeafRecordBase;<br>
+}<br>
+<br>
+struct SourceLineEntry {<br>
+  uint32_t Offset;<br>
+  uint32_t LineStart;<br>
+  uint32_t EndDelta;<br>
+  bool IsStatement;<br>
+};<br>
+<br>
+struct SourceColumnEntry {<br>
+  uint16_t StartColumn;<br>
+  uint16_t EndColumn;<br>
+};<br>
+<br>
+struct SourceLineBlock {<br>
+  StringRef FileName;<br>
+  std::vector<SourceLineEntry> Lines;<br>
+  std::vector<SourceColumnEntry> Columns;<br>
+};<br>
+<br>
+struct HexFormattedString {<br>
+  std::vector<uint8_t> Bytes;<br>
+};<br>
+<br>
+struct SourceFileChecksumEntry {<br>
+  StringRef FileName;<br>
+  codeview::FileChecksumKind Kind;<br>
+  HexFormattedString ChecksumBytes;<br>
+};<br>
+<br>
+struct SourceLineInfo {<br>
+  uint32_t RelocOffset;<br>
+  uint32_t RelocSegment;<br>
+  codeview::LineFlags Flags;<br>
+  uint32_t CodeSize;<br>
+<br>
+  std::vector<SourceLineBlock> Blocks;<br>
+};<br>
+<br>
+struct InlineeSite {<br>
+  uint32_t Inlinee;<br>
+  StringRef FileName;<br>
+  uint32_t SourceLineNum;<br>
+  std::vector<StringRef> ExtraFiles;<br>
+};<br>
+<br>
+struct InlineeInfo {<br>
+  bool HasExtraFiles;<br>
+  std::vector<InlineeSite> Sites;<br>
+};<br>
+<br>
+struct SourceFileInfo {<br>
+  std::vector<SourceFileChecksumEntry> FileChecksums;<br>
+  std::vector<SourceLineInfo> LineFragments;<br>
+  std::vector<InlineeInfo> Inlinees;<br>
+};<br>
+<br>
+struct MemberRecord {<br>
+  std::shared_ptr<detail::MemberRecordBase> Member;<br>
+};<br>
+<br>
+struct LeafRecord {<br>
+  std::shared_ptr<detail::LeafRecordBase> Leaf;<br>
+<br>
+  codeview::CVType toCodeViewRecord(BumpPtrAllocator &Allocator) const;<br>
+  static Expected<LeafRecord> fromCodeViewRecord(codeview::CVType Type);<br>
+};<br>
+<br>
+} // namespace CodeViewYAML<br>
+} // namespace llvm<br>
+<br>
+LLVM_YAML_DECLARE_SCALAR_TRAITS(codeview::TypeIndex, false)<br>
+LLVM_YAML_DECLARE_SCALAR_TRAITS(CodeViewYAML::HexFormattedString, false)<br>
+LLVM_YAML_DECLARE_SCALAR_TRAITS(APSInt, false)<br>
+<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceLineEntry)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceColumnEntry)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceFileChecksumEntry)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceLineInfo)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceLineBlock)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceFileInfo)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::InlineeInfo)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::InlineeSite)<br>
+<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::LeafRecord)<br>
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::MemberRecord)<br>
+<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::TypeLeafKind)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::PointerToMemberRepresentation)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::VFTableSlotKind)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::CallingConvention)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::PointerKind)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::PointerMode)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::HfaKind)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::MemberAccess)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::MethodKind)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::WindowsRTClassKind)<br>
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::LabelType)<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::FileChecksumKind)<br>
+<br>
+LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::PointerOptions)<br>
+LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::LineFlags)<br>
+LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::ModifierOptions)<br>
+LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::FunctionOptions)<br>
+LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::ClassOptions)<br>
+LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::MethodOptions)<br>
+<br>
+LLVM_YAML_IS_SEQUENCE_VECTOR(CodeViewYAML::LeafRecord)<br>
+LLVM_YAML_IS_SEQUENCE_VECTOR(CodeViewYAML::MemberRecord)<br>
+<br>
+#endif<br>
<br>
Modified: llvm/trunk/include/llvm/Support/YAMLTraits.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/YAMLTraits.h?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/YAMLTraits.h?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Support/YAMLTraits.h (original)<br>
+++ llvm/trunk/include/llvm/Support/YAMLTraits.h Tue May 30 16:53:05 2017<br>
@@ -1606,6 +1606,44 @@ template <typename T> struct StdMapStrin<br>
   }                                                                            \<br>
   }<br>
<br>
+#define LLVM_YAML_DECLARE_MAPPING_TRAITS(Type)                                 \<br>
+  namespace llvm {                                                             \<br>
+  namespace yaml {                                                             \<br>
+  template <> struct MappingTraits<Type> {                                     \<br>
+    static void mapping(IO &IO, Type &Obj);                                    \<br>
+  };                                                                           \<br>
+  }                                                                            \<br>
+  }<br>
+<br>
+#define LLVM_YAML_DECLARE_ENUM_TRAITS(Type)                                    \<br>
+  namespace llvm {                                                             \<br>
+  namespace yaml {                                                             \<br>
+  template <> struct ScalarEnumerationTraits<Type> {                           \<br>
+    static void enumeration(IO &io, Type &Value);                              \<br>
+  };                                                                           \<br>
+  }                                                                            \<br>
+  }<br>
+<br>
+#define LLVM_YAML_DECLARE_BITSET_TRAITS(Type)                                  \<br>
+  namespace llvm {                                                             \<br>
+  namespace yaml {                                                             \<br>
+  template <> struct ScalarBitSetTraits<Type> {                                \<br>
+    static void bitset(IO &IO, Type &Options);                                 \<br>
+  };                                                                           \<br>
+  }                                                                            \<br>
+  }<br>
+<br>
+#define LLVM_YAML_DECLARE_SCALAR_TRAITS(Type, MustQuote)                       \<br>
+  namespace llvm {                                                             \<br>
+  namespace yaml {                                                             \<br>
+  template <> struct ScalarTraits<Type> {                                      \<br>
+    static void output(const Type &Value, void *ctx, llvm::raw_ostream &Out);  \<br>
+    static StringRef input(StringRef Scalar, void *ctxt, Type &Value);         \<br>
+    static bool mustQuote(StringRef) { return MustQuote; }                     \<br>
+  };                                                                           \<br>
+  }                                                                            \<br>
+  }<br>
+<br>
 /// Utility for declaring that a std::vector of a particular type<br>
 /// should be considered a YAML document list.<br>
 #define LLVM_YAML_IS_DOCUMENT_LIST_VECTOR(_type)                               \<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp Tue May 30 16:53:05 2017<br>
@@ -46,7 +46,7 @@ Error CVSymbolVisitor::visitSymbolRecord<br>
   }<br>
 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)                \<br>
   SYMBOL_RECORD(EnumVal, EnumVal, AliasName)<br>
-#include "llvm/DebugInfo/CodeView/CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
   }<br>
<br>
   if (auto EC = Callbacks.visitSymbolEnd(Record))<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/CodeView/CVTypeVisitor.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/CVTypeVisitor.cpp?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/CVTypeVisitor.cpp?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/CodeView/CVTypeVisitor.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/CodeView/CVTypeVisitor.cpp Tue May 30 16:53:05 2017<br>
@@ -71,7 +71,7 @@ static Error visitMemberRecord(CVMemberR<br>
   MEMBER_RECORD(EnumVal, EnumVal, AliasName)<br>
 #define TYPE_RECORD(EnumName, EnumVal, Name)</blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
-#include "llvm/DebugInfo/CodeView/TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
   }<br>
<br>
   if (auto EC = Callbacks.visitMemberEnd(Record))<br>
@@ -155,7 +155,7 @@ Error CVTypeVisitor::finishVisitation(CV<br>
   TYPE_RECORD(EnumVal, EnumVal, AliasName)</blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
 #define MEMBER_RECORD(EnumName, EnumVal, Name)<br>
 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br>
-#include "llvm/DebugInfo/CodeView/TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
   }<br>
<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   if (auto EC = Callbacks.visitTypeEnd(Record))<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/CodeView/EnumTables.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/EnumTables.cpp?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/EnumTables.cpp?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/CodeView/EnumTables.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/CodeView/EnumTables.cpp Tue May 30 16:53:05 2017<br>
@@ -20,13 +20,13 @@ using namespace codeview;<br>
<br>
 static const EnumEntry<SymbolKind> SymbolTypeNames[] = {<br>
 #define CV_SYMBOL(enum, val) {#enum, enum},<br>
-#include "llvm/DebugInfo/CodeView/CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
 #undef CV_SYMBOL<br>
 };<br>
<br>
 static const EnumEntry<TypeLeafKind> TypeLeafNames[] = {<br>
 #define CV_TYPE(name, val) {#name, name},<br>
-#include "llvm/DebugInfo/CodeView/TypeRecords.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"<br>
 #undef CV_TYPE<br>
 };<br>
<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/CodeView/SymbolDumper.cpp Tue May 30 16:53:05 2017<br>
@@ -41,7 +41,7 @@ public:</blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
 #define SYMBOL_RECORD(EnumName, EnumVal, Name)                                 \<br>
   Error visitKnownRecord(CVSymbol &CVR, Name &Record) override;<br>
 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
-#include "llvm/DebugInfo/CodeView/CVSymbolTypes.def"<br>
+#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"<br>
<br>
   Error visitSymbolBegin(CVSymbol &Record) override;<br>
   Error visitSymbolEnd(CVSymbol &Record) override;<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp?rev=304248&r1=304247&r2=304248&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp?rev=304248&r1=304247&r2=304248&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp Tue May 30 16:53:05 2017<br>
@@ -26,7 +26,7 @@ using namespace llvm::codeview;<br>
<br>
 static const EnumEntry<TypeLeafKind> LeafTypeNames[] = {<br>
 #define CV_TYPE(enum, val) {#enum, enum},<br>
-#include "llvm/DebugInfo/CodeView/TypeRecords.def"<br>
+#include "l</blockquote></div></div></blockquote></div>