dschuff updated this revision to Diff 434650. dschuff added a comment. - expand comment
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127164/new/ https://reviews.llvm.org/D127164 Files: lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp llvm/include/llvm/BinaryFormat/Wasm.h llvm/lib/ObjCopy/wasm/WasmReader.cpp llvm/lib/Object/WasmObjectFile.cpp Index: llvm/lib/Object/WasmObjectFile.cpp =================================================================== --- llvm/lib/Object/WasmObjectFile.cpp +++ llvm/lib/Object/WasmObjectFile.cpp @@ -1729,7 +1729,7 @@ const WasmSection &S = Sections[Sec.d.a]; if (S.Type == wasm::WASM_SEC_CUSTOM) return S.Name; - if (S.Type > wasm::WASM_SEC_TAG) + if (S.Type > wasm::WASM_SEC_LAST_KNOWN) return createStringError(object_error::invalid_section_index, ""); return wasm::sectionTypeToString(S.Type); } Index: llvm/lib/ObjCopy/wasm/WasmReader.cpp =================================================================== --- llvm/lib/ObjCopy/wasm/WasmReader.cpp +++ llvm/lib/ObjCopy/wasm/WasmReader.cpp @@ -24,15 +24,12 @@ const WasmSection &WS = WasmObj.getWasmSection(Sec); Obj->Sections.push_back( {static_cast<uint8_t>(WS.Type), WS.Name, WS.Content}); - // Give known sections standard names to allow them to be selected. + // Give known sections standard names to allow them to be selected. (Custom + // sections already have their names filled in by the parser). Section &ReaderSec = Obj->Sections.back(); if (ReaderSec.SectionType > WASM_SEC_CUSTOM && - ReaderSec.SectionType <= WASM_SEC_TAG) + ReaderSec.SectionType <= WASM_SEC_LAST_KNOWN) ReaderSec.Name = sectionTypeToString(ReaderSec.SectionType); - // If the section type is CUSTOM, it has a name already. If it's a new type - // of section that we don't explicitly handle here, it will have an empty - // name and objcopy won't be able to select it by name (e.g. for removal - // or dumping) but it will still be valid and able to be copied. } return std::move(Obj); } Index: llvm/include/llvm/BinaryFormat/Wasm.h =================================================================== --- llvm/include/llvm/BinaryFormat/Wasm.h +++ llvm/include/llvm/BinaryFormat/Wasm.h @@ -252,7 +252,8 @@ WASM_SEC_CODE = 10, // Function bodies (code) WASM_SEC_DATA = 11, // Data segments WASM_SEC_DATACOUNT = 12, // Data segment count - WASM_SEC_TAG = 13 // Tag declarations + WASM_SEC_TAG = 13, // Tag declarations + WASM_SEC_LAST_KNOWN = WASM_SEC_TAG, }; // Type immediate encodings used in various contexts. Index: lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp =================================================================== --- lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp +++ lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp @@ -192,7 +192,7 @@ m_sect_infos.push_back(section_info{*offset_ptr + c.tell(), section_length, section_id, *sect_name}); *offset_ptr += (c.tell() + section_length); - } else if (section_id <= llvm::wasm::WASM_SEC_TAG) { + } else if (section_id <= llvm::wasm::WASM_SEC_LAST_KNOWN) { m_sect_infos.push_back(section_info{*offset_ptr + c.tell(), static_cast<uint32_t>(payload_len), section_id, ConstString()});
Index: llvm/lib/Object/WasmObjectFile.cpp =================================================================== --- llvm/lib/Object/WasmObjectFile.cpp +++ llvm/lib/Object/WasmObjectFile.cpp @@ -1729,7 +1729,7 @@ const WasmSection &S = Sections[Sec.d.a]; if (S.Type == wasm::WASM_SEC_CUSTOM) return S.Name; - if (S.Type > wasm::WASM_SEC_TAG) + if (S.Type > wasm::WASM_SEC_LAST_KNOWN) return createStringError(object_error::invalid_section_index, ""); return wasm::sectionTypeToString(S.Type); } Index: llvm/lib/ObjCopy/wasm/WasmReader.cpp =================================================================== --- llvm/lib/ObjCopy/wasm/WasmReader.cpp +++ llvm/lib/ObjCopy/wasm/WasmReader.cpp @@ -24,15 +24,12 @@ const WasmSection &WS = WasmObj.getWasmSection(Sec); Obj->Sections.push_back( {static_cast<uint8_t>(WS.Type), WS.Name, WS.Content}); - // Give known sections standard names to allow them to be selected. + // Give known sections standard names to allow them to be selected. (Custom + // sections already have their names filled in by the parser). Section &ReaderSec = Obj->Sections.back(); if (ReaderSec.SectionType > WASM_SEC_CUSTOM && - ReaderSec.SectionType <= WASM_SEC_TAG) + ReaderSec.SectionType <= WASM_SEC_LAST_KNOWN) ReaderSec.Name = sectionTypeToString(ReaderSec.SectionType); - // If the section type is CUSTOM, it has a name already. If it's a new type - // of section that we don't explicitly handle here, it will have an empty - // name and objcopy won't be able to select it by name (e.g. for removal - // or dumping) but it will still be valid and able to be copied. } return std::move(Obj); } Index: llvm/include/llvm/BinaryFormat/Wasm.h =================================================================== --- llvm/include/llvm/BinaryFormat/Wasm.h +++ llvm/include/llvm/BinaryFormat/Wasm.h @@ -252,7 +252,8 @@ WASM_SEC_CODE = 10, // Function bodies (code) WASM_SEC_DATA = 11, // Data segments WASM_SEC_DATACOUNT = 12, // Data segment count - WASM_SEC_TAG = 13 // Tag declarations + WASM_SEC_TAG = 13, // Tag declarations + WASM_SEC_LAST_KNOWN = WASM_SEC_TAG, }; // Type immediate encodings used in various contexts. Index: lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp =================================================================== --- lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp +++ lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp @@ -192,7 +192,7 @@ m_sect_infos.push_back(section_info{*offset_ptr + c.tell(), section_length, section_id, *sect_name}); *offset_ptr += (c.tell() + section_length); - } else if (section_id <= llvm::wasm::WASM_SEC_TAG) { + } else if (section_id <= llvm::wasm::WASM_SEC_LAST_KNOWN) { m_sect_infos.push_back(section_info{*offset_ptr + c.tell(), static_cast<uint32_t>(payload_len), section_id, ConstString()});
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits