Skip to content

Instantly share code, notes, and snippets.

@christianparpart
Created April 3, 2019 09:57
Show Gist options
  • Save christianparpart/17ec593aace9e78e984ae5d682c2ee6b to your computer and use it in GitHub Desktop.
Save christianparpart/17ec593aace9e78e984ae5d682c2ee6b to your computer and use it in GitHub Desktop.
soltest valgrind output (a use-after-free case)
==27560== Memcheck, a memory error detector
==27560== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==27560== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==27560== Command: ./test/soltest --show_progress=yes -t SolidityEndToEndTest/abi_encode_with* -- --ipcpath /home/trapni/.ethereum/geth.ipc
==27560==
==27560== error calling PR_SET_PTRACER, vgdb might block
Running 4 test cases...
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
*************************************
==27560== Invalid read of size 8
==27560== at 0x16B839E: dev::solidity::StructType::isDynamicallyEncoded() const (Types.cpp:2100)
==27560== by 0x1899A6C: dev::solidity::ABIFunctions::headSize(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&) (ABIFunctions.cpp:1673)
==27560== by 0x1877E9C: dev::solidity::ABIFunctions::tupleEncoder[abi:cxx11](std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool)::{lambda()#1}::operator()() const (ABIFunctions.cpp:64)
==27560== by 0x189ABA6: std::_Function_handler<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > (), dev::solidity::ABIFunctions::tupleEncoder[abi:cxx11](std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (std_function.h:302)
==27560== by 0x18ADA1D: std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()>::operator()() const (std_function.h:706)
==27560== by 0x18AD50F: dev::solidity::MultiUseYulFunctionCollector::createFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()> const&) (MultiUseYulFunctionCollector.cpp:46)
==27560== by 0x189992F: dev::solidity::ABIFunctions::createFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()> const&) (ABIFunctions.cpp:1658)
==27560== by 0x1899989: dev::solidity::ABIFunctions::createExternallyUsedFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()> const&) (ABIFunctions.cpp:1663)
==27560== by 0x18791E2: dev::solidity::ABIFunctions::tupleEncoder[abi:cxx11](std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool) (ABIFunctions.cpp:99)
==27560== by 0x174A954: dev::solidity::CompilerUtils::abiEncodeV2(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool, bool) (CompilerUtils.cpp:539)
==27560== by 0x17490BE: dev::solidity::CompilerUtils::encodeToMemory(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool, bool, bool) (CompilerUtils.cpp:410)
==27560== by 0x175663E: dev::solidity::CompilerUtils::abiEncode(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool) (CompilerUtils.h:161)
==27560== by 0x1779ED6: dev::solidity::ExpressionCompiler::visit(dev::solidity::FunctionCall const&) (ExpressionCompiler.cpp:1037)
==27560== by 0x16F9BED: dev::solidity::FunctionCall::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:710)
==27560== by 0x176E4B3: dev::solidity::ExpressionCompiler::compile(dev::solidity::Expression const&) (ExpressionCompiler.cpp:50)
==27560== by 0x176288E: dev::solidity::ContractCompiler::compileExpression(dev::solidity::Expression const&, dev::solidity::Type const* const&) (ContractCompiler.cpp:1067)
==27560== by 0x1760881: dev::solidity::ContractCompiler::visit(dev::solidity::Return const&) (ContractCompiler.cpp:878)
==27560== by 0x16F8E23: dev::solidity::Return::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:530)
==27560== by 0x17014D2: void dev::solidity::ASTNode::listAccept<std::shared_ptr<dev::solidity::Statement> >(std::vector<std::shared_ptr<dev::solidity::Statement>, std::allocator<std::shared_ptr<dev::solidity::Statement> > > const&, dev::solidity::ASTConstVisitor&) (AST.h:87)
==27560== by 0x16F85D6: dev::solidity::Block::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:406)
==27560== by 0x1762353: dev::solidity::ContractCompiler::appendModifierOrFunctionCode() (ContractCompiler.cpp:1044)
==27560== by 0x175B922: dev::solidity::ContractCompiler::visit(dev::solidity::FunctionDefinition const&) (ContractCompiler.cpp:542)
==27560== by 0x16F7905: dev::solidity::FunctionDefinition::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:206)
==27560== by 0x1761798: dev::solidity::ContractCompiler::appendMissingFunctions() (ContractCompiler.cpp:979)
==27560== by 0x1756C64: dev::solidity::ContractCompiler::compileContract(dev::solidity::ContractDefinition const&, std::map<dev::solidity::ContractDefinition const*, std::shared_ptr<dev::solidity::Compiler const>, std::less<dev::solidity::ContractDefinition const*>, std::allocator<std::pair<dev::solidity::ContractDefinition const* const, std::shared_ptr<dev::solidity::Compiler const> > > > const&) (ContractCompiler.cpp:83)
==27560== by 0x172EF02: dev::solidity::Compiler::compileContract(dev::solidity::ContractDefinition const&, std::map<dev::solidity::ContractDefinition const*, std::shared_ptr<dev::solidity::Compiler const>, std::less<dev::solidity::ContractDefinition const*>, std::allocator<std::pair<dev::solidity::ContractDefinition const* const, std::shared_ptr<dev::solidity::Compiler const> > > > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&) (Compiler.cpp:39)
==27560== by 0x179FE92: dev::solidity::CompilerStack::compileContract(dev::solidity::ContractDefinition const&, std::map<dev::solidity::ContractDefinition const*, std::shared_ptr<dev::solidity::Compiler const>, std::less<dev::solidity::ContractDefinition const*>, std::allocator<std::pair<dev::solidity::ContractDefinition const* const, std::shared_ptr<dev::solidity::Compiler const> > > >&) (CompilerStack.cpp:882)
==27560== by 0x179A5D9: dev::solidity::CompilerStack::compile() (CompilerStack.cpp:397)
==27560== by 0xE833C3: dev::solidity::test::SolidityExecutionFramework::compileContract(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, dev::FixedHash<20u>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dev::FixedHash<20u> > > > const&) (SolidityExecutionFramework.h:77)
==27560== by 0xE82F1E: dev::solidity::test::SolidityExecutionFramework::compileAndRunWithoutCheck(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256u, 256u, (boost::multiprecision::cpp_integer_type)0, (boost::multiprecision::cpp_int_check_type)0, void>, (boost::multiprecision::expression_template_option)0> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, dev::FixedHash<20u>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dev::FixedHash<20u> > > > const&) (SolidityExecutionFramework.h:56)
==27560== by 0xFF25B7: dev::test::ExecutionFramework::compileAndRun(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256u, 256u, (boost::multiprecision::cpp_integer_type)0, (boost::multiprecision::cpp_int_check_type)0, void>, (boost::multiprecision::expression_template_option)0> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, dev::FixedHash<20u>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dev::FixedHash<20u> > > > const&) (ExecutionFramework.h:77)
==27560== by 0x1302653: dev::solidity::test::SolidityEndToEndTest::abi_encode_with_signaturev2::test_method() (SolidityEndToEndTest.cpp:14703)
==27560== by 0x1302282: dev::solidity::test::SolidityEndToEndTest::abi_encode_with_signaturev2_invoker() (SolidityEndToEndTest.cpp:14663)
==27560== by 0xE8D1D3: boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:118)
==27560== by 0x1A8148D: boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A80A4C: boost::execution_monitor::catch_signals(boost::function<int ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A80B45: boost::execution_monitor::execute(boost::function<int ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A812EC: boost::execution_monitor::vexecute(boost::function<void ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A48580: boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned int) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A252A2: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A2548F: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A2548F: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A1E1DA: boost::unit_test::framework::run(unsigned long, bool) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A462F6: boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x7693B96: (below main) (libc-start.c:310)
==27560== Address 0x94fa930 is 0 bytes inside a block of size 240 free'd
==27560== at 0x4C3123B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==27560== by 0x1457000: dev::solidity::ArrayType::~ArrayType() (Types.h:711)
==27560== by 0x103AF1B: std::default_delete<dev::solidity::Type>::operator()(dev::solidity::Type*) const (unique_ptr.h:78)
==27560== by 0x1039CD2: std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >::~unique_ptr() (unique_ptr.h:268)
==27560== by 0x103FD7C: void std::_Destroy<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> > >(std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*) (stl_construct.h:98)
==27560== by 0x103E96C: void std::_Destroy_aux<false>::__destroy<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*>(std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*, std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*) (stl_construct.h:108)
==27560== by 0x103D0F5: void std::_Destroy<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*>(std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*, std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*) (stl_construct.h:137)
==27560== by 0x103BBAE: void std::_Destroy<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*, std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> > >(std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*, std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*, std::allocator<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> > >&) (stl_construct.h:206)
==27560== by 0x1724E0B: std::vector<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >, std::allocator<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> > > >::_M_erase_at_end(std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >*) (stl_vector.h:1513)
==27560== by 0x1723621: std::vector<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> >, std::allocator<std::unique_ptr<dev::solidity::Type, std::default_delete<dev::solidity::Type> > > >::clear() (stl_vector.h:1248)
==27560== by 0x171FA23: dev::solidity::TypeProvider::reset() (TypeProvider.cpp:101)
==27560== by 0x1796CE6: dev::solidity::CompilerStack::~CompilerStack() (CompilerStack.cpp:70)
==27560== by 0xE8517F: dev::solidity::test::SolidityExecutionFramework::~SolidityExecutionFramework() (SolidityExecutionFramework.h:41)
==27560== by 0x13877AF: dev::solidity::test::SolidityEndToEndTest::abi_encode_with_selectorv2::~abi_encode_with_selectorv2() (SolidityEndToEndTest.cpp:14573)
==27560== by 0x12FF0B5: dev::solidity::test::SolidityEndToEndTest::abi_encode_with_selectorv2_invoker() (SolidityEndToEndTest.cpp:14573)
==27560== by 0xE8D1D3: boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:118)
==27560== by 0x1A8148D: boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A80A4C: boost::execution_monitor::catch_signals(boost::function<int ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A80B45: boost::execution_monitor::execute(boost::function<int ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A812EC: boost::execution_monitor::vexecute(boost::function<void ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A48580: boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned int) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A252A2: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A2548F: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A2548F: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A1E1DA: boost::unit_test::framework::run(unsigned long, bool) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A462F6: boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x7693B96: (below main) (libc-start.c:310)
==27560== Block was alloc'd at
==27560== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==27560== by 0x16D52C4: std::_MakeUniq<dev::solidity::ArrayType>::__single_object std::make_unique<dev::solidity::ArrayType, dev::solidity::DataLocation&>(dev::solidity::DataLocation&) (unique_ptr.h:825)
==27560== by 0x16B616A: dev::solidity::ArrayType::copyForLocation(dev::solidity::DataLocation, bool) const (Types.cpp:1925)
==27560== by 0x172034D: dev::solidity::TypeProvider::withLocation(dev::solidity::ReferenceType const*, dev::solidity::DataLocation, bool) (TypeProvider.cpp:201)
==27560== by 0x16B58DF: dev::solidity::ArrayType::interfaceType(bool) const (Types.cpp:1900)
==27560== by 0x16B836D: dev::solidity::StructType::isDynamicallyEncoded() const (Types.cpp:2099)
==27560== by 0x1899A6C: dev::solidity::ABIFunctions::headSize(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&) (ABIFunctions.cpp:1673)
==27560== by 0x1877E9C: dev::solidity::ABIFunctions::tupleEncoder[abi:cxx11](std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool)::{lambda()#1}::operator()() const (ABIFunctions.cpp:64)
==27560== by 0x189ABA6: std::_Function_handler<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > (), dev::solidity::ABIFunctions::tupleEncoder[abi:cxx11](std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (std_function.h:302)
==27560== by 0x18ADA1D: std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()>::operator()() const (std_function.h:706)
==27560== by 0x18AD50F: dev::solidity::MultiUseYulFunctionCollector::createFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()> const&) (MultiUseYulFunctionCollector.cpp:46)
==27560== by 0x189992F: dev::solidity::ABIFunctions::createFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()> const&) (ABIFunctions.cpp:1658)
==27560== by 0x1899989: dev::solidity::ABIFunctions::createExternallyUsedFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ()> const&) (ABIFunctions.cpp:1663)
==27560== by 0x18791E2: dev::solidity::ABIFunctions::tupleEncoder[abi:cxx11](std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool) (ABIFunctions.cpp:99)
==27560== by 0x174A954: dev::solidity::CompilerUtils::abiEncodeV2(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool, bool) (CompilerUtils.cpp:539)
==27560== by 0x17490BE: dev::solidity::CompilerUtils::encodeToMemory(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool, bool, bool) (CompilerUtils.cpp:410)
==27560== by 0x175663E: dev::solidity::CompilerUtils::abiEncode(std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, std::vector<dev::solidity::Type const*, std::allocator<dev::solidity::Type const*> > const&, bool) (CompilerUtils.h:161)
==27560== by 0x1779ED6: dev::solidity::ExpressionCompiler::visit(dev::solidity::FunctionCall const&) (ExpressionCompiler.cpp:1037)
==27560== by 0x16F9BED: dev::solidity::FunctionCall::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:710)
==27560== by 0x176E4B3: dev::solidity::ExpressionCompiler::compile(dev::solidity::Expression const&) (ExpressionCompiler.cpp:50)
==27560== by 0x176288E: dev::solidity::ContractCompiler::compileExpression(dev::solidity::Expression const&, dev::solidity::Type const* const&) (ContractCompiler.cpp:1067)
==27560== by 0x1760881: dev::solidity::ContractCompiler::visit(dev::solidity::Return const&) (ContractCompiler.cpp:878)
==27560== by 0x16F8E23: dev::solidity::Return::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:530)
==27560== by 0x17014D2: void dev::solidity::ASTNode::listAccept<std::shared_ptr<dev::solidity::Statement> >(std::vector<std::shared_ptr<dev::solidity::Statement>, std::allocator<std::shared_ptr<dev::solidity::Statement> > > const&, dev::solidity::ASTConstVisitor&) (AST.h:87)
==27560== by 0x16F85D6: dev::solidity::Block::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:406)
==27560== by 0x1762353: dev::solidity::ContractCompiler::appendModifierOrFunctionCode() (ContractCompiler.cpp:1044)
==27560== by 0x175B922: dev::solidity::ContractCompiler::visit(dev::solidity::FunctionDefinition const&) (ContractCompiler.cpp:542)
==27560== by 0x16F7905: dev::solidity::FunctionDefinition::accept(dev::solidity::ASTConstVisitor&) const (AST_accept.h:206)
==27560== by 0x1761798: dev::solidity::ContractCompiler::appendMissingFunctions() (ContractCompiler.cpp:979)
==27560== by 0x1756C64: dev::solidity::ContractCompiler::compileContract(dev::solidity::ContractDefinition const&, std::map<dev::solidity::ContractDefinition const*, std::shared_ptr<dev::solidity::Compiler const>, std::less<dev::solidity::ContractDefinition const*>, std::allocator<std::pair<dev::solidity::ContractDefinition const* const, std::shared_ptr<dev::solidity::Compiler const> > > > const&) (ContractCompiler.cpp:83)
==27560== by 0x172EF02: dev::solidity::Compiler::compileContract(dev::solidity::ContractDefinition const&, std::map<dev::solidity::ContractDefinition const*, std::shared_ptr<dev::solidity::Compiler const>, std::less<dev::solidity::ContractDefinition const*>, std::allocator<std::pair<dev::solidity::ContractDefinition const* const, std::shared_ptr<dev::solidity::Compiler const> > > > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&) (Compiler.cpp:39)
==27560== by 0x179FE92: dev::solidity::CompilerStack::compileContract(dev::solidity::ContractDefinition const&, std::map<dev::solidity::ContractDefinition const*, std::shared_ptr<dev::solidity::Compiler const>, std::less<dev::solidity::ContractDefinition const*>, std::allocator<std::pair<dev::solidity::ContractDefinition const* const, std::shared_ptr<dev::solidity::Compiler const> > > >&) (CompilerStack.cpp:882)
==27560== by 0x179A5D9: dev::solidity::CompilerStack::compile() (CompilerStack.cpp:397)
==27560== by 0xE833C3: dev::solidity::test::SolidityExecutionFramework::compileContract(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, dev::FixedHash<20u>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dev::FixedHash<20u> > > > const&) (SolidityExecutionFramework.h:77)
==27560== by 0xE82F1E: dev::solidity::test::SolidityExecutionFramework::compileAndRunWithoutCheck(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256u, 256u, (boost::multiprecision::cpp_integer_type)0, (boost::multiprecision::cpp_int_check_type)0, void>, (boost::multiprecision::expression_template_option)0> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, dev::FixedHash<20u>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dev::FixedHash<20u> > > > const&) (SolidityExecutionFramework.h:56)
==27560== by 0xFF25B7: dev::test::ExecutionFramework::compileAndRun(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256u, 256u, (boost::multiprecision::cpp_integer_type)0, (boost::multiprecision::cpp_int_check_type)0, void>, (boost::multiprecision::expression_template_option)0> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, dev::FixedHash<20u>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, dev::FixedHash<20u> > > > const&) (ExecutionFramework.h:77)
==27560== by 0x12FF2AB: dev::solidity::test::SolidityEndToEndTest::abi_encode_with_selectorv2::test_method() (SolidityEndToEndTest.cpp:14603)
==27560== by 0x12FEEDB: dev::solidity::test::SolidityEndToEndTest::abi_encode_with_selectorv2_invoker() (SolidityEndToEndTest.cpp:14573)
==27560== by 0xE8D1D3: boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:118)
==27560== by 0x1A8148D: boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A80A4C: boost::execution_monitor::catch_signals(boost::function<int ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A80B45: boost::execution_monitor::execute(boost::function<int ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A812EC: boost::execution_monitor::vexecute(boost::function<void ()> const&) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A48580: boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned int) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A252A2: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A2548F: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A2548F: boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned int, boost::unit_test::framework::state::random_generator_helper const*) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A1E1DA: boost::unit_test::framework::run(unsigned long, bool) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x1A462F6: boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) (in /home/trapni/ethereum/solidity/build/test/soltest)
==27560== by 0x7693B96: (below main) (libc-start.c:310)
[ ... ]
/home/trapni/ethereum/solidity/libsolidity/codegen/ABIFunctions.cpp(1079): fatal error: in "dev::solidity::ABIFunctions::abiEncodingFunctionStruct(const dev::solidity::StructType&, const dev::solidity::StructType&, const dev::solidity::ABIFunctions::EncodingOptions&)::<lambda()>": boost::exception_detail::clone_impl<langutil::InternalCompilerError>:
/home/trapni/ethereum/solidity/test/libsolidity/SolidityEndToEndTest.cpp(14663): last checkpoint: "abi_encode_with_signaturev2" test entry
**************
*** 1 failure is detected in the test module "SolidityTests"
[ ... ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment