diff options
| author | George Rimar <grimar@accesssoftek.com> | 2019-07-11 12:26:48 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2019-07-11 12:26:48 +0000 |
| commit | badece02b40d5c21d0c6c1cf209631e5fb19d9c0 (patch) | |
| tree | 26c56c1b647d1dd389fd476b40c26a2aefe6d6da /llvm/tools | |
| parent | 65d49fa60fa3ee30f5d1d0d9e637cf331372de2d (diff) | |
| download | bcm5719-llvm-badece02b40d5c21d0c6c1cf209631e5fb19d9c0.tar.gz bcm5719-llvm-badece02b40d5c21d0c6c1cf209631e5fb19d9c0.zip | |
[llvm-readobj/llvm-readelf] - Report a warning instead of a error when dumping a broken dynamic section.
It does not make sence to stop dumping the object if the broken
dynamic section was found. In this patch I changed the behavior from
"report an error" to "report a warning". This matches GNU.
Differential revision: https://reviews.llvm.org/D64472
llvm-svn: 365762
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/llvm-readobj/ELFDumper.cpp | 8 | ||||
| -rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index b70f69c2a8b..589199c009f 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -134,8 +134,12 @@ struct DynRegionInfo { const Type *Start = reinterpret_cast<const Type *>(Addr); if (!Start) return {Start, Start}; - if (EntSize != sizeof(Type) || Size % EntSize) - reportError("Invalid entity size"); + if (EntSize != sizeof(Type) || Size % EntSize) { + // TODO: Add a section index to this warning. + reportWarning("invalid section size (" + Twine(Size) + + ") or entity size (" + Twine(EntSize) + ")"); + return {Start, Start}; + } return {Start, Start + (Size / EntSize)}; } }; diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index 31e8bbe1a62..f00d94ee5c4 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -377,6 +377,7 @@ LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg) { } void reportWarning(Twine Msg) { + fouts().flush(); errs() << "\n"; WithColor::warning(errs()) << Msg << "\n"; } |

