Go to file
Chandler Carruth a48ecb7639 Don't mark the declarations of the TSan annotation functions as weak.
That causes references to them to be weak references which can collapse
to null if no definition is provided. We call these functions
unconditionally, so a definition *must* be provided. Make the
definitions provided in the .cpp file weak by re-declaring them as weak
just prior to defining them. This should keep compilers which cannot
attach the weak attribute to the definition happy while actually
resolving the symbols correctly during the link.

You might ask yourself upon reading this commit log: how did *any* of
this work before? Well, fun story. It turns out we have some code in
Support (BumpPtrAllocator) which both uses virtual dispatch and has
out-of-line vtables used by that virtual dispatch. If you move the
virtual dispatch into its header in *just* the right way, the optimizer
gets to devirtualize, and remove all references to the vtable. Then the
sad part: the references to this one vtable were the only strong symbol
uses in the support library for llvm-tblgen AFAICT. At least, after
doing something just like this, these symbols stopped getting their weak
definition and random calls to them would segfault instead.

Yay software.

llvm-svn: 205137
2014-03-30 11:20:25 +00:00
clang Sema: Implement DR317 2014-03-30 06:44:54 +00:00
clang-tools-extra clang-modernize: fix invalid assignment in findClangApplyReplacements() 2014-03-30 10:50:25 +00:00
compiler-rt [sanitizer] Fix Mac build. 2014-03-28 14:01:40 +00:00
debuginfo-tests relax testcase for LLDB output format compatibility. 2014-03-19 23:06:18 +00:00
libclc Introduce M_LOG2E_F and M_LOG2E 2014-03-28 21:19:03 +00:00
libcxx [libc++] Teach is_integral, is_[un]signed and make_[un]signed about __[u]int128_t 2014-03-26 19:45:52 +00:00
libcxxabi Simplify. 2014-03-20 01:28:28 +00:00
lld Forgot to replace a %t1 in the previous commit. 2014-03-29 06:45:26 +00:00
lldb Include string.h for memset() prototype. Thanks Dmitri. 2014-03-29 19:29:04 +00:00
llvm Don't mark the declarations of the TSan annotation functions as weak. 2014-03-30 11:20:25 +00:00
openmp Revert commit (testing commit hook). 2014-03-04 18:06:04 +00:00
polly Updated test/create_ll.sh to work with old & new clang versions. 2014-03-25 15:50:44 +00:00