Recommit [ELF] - Versionscript: do not treat non-wildcarded names as wildcards.
authorGeorge Rimar <grimar@accesssoftek.com>
Fri, 9 Sep 2016 13:58:07 +0000 (13:58 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Fri, 9 Sep 2016 13:58:07 +0000 (13:58 +0000)
commitb5e77c47fb8c047959e97e841f2d3210da005ce0
treedc47fd34deb11505a5f3e22ea14429c73c79d48d
parent57d9dfa9ac7618aea8de6d1d1d940db6c7474737
Recommit [ELF] - Versionscript: do not treat non-wildcarded names as wildcards.

Fixed code that was not checked by testcases that are disabled on windows.

Inital commit message:
"[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: 281045
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]