[PATCH] D77289: [Object] Fix crash caused by unhandled error.

Xing GUO via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 8 09:45:08 PDT 2020


Higuoxing updated this revision to Diff 256045.
Higuoxing added a comment.
Herald added subscribers: aheejin, hiraditya, sbc100, emaste.
Herald added a reviewer: JDevlieghere.
Herald added a reviewer: espindola.

In D77289#1959092 <https://reviews.llvm.org/D77289#1959092>, @grimar wrote:

> I'd also recommend to start using "Edit related revisions" on the right panel of the phab.
>  Then you should be able to edit related parent/child revisions, because currently it is unobvious which dependencies your patches has.




In D77289#1959211 <https://reviews.llvm.org/D77289#1959211>, @jhenderson wrote:

> Alternatively, you can put "Depends on D<number>" in the patch description and the stack is automatically formed without you needing to manually edit the related revisions.


Thanks a lot! Got it.

In D77289#1959072 <https://reviews.llvm.org/D77289#1959072>, @jhenderson wrote:

> Thinking about it, I'm reluctant to approve this as is, without a further change to actually report the error (possibly in a seperate patch). Prior to this patch, we have a failure that at least can be identified in certain build versions, whereas now the malformed-ness is not detectable at all. Perhaps this could temporarily use `report_fatal_error` with a follow-up patch bubbling the error further up the stack?


I've tried to change `uint32_t getSymbolFlags(DataRefImpl)` to `Expected<uint32_t> getSymbolFlags(DataRefImpl)`. However, there are several tools, object file formats and functions from core library involved. I tried to update them all carefully. Could you please give me some comments?

FYI: `getSymbolFlags()` on `ELFObjectFile` is fallible while on other object files (Mach-O, COFF, XCOFF ...) are not.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77289/new/

https://reviews.llvm.org/D77289

Files:
  llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
  llvm/include/llvm/Object/COFF.h
  llvm/include/llvm/Object/COFFImportFile.h
  llvm/include/llvm/Object/ELFObjectFile.h
  llvm/include/llvm/Object/IRObjectFile.h
  llvm/include/llvm/Object/MachO.h
  llvm/include/llvm/Object/ObjectFile.h
  llvm/include/llvm/Object/SymbolicFile.h
  llvm/include/llvm/Object/TapiFile.h
  llvm/include/llvm/Object/Wasm.h
  llvm/include/llvm/Object/XCOFFObjectFile.h
  llvm/lib/ExecutionEngine/Orc/Mangling.cpp
  llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
  llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
  llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  llvm/lib/Object/ArchiveWriter.cpp
  llvm/lib/Object/COFFObjectFile.cpp
  llvm/lib/Object/IRObjectFile.cpp
  llvm/lib/Object/MachOObjectFile.cpp
  llvm/lib/Object/ObjectFile.cpp
  llvm/lib/Object/TapiFile.cpp
  llvm/lib/Object/WasmObjectFile.cpp
  llvm/lib/Object/XCOFFObjectFile.cpp
  llvm/test/tools/llvm-nm/invalid-symbol-table-size.test
  llvm/test/tools/llvm-objdump/ELF/invalid-symbol-table-size.test
  llvm/tools/dsymutil/DebugMap.cpp
  llvm/tools/dsymutil/MachODebugMapParser.cpp
  llvm/tools/llvm-nm/llvm-nm.cpp
  llvm/tools/llvm-objdump/MachODump.cpp
  llvm/tools/llvm-objdump/llvm-objdump.cpp
  llvm/tools/llvm-size/llvm-size.cpp
  llvm/tools/sancov/sancov.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D77289.256045.patch
Type: text/x-patch
Size: 36044 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200408/9a7f689f/attachment.bin>


More information about the llvm-commits mailing list