diff options
author | Davide Italiano <davide@freebsd.org> | 2015-03-24 06:22:45 +0000 |
---|---|---|
committer | Davide Italiano <davide@freebsd.org> | 2015-03-24 06:22:45 +0000 |
commit | 20f3da11e8760c994a0c9db9cab08f7442937201 (patch) | |
tree | b3d28c29a1e635f3eafc6a5c15305bac74c6f22a /clang/lib/Sema/MultiplexExternalSemaSource.cpp | |
parent | 70a1b816cc0f7a58044dee0460f1a068ac8faf31 (diff) | |
download | llvm-20f3da11e8760c994a0c9db9cab08f7442937201.zip llvm-20f3da11e8760c994a0c9db9cab08f7442937201.tar.gz llvm-20f3da11e8760c994a0c9db9cab08f7442937201.tar.bz2 |
[ELF/X86_64] Fix handling of R_X86_64_GOTTPOFF relocation.
The aforementioned relocation generate a GOT entry with a
R_X86_64_TPOFF64. The new relocation is processed at startup
time by the loader. lld didn't generate the outstanding relocation,
now it does. This bug was found while trying to link ls(1) on FreeBSD.
Simplified repro:
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
int
main(void)
{
wchar_t wc = 98;
if (!iswprint(wc))
printf("blah\n");
else
printf("foo\n");
return (0);
}
which incorrectly outputs "blah" when linked with lld before this patch.
llvm-svn: 233051
Diffstat (limited to 'clang/lib/Sema/MultiplexExternalSemaSource.cpp')
0 files changed, 0 insertions, 0 deletions