You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, we have several redundant static instrumentation rules: __plsan_lazy_check and __plsan_check_returned_or_stored_value.
This instrumentation handles situations where the reference count of a memory block reaches zero but is soon restored to one.
Although there are no pointers to the memory block, the situation can be regarded as if an invisible pointer points to the memory block (e.g., the returned value is not stored in a specific pointer immediately after the function returns, but it is still reachable.)
Thus, the __plsan_lazy_check and __plsan_check_returned_or_stored_value functions handle this situation.
However, we can eliminate the need for these functions.
Simplification
Whenever the reference count reaches to zero, a leak report stored. (leak reports are basically overwrited)
And then, at the end of program, it checks reference counts of all memory blocks, which reference counts are still zero.
The text was updated successfully, but these errors were encountered:
Redundant rules
Currently, we have several redundant static instrumentation rules: __plsan_lazy_check and __plsan_check_returned_or_stored_value.
This instrumentation handles situations where the reference count of a memory block reaches zero but is soon restored to one.
Although there are no pointers to the memory block, the situation can be regarded as if an invisible pointer points to the memory block (e.g., the returned value is not stored in a specific pointer immediately after the function returns, but it is still reachable.)
Thus, the __plsan_lazy_check and __plsan_check_returned_or_stored_value functions handle this situation.
However, we can eliminate the need for these functions.
Simplification
The text was updated successfully, but these errors were encountered: