diff options
| author | Reid Kleckner <rnk@google.com> | 2017-10-13 00:53:02 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2017-10-13 00:53:02 +0000 |
| commit | 3da37e05f7ccc32d64f3cab42359a02d9a8a79c0 (patch) | |
| tree | e6045dbce4b674528de65a0ed1a028914c70e9cc /llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp | |
| parent | 9a542f7553f198251869ef377a748e92e545c8f0 (diff) | |
| download | bcm5719-llvm-3da37e05f7ccc32d64f3cab42359a02d9a8a79c0.tar.gz bcm5719-llvm-3da37e05f7ccc32d64f3cab42359a02d9a8a79c0.zip | |
[MS] Don't bail on replacing dllimport vbase dtors with base dtors
Fix PR32990 by effectively reverting r283063 and solving it a different
way.
We want to limit the hack to not replace equivalent available_externally
dtors specifically to libc++, which uses always_inline. It seems certain
versions of libc++ do not provide all the symbols that an explicit
template instantiation is expected to provide.
If we get to the code that forms a real alias, only *then* check if this
is available_externally, and do that by asking a better question, which
is "is this a declaration for the linker?", because *that's* what means
we can't form an alias to it.
As a follow-on simplification, remove the InEveryTU parameter. Its last
use guarded this code for forming aliases, but we should never form
aliases to declarations, regardless of what we know about every TU.
llvm-svn: 315656
Diffstat (limited to 'llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions

