From 357600eab56533a9b1a097b7675b3888cd50365d Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Thu, 20 Nov 2014 23:37:18 +0000 Subject: Add out of line virtual destructors to all LLVMTargetMachine subclasses These recently all grew a unique_ptr member in r221878. When anyone calls a virtual method of a class, clang-cl requires all virtual methods to be semantically valid. This includes the implicit virtual destructor, which triggers instantiation of the unique_ptr destructor, which fails because the type being deleted is incomplete. This is just part of the ongoing saga of PR20337, which is affecting Blink as well. Because the MSVC ABI doesn't have key functions, we end up referencing the vtable and implicit destructor on any virtual call through a class. We don't actually end up emitting the dtor, so it'd be good if we could avoid this unneeded type completion work. llvm-svn: 222480 --- llvm/lib/Target/Sparc/SparcTargetMachine.h | 1 + 1 file changed, 1 insertion(+) (limited to 'llvm/lib/Target/Sparc/SparcTargetMachine.h') diff --git a/llvm/lib/Target/Sparc/SparcTargetMachine.h b/llvm/lib/Target/Sparc/SparcTargetMachine.h index f73c5c527cf..096e7c8485a 100644 --- a/llvm/lib/Target/Sparc/SparcTargetMachine.h +++ b/llvm/lib/Target/Sparc/SparcTargetMachine.h @@ -28,6 +28,7 @@ public: StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL, bool is64bit); + ~SparcTargetMachine() override; const SparcSubtarget *getSubtargetImpl() const override { return &Subtarget; } -- cgit v1.2.3