[ELF] - Fix for: PR29093 - version script does not support [chars] wildcards
authorGeorge Rimar <grimar@accesssoftek.com>
Wed, 7 Sep 2016 10:19:44 +0000 (10:19 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Wed, 7 Sep 2016 10:19:44 +0000 (10:19 +0000)
commit51da9c717861d5e5d58133723db5817c5ccbff88
tree5eb2824646b689fbc9cd295bbad4979a1025d781
parent1ed49fd384c82354856be64385b4197a8474710b
[ELF] - Fix for: PR29093 - version script does not support [chars] wildcards

GNU ld supports [chars] wildcards in version scripts, to match a single instance of any of the chars.
Here is an extern example from libstdc++'s version script in FreeBSD:

extern "C++"
{
...

std::locale::_[T-Za-z]*;
std::[A-Zm]*;
std::n[^u]*;
std::nu[^m]*;
std::num[^e]*;
...

}

Patch adds support for scripts above. This is PR29093.

Differential revision: https://reviews.llvm.org/D23803

llvm-svn: 280799
lld/ELF/ScriptParser.cpp
lld/ELF/Strings.cpp
lld/test/ELF/version-script-complex-wildcards.s [new file with mode: 0644]