[llvm-objcopy][NFC] Refactor symbol/section matching
authorJordan Rupprecht <rupprecht@google.com>
Thu, 22 Aug 2019 19:17:50 +0000 (19:17 +0000)
committerJordan Rupprecht <rupprecht@google.com>
Thu, 22 Aug 2019 19:17:50 +0000 (19:17 +0000)
commit6c6dd6acf9e4a9d0599c99abbcbb696ed6b5ab19
treef11d1dd240cefcbbb80e9eecf30cab1ef1636163
parent7a490c5b0683208c5df9f3be86260bb7e086ecc2
[llvm-objcopy][NFC] Refactor symbol/section matching

Summary:
The matchers for section/symbol related flags (e.g. `--keep-symbol=Name` or `--regex --keep-symbol=foo.*`) are currently just vectors that are matched linearlly. However, adding wildcard support would require negative matching too, e.g. a symbol should be removed if it matches a wildcard *but* doesn't match some other wildcard.

To make the next patch simpler, consolidate matching logic to a class defined in CopyConfig that takes care of matching.

Reviewers: jhenderson, seiya, MaskRay, espindola, alexshap

Reviewed By: jhenderson, MaskRay

Subscribers: emaste, arichardson, jakehehrlich, abrachet, llvm-commits

Tags: #llvm

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

llvm-svn: 369689
llvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp
llvm/tools/llvm-objcopy/CopyConfig.cpp
llvm/tools/llvm-objcopy/CopyConfig.h
llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp