A complete object is declared reachable while the number of calls to
declare_reachable with an argument referencing the object exceeds the
number of calls to undeclare_reachable with an argument referencing the
Preconditions: If p is not null, the complete object referenced by p
has been previously declared reachable, and is
live ([basic.life]) from the time of the call until the last
undeclare_reachable(p) call on the object.
It is expected that calls to declare_reachable(p) consume
a small amount of memory in addition to that occupied by the referenced object until the
matching call to undeclare_reachable(p) is encountered.
Thus, long-running programs where calls are not matched can exhibit a memory leak.