This patch is made based on https://reviews.llvm.org/D33680.
Symbols can contain symbol versions in themselves. If a symbol name
is in the form of "foo@bar", foo's version is "bar".
There's one special version -- the default version. If a symbol is in
the form of "foo@@bar", it is used not only to resolve "foo" in
version "bar" but also any unversioned "foo". Thus, it is called the
This patch implements the behavior.