test: make sure vtable is generated in addon test with LTO
PR-URL: https://github.com/nodejs/node/pull/28057 Fixes: https://github.com/nodejs/node/issues/28026 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This commit is contained in:
parent
65a5f7b65f
commit
b31bfaddeb
@ -15,9 +15,16 @@ void CloseCallback(uv_handle_t* handle) {}
|
|||||||
|
|
||||||
class ExampleOwnerClass {
|
class ExampleOwnerClass {
|
||||||
public:
|
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;
|
ExampleOwnerClass example_instance;
|
||||||
|
|
||||||
void LeakHandle(const FunctionCallbackInfo<Value>& args) {
|
void LeakHandle(const FunctionCallbackInfo<Value>& args) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user