diff options
Diffstat (limited to 'test/addons')
-rw-r--r-- | test/addons/uv-handle-leak/binding.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/test/addons/uv-handle-leak/binding.cc b/test/addons/uv-handle-leak/binding.cc index 221a128432..1b769b141c 100644 --- a/test/addons/uv-handle-leak/binding.cc +++ b/test/addons/uv-handle-leak/binding.cc @@ -15,9 +15,16 @@ void CloseCallback(uv_handle_t* handle) {} class ExampleOwnerClass { public: - virtual ~ExampleOwnerClass() {} + virtual ~ExampleOwnerClass(); }; +// Do not inline this into the class, because that may remove the virtual +// table when LTO is used, and with it the symbol for which we grep the process +// output in test/abort/test-addon-uv-handle-leak. +// When the destructor is not inlined, the compiler will have to assume that it, +// and the vtable, is part of what this compilation unit exports, and keep them. +ExampleOwnerClass::~ExampleOwnerClass() {} + ExampleOwnerClass example_instance; void LeakHandle(const FunctionCallbackInfo<Value>& args) { |