aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineFunctionPass.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-01-13 00:43:31 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-01-13 00:43:31 +0000
commitfbe2369f1a514423e4c25417ab3532502fde6f2a (patch)
tree3157051db800312a5d48d6210429c2319ceab0ba /llvm/lib/CodeGen/MachineFunctionPass.cpp
parent7150343fbc12648f268cdf352b2aa616a4e771fc (diff)
downloadllvm-fbe2369f1a514423e4c25417ab3532502fde6f2a.zip
llvm-fbe2369f1a514423e4c25417ab3532502fde6f2a.tar.gz
llvm-fbe2369f1a514423e4c25417ab3532502fde6f2a.tar.bz2
Improve handling of instantiated thread_local variables in Itanium C++ ABI.
* Do not initialize these variables when initializing the rest of the thread_locals in the TU; they have unordered initialization so they can be initialized by themselves. This fixes a rejects-valid bug: we would make the per-variable initializer function internal, but put it in a comdat keyed off the variable, resulting in link errors when the comdat is selected from a different TU (as the per TU TLS init function tries to call an init function that does not exist). * On Darwin, when we decide that we're not going to emit a thread wrapper function at all, demote its linkage to External. Fixes a verifier failure on explicit instantiation of a thread_local variable on Darwin. llvm-svn: 291865
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunctionPass.cpp')
0 files changed, 0 insertions, 0 deletions