https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87840

--- Comment #6 from Jan Engelhardt <jengelh at inai dot de> ---
Found a case where g++-9 also misses a leak when -fsanitize=address is not
present.

14:47 a4:~ > cat y.cpp 
#include <memory>
struct S {
        std::shared_ptr<S> other;
};
int main()
{
        auto e = std::make_shared<S>();
        auto f = std::make_shared<S>();
        e->other = f;
        f->other = e;
}
14:48 a4:~ > g++-9 -ggdb3 -fsanitize=leak y.cpp; ./a.out
14:48 a4:~ > g++-9 -ggdb3 -fsanitize=address -fsanitize=leak y.cpp; ./a.out

=================================================================
==18624==ERROR: LeakSanitizer: detected memory leaks
[...]
Indirect leak of 32 byte(s) in 1 object(s) allocated from:
Indirect leak of 32 byte(s) in 1 object(s) allocated from:
SUMMARY: AddressSanitizer: 64 byte(s) leaked in 2 allocation(s).

Reply via email to