Go to file
Rui Ueyama b4dca7f065 Select new undefined atom rather than old one if other conditions are the same.
We can add multiple undefined atoms having the same name to the symbol table.
If such atoms are added, the symbol table compares their canBeNull attributes,
and select one having a stronger constraint. If their canBeNulls are the same,
the choice is arbitrary. Currently it choose the existing one.

This patch changes the preference, so that the symbol table choose the new one
if the new atom has a greater canBeNull or a fallback atom. This shouldn't
change the behavior except the case described below.

A new undefined atom may have a new fallback atom attribute. By choosing the new
atom, we can update the fallback atom during Core Linking. PE/COFF actually need
that. For example, _lseek is an alias for __lseek on Windows. One of an object
file in OLDNAMES.LIB has an undefined atom for _lseek with the fallback to
__lseek. When the linker tries to resolve _read, it supposed to read the file
from OLDNAMES.LIB and use the new fallback from the file. Currently LLD cannot
handle such case because duplicate undefined atoms with the same attributes are
ignored.

Differential Revision: http://llvm-reviews.chandlerc.com/D2161

llvm-svn: 194777
2013-11-15 03:12:24 +00:00
clang PR17533 and duplicates: don't compute the return type of an overloaded operator 2013-11-15 02:58:23 +00:00
clang-tools-extra Make clang's static analyzer checks available through clang-tidy. 2013-11-14 15:49:44 +00:00
compiler-rt asan: disable pthread_setname_np interceptor 2013-11-14 16:48:22 +00:00
debuginfo-tests don't use CHECK-NEXT because it may be on the same line. 2013-09-18 23:01:54 +00:00
libclc s/_CLC_DECL/_CLC_DEF/ 2013-10-31 15:50:53 +00:00
libcxx This is a followup to r194536, which changed the pair copy constructor to be 2013-11-14 22:52:25 +00:00
libcxxabi If libc++ has not declared bad_array_length, then declare it here just so that it gets into the binary. 2013-11-07 17:16:37 +00:00
lld Select new undefined atom rather than old one if other conditions are the same. 2013-11-15 03:12:24 +00:00
lldb Commit a work-in-progress system runtime for Mac OS X which won't 2013-11-15 00:17:32 +00:00
llvm [OCaml] Add Target and TargetMachine bindings to Llvm_target 2013-11-15 02:51:57 +00:00
openmp Update web pages to include style sheets and referenced documents missed before. 2013-10-03 11:55:28 +00:00
polly PassManagerBase has moved into the legacy namespace as of r194324; match it here. 2013-11-12 17:10:46 +00:00