[ELF] - Versionscript: do not treat non-wildcarded names as wildcards.
authorGeorge Rimar <grimar@accesssoftek.com>
Fri, 9 Sep 2016 12:22:28 +0000 (12:22 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Fri, 9 Sep 2016 12:22:28 +0000 (12:22 +0000)
commitd2203843766732ee89721720f283d34340fa0e45
tree4bd2c91ef65af19142b44f53c81e6a99b63844ca
parent25d1286e5a8d7ff1521d3ee755640c61865ac325
[ELF] - Versionscript: do not treat non-wildcarded names as wildcards.

Previously we incorrectly handled cases when symbol name in extern c++ tag
was enclosed in quotes. Next case was treated as wildcard:

GLIBCXX_3.4 {
    extern "C++" {
    "aaa*"
   }
But it should have not. Quotes around aaa here means that we should have do exact
name matching.
That is PR30268 which has name with pointer is interpreted as wildcard by lld:

extern "C++" {
    "operator delete[](void*)";

Patch fixes the issue.

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

llvm-svn: 281038
lld/ELF/Config.h
lld/ELF/LinkerScript.cpp
lld/ELF/ScriptParser.cpp
lld/ELF/SymbolTable.cpp
lld/test/ELF/version-script-extern-exact.s [new file with mode: 0644]