diff options
Diffstat (limited to 'contrib/llvm/lib/ObjectYAML/COFFYAML.cpp')
| -rw-r--r-- | contrib/llvm/lib/ObjectYAML/COFFYAML.cpp | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp b/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp index 7f9f4c1f8c2c..c8cbea1490f6 100644 --- a/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp +++ b/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp @@ -488,7 +488,16 @@ void MappingTraits<COFFYAML::Section>::mapping(IO &IO, COFFYAML::Section &Sec) {    IO.mapOptional("VirtualAddress", Sec.Header.VirtualAddress, 0U);    IO.mapOptional("VirtualSize", Sec.Header.VirtualSize, 0U);    IO.mapOptional("Alignment", Sec.Alignment, 0U); -  IO.mapRequired("SectionData", Sec.SectionData); + +  // If this is a .debug$S or .debug$T section parse the semantic representation +  // of the symbols/types.  If it is any other kind of section, just deal in raw +  // bytes. +  IO.mapOptional("SectionData", Sec.SectionData); +  if (Sec.Name == ".debug$S") +    IO.mapOptional("Subsections", Sec.DebugS); +  else if (Sec.Name == ".debug$T") +    IO.mapOptional("Types", Sec.DebugT); +    IO.mapOptional("Relocations", Sec.Relocations);  }  | 
