Explicitly support having a WeakRef to self

This commit is contained in:
2025-09-11 14:54:42 -04:00
parent 5d932bf36c
commit a2da7fba84
2 changed files with 20 additions and 0 deletions

View File

@@ -445,3 +445,17 @@ TEST_CASE("Polymorphic edge cases") {
CHECK(base_ref_from_weak.get() == derived_ref.get());
}
}
// Should be run with asan or valgrind
TEST_CASE("Self-referencing WeakRef pattern") {
struct AmIAlive {
volatile int x;
~AmIAlive() { x = 0; }
};
struct SelfReferencing {
AmIAlive am;
WeakRef<SelfReferencing> self_;
};
auto x = make_ref<SelfReferencing>();
x->self_ = x;
}