From: Xing GUO Date: Tue, 4 Aug 2020 16:09:12 +0000 (+0800) Subject: [DWARFYAML] Fix unintialized value Is64BitAddrSize. NFC. X-Git-Tag: llvmorg-13-init~15844 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12605bfd1ff5c6316e74587be1b41d24abd893fc;p=platform%2Fupstream%2Fllvm.git [DWARFYAML] Fix unintialized value Is64BitAddrSize. NFC. This patch fixes the undefined behavior that reported by ubsan. http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/44524/ --- diff --git a/llvm/include/llvm/ObjectYAML/DWARFEmitter.h b/llvm/include/llvm/ObjectYAML/DWARFEmitter.h index c7c3070..eb56d1e 100644 --- a/llvm/include/llvm/ObjectYAML/DWARFEmitter.h +++ b/llvm/include/llvm/ObjectYAML/DWARFEmitter.h @@ -48,7 +48,8 @@ std::function getDWARFEmitterByName(StringRef SecName); Expected>> emitDebugSections(StringRef YAMLString, - bool IsLittleEndian = sys::IsLittleEndianHost); + bool IsLittleEndian = sys::IsLittleEndianHost, + bool Is64BitAddrSize = true); } // end namespace DWARFYAML } // end namespace llvm diff --git a/llvm/lib/ObjectYAML/DWARFEmitter.cpp b/llvm/lib/ObjectYAML/DWARFEmitter.cpp index deff6a6..1f79e33 100644 --- a/llvm/lib/ObjectYAML/DWARFEmitter.cpp +++ b/llvm/lib/ObjectYAML/DWARFEmitter.cpp @@ -945,7 +945,8 @@ emitDebugSectionImpl(const DWARFYAML::Data &DI, StringRef Sec, } Expected>> -DWARFYAML::emitDebugSections(StringRef YAMLString, bool IsLittleEndian) { +DWARFYAML::emitDebugSections(StringRef YAMLString, bool IsLittleEndian, + bool Is64BitAddrSize) { auto CollectDiagnostic = [](const SMDiagnostic &Diag, void *DiagContext) { *static_cast(DiagContext) = Diag; }; @@ -956,6 +957,8 @@ DWARFYAML::emitDebugSections(StringRef YAMLString, bool IsLittleEndian) { DWARFYAML::Data DI; DI.IsLittleEndian = IsLittleEndian; + DI.Is64BitAddrSize = Is64BitAddrSize; + YIn >> DI; if (YIn.error()) return createStringError(YIn.error(), GeneratedDiag.getMessage()); diff --git a/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp index 1d468a9..bdf3bab 100644 --- a/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp +++ b/llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp @@ -65,7 +65,8 @@ TEST(DWARFDie, getLocations) { )"; Expected>> Sections = DWARFYAML::emitDebugSections(StringRef(yamldata), - /*IsLittleEndian=*/true); + /*IsLittleEndian=*/true, + /*Is64BitAddrSize=*/false); ASSERT_THAT_EXPECTED(Sections, Succeeded()); std::unique_ptr Ctx = DWARFContext::create(*Sections, 4, /*isLittleEndian=*/true);