We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
clipp/include/clipp.h
Line 2590 in 2ab8aea
It seems that here param is initialized but sometimes not destroyed. ASAN Log (see #5):
param
#0 0x3b85d2 in operator new(unsigned long) /opt/llvm/src/projects/compiler-rt/lib/asan/asan_new_delete.cc:92:3 #1 0x534142 in std::__1::__allocate(unsigned long) /opt/llvm/stage/bin/../include/c++/v1/new:226:10 #2 0x534142 in std::__1::allocator<std::__1::__function::__func<clipp::parameter::predicate_adapter, std::__1::allocator<clipp::parameter::predicate_adapter>, clipp::subrange (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)> >::allocate(unsigned long, void const*) /opt/llvm/stage/bin/../include/c++/v1/memory:1747 #3 0x534142 in std::__1::function<clipp::subrange (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>::function<clipp::parameter::predicate_adapter, void>(clipp::parameter::predicate_adapter) /opt/llvm/stage/bin/../include/c++/v1/functional:1774 #4 0x5301d2 in clipp::parameter::parameter() .../clipp.h:1820:9 #5 0x52f81b in clipp::group::child_t<clipp::parameter, clipp::group>::data::data() .../clipp.h:2590:21 #6 0x552079 in clipp::group::child_t<clipp::parameter, clipp::group>::child_t(clipp::group::child_t<clipp::parameter, clipp::group> const&) .../clipp.h:2437:38 #7 0x551da8 in void std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> >::construct<clipp::group::child_t<clipp::parameter, clipp::group>, clipp::group::child_t<clipp::parameter, clipp::group>&>(clipp::group::child_t<clipp::parameter, clipp::group>*, clipp::group::child_t<clipp::parameter, clipp::group>&&&) /opt/llvm/stage/bin/../include/c++/v1/memory:1759:31 #8 0x551da8 in void std::__1::allocator_traits<std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> > >::__construct<clipp::group::child_t<clipp::parameter, clipp::group>, clipp::group::child_t<clipp::parameter, clipp::group>&>(std::__1::integral_constant<bool, true>, std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> >&, clipp::group::child_t<clipp::parameter, clipp::group>*, clipp::group::child_t<clipp::parameter, clipp::group>&&&) /opt/llvm/stage/bin/../include/c++/v1/memory:1670 #9 0x551da8 in void std::__1::allocator_traits<std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> > >::construct<clipp::group::child_t<clipp::parameter, clipp::group>, clipp::group::child_t<clipp::parameter, clipp::group>&>(std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> >&, clipp::group::child_t<clipp::parameter, clipp::group>*, clipp::group::child_t<clipp::parameter, clipp::group>&&&) /opt/llvm/stage/bin/../include/c++/v1/memory:1516 #10 0x551da8 in void std::__1::allocator_traits<std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> > >::__construct_range_forward<clipp::group::child_t<clipp::parameter, clipp::group>*, clipp::group::child_t<clipp::parameter, clipp::group>*>(std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> >&, clipp::group::child_t<clipp::parameter, clipp::group>*, clipp::group::child_t<clipp::parameter, clipp::group>*, clipp::group::child_t<clipp::parameter, clipp::group>*&) /opt/llvm/stage/bin/../include/c++/v1/memory:1600 #11 0x551da8 in std::__1::enable_if<__is_forward_iterator<clipp::group::child_t<clipp::parameter, clipp::group>*>::value, void>::type std::__1::vector<clipp::group::child_t<clipp::parameter, clipp::group>, std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> > >::__construct_at_end<clipp::group::child_t<clipp::parameter, clipp::group>*>(clipp::group::child_t<clipp::parameter, clipp::group>*, clipp::group::child_t<clipp::parameter, clipp::group>*, unsigned long) /opt/llvm/stage/bin/../include/c++/v1/vector:1030 #12 0x54fea8 in std::__1::vector<clipp::group::child_t<clipp::parameter, clipp::group>, std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> > >::vector(std::__1::vector<clipp::group::child_t<clipp::parameter, clipp::group>, std::__1::allocator<clipp::group::child_t<clipp::parameter, clipp::group> > > const&) /opt/llvm/stage/bin/../include/c++/v1/vector:1213:9 #13 0x520006 in clipp::group::group(clipp::group const&) .../clipp.h:2936:5 #14 0x3c4b5c in clipp::operator,(clipp::parameter, clipp::parameter) .../clipp.h:3333:12 #15 0x3c34a1 in main .../main.cpp:22:86 #16 0x7fde62ff2f39 in __libc_start_main (/lib64/libc.so.6+0x20f39) SUMMARY: AddressSanitizer: 128 byte(s) leaked in 2 allocation(s).
data probably shouldn't initialize param at all since the enclosing child_t doesn't have a default ctor anyway. This gets rid of the leak.
data
child_t
data() {}
The text was updated successfully, but these errors were encountered:
Thanks! I fixed it.
Sorry, something went wrong.
Merge pull request #1 from tylerjdrake/tylerjdrake-c++20-compat
64491d2
Change check_is_callable to use std::invoke_result (when available)
No branches or pull requests
clipp/include/clipp.h
Line 2590 in 2ab8aea
It seems that here
param
is initialized but sometimes not destroyed. ASAN Log (see #5):data
probably shouldn't initializeparam
at all since the enclosingchild_t
doesn't have a default ctor anyway. This gets rid of the leak.data() {}
The text was updated successfully, but these errors were encountered: