Commit Graph

16 Commits

Author SHA1 Message Date
James Henderson 5b2e968264 Fix llvm-strings crash for negative char values
On Windows at least, llvm-strings was crashing if it encountered bytes
that mapped to negative chars, as it was passing these into
std::isgraph and std::isblank functions, resulting in undefined
behaviour. On debug builds using MSVC, these functions verfiy that the
value passed in is representable as an unsigned char. Since the char is
promoted to an int, a value greater than 127 would turn into a negative
integer value, and fail the check. Using the llvm::isPrint function is
sufficient to solve the issue.

Reviewed by: ruiu, mstorsjo

Differential Revision: https://reviews.llvm.org/D53509

llvm-svn: 345137
2018-10-24 13:16:16 +00:00
Rui Ueyama 197194b6c9 Define InitLLVM to do common initialization all at once.
We have a few functions that virtually all command wants to run on
process startup/shutdown. This patch adds InitLLVM class to do that
all at once, so that we don't need to copy-n-paste boilerplate code
to each llvm command's main() function.

Differential Revision: https://reviews.llvm.org/D45602

llvm-svn: 330046
2018-04-13 18:26:06 +00:00
Martin Storsjo 6835cac2f9 [llvm-strings] Add support for the -a/--all options
They don't actually change nay behaviour, as llvm-strings currently
checks the whole object without looking at individual sections anyway.

This allows using llvm-strings in a context that explicitly passes
the -a option.

Differential Revision: https://reviews.llvm.org/D40020

llvm-svn: 318185
2017-11-14 19:58:36 +00:00
Shoaib Meenai 08bb38f7e7 [tools] Add option to install binutils symlinks
The LLVM tools can be used as a replacement for binutils, in which case
it's convenient to create symlinks with the binutils names. Add support
for these symlinks in the build system. As with any other llvm tool
symlinks, the user can limit the installed symlinks by only adding the
desired ones to `LLVM_TOOLCHAIN_TOOLS`.

Differential Revision: https://reviews.llvm.org/D39530

llvm-svn: 317272
2017-11-02 21:43:32 +00:00
Saleem Abdulrasool 2c3771af4e llvm-strings: remove default for -Wcovered-switch-default
Fix the -Werror build by removing the unnecessary default case in the
covered switch.  NFC

llvm-svn: 292708
2017-01-21 02:52:29 +00:00
Saleem Abdulrasool ba04861831 llvm-strings: add support for `-t`
Allow printing the file content offset via the `-t` or `--radix` option.

llvm-svn: 292707
2017-01-21 02:36:28 +00:00
Saleem Abdulrasool f7009b42f8 llvm-strings: support the `-n` option
Permit specifying the match length (the `-n` or `--bytes` option).  The
deprecated `-[length]` form is not supported as an option.  This allows the
strings tool to display only the specified length strings rather than the
hardcoded default length of >= 4.

llvm-svn: 286914
2016-11-15 00:43:52 +00:00
Saleem Abdulrasool f10a871419 Revert "Revert "llvm-strings: support printing the filename""
Change the dynamic files to static in the hope that it will actually fix the
transient errors that Ive been unable to reproduce.

llvm-svn: 286891
2016-11-14 21:10:41 +00:00
Renato Golin 199b6b941d Revert "llvm-strings: support printing the filename"
Also,

Revert "test: remove the archive before modifying it"
Revert "test: explicitly use gnu format"

This reverts commits r286778, r286729 and r286767, as they are randomly failing
on many bots (AArch64, x86_64).

llvm-svn: 286820
2016-11-14 13:09:24 +00:00
Saleem Abdulrasool 8b9be8fd41 llvm-strings: support printing the filename
This adds support for the `-f` or `--print-file-name` option for strings.

llvm-svn: 286767
2016-11-13 19:07:48 +00:00
Saleem Abdulrasool be3a2919f4 llvm-strings: trivialise logic until we support more options
Until we have handling for ignoring unloaded sections, simplify the logic to
the point of triviality.  This fixes the scanning of archives, particularly when
embedded in archives.

llvm-svn: 286727
2016-11-12 18:37:04 +00:00
Saleem Abdulrasool 2729786fff llvm-strings: ensure that the last string is correctly printed
We would ignore the last string that appeared if the file ended with a printable
character.  Ensure that we get the last string.

llvm-svn: 286706
2016-11-12 03:39:21 +00:00
NAKAMURA Takumi 8c140e0479 llvm-strings: Fix r286556 to add required libraries.
llvm-svn: 286594
2016-11-11 14:17:37 +00:00
Mehdi Amini 2aad046165 Fix build failure, update llvm-strings for the new Error API
llvm-svn: 286563
2016-11-11 04:50:18 +00:00
Saleem Abdulrasool 2dcea63b4d llvm-strings: explicitly include cctype
Include the cctype header to try to fix windows bots.

llvm-svn: 286558
2016-11-11 04:00:59 +00:00
Saleem Abdulrasool 030ff0f215 llvm-strings: introduce basic strings tool
This is a replacement to binutils' string tool.  It prints strings found in a
binary (object file, executable, or archive library).  It is rather bare and
not functionally equivalent, however, it lays the groundwork necessary for the
strings tool, enabling iterative development of features to reach feature
parity.

llvm-svn: 286556
2016-11-11 03:44:12 +00:00