The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.
For further technical details on the meaning of columns in the below table, please see the Glossary .
Func name | Functions filename | Args | Function call depth | Reached by Fuzzers | Fuzzers runtime hit | Func lines hit % | I Count | BB Count | Cyclomatic complexity | Functions reached | Reached by functions | Accumulated cyclomatic complexity | Undiscovered complexity |
---|
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 965 | 36.7% |
gold | 90 | 3.42% |
yellow | 60 | 2.28% |
greenyellow | 23 | 0.87% |
lawngreen | 1489 | 56.6% |
All colors | 2627 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
117 | 2088 | solidity::yul::EVMDialect::EVMDialect(solidity::langutil::EVMVersion, bool) | call site | |
89 | 546 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
call site | __cxa_guard_acquire |
78 | 2215 | solidity::evmasm::swapInstruction(unsigned int) | call site | |
71 | 71 |
solidity::yul::YulStringRepository::ResetCallback::ResetCallback(std::__1::function
|
call site | __cxa_guard_acquire |
50 | 2517 |
solidity::util::toHex(std::__1::vector
|
call site | _ZN6ranges11view_facadeINS_18iter_zip_with_viewINS_6detail16indirect_zip_fn_EJNS_8ref_viewINSt3__16vectorIN8solidity3yul10IdentifierENS5_9allocatorIS9_EEEEEENS4_INS6_INS5_8optionalINS8_9YulStringEEENSA_ISG_EEEEEEEEELNS_11cardinalityEn1EE5beginISK_Lb1ELi0EEENS_14basic_iteratorINS5_5decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
47 | 2378 | solidity::yul::valueOfStringLiteral(solidity::yul::Literal const&) | call site | _ZN5boost14multiprecision8backends15eval_left_shiftILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEENS_11enable_if_cIXntsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valueEvE4typeERS8_o |
47 | 2439 | solidity::yul::CallGraph::recursiveFunctions() const | call site | __dynamic_cast |
42 | 814 |
solidity::yul::Parser::isValidNumberLiteral(std::__1::basic_string
|
call site | _ZN5boost14multiprecision8backends13eval_multiplyILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvLj256ELj256ELS3_0ELS4_0EvEENS_11enable_if_cIXaantsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valuentsr18is_trivial_cpp_intINS6_IXT4_EXT5_EXT6_EXT7_ET8_EEEE5valueEvE4typeERS8_RKSA_RKy |
36 | 1601 |
solidity::yul::StackLayoutGenerator::propagateStackThroughBlock(std::__1::vector
|
call site | |
36 | 2569 | solidity::yul::NameDispenser::newName(solidity::yul::YulString) | call site | _ZN5boost14multiprecision6numberINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEELNS0_26expression_template_optionE0EEpLImEENS_11enable_if_cIXsr14is_convertibleIT_S8_EE5valueERS8_E4typeERKSB_ |
23 | 29 | solidity::langutil::DebugInfoSelection::All(bool) | call site | _ZN6ranges12view_adaptorINS_19iter_transform_viewINS_8ref_viewIKNSt3__13mapINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEMN8solidity8langutil18DebugInfoSelectionEbNS3_4lessISA_EENS8_INS3_4pairIKSA_SE_EEEEEEEENS_10indirectedINS_6detail10get_secondEEEEESN_LNS_11cardinalityEn1EE12begin_cursorISS_Lb1ELi0EEEDTclsr12view_adaptorE13begin_cursor_clsr3stdE7declvalIRT_EEEEv |
22 | 510 | solidity::langutil::ErrorReporter::checkForExcessiveErrors(solidity::langutil::Error::Type) | call site | __cxa_allocate_exception |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
3420 | 3797 |
solidity::yul::StackLimitEvader::run(solidity::yul::OptimiserStepContext&,solidity::yul::Object&,std::__1::map
|
/src/solidity/libyul/optimiser/StackLimitEvader.cpp:178 |
1650 | 3538 | solidity::yul::StackLimitEvader::run(solidity::yul::OptimiserStepContext&,solidity::yul::Object&) | /src/solidity/libyul/optimiser/StackLimitEvader.cpp:131 |
1596 | 10829 |
solidity::yul::RepresentationFinder::findRepresentation(boost::multiprecision::number
|
/src/solidity/libyul/backends/evm/ConstantOptimiser.cpp:155 |
959 | 1310 |
solidity::yul::OptimiserSuite::runSequence(std::__1::vector
|
/src/solidity/libyul/optimiser/Suite.cpp:429 |
955 | 1263 |
solidity::yul::OptimiserSuite::runSequence(std::__1::vector
|
/src/solidity/libyul/optimiser/Suite.cpp:433 |
771 | 2226 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
/src/solidity/libyul/AsmParser.cpp:125 |
485 | 1953 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:337 |
480 | 480 |
solidity::evmasm::GasMeter::dataGas(std::__1::vector
|
/src/solidity/libevmasm/GasMeter.cpp:278 |
315 | 317 | solidity::yul::AsmAnalyzer::validateInstructions(solidity::evmasm::Instruction,solidity::langutil::SourceLocationconst&) | /src/solidity/libyul/AsmAnalysis.cpp:720 |
291 | 467 |
boolsolidity::yul::Shuffler<(anonymousnamespace)::createIdealLayout
|
/src/solidity/libyul/backends/evm/StackHelpers.h:361 |
273 | 273 |
voidsolidity::yul::createStackLayout
|
/src/solidity/libyul/backends/evm/StackHelpers.h:461 |
273 | 273 |
voidsolidity::yul::createStackLayout
|
/src/solidity/libyul/backends/evm/StackHelpers.h:461 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/solidity/test/tools/ossfuzz/strictasm_opt_ossfuzz.cpp | 1 |
/src/solidity/libyul/YulString.h | 13 |
/src/solidity/liblangutil/EVMVersion.h | 15 |
/src/solidity/libsolidity/interface/OptimiserSettings.h | 5 |
/src/solidity/liblangutil/DebugInfoSelection.cpp | 1 |
/src/solidity/liblangutil/DebugInfoSelection.h | 2 |
/src/solidity/build/deps/include/range/v3/view/view.hpp | 18 |
/src/solidity/build/deps/include/range/v3/view/map.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/all.hpp | 7 |
/src/solidity/build/deps/include/range/v3/range_fwd.hpp | 5 |
/src/solidity/build/deps/include/range/v3/view/ref.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/transform.hpp | 16 |
/src/solidity/build/deps/include/range/v3/functional/indirect.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/adaptor.hpp | 8 |
/src/solidity/build/deps/include/range/v3/view/facade.hpp | 7 |
/src/solidity/build/deps/include/range/v3/detail/range_access.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/interface.hpp | 1 |
/src/solidity/build/deps/include/range/v3/range/access.hpp | 9 |
/src/solidity/build/deps/include/range/v3/utility/compressed_pair.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/box.hpp | 6 |
/src/solidity/build/deps/include/range/v3/iterator/basic_iterator.hpp | 35 |
/src/solidity/libyul/YulStack.h | 2 |
/src/solidity/liblangutil/CharStreamProvider.h | 2 |
/src/solidity/liblangutil/ErrorReporter.h | 6 |
/src/solidity/libyul/YulStack.cpp | 6 |
/src/solidity/libyul/backends/evm/EVMDialect.cpp | 8 |
/src/solidity/libyul/backends/wasm/WasmDialect.cpp | 1 |
/src/solidity/libyul/Exceptions.h | 4 |
/usr/local/include/c++/v1/exception | 1 |
/usr/include/boost/exception/exception.hpp | 14 |
/src/solidity/libsolutil/Exceptions.h | 4 |
/src/solidity/libsolutil/Assertions.h | 1 |
/usr/include/boost/exception/detail/error_info_impl.hpp | 3 |
/usr/include/boost/exception/info.hpp | 11 |
/usr/include/boost/smart_ptr/shared_ptr.hpp | 6 |
/usr/include/boost/smart_ptr/detail/shared_count.hpp | 4 |
/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp | 1 |
/usr/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp | 6 |
/usr/include/boost/core/checked_delete.hpp | 1 |
/usr/include/boost/exception/detail/type_info.hpp | 1 |
/usr/include/boost/throw_exception.hpp | 12 |
/src/solidity/libyul/ObjectParser.h | 1 |
/src/solidity/liblangutil/ParserBase.h | 4 |
/src/solidity/libyul/ObjectParser.cpp | 8 |
/src/solidity/liblangutil/ParserBase.cpp | 11 |
/src/solidity/liblangutil/Scanner.h | 21 |
/src/solidity/liblangutil/Exceptions.h | 5 |
/src/solidity/liblangutil/CharStream.h | 8 |
/src/solidity/liblangutil/Scanner.cpp | 29 |
/src/solidity/liblangutil/Common.h | 6 |
/src/solidity/liblangutil/CharStream.cpp | 3 |
/src/solidity/liblangutil/SourceLocation.h | 5 |
/usr/local/include/c++/v1/optional | 14 |
/src/solidity/liblangutil/Token.cpp | 9 |
/src/solidity/libsolutil/StringUtils.h | 3 |
/src/solidity/liblangutil/Token.h | 6 |
/src/solidity/liblangutil/ErrorReporter.cpp | 7 |
/usr/include/boost/assert/source_location.hpp | 4 |
/src/solidity/libyul/Object.h | 1 |
/src/solidity/libyul/AsmParser.h | 13 |
/src/solidity/libyul/AsmParser.cpp | 20 |
/src/solidity/libsolutil/Common.h | 4 |
/usr/include/boost/algorithm/string/predicate.hpp | 6 |
/usr/include/boost/range/as_literal.hpp | 5 |
/usr/include/boost/range/begin.hpp | 3 |
/usr/include/boost/range/iterator_range_core.hpp | 2 |
/usr/include/boost/range/end.hpp | 3 |
/usr/include/boost/algorithm/string/detail/predicate.hpp | 1 |
/usr/include/boost/algorithm/string/compare.hpp | 1 |
/src/solidity/libyul/AST.h | 35 |
/usr/include/boost/multiprecision/cpp_int.hpp | 10 |
/usr/include/boost/multiprecision/cpp_int/cpp_int_config.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/multiply.hpp | 1 |
/usr/include/boost/multiprecision/cpp_int/add.hpp | 1 |
/usr/include/boost/multiprecision/detail/constexpr.hpp | 2 |
/src/solidity/libsolutil/CommonData.h | 30 |
/src/solidity/libyul/Object.cpp | 1 |
/src/solidity/libyul/AsmAnalysis.h | 2 |
/src/solidity/libyul/SideEffects.h | 1 |
/src/solidity/libyul/backends/evm/EVMDialect.h | 7 |
/src/solidity/libyul/AsmAnalysis.cpp | 4 |
/src/solidity/libyul/ScopeFiller.cpp | 2 |
/src/solidity/libyul/optimiser/Suite.cpp | 10 |
/usr/include/boost/operators.hpp | 1 |
/src/solidity/libyul/optimiser/Disambiguator.h | 1 |
/src/solidity/libyul/optimiser/ASTCopier.h | 5 |
/src/solidity/libyul/optimiser/NameDispenser.cpp | 5 |
/src/solidity/libyul/optimiser/ASTCopier.cpp | 2 |
/src/solidity/libyul/optimiser/NameCollector.h | 4 |
/src/solidity/libyul/optimiser/ASTWalker.h | 8 |
/src/solidity/libyul/optimiser/Suite.h | 1 |
/src/solidity/libyul/optimiser/Metrics.cpp | 1 |
/src/solidity/libyul/optimiser/Metrics.h | 1 |
/src/solidity/libyul/optimiser/ASTWalker.cpp | 4 |
/src/solidity/libyul/optimiser/NameSimplifier.h | 2 |
/src/solidity/libyul/optimiser/NameSimplifier.cpp | 2 |
/src/solidity/libyul/optimiser/OptimizerUtilities.cpp | 2 |
/src/solidity/libyul/optimiser/NameDispenser.h | 2 |
/src/solidity/libyul/optimiser/StackCompressor.cpp | 7 |
/src/solidity/libyul/optimiser/Semantics.cpp | 2 |
/src/solidity/libyul/optimiser/Semantics.h | 3 |
/src/solidity/libyul/AsmAnalysisInfo.h | 3 |
/src/solidity/libyul/backends/evm/ControlFlowGraphBuilder.cpp | 11 |
/src/solidity/libyul/backends/evm/ControlFlowGraph.h | 4 |
/src/solidity/build/deps/include/range/v3/functional/bind_back.hpp | 4 |
/src/solidity/build/deps/include/range/v3/functional/invoke.hpp | 7 |
/src/solidity/build/deps/include/range/v3/range/conversion.hpp | 8 |
/src/solidity/build/deps/include/range/v3/range/primitives.hpp | 3 |
/src/solidity/build/deps/include/range/v3/utility/semiregular_box.hpp | 2 |
/src/solidity/libsolutil/Algorithms.h | 12 |
/src/solidity/libsolutil/cxx20.h | 1 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.cpp | 29 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.h | 2 |
/src/solidity/build/deps/include/range/v3/algorithm/find.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/enumerate.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/zip.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/zip_with.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/reverse.hpp | 5 |
/src/solidity/build/deps/include/range/v3/utility/optional.hpp | 5 |
/src/solidity/build/deps/include/range/v3/iterator/operations.hpp | 3 |
/src/solidity/build/deps/include/range/v3/utility/tuple_algorithm.hpp | 2 |
/src/solidity/build/deps/include/range/v3/detail/adl_get.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/reverse_iterator.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/iota.hpp | 6 |
/src/solidity/libyul/backends/evm/StackHelpers.h | 4 |
/src/solidity/build/deps/include/range/v3/algorithm/all_of.hpp | 2 |
/src/solidity/build/deps/include/range/v3/functional/identity.hpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/any_of.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/drop.hpp | 1 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.cpp | 4 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.h | 3 |
/src/solidity/libyul/optimiser/KnowledgeBase.h | 2 |
/src/solidity/libyul/optimiser/Rematerialiser.cpp | 2 |
/src/solidity/libyul/optimiser/NameCollector.cpp | 3 |
/src/solidity/libyul/optimiser/Rematerialiser.h | 1 |
/src/solidity/libyul/optimiser/UnusedPruner.cpp | 5 |
/src/solidity/build/deps/include/range/v3/action/remove_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/remove_if.hpp | 2 |
/src/solidity/build/deps/include/range/v3/functional/reference_wrapper.hpp | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/find_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/access.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/move.hpp | 1 |
/src/solidity/build/deps/include/range/v3/action/erase.hpp | 2 |
/src/solidity/libyul/optimiser/UnusedPruner.h | 2 |
/src/solidity/libyul/CompilabilityChecker.cpp | 1 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.cpp | 2 |
/src/solidity/libyul/Dialect.h | 3 |
/src/solidity/libevmasm/Instruction.h | 6 |
/src/solidity/liblangutil/EVMVersion.cpp | 1 |
/src/solidity/libevmasm/Instruction.cpp | 1 |
/src/solidity/libyul/ControlFlowSideEffects.h | 1 |
/src/solidity/libevmasm/SemanticInformation.cpp | 2 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.h | 1 |
/src/solidity/libyul/backends/evm/AbstractAssembly.h | 2 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.h | 5 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.cpp | 13 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.h | 3 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.cpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/none_of.hpp | 3 |
/src/solidity/libevmasm/Exceptions.h | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/max.hpp | 1 |
/src/solidity/libyul/CompilabilityChecker.h | 1 |
/src/solidity/libyul/backends/evm/ConstantOptimiser.h | 1 |
/src/solidity/libyul/optimiser/StackLimitEvader.cpp | 6 |
/src/solidity/build/deps/include/range/v3/view/take.hpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.cpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.h | 1 |
/src/solidity/libyul/Utilities.cpp | 4 |
/src/solidity/libsolutil/CommonData.cpp | 4 |
/src/solidity/libsolutil/FixedHash.h | 2 |
/usr/include/boost/multiprecision/detail/number_base.hpp | 1 |
/usr/local/include/c++/v1/stdexcept | 1 |
/usr/include/boost/multiprecision/cpp_int/bitwise.hpp | 9 |
/usr/include/boost/multiprecision/detail/number_compare.hpp | 5 |
/src/solidity/libyul/optimiser/CallGraphGenerator.cpp | 5 |
/src/solidity/libyul/optimiser/CallGraphGenerator.h | 4 |
/usr/local/include/c++/v1/initializer_list | 1 |
/src/solidity/build/deps/include/range/v3/view/concat.hpp | 1 |
/src/solidity/libyul/optimiser/StackToMemoryMover.cpp | 9 |
/src/solidity/libyul/optimiser/StackToMemoryMover.h | 3 |
/usr/include/boost/multiprecision/detail/precision.hpp | 1 |
/src/solidity/libsolutil/Numeric.h | 3 |
/usr/include/boost/multiprecision/detail/default_ops.hpp | 2 |
/usr/include/boost/multiprecision/number.hpp | 4 |
/usr/include/boost/multiprecision/cpp_int/misc.hpp | 2 |
/src/solidity/libyul/optimiser/VarNameCleaner.h | 2 |
/src/solidity/libyul/optimiser/VarNameCleaner.cpp | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 1130 | 40.2% |
gold | 79 | 2.81% |
yellow | 54 | 1.92% |
greenyellow | 27 | 0.96% |
lawngreen | 1514 | 53.9% |
All colors | 2804 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
127 | 1324 |
solidity::yul::test::yul_fuzzer::yulFuzzerUtil::interpret(std::__1::basic_ostream
|
call site | _ZN5boost14multiprecision11default_ops19eval_divide_defaultINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEExEENS_11enable_if_cIXaasr14is_convertibleIT0_NS0_6numberIT_LNS0_26expression_template_optionE1EEEEE5valuesr14is_convertibleIS9_SB_EE5valueEvE4typeERSB_RKSB_RKS9_ |
116 | 2316 | solidity::yul::EVMDialect::EVMDialect(solidity::langutil::EVMVersion, bool) | call site | |
89 | 546 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
call site | __cxa_guard_acquire |
78 | 2442 | solidity::evmasm::swapInstruction(unsigned int) | call site | |
71 | 71 |
solidity::yul::YulStringRepository::ResetCallback::ResetCallback(std::__1::function
|
call site | __cxa_guard_acquire |
47 | 2034 |
bool solidity::yul::Shuffler<(anonymous namespace)::createIdealLayout
|
call site | _ZN6ranges11view_facadeINS_9iota_viewImmEELNS_11cardinalityEn1EE5beginIS2_Lb1ELi0EEENS_14basic_iteratorINSt3__15decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
47 | 2635 | solidity::yul::CallGraph::recursiveFunctions() const | call site | __dynamic_cast |
47 | 2687 |
std::__1::basic_string
|
call site | _ZN6ranges11view_facadeINS_18iter_zip_with_viewINS_6detail16indirect_zip_fn_EJNS_8ref_viewINSt3__16vectorIN8solidity3yul10IdentifierENS5_9allocatorIS9_EEEEEENS4_INS6_INS5_8optionalINS8_9YulStringEEENSA_ISG_EEEEEEEEELNS_11cardinalityEn1EE5beginISK_Lb1ELi0EEENS_14basic_iteratorINS5_5decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
42 | 814 |
solidity::yul::Parser::isValidNumberLiteral(std::__1::basic_string
|
call site | _ZN5boost14multiprecision8backends13eval_multiplyILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvLj256ELj256ELS3_0ELS4_0EvEENS_11enable_if_cIXaantsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valuentsr18is_trivial_cpp_intINS6_IXT4_EXT5_EXT6_EXT7_ET8_EEEE5valueEvE4typeERS8_RKSA_RKy |
36 | 1827 |
solidity::yul::StackLayoutGenerator::propagateStackThroughBlock(std::__1::vector
|
call site | |
36 | 2736 | solidity::yul::NameDispenser::newName(solidity::yul::YulString) | call site | _ZN5boost14multiprecision6numberINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEELNS0_26expression_template_optionE0EEpLImEENS_11enable_if_cIXsr14is_convertibleIT_S8_EE5valueERS8_E4typeERKSB_ |
23 | 29 | solidity::langutil::DebugInfoSelection::All(bool) | call site | _ZN6ranges12view_adaptorINS_19iter_transform_viewINS_8ref_viewIKNSt3__13mapINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEMN8solidity8langutil18DebugInfoSelectionEbNS3_4lessISA_EENS8_INS3_4pairIKSA_SE_EEEEEEEENS_10indirectedINS_6detail10get_secondEEEEESN_LNS_11cardinalityEn1EE12begin_cursorISS_Lb1ELi0EEEDTclsr12view_adaptorE13begin_cursor_clsr3stdE7declvalIRT_EEEEv |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
3420 | 3797 |
solidity::yul::StackLimitEvader::run(solidity::yul::OptimiserStepContext&,solidity::yul::Object&,std::__1::map
|
/src/solidity/libyul/optimiser/StackLimitEvader.cpp:178 |
1650 | 3538 | solidity::yul::StackLimitEvader::run(solidity::yul::OptimiserStepContext&,solidity::yul::Object&) | /src/solidity/libyul/optimiser/StackLimitEvader.cpp:131 |
1596 | 10829 |
solidity::yul::RepresentationFinder::findRepresentation(boost::multiprecision::number
|
/src/solidity/libyul/backends/evm/ConstantOptimiser.cpp:155 |
1240 | 2160 |
boolsolidity::yul::Shuffler<(anonymousnamespace)::createIdealLayout
|
/src/solidity/libyul/backends/evm/StackHelpers.h:315 |
959 | 1310 |
solidity::yul::OptimiserSuite::runSequence(std::__1::vector
|
/src/solidity/libyul/optimiser/Suite.cpp:429 |
955 | 1263 |
solidity::yul::OptimiserSuite::runSequence(std::__1::vector
|
/src/solidity/libyul/optimiser/Suite.cpp:433 |
771 | 2226 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
/src/solidity/libyul/AsmParser.cpp:125 |
485 | 1953 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:337 |
480 | 480 |
solidity::evmasm::GasMeter::dataGas(std::__1::vector
|
/src/solidity/libevmasm/GasMeter.cpp:278 |
315 | 317 | solidity::yul::AsmAnalyzer::validateInstructions(solidity::evmasm::Instruction,solidity::langutil::SourceLocationconst&) | /src/solidity/libyul/AsmAnalysis.cpp:720 |
291 | 529 |
boolsolidity::yul::Shuffler
|
/src/solidity/libyul/backends/evm/StackHelpers.h:361 |
273 | 273 |
voidsolidity::yul::createStackLayout
|
/src/solidity/libyul/backends/evm/StackHelpers.h:461 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/solidity/test/tools/ossfuzz/strictasm_diff_ossfuzz.cpp | 1 |
/src/solidity/libyul/YulString.h | 13 |
/src/solidity/liblangutil/EVMVersion.h | 16 |
/src/solidity/libsolidity/interface/OptimiserSettings.h | 5 |
/src/solidity/liblangutil/DebugInfoSelection.cpp | 1 |
/src/solidity/liblangutil/DebugInfoSelection.h | 2 |
/src/solidity/build/deps/include/range/v3/view/view.hpp | 18 |
/src/solidity/build/deps/include/range/v3/view/map.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/all.hpp | 7 |
/src/solidity/build/deps/include/range/v3/range_fwd.hpp | 5 |
/src/solidity/build/deps/include/range/v3/view/ref.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/transform.hpp | 16 |
/src/solidity/build/deps/include/range/v3/functional/indirect.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/adaptor.hpp | 8 |
/src/solidity/build/deps/include/range/v3/view/facade.hpp | 7 |
/src/solidity/build/deps/include/range/v3/detail/range_access.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/interface.hpp | 1 |
/src/solidity/build/deps/include/range/v3/range/access.hpp | 9 |
/src/solidity/build/deps/include/range/v3/utility/compressed_pair.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/box.hpp | 6 |
/src/solidity/build/deps/include/range/v3/iterator/basic_iterator.hpp | 35 |
/src/solidity/libyul/YulStack.h | 2 |
/src/solidity/liblangutil/CharStreamProvider.h | 2 |
/src/solidity/liblangutil/ErrorReporter.h | 6 |
/src/solidity/libyul/YulStack.cpp | 7 |
/src/solidity/libyul/backends/evm/EVMDialect.cpp | 8 |
/src/solidity/libyul/backends/wasm/WasmDialect.cpp | 1 |
/src/solidity/libyul/Exceptions.h | 4 |
/usr/local/include/c++/v1/exception | 1 |
/usr/include/boost/exception/exception.hpp | 14 |
/src/solidity/libsolutil/Exceptions.h | 4 |
/src/solidity/libsolutil/Assertions.h | 1 |
/usr/include/boost/exception/detail/error_info_impl.hpp | 3 |
/usr/include/boost/exception/info.hpp | 11 |
/usr/include/boost/smart_ptr/shared_ptr.hpp | 6 |
/usr/include/boost/smart_ptr/detail/shared_count.hpp | 4 |
/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp | 1 |
/usr/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp | 6 |
/usr/include/boost/core/checked_delete.hpp | 1 |
/usr/include/boost/exception/detail/type_info.hpp | 1 |
/usr/include/boost/throw_exception.hpp | 14 |
/src/solidity/libyul/ObjectParser.h | 1 |
/src/solidity/liblangutil/ParserBase.h | 4 |
/src/solidity/libyul/ObjectParser.cpp | 8 |
/src/solidity/liblangutil/ParserBase.cpp | 11 |
/src/solidity/liblangutil/Scanner.h | 21 |
/src/solidity/liblangutil/Exceptions.h | 5 |
/src/solidity/liblangutil/CharStream.h | 8 |
/src/solidity/liblangutil/Scanner.cpp | 29 |
/src/solidity/liblangutil/Common.h | 6 |
/src/solidity/liblangutil/CharStream.cpp | 3 |
/src/solidity/liblangutil/SourceLocation.h | 5 |
/usr/local/include/c++/v1/optional | 14 |
/src/solidity/liblangutil/Token.cpp | 9 |
/src/solidity/libsolutil/StringUtils.h | 3 |
/src/solidity/liblangutil/Token.h | 6 |
/src/solidity/liblangutil/ErrorReporter.cpp | 7 |
/usr/include/boost/assert/source_location.hpp | 4 |
/src/solidity/libyul/Object.h | 1 |
/src/solidity/libyul/AsmParser.h | 13 |
/src/solidity/libyul/AsmParser.cpp | 20 |
/src/solidity/libsolutil/Common.h | 4 |
/usr/include/boost/algorithm/string/predicate.hpp | 6 |
/usr/include/boost/range/as_literal.hpp | 5 |
/usr/include/boost/range/begin.hpp | 3 |
/usr/include/boost/range/iterator_range_core.hpp | 2 |
/usr/include/boost/range/end.hpp | 3 |
/usr/include/boost/algorithm/string/detail/predicate.hpp | 1 |
/usr/include/boost/algorithm/string/compare.hpp | 1 |
/src/solidity/libyul/AST.h | 35 |
/usr/include/boost/multiprecision/cpp_int.hpp | 13 |
/usr/include/boost/multiprecision/cpp_int/cpp_int_config.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/multiply.hpp | 1 |
/usr/include/boost/multiprecision/cpp_int/add.hpp | 5 |
/usr/include/boost/multiprecision/detail/constexpr.hpp | 4 |
/src/solidity/libsolutil/CommonData.h | 30 |
/src/solidity/libyul/Object.cpp | 1 |
/src/solidity/libyul/AsmAnalysis.h | 2 |
/src/solidity/libyul/SideEffects.h | 1 |
/src/solidity/libyul/backends/evm/EVMDialect.h | 7 |
/src/solidity/libyul/AsmAnalysis.cpp | 4 |
/src/solidity/libyul/ScopeFiller.cpp | 2 |
/src/solidity/test/tools/ossfuzz/yulFuzzerCommon.cpp | 2 |
/src/solidity/test/tools/yulInterpreter/Interpreter.h | 7 |
/src/solidity/libsolutil/FixedHash.h | 8 |
/src/solidity/libsolutil/CommonData.cpp | 4 |
/src/solidity/test/tools/yulInterpreter/Interpreter.cpp | 7 |
/src/solidity/libyul/optimiser/ASTWalker.h | 8 |
/usr/include/boost/multiprecision/detail/precision.hpp | 1 |
/usr/include/boost/multiprecision/detail/number_base.hpp | 3 |
/usr/include/boost/multiprecision/cpp_int/divide.hpp | 2 |
/usr/local/include/c++/v1/stdexcept | 2 |
/usr/include/boost/multiprecision/number.hpp | 7 |
/usr/include/boost/multiprecision/cpp_int/misc.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/bitwise.hpp | 9 |
/usr/include/boost/multiprecision/detail/default_ops.hpp | 4 |
/usr/include/boost/multiprecision/detail/number_compare.hpp | 7 |
/usr/include/boost/lexical_cast.hpp | 1 |
/usr/include/boost/lexical_cast/try_lexical_convert.hpp | 1 |
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp | 1 |
/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp | 6 |
/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp | 1 |
/usr/include/boost/lexical_cast/bad_lexical_cast.hpp | 2 |
/src/solidity/libsolutil/Numeric.h | 4 |
/src/solidity/libyul/optimiser/Suite.cpp | 10 |
/usr/include/boost/operators.hpp | 1 |
/src/solidity/libyul/optimiser/Disambiguator.h | 1 |
/src/solidity/libyul/optimiser/ASTCopier.h | 5 |
/src/solidity/libyul/optimiser/NameDispenser.cpp | 5 |
/src/solidity/libyul/optimiser/ASTCopier.cpp | 2 |
/src/solidity/libyul/optimiser/NameCollector.h | 4 |
/src/solidity/libyul/optimiser/Suite.h | 1 |
/src/solidity/libyul/optimiser/Metrics.cpp | 1 |
/src/solidity/libyul/optimiser/Metrics.h | 1 |
/src/solidity/libyul/optimiser/ASTWalker.cpp | 4 |
/src/solidity/libyul/optimiser/NameSimplifier.h | 2 |
/src/solidity/libyul/optimiser/NameSimplifier.cpp | 2 |
/src/solidity/libyul/optimiser/OptimizerUtilities.cpp | 2 |
/src/solidity/libyul/optimiser/NameDispenser.h | 2 |
/src/solidity/libyul/optimiser/StackCompressor.cpp | 7 |
/src/solidity/libyul/optimiser/Semantics.cpp | 2 |
/src/solidity/libyul/optimiser/Semantics.h | 3 |
/src/solidity/libyul/AsmAnalysisInfo.h | 3 |
/src/solidity/libyul/backends/evm/ControlFlowGraphBuilder.cpp | 11 |
/src/solidity/libyul/backends/evm/ControlFlowGraph.h | 4 |
/src/solidity/build/deps/include/range/v3/functional/bind_back.hpp | 4 |
/src/solidity/build/deps/include/range/v3/functional/invoke.hpp | 7 |
/src/solidity/build/deps/include/range/v3/range/conversion.hpp | 8 |
/src/solidity/build/deps/include/range/v3/range/primitives.hpp | 3 |
/src/solidity/build/deps/include/range/v3/utility/semiregular_box.hpp | 2 |
/src/solidity/libsolutil/Algorithms.h | 12 |
/src/solidity/libsolutil/cxx20.h | 1 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.cpp | 29 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.h | 2 |
/src/solidity/build/deps/include/range/v3/algorithm/find.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/enumerate.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/zip.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/zip_with.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/reverse.hpp | 5 |
/src/solidity/build/deps/include/range/v3/utility/optional.hpp | 5 |
/src/solidity/build/deps/include/range/v3/iterator/operations.hpp | 3 |
/src/solidity/build/deps/include/range/v3/utility/tuple_algorithm.hpp | 2 |
/src/solidity/build/deps/include/range/v3/detail/adl_get.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/reverse_iterator.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/iota.hpp | 6 |
/src/solidity/libyul/backends/evm/StackHelpers.h | 4 |
/src/solidity/build/deps/include/range/v3/algorithm/all_of.hpp | 2 |
/src/solidity/build/deps/include/range/v3/functional/identity.hpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/any_of.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/drop.hpp | 1 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.cpp | 4 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.h | 3 |
/src/solidity/libyul/optimiser/KnowledgeBase.h | 2 |
/src/solidity/libyul/optimiser/Rematerialiser.cpp | 2 |
/src/solidity/libyul/optimiser/NameCollector.cpp | 3 |
/src/solidity/libyul/optimiser/Rematerialiser.h | 1 |
/src/solidity/libyul/optimiser/UnusedPruner.cpp | 5 |
/src/solidity/build/deps/include/range/v3/action/remove_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/remove_if.hpp | 2 |
/src/solidity/build/deps/include/range/v3/functional/reference_wrapper.hpp | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/find_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/access.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/move.hpp | 1 |
/src/solidity/build/deps/include/range/v3/action/erase.hpp | 2 |
/src/solidity/libyul/optimiser/UnusedPruner.h | 2 |
/src/solidity/libyul/CompilabilityChecker.cpp | 1 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.cpp | 2 |
/src/solidity/libyul/Dialect.h | 3 |
/src/solidity/libevmasm/Instruction.h | 6 |
/src/solidity/liblangutil/EVMVersion.cpp | 1 |
/src/solidity/libevmasm/Instruction.cpp | 1 |
/src/solidity/libyul/ControlFlowSideEffects.h | 1 |
/src/solidity/libevmasm/SemanticInformation.cpp | 2 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.h | 1 |
/src/solidity/libyul/backends/evm/AbstractAssembly.h | 2 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.h | 5 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.cpp | 13 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.h | 3 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.cpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/none_of.hpp | 3 |
/src/solidity/libevmasm/Exceptions.h | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/max.hpp | 1 |
/src/solidity/libyul/CompilabilityChecker.h | 1 |
/src/solidity/libyul/backends/evm/ConstantOptimiser.h | 1 |
/src/solidity/libyul/optimiser/StackLimitEvader.cpp | 6 |
/src/solidity/build/deps/include/range/v3/view/take.hpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.cpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.h | 1 |
/src/solidity/libyul/Utilities.cpp | 4 |
/src/solidity/libyul/optimiser/CallGraphGenerator.cpp | 5 |
/src/solidity/libyul/optimiser/CallGraphGenerator.h | 4 |
/usr/local/include/c++/v1/initializer_list | 1 |
/src/solidity/build/deps/include/range/v3/view/concat.hpp | 1 |
/src/solidity/libyul/optimiser/StackToMemoryMover.cpp | 9 |
/src/solidity/libyul/optimiser/StackToMemoryMover.h | 3 |
/src/solidity/libyul/optimiser/VarNameCleaner.h | 2 |
/src/solidity/libyul/optimiser/VarNameCleaner.cpp | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 1231 | 44.4% |
gold | 8 | 0.28% |
yellow | 6 | 0.21% |
greenyellow | 1 | 0.03% |
lawngreen | 1521 | 54.9% |
All colors | 2767 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
130 | 2359 |
solidity::langutil::Error::containsErrors(std::__1::vector
|
call site | |
125 | 2533 |
solidity::yul::test::yul_fuzzer::yulFuzzerUtil::interpret(std::__1::basic_ostream
|
call site | _ZN5boost14multiprecision11default_ops19eval_divide_defaultINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEExEENS_11enable_if_cIXaasr14is_convertibleIT0_NS0_6numberIT_LNS0_26expression_template_optionE1EEEEE5valuesr14is_convertibleIS9_SB_EE5valueEvE4typeERSB_RKSB_RKS9_ |
92 | 1449 | solidity::langutil::Scanner::scanToken() | call site | |
91 | 566 | solidity::yul::test::yul_fuzzer::ProtoConverter::createVars(unsigned int, unsigned int) | call site | _ZN5boost9function2INS_14iterator_rangeINSt3__111__wrap_iterIPcEEEES5_S5_EC2INS_9algorithm6detail13token_finderFINSA_10is_any_ofFIcEEEEEET_NS_10enable_if_IXntsr11is_integralISF_EE5valueEiE4typeE |
83 | 1697 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
call site | __cxa_guard_acquire |
75 | 1815 | solidity::langutil::ParserBase::expectToken(solidity::langutil::Token, bool) | call site | |
60 | 895 | solidity::yul::test::yul_fuzzer::ProtoConverter::visit(solidity::yul::test::yul_fuzzer::CaseStmt const&) | call site | _ZN5boost14multiprecision8backends13eval_multiplyILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvLj256ELj256ELS3_0ELS4_0EvEENS_11enable_if_cIXaantsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valuentsr18is_trivial_cpp_intINS6_IXT4_EXT5_EXT6_EXT7_ET8_EEEE5valueEvE4typeERS8_RKSA_RKy |
36 | 84 | solidity::yul::test::yul_fuzzer::ProtoConverter::openBlockScope() | call site | __cxa_begin_catch |
25 | 1565 | solidity::langutil::Scanner::scanNumber(char) | call site | |
22 | 1262 | solidity::langutil::DebugInfoSelection::All(bool) | call site | _ZN6ranges12view_adaptorINS_19iter_transform_viewINS_8ref_viewIKNSt3__13mapINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEMN8solidity8langutil18DebugInfoSelectionEbNS3_4lessISA_EENS8_INS3_4pairIKSA_SE_EEEEEEEENS_10indirectedINS_6detail10get_secondEEEEESN_LNS_11cardinalityEn1EE12begin_cursorISS_Lb1ELi0EEEDTclsr12view_adaptorE13begin_cursor_clsr3stdE7declvalIRT_EEEEv |
21 | 1402 | solidity::langutil::Scanner::scanHexByte(char&) | call site | |
19 | 246 |
solidity::yul::test::yul_fuzzer::ProtoConverter::createHex(std::__1::basic_string
|
call site | _ZNK6ranges12remove_if_fnclIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEZN8solidity3yul4test10yul_fuzzer14ProtoConverter9createHexERKS8_E3$_0NS_8identityELb1ELi0ELi0ELi0EEEN4meta6detail5_condIXsr6detailE15_borrowed_rangeIT_EEE6invokeIDTclL_ZNS_1_5beginEEclscPDoFRSM_vELDnEEEENS_8danglingEEEOSM_T0_T1_ |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
3420 | 3797 |
solidity::yul::StackLimitEvader::run(solidity::yul::OptimiserStepContext&,solidity::yul::Object&,std::__1::map
|
/src/solidity/libyul/optimiser/StackLimitEvader.cpp:178 |
1601 | 1605 | solidity::langutil::ParserBase::expectToken(solidity::langutil::Token,bool) | /src/solidity/liblangutil/ParserBase.cpp:77 |
1468 | 3117 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:321 |
1288 | 7795 | TestOneProtoInput(solidity::yul::test::yul_fuzzer::Programconst&) | /src/solidity/test/tools/ossfuzz/yulProto_diff_ossfuzz.cpp:53 |
1145 | 1953 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:337 |
1039 | 1823 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:376 |
1039 | 1823 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:382 |
1039 | 1823 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:393 |
959 | 1310 |
solidity::yul::OptimiserSuite::runSequence(std::__1::vector
|
/src/solidity/libyul/optimiser/Suite.cpp:429 |
955 | 1263 |
solidity::yul::OptimiserSuite::runSequence(std::__1::vector
|
/src/solidity/libyul/optimiser/Suite.cpp:433 |
885 | 2528 |
solidity::yul::LoadResolver::tryEvaluateKeccak(std::__1::variant
|
/src/solidity/libyul/optimiser/LoadResolver.cpp:111 |
847 | 3127 | solidity::yul::CodeTransform::operator()(solidity::yul::FunctionDefinitionconst&) | /src/solidity/libyul/backends/evm/EVMCodeTransform.cpp:397 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/solidity/test/tools/ossfuzz/yulProto_diff_ossfuzz.cpp | 2 |
/src/solidity/test/tools/ossfuzz/yulProto.pb.h | 292 |
/src/solidity/test/tools/ossfuzz/yulProto.pb.cc | 16 |
/usr/include/google/protobuf/message.h | 1 |
/usr/include/google/protobuf/message_lite.h | 4 |
/usr/include/google/protobuf/metadata_lite.h | 7 |
/usr/include/google/protobuf/generated_message_util.h | 1 |
/src/solidity/test/tools/ossfuzz/protoToYul.h | 8 |
/src/solidity/liblangutil/EVMVersion.h | 18 |
/src/solidity/test/tools/ossfuzz/protoToYul.cpp | 64 |
/usr/include/google/protobuf/wire_format_lite.h | 6 |
/usr/include/google/protobuf/io/coded_stream.h | 4 |
/usr/include/google/protobuf/stubs/port.h | 2 |
/usr/include/google/protobuf/repeated_ptr_field.h | 11 |
/src/solidity/libyul/Exceptions.h | 3 |
/usr/local/include/c++/v1/exception | 1 |
/usr/include/boost/exception/exception.hpp | 16 |
/src/solidity/libsolutil/Exceptions.h | 4 |
/src/solidity/libsolutil/Assertions.h | 1 |
/usr/include/boost/exception/detail/error_info_impl.hpp | 4 |
/usr/include/boost/exception/info.hpp | 9 |
/usr/include/boost/smart_ptr/shared_ptr.hpp | 7 |
/usr/include/boost/smart_ptr/detail/shared_count.hpp | 4 |
/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp | 1 |
/usr/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp | 6 |
/usr/include/boost/core/checked_delete.hpp | 1 |
/usr/include/boost/exception/detail/type_info.hpp | 1 |
/usr/include/boost/throw_exception.hpp | 14 |
/usr/include/google/protobuf/arenastring.h | 2 |
/usr/include/google/protobuf/explicitly_constructed.h | 1 |
/src/solidity/build/deps/include/range/v3/action/remove_if.hpp | 2 |
/src/solidity/build/deps/include/range/v3/algorithm/remove_if.hpp | 2 |
/src/solidity/build/deps/include/range/v3/range/access.hpp | 3 |
/src/solidity/build/deps/include/range/v3/functional/reference_wrapper.hpp | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/find_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/functional/invoke.hpp | 2 |
/src/solidity/build/deps/include/range/v3/functional/identity.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/operations.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/access.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/move.hpp | 1 |
/src/solidity/build/deps/include/range/v3/action/erase.hpp | 2 |
/usr/include/boost/operators.hpp | 1 |
/usr/local/include/c++/v1/optional | 13 |
/src/solidity/libsolutil/Whiskers.cpp | 6 |
/src/solidity/libsolutil/Whiskers.h | 3 |
/src/solidity/libsolutil/StringUtils.cpp | 1 |
/usr/include/boost/algorithm/string/classification.hpp | 2 |
/usr/include/boost/range/as_literal.hpp | 5 |
/usr/include/boost/algorithm/string/detail/classification.hpp | 8 |
/usr/include/boost/range/distance.hpp | 1 |
/usr/include/boost/range/begin.hpp | 8 |
/usr/include/boost/range/iterator_range_core.hpp | 12 |
/usr/include/boost/range/end.hpp | 8 |
/usr/include/boost/iterator/distance.hpp | 2 |
/usr/include/boost/algorithm/string/split.hpp | 1 |
/usr/include/boost/algorithm/string/finder.hpp | 1 |
/usr/include/boost/algorithm/string/detail/finder.hpp | 3 |
/usr/include/boost/algorithm/string/iter_find.hpp | 1 |
/usr/include/boost/algorithm/string/find_iterator.hpp | 4 |
/usr/include/boost/algorithm/string/detail/find_iterator.hpp | 5 |
/usr/include/boost/function/function_template.hpp | 12 |
/usr/include/boost/function/function_base.hpp | 5 |
/usr/include/boost/core/addressof.hpp | 1 |
/usr/include/boost/iterator/transform_iterator.hpp | 3 |
/usr/include/boost/iterator/iterator_adaptor.hpp | 3 |
/usr/include/boost/multiprecision/cpp_int.hpp | 13 |
/src/solidity/build/deps/include/range/v3/algorithm/all_of.hpp | 1 |
/src/solidity/libsolutil/FixedHash.h | 8 |
/src/solidity/libsolutil/CommonData.cpp | 3 |
/src/solidity/libsolutil/CommonData.h | 2 |
/usr/include/boost/multiprecision/detail/number_compare.hpp | 4 |
/usr/include/boost/multiprecision/detail/constexpr.hpp | 4 |
/usr/include/boost/assert/source_location.hpp | 4 |
/usr/include/boost/multiprecision/cpp_int/cpp_int_config.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/multiply.hpp | 1 |
/usr/include/boost/multiprecision/cpp_int/add.hpp | 5 |
/usr/local/include/c++/v1/initializer_list | 1 |
/src/solidity/libyul/YulString.h | 13 |
/src/solidity/libsolidity/interface/OptimiserSettings.h | 5 |
/src/solidity/liblangutil/DebugInfoSelection.cpp | 1 |
/src/solidity/liblangutil/DebugInfoSelection.h | 2 |
/src/solidity/build/deps/include/range/v3/view/view.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/map.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/all.hpp | 3 |
/src/solidity/build/deps/include/range/v3/range_fwd.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/ref.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/transform.hpp | 4 |
/src/solidity/build/deps/include/range/v3/functional/indirect.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/adaptor.hpp | 7 |
/src/solidity/build/deps/include/range/v3/view/facade.hpp | 1 |
/src/solidity/build/deps/include/range/v3/detail/range_access.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/interface.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/compressed_pair.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/box.hpp | 4 |
/src/solidity/build/deps/include/range/v3/iterator/basic_iterator.hpp | 7 |
/src/solidity/libyul/YulStack.h | 3 |
/src/solidity/liblangutil/CharStreamProvider.h | 2 |
/src/solidity/liblangutil/ErrorReporter.h | 6 |
/src/solidity/libyul/YulStack.cpp | 5 |
/src/solidity/libyul/backends/evm/EVMDialect.cpp | 2 |
/src/solidity/libyul/backends/wasm/WasmDialect.cpp | 1 |
/src/solidity/libyul/ObjectParser.h | 1 |
/src/solidity/liblangutil/ParserBase.h | 4 |
/src/solidity/libyul/ObjectParser.cpp | 8 |
/src/solidity/liblangutil/ParserBase.cpp | 11 |
/src/solidity/liblangutil/Scanner.h | 21 |
/src/solidity/liblangutil/Exceptions.h | 7 |
/src/solidity/liblangutil/CharStream.h | 9 |
/src/solidity/liblangutil/Scanner.cpp | 29 |
/src/solidity/liblangutil/Common.h | 6 |
/src/solidity/liblangutil/CharStream.cpp | 5 |
/src/solidity/liblangutil/SourceLocation.h | 7 |
/src/solidity/liblangutil/Token.cpp | 8 |
/src/solidity/libsolutil/StringUtils.h | 2 |
/src/solidity/liblangutil/Token.h | 6 |
/src/solidity/liblangutil/ErrorReporter.cpp | 7 |
/src/solidity/libyul/Object.h | 1 |
/src/solidity/libyul/AsmParser.h | 13 |
/src/solidity/libyul/AsmParser.cpp | 20 |
/src/solidity/libsolutil/Common.h | 2 |
/usr/include/boost/algorithm/string/predicate.hpp | 5 |
/usr/include/boost/algorithm/string/detail/predicate.hpp | 1 |
/usr/include/boost/algorithm/string/compare.hpp | 1 |
/src/solidity/libyul/AST.h | 28 |
/src/solidity/libyul/Object.cpp | 1 |
/src/solidity/libyul/AsmAnalysis.h | 2 |
/src/solidity/libyul/SideEffects.h | 1 |
/src/solidity/libyul/backends/evm/EVMDialect.h | 1 |
/src/solidity/libyul/AsmAnalysis.cpp | 3 |
/src/solidity/libyul/ScopeFiller.cpp | 2 |
/src/solidity/liblangutil/SourceReferenceFormatter.h | 1 |
/src/solidity/liblangutil/SourceReferenceFormatter.cpp | 10 |
/src/solidity/liblangutil/SourceReferenceExtractor.cpp | 2 |
/usr/include/boost/exception/get_error_info.hpp | 4 |
/usr/include/boost/smart_ptr/detail/operator_bool.hpp | 1 |
/src/solidity/liblangutil/SourceReferenceExtractor.h | 5 |
/src/solidity/liblangutil/Exceptions.cpp | 1 |
/usr/include/boost/algorithm/string/case_conv.hpp | 1 |
/usr/include/boost/algorithm/string/detail/case_conv.hpp | 2 |
/usr/include/boost/algorithm/string/trim.hpp | 4 |
/usr/include/boost/algorithm/string/detail/trim.hpp | 3 |
/src/solidity/libsolutil/AnsiColorized.h | 11 |
/src/solidity/test/tools/ossfuzz/yulFuzzerCommon.cpp | 2 |
/src/solidity/test/tools/yulInterpreter/Interpreter.h | 7 |
/src/solidity/test/tools/yulInterpreter/Interpreter.cpp | 7 |
/src/solidity/libyul/optimiser/ASTWalker.h | 1 |
/usr/include/boost/multiprecision/detail/precision.hpp | 1 |
/usr/include/boost/multiprecision/detail/number_base.hpp | 3 |
/usr/include/boost/multiprecision/cpp_int/divide.hpp | 2 |
/usr/local/include/c++/v1/stdexcept | 2 |
/usr/include/boost/multiprecision/number.hpp | 6 |
/usr/include/boost/multiprecision/cpp_int/misc.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/bitwise.hpp | 9 |
/usr/include/boost/multiprecision/detail/default_ops.hpp | 4 |
/usr/include/boost/lexical_cast.hpp | 1 |
/usr/include/boost/lexical_cast/try_lexical_convert.hpp | 1 |
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp | 1 |
/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp | 6 |
/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp | 1 |
/usr/include/boost/lexical_cast/bad_lexical_cast.hpp | 2 |
/src/solidity/libsolutil/Numeric.h | 1 |
/src/solidity/test/libyul/YulOptimizerTestCommon.cpp | 5 |
/src/solidity/test/libyul/YulOptimizerTestCommon.h | 1 |
/usr/include/google/protobuf/arena.h | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 1663 | 36.1% |
gold | 530 | 11.5% |
yellow | 58 | 1.25% |
greenyellow | 51 | 1.10% |
lawngreen | 2303 | 50.0% |
All colors | 4605 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
322 | 4272 | solidity::yul::YulStack::assemble(solidity::yul::YulStack::Machine) const | call site | _ZN6ranges11view_facadeINS_19iter_transform_viewINS_8ref_viewIKNSt3__13mapINS3_4pairINS3_6vectorIhNS3_9allocatorIhEEEES9_EENS6_INS3_12basic_stringIcNS3_11char_traitsIcEENS7_IcEEEENS7_ISF_EEEENS3_4lessISA_EENS7_INS5_IKSA_SH_EEEEEEEENS_10indirectedINS_6detail10get_secondEEEEELNS_11cardinalityEn1EE5beginISU_Lb1ELi0EEENS_14basic_iteratorINS3_5decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
162 | 1932 | solidity::yul::EVMObjectCompiler::run(solidity::yul::Object&, bool) | call site | |
122 | 2587 | solidity::evmasm::CommonSubexpressionEliminator::CommonSubexpressionEliminator(solidity::evmasm::KnownState const&) | call site | __clang_call_terminate |
89 | 546 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
call site | __cxa_guard_acquire |
73 | 3793 |
solidity::evmasm::ComputeMethod::checkRepresentation(boost::multiprecision::number
|
call site | _ZN5boost14multiprecision3powINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEEEENS_11enable_if_cIXeqsr15number_categoryIT_EE5valueLNS0_20number_category_typeE0EENS0_6numberIS8_LNS0_26expression_template_optionE0EEEE4typeERKSC_RKj |
71 | 71 |
solidity::yul::YulStringRepository::ResetCallback::ResetCallback(std::__1::function
|
call site | __cxa_guard_acquire |
58 | 2527 |
solidity::evmasm::Assembly::optimiseInternal(solidity::evmasm::Assembly::OptimiserSettings const&, std::__1::set
|
call site | _ZN5boost6bimaps17container_adaptor11set_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_IKNSt3__13setINS_14multiprecision6numberINSI_8backends15cpp_int_backendILj256ELj256ELNSI_16cpp_integer_typeE0ELNSI_18cpp_int_check_typeE0EvEELNSI_26expression_template_optionE0EEENSG_4lessISQ_EENSG_9allocatorISQ_EEEENSD_5rightEEELb1EEEjXadL_ZNSZ_4leftEEEEENSR_IjEENS4_9nth_layerILi2ENS7_15mutant_relationISF_SY_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjSV_S15_S15_S15_E12core_indicesENST_IS16_EEEENS_3mpl6v_itemISE_NS1D_7vector0IS15_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENS17_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS1J_NS4_15index_node_baseIS16_S1B_EEEEEEEENS17_23const_set_view_iteratorIS1R_EENS1L_INS_9iterators16reverse_iteratorIS1R_EEEENS1T_IS1X_EENS1_7support23iterator_facade_to_baseIS1S_S1U_EES15_S15_NS8_28get_mutable_relation_functorIS16_EENS7_7support22get_above_view_functorIS16_EENS17_20set_view_key_to_baseIjS16_S10_EENS1D_6vectorIS15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_EEEC2ERS1K_ |
42 | 814 |
solidity::yul::Parser::isValidNumberLiteral(std::__1::basic_string
|
call site | _ZN5boost14multiprecision8backends13eval_multiplyILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvLj256ELj256ELS3_0ELS4_0EvEENS_11enable_if_cIXaantsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valuentsr18is_trivial_cpp_intINS6_IXT4_EXT5_EXT6_EXT7_ET8_EEEE5valueEvE4typeERS8_RKSA_RKy |
24 | 3299 | solidity::langutil::EVMVersion::hasBitwiseShifting() const | call site | |
23 | 29 | solidity::langutil::DebugInfoSelection::All(bool) | call site | _ZN6ranges12view_adaptorINS_19iter_transform_viewINS_8ref_viewIKNSt3__13mapINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEMN8solidity8langutil18DebugInfoSelectionEbNS3_4lessISA_EENS8_INS3_4pairIKSA_SE_EEEEEEEENS_10indirectedINS_6detail10get_secondEEEEESN_LNS_11cardinalityEn1EE12begin_cursorISS_Lb1ELi0EEEDTclsr12view_adaptorE13begin_cursor_clsr3stdE7declvalIRT_EEEEv |
22 | 510 | solidity::langutil::ErrorReporter::checkForExcessiveErrors(solidity::langutil::Error::Type) | call site | __cxa_allocate_exception |
22 | 2159 | solidity::evmasm::AssemblyItem::setPushTagSubIdAndTag(unsigned long, unsigned long) | call site | _ZN5boost14multiprecision8backends15eval_left_shiftILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEENS_11enable_if_cIXntsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valueEvE4typeERS8_o |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
3041 | 16854 | solidity::evmasm::Assembly::assemble()const | /src/solidity/libevmasm/Assembly.cpp:501 |
2839 | 14788 | solidity::evmasm::Assembly::assemble()const | /src/solidity/libevmasm/Assembly.cpp:519 |
1151 | 5544 |
solidity::evmasm::ComputeMethod::findRepresentation(boost::multiprecision::number
|
/src/solidity/libevmasm/ConstantOptimiser.cpp:226 |
778 | 798 | (anonymousnamespace)::createBuiltins(solidity::langutil::EVMVersion,bool)::$_10::operator()(solidity::yul::FunctionCallconst&,solidity::yul::AbstractAssembly&,solidity::yul::BuiltinContext&)const | /src/solidity/libyul/backends/evm/EVMDialect.cpp:203 |
778 | 798 | (anonymousnamespace)::createBuiltins(solidity::langutil::EVMVersion,bool)::$_11::operator()(solidity::yul::FunctionCallconst&,solidity::yul::AbstractAssembly&,solidity::yul::BuiltinContext&)const | /src/solidity/libyul/backends/evm/EVMDialect.cpp:224 |
768 | 2226 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
/src/solidity/libyul/AsmParser.cpp:125 |
655 | 1484 |
solidity::evmasm::Inliner::shouldInlineFullFunctionBody(unsignedlong,ranges::span
|
/src/solidity/libevmasm/Inliner.cpp:187 |
614 | 648 |
solidity::evmasm::Assembly::namedTag(std::__1::basic_string
|
/src/solidity/libevmasm/Assembly.cpp:304 |
479 | 1953 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:337 |
477 | 480 |
solidity::evmasm::GasMeter::dataGas(std::__1::vector
|
/src/solidity/libevmasm/GasMeter.cpp:278 |
352 | 352 | solidity::evmasm::GasMeter::GasConsumption::operator+=(solidity::evmasm::GasMeter::GasConsumptionconst&) | /src/solidity/libevmasm/GasMeter.cpp:30 |
315 | 317 | solidity::yul::AsmAnalyzer::validateInstructions(solidity::evmasm::Instruction,solidity::langutil::SourceLocationconst&) | /src/solidity/libyul/AsmAnalysis.cpp:720 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/solidity/test/tools/ossfuzz/strictasm_assembly_ossfuzz.cpp | 1 |
/src/solidity/libyul/YulString.h | 13 |
/src/solidity/liblangutil/EVMVersion.h | 10 |
/src/solidity/libsolidity/interface/OptimiserSettings.h | 5 |
/src/solidity/liblangutil/DebugInfoSelection.cpp | 1 |
/src/solidity/liblangutil/DebugInfoSelection.h | 2 |
/src/solidity/build/deps/include/range/v3/view/view.hpp | 23 |
/src/solidity/build/deps/include/range/v3/view/map.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/all.hpp | 8 |
/src/solidity/build/deps/include/range/v3/range_fwd.hpp | 5 |
/src/solidity/build/deps/include/range/v3/view/ref.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/transform.hpp | 14 |
/src/solidity/build/deps/include/range/v3/functional/indirect.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/adaptor.hpp | 10 |
/src/solidity/build/deps/include/range/v3/view/facade.hpp | 12 |
/src/solidity/build/deps/include/range/v3/detail/range_access.hpp | 7 |
/src/solidity/build/deps/include/range/v3/view/interface.hpp | 7 |
/src/solidity/build/deps/include/range/v3/range/access.hpp | 8 |
/src/solidity/build/deps/include/range/v3/utility/compressed_pair.hpp | 2 |
/src/solidity/build/deps/include/range/v3/utility/box.hpp | 6 |
/src/solidity/build/deps/include/range/v3/iterator/basic_iterator.hpp | 36 |
/src/solidity/libyul/YulStack.h | 5 |
/src/solidity/liblangutil/CharStreamProvider.h | 2 |
/src/solidity/liblangutil/ErrorReporter.h | 6 |
/src/solidity/libyul/YulStack.cpp | 9 |
/src/solidity/libyul/backends/evm/EVMDialect.cpp | 2 |
/src/solidity/libyul/backends/wasm/WasmDialect.cpp | 1 |
/src/solidity/libyul/Exceptions.h | 8 |
/usr/local/include/c++/v1/exception | 2 |
/usr/include/boost/exception/exception.hpp | 17 |
/src/solidity/libsolutil/Exceptions.h | 4 |
/src/solidity/libsolutil/Assertions.h | 1 |
/usr/include/boost/exception/detail/error_info_impl.hpp | 7 |
/usr/include/boost/exception/info.hpp | 16 |
/usr/include/boost/smart_ptr/shared_ptr.hpp | 7 |
/usr/include/boost/smart_ptr/detail/shared_count.hpp | 4 |
/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp | 1 |
/usr/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp | 6 |
/usr/include/boost/core/checked_delete.hpp | 1 |
/usr/include/boost/exception/detail/type_info.hpp | 1 |
/usr/include/boost/throw_exception.hpp | 15 |
/src/solidity/libyul/ObjectParser.h | 1 |
/src/solidity/liblangutil/ParserBase.h | 4 |
/src/solidity/libyul/ObjectParser.cpp | 8 |
/src/solidity/liblangutil/ParserBase.cpp | 11 |
/src/solidity/liblangutil/Scanner.h | 21 |
/src/solidity/liblangutil/Exceptions.h | 8 |
/src/solidity/liblangutil/CharStream.h | 8 |
/src/solidity/liblangutil/Scanner.cpp | 29 |
/src/solidity/liblangutil/Common.h | 6 |
/src/solidity/liblangutil/CharStream.cpp | 4 |
/src/solidity/liblangutil/SourceLocation.h | 6 |
/usr/local/include/c++/v1/optional | 18 |
/src/solidity/liblangutil/Token.cpp | 9 |
/src/solidity/libsolutil/StringUtils.h | 7 |
/src/solidity/liblangutil/Token.h | 6 |
/src/solidity/liblangutil/ErrorReporter.cpp | 7 |
/usr/include/boost/assert/source_location.hpp | 4 |
/src/solidity/libyul/Object.h | 2 |
/src/solidity/libyul/AsmParser.h | 13 |
/src/solidity/libyul/AsmParser.cpp | 20 |
/src/solidity/libsolutil/Common.h | 6 |
/usr/include/boost/algorithm/string/predicate.hpp | 6 |
/usr/include/boost/range/as_literal.hpp | 5 |
/usr/include/boost/range/begin.hpp | 3 |
/usr/include/boost/range/iterator_range_core.hpp | 2 |
/usr/include/boost/range/end.hpp | 3 |
/usr/include/boost/algorithm/string/detail/predicate.hpp | 1 |
/usr/include/boost/algorithm/string/compare.hpp | 1 |
/src/solidity/libyul/AST.h | 38 |
/usr/include/boost/multiprecision/cpp_int.hpp | 33 |
/usr/include/boost/multiprecision/cpp_int/cpp_int_config.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/multiply.hpp | 8 |
/usr/include/boost/multiprecision/cpp_int/add.hpp | 9 |
/usr/include/boost/multiprecision/detail/constexpr.hpp | 4 |
/src/solidity/libsolutil/CommonData.h | 24 |
/src/solidity/libyul/Object.cpp | 1 |
/src/solidity/libyul/AsmAnalysis.h | 2 |
/src/solidity/libyul/SideEffects.h | 1 |
/src/solidity/libyul/backends/evm/EVMDialect.h | 3 |
/src/solidity/libyul/AsmAnalysis.cpp | 3 |
/src/solidity/libyul/ScopeFiller.cpp | 2 |
/src/solidity/libevmasm/Assembly.h | 7 |
/src/solidity/libevmasm/LinkerObject.h | 2 |
/src/solidity/libyul/backends/evm/EthAssemblyAdapter.cpp | 1 |
/src/solidity/libyul/backends/evm/AbstractAssembly.h | 2 |
/src/solidity/libyul/backends/evm/EVMObjectCompiler.cpp | 2 |
/src/solidity/libyul/backends/evm/EVMObjectCompiler.h | 1 |
/usr/include/boost/operators.hpp | 2 |
/src/solidity/libyul/backends/evm/OptimizedEVMCodeTransform.cpp | 12 |
/src/solidity/libyul/backends/evm/ControlFlowGraphBuilder.cpp | 11 |
/src/solidity/libyul/backends/evm/ControlFlowGraph.h | 4 |
/src/solidity/build/deps/include/range/v3/functional/bind_back.hpp | 5 |
/src/solidity/build/deps/include/range/v3/functional/invoke.hpp | 4 |
/src/solidity/build/deps/include/range/v3/range/conversion.hpp | 6 |
/src/solidity/build/deps/include/range/v3/range/primitives.hpp | 4 |
/src/solidity/build/deps/include/range/v3/utility/semiregular_box.hpp | 2 |
/src/solidity/libsolutil/Algorithms.h | 6 |
/src/solidity/libsolutil/cxx20.h | 1 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.cpp | 2 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.h | 2 |
/src/solidity/libyul/backends/evm/StackHelpers.h | 19 |
/src/solidity/build/deps/include/range/v3/view/enumerate.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/zip.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/zip_with.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/iota.hpp | 8 |
/src/solidity/build/deps/include/range/v3/algorithm/all_of.hpp | 2 |
/src/solidity/build/deps/include/range/v3/functional/identity.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/reverse.hpp | 5 |
/src/solidity/libevmasm/Instruction.h | 7 |
/src/solidity/libevmasm/Exceptions.h | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/any_of.hpp | 3 |
/src/solidity/build/deps/include/range/v3/iterator/reverse_iterator.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/take_last.hpp | 1 |
/src/solidity/libyul/backends/evm/OptimizedEVMCodeTransform.h | 1 |
/src/solidity/libyul/optimiser/FunctionCallFinder.cpp | 2 |
/src/solidity/libyul/optimiser/ASTWalker.h | 6 |
/src/solidity/libyul/optimiser/ASTWalker.cpp | 3 |
/src/solidity/libyul/optimiser/FunctionCallFinder.h | 1 |
/src/solidity/libsolutil/Exceptions.cpp | 1 |
/usr/include/boost/exception/get_error_info.hpp | 2 |
/usr/include/boost/smart_ptr/detail/operator_bool.hpp | 1 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.h | 5 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.cpp | 13 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.h | 3 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.cpp | 1 |
/src/solidity/libyul/optimiser/NameCollector.h | 3 |
/src/solidity/build/deps/include/range/v3/algorithm/none_of.hpp | 2 |
/src/solidity/build/deps/include/range/v3/algorithm/max.hpp | 1 |
/src/solidity/libevmasm/Assembly.cpp | 14 |
/src/solidity/libevmasm/JumpdestRemover.cpp | 2 |
/src/solidity/libevmasm/AssemblyItem.h | 21 |
/src/solidity/libevmasm/AssemblyItem.cpp | 8 |
/usr/include/boost/multiprecision/detail/number_base.hpp | 15 |
/usr/local/include/c++/v1/stdexcept | 1 |
/usr/include/boost/multiprecision/cpp_int/bitwise.hpp | 9 |
/usr/include/boost/multiprecision/detail/precision.hpp | 7 |
/usr/include/boost/multiprecision/number.hpp | 23 |
/usr/include/boost/multiprecision/cpp_int/misc.hpp | 2 |
/usr/include/boost/multiprecision/detail/default_ops.hpp | 9 |
/src/solidity/libevmasm/BlockDeduplicator.cpp | 2 |
/src/solidity/libevmasm/Inliner.h | 1 |
/src/solidity/libevmasm/Inliner.cpp | 10 |
/src/solidity/libevmasm/SemanticInformation.cpp | 8 |
/src/solidity/libevmasm/Instruction.cpp | 2 |
/src/solidity/build/deps/include/range/v3/view/slice.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/span.hpp | 5 |
/src/solidity/build/deps/include/range/v3/view/subrange.hpp | 2 |
/src/solidity/build/deps/include/range/v3/iterator/operations.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/drop_last.hpp | 4 |
/src/solidity/build/deps/include/range/v3/utility/optional.hpp | 5 |
/src/solidity/build/deps/include/range/v3/numeric/accumulate.hpp | 3 |
/src/solidity/libevmasm/GasMeter.h | 6 |
/usr/include/boost/core/empty_value.hpp | 3 |
/src/solidity/libevmasm/GasMeter.cpp | 3 |
/usr/include/boost/multiprecision/detail/et_ops.hpp | 10 |
/usr/include/boost/multiprecision/detail/number_compare.hpp | 30 |
/src/solidity/libevmasm/JumpdestRemover.h | 1 |
/src/solidity/libevmasm/PeepholeOptimiser.h | 2 |
/src/solidity/libevmasm/PeepholeOptimiser.cpp | 7 |
/src/solidity/libsolutil/Numeric.h | 11 |
/src/solidity/libevmasm/BlockDeduplicator.h | 3 |
/src/solidity/libevmasm/KnownState.h | 12 |
/usr/include/boost/bimap/bimap.hpp | 2 |
/usr/include/boost/multi_index_container.hpp | 11 |
/usr/include/boost/multi_index/detail/converter.hpp | 1 |
/usr/include/boost/bimap/views/set_view.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/set_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/ordered_associative_container_adaptor.hpp | 2 |
/usr/include/boost/bimap/container_adaptor/associative_container_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/container_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/detail/functor_bag.hpp | 1 |
/usr/include/boost/utility/base_from_member.hpp | 2 |
/usr/include/boost/multi_index/detail/header_holder.hpp | 3 |
/usr/include/boost/tuple/detail/tuple_basic.hpp | 5 |
/usr/include/boost/multi_index/detail/ord_index_impl.hpp | 17 |
/usr/include/boost/multi_index/detail/index_base.hpp | 4 |
/usr/include/boost/multi_index/detail/ord_index_node.hpp | 14 |
/usr/include/boost/bimap/views/map_view.hpp | 2 |
/usr/include/boost/bimap/container_adaptor/map_adaptor.hpp | 1 |
/src/solidity/libevmasm/CommonSubexpressionEliminator.h | 4 |
/usr/include/boost/multi_index/detail/copy_map.hpp | 10 |
/usr/include/boost/multi_index/detail/auto_space.hpp | 3 |
/usr/include/boost/multi_index/detail/bidir_node_iterator.hpp | 3 |
/usr/include/boost/multi_index/ordered_index.hpp | 1 |
/usr/include/boost/multi_index/detail/raw_ptr.hpp | 5 |
/usr/include/boost/type_traits/integral_constant.hpp | 1 |
/usr/include/boost/multi_index/detail/index_node_base.hpp | 1 |
/usr/include/boost/core/addressof.hpp | 1 |
/src/solidity/libevmasm/CommonSubexpressionEliminator.cpp | 4 |
/src/solidity/libevmasm/KnownState.cpp | 9 |
/src/solidity/libevmasm/ExpressionClasses.cpp | 10 |
/src/solidity/libevmasm/ExpressionClasses.h | 3 |
/src/solidity/libevmasm/SimplificationRules.cpp | 12 |
/src/solidity/libevmasm/SimplificationRules.h | 10 |
/src/solidity/libevmasm/RuleList.h | 58 |
/src/solidity/libevmasm/SimplificationRule.h | 76 |
/usr/local/include/c++/v1/initializer_list | 2 |
/src/solidity/libsolutil/Keccak256.h | 2 |
/src/solidity/libsolutil/vector_ref.h | 7 |
/src/solidity/libsolutil/Keccak256.cpp | 5 |
/src/solidity/libsolutil/FixedHash.h | 4 |
/src/solidity/libevmasm/ConstantOptimiser.cpp | 12 |
/src/solidity/libevmasm/ConstantOptimiser.h | 10 |
/usr/include/boost/multiprecision/cpp_int/comparison.hpp | 2 |
/usr/include/boost/multiprecision/detail/functions/pow.hpp | 2 |
/src/solidity/libyul/backends/evm/EthAssemblyAdapter.h | 1 |
/src/solidity/liblangutil/Exceptions.cpp | 1 |
/src/solidity/libevmasm/LinkerObject.cpp | 1 |
/src/solidity/libsolutil/CommonData.cpp | 2 |
/src/solidity/libyul/backends/wasm/WasmObjectCompiler.cpp | 2 |
/src/solidity/libyul/backends/wasm/WasmObjectCompiler.h | 1 |
/src/solidity/libyul/backends/wasm/WasmCodeTransform.cpp | 7 |
/src/solidity/libyul/backends/wasm/WasmAST.h | 12 |
/src/solidity/libyul/optimiser/TypeInfo.cpp | 3 |
/src/solidity/libyul/backends/wasm/WasmCodeTransform.h | 2 |
/src/solidity/libyul/optimiser/NameDispenser.cpp | 4 |
/src/solidity/libyul/optimiser/OptimizerUtilities.cpp | 1 |
/src/solidity/libyul/optimiser/NameDispenser.h | 1 |
/src/solidity/libyul/optimiser/TypeInfo.h | 1 |
/src/solidity/libyul/backends/wasm/TextTransform.cpp | 5 |
/src/solidity/libyul/backends/wasm/BinaryTransform.cpp | 30 |
/src/solidity/libsolutil/LEB128.h | 2 |
/src/solidity/libyul/backends/wasm/BinaryTransform.h | 2 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 3722 | 29.4% |
gold | 828 | 6.55% |
yellow | 427 | 3.38% |
greenyellow | 241 | 1.90% |
lawngreen | 7412 | 58.6% |
All colors | 12630 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
434 | 12145 |
(anonymous namespace)::indent(std::__1::basic_string
|
call site | _ZN5boost14multiprecisionltINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEELNS0_26expression_template_optionE0EiEENS_11enable_if_cIXaasr6detail22is_valid_mixed_compareINS0_6numberIT_XT0_EEET1_EE5valuenesr15number_categoryISA_EE5valueLNS0_20number_category_typeE4EEbE4typeERKSB_RKSC_ |
352 | 6781 | solidity::yul::AsmAnalyzer::analyzeStrictAssertCorrect(solidity::yul::Dialect const&, solidity::yul::Object const&) | call site | _ZNK6ranges6detail12to_container2fnINS0_10from_rangeINSt3__16vectorEEEEclINS_14transform_viewINS_8ref_viewIKNS5_IN8solidity3yul9TypedNameENS4_9allocatorISD_EEEEEEZNSC_23ControlFlowGraphBuilder16registerFunctionERKNSC_18FunctionDefinitionEE3$_6EELb1ELi0ELi0EEEDTclsr10from_rangeE9from_rng_IT_ELi0EEEOSP_ |
186 | 7835 |
solidity::evmasm::Assembly::Assembly(bool, std::__1::basic_string
|
call site | _ZN6ranges11view_facadeINS_18iter_zip_with_viewINS_6detail16indirect_zip_fn_EJNS_8ref_viewINSt3__16vectorINS5_7variantIJN8solidity3yul27FunctionCallReturnLabelSlotENS9_23FunctionReturnLabelSlotENS9_12VariableSlotENS9_11LiteralSlotENS9_13TemporarySlotENS9_8JunkSlotEEEENS5_9allocatorISG_EEEEEENS4_IKSJ_EEEEELNS_11cardinalityEn1EE5beginISN_Lb1ELi0EEENS_14basic_iteratorINS5_5decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
121 | 8389 | solidity::evmasm::CommonSubexpressionEliminator::CommonSubexpressionEliminator(solidity::evmasm::KnownState const&) | call site | __clang_call_terminate |
108 | 5131 |
solidity::frontend::CHC::checkAndReportTarget(solidity::frontend::CHC::CHCVerificationTarget const&, std::__1::vector
|
call site | _ZN6ranges11view_facadeINS_19iter_transform_viewINS_8ref_viewINSt3__13mapIPKN8solidity8frontend18ContractDefinitionEPKNS6_9PredicateENS3_4lessIS9_EENS3_9allocatorINS3_4pairIKS9_SC_EEEEEEEENS_10indirectedINS_6detail10get_secondEEEEELNS_11cardinalityEn1EE5beginISQ_Lb1ELi0EEENS_14basic_iteratorINS3_5decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
106 | 4950 | solidity::frontend::IntegerType::minValue() const | call site | _ZN5boost14multiprecision8backends16eval_right_shiftILj0ELj0ELNS0_18cpp_int_check_typeE0ENSt3__19allocatorIyEEEENS_11enable_if_cIXntsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_ELNS0_16cpp_integer_typeE1EXT1_ET2_EEEE5valueEvE4typeERSB_o |
101 | 6483 | solidity::yul::YulStack::analyzeParsed(solidity::yul::Object&) | call site | |
87 | 7623 | solidity::yul::CallGraph::recursiveFunctions() const | call site | _ZN6ranges11view_facadeINS_18iter_zip_with_viewINS_6detail16indirect_zip_fn_EJNS_8ref_viewINSt3__16vectorIN8solidity3yul10IdentifierENS5_9allocatorIS9_EEEEEENS4_INS6_INS5_8optionalINS8_9YulStringEEENSA_ISG_EEEEEEEEELNS_11cardinalityEn1EE5beginISK_Lb1ELi0EEENS_14basic_iteratorINS5_5decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
83 | 6215 |
solidity::yul::reindent(std::__1::basic_string
|
call site | _ZN5boost9function2INS_14iterator_rangeINSt3__111__wrap_iterIPKcEEEES6_S6_EC2INS_9algorithm6detail13token_finderFINSB_10is_any_ofFIcEEEEEET_NS_10enable_if_IXntsr11is_integralISG_EE5valueEiE4typeE |
73 | 4044 |
solidity::frontend::ControlFlowAnalyzer::checkUninitializedAccess(solidity::frontend::CFGNode const*, solidity::frontend::CFGNode const*, bool, std::__1::optional
|
call site | _ZNK6ranges11_iter_swap_2fnclIRNSt3__111__wrap_iterIPPKN8solidity8frontend18VariableOccurrenceEEESC_EENS_6detail9enable_ifIXaant29is_adl_indirectly_swappable_vIT_T0_Esr17is_swappable_withIDTdeclsr3stdE7declvalIRSF_EEEDTdeclsr3stdE7declvalIRSG_EEEEE5valueEE6invokeIvEEOSF_OSG_ |
62 | 5789 |
solidity::yul::AsmPrinter::formatSourceLocation(solidity::langutil::SourceLocation const&, std::__1::map
|
call site | |
60 | 12005 |
solidity::frontend::CompilerStack::compileContract(solidity::frontend::ContractDefinition const&, std::__1::map
|
call site |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
36564 | 76838 | solidity::frontend::CompilerStack::compile(solidity::frontend::CompilerStack::State) | /src/solidity/libsolidity/interface/CompilerStack.cpp:667 |
9361 | 29279 | solidity::frontend::ArrayUtils::copyArrayToMemory(solidity::frontend::ArrayTypeconst&,bool)const | /src/solidity/libsolidity/codegen/ArrayUtils.cpp:366 |
6722 | 7247 | solidity::yul::YulStack::optimize() | /src/solidity/libyul/YulStack.cpp:115 |
6532 | 212368 | solidity::frontend::ExpressionCompiler::visit(solidity::frontend::MemberAccessconst&) | /src/solidity/libsolidity/codegen/ExpressionCompiler.cpp:1615 |
4680 | 9185 |
solidity::yul::OptimiserSuite::run(solidity::yul::Dialectconst&,solidity::yul::GasMeterconst*,solidity::yul::Object&,bool,std::__1::basic_string_view
|
/src/solidity/libyul/optimiser/Suite.cpp:148 |
4680 | 5530 |
solidity::yul::OptimiserSuite::run(solidity::yul::Dialectconst&,solidity::yul::GasMeterconst*,solidity::yul::Object&,bool,std::__1::basic_string_view
|
/src/solidity/libyul/optimiser/Suite.cpp:159 |
3556 | 6740 | solidity::frontend::CHC::checkVerificationTargets() | /src/solidity/libsolidity/formal/CHC.cpp:1665 |
3166 | 3373 |
solidity::frontend::CHC::checkAndReportTarget(solidity::frontend::CHC::CHCVerificationTargetconst&,std::__1::vector
|
/src/solidity/libsolidity/formal/CHC.cpp:1822 |
2727 | 8616 | solidity::frontend::YulUtilFunctions::overflowCheckedIntLiteralExpFunction(solidity::frontend::RationalNumberTypeconst&,solidity::frontend::IntegerTypeconst&,solidity::frontend::IntegerTypeconst&)::$_33::operator()()const | /src/solidity/libsolidity/codegen/YulUtilFunctions.cpp:970 |
2252 | 14065 |
solidity::frontend::CompilerContext::appendInlineAssembly(std::__1::basic_string
|
/src/solidity/libsolidity/codegen/CompilerContext.cpp:477 |
1982 | 129530 |
solidity::frontend::CompilerUtils::encodeToMemory(std::__1::vector
|
/src/solidity/libsolidity/codegen/CompilerUtils.cpp:511 |
1393 | 1396 |
solidity::frontend::test::TestCaseReader::parseSourcesAndSettingsWithLineNumber(std::__1::basic_istream
|
/src/solidity/test/TestCaseReader.cpp:168 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/solidity/test/tools/ossfuzz/solc_ossfuzz.cpp | 1 |
/src/solidity/test/TestCaseReader.cpp | 2 |
/usr/include/boost/filesystem/path.hpp | 20 |
/src/solidity/test/TestCaseReader.h | 4 |
/usr/include/boost/algorithm/string/predicate.hpp | 13 |
/usr/include/boost/range/as_literal.hpp | 7 |
/usr/include/boost/range/end.hpp | 9 |
/usr/include/boost/range/iterator_range_core.hpp | 24 |
/usr/include/boost/range/begin.hpp | 10 |
/usr/include/boost/algorithm/string/compare.hpp | 1 |
/usr/local/include/c++/v1/initializer_list | 4 |
/usr/include/boost/algorithm/string/trim.hpp | 6 |
/usr/include/boost/algorithm/string/classification.hpp | 2 |
/usr/include/boost/algorithm/string/detail/classification.hpp | 8 |
/usr/include/boost/algorithm/string/detail/trim.hpp | 5 |
/usr/include/boost/assert/source_location.hpp | 3 |
/usr/include/boost/throw_exception.hpp | 31 |
/usr/include/boost/exception/exception.hpp | 16 |
/usr/include/boost/exception/info.hpp | 25 |
/src/solidity/test/libsolidity/util/SoltestErrors.h | 3 |
/usr/local/include/c++/v1/exception | 2 |
/src/solidity/libsolutil/Exceptions.h | 8 |
/src/solidity/libsolutil/Assertions.h | 1 |
/usr/include/boost/exception/detail/error_info_impl.hpp | 2 |
/usr/include/boost/filesystem/operations.hpp | 2 |
/usr/include/boost/filesystem/file_status.hpp | 3 |
/src/solidity/libsolutil/CommonIO.cpp | 4 |
/src/solidity/test/tools/fuzzer_common.cpp | 2 |
/src/solidity/libsolidity/interface/CompilerStack.cpp | 37 |
/src/solidity/liblangutil/CharStreamProvider.h | 3 |
/src/solidity/libsolidity/interface/OptimiserSettings.h | 7 |
/src/solidity/liblangutil/EVMVersion.h | 17 |
/src/solidity/libsolidity/formal/ModelCheckerSettings.h | 19 |
/src/solidity/libsolidity/formal/ModelCheckerSettings.cpp | 2 |
/src/solidity/build/deps/include/range/v3/view/view.hpp | 48 |
/src/solidity/build/deps/include/range/v3/view/map.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/all.hpp | 9 |
/src/solidity/build/deps/include/range/v3/range_fwd.hpp | 5 |
/src/solidity/build/deps/include/range/v3/view/ref.hpp | 7 |
/src/solidity/build/deps/include/range/v3/view/transform.hpp | 27 |
/src/solidity/build/deps/include/range/v3/functional/indirect.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/adaptor.hpp | 10 |
/src/solidity/build/deps/include/range/v3/view/facade.hpp | 23 |
/src/solidity/build/deps/include/range/v3/detail/range_access.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/interface.hpp | 7 |
/src/solidity/build/deps/include/range/v3/range/access.hpp | 12 |
/src/solidity/build/deps/include/range/v3/utility/compressed_pair.hpp | 3 |
/src/solidity/build/deps/include/range/v3/utility/box.hpp | 7 |
/src/solidity/build/deps/include/range/v3/iterator/basic_iterator.hpp | 52 |
/src/solidity/build/deps/include/range/v3/view/split.hpp | 3 |
/src/solidity/build/deps/include/range/v3/functional/bind_back.hpp | 9 |
/src/solidity/build/deps/include/range/v3/functional/invoke.hpp | 14 |
/src/solidity/build/deps/include/range/v3/view/single.hpp | 2 |
/src/solidity/build/deps/include/range/v3/range/conversion.hpp | 12 |
/usr/local/include/c++/v1/optional | 40 |
/src/solidity/libsmtutil/SolverInterface.h | 13 |
/src/solidity/libsolidity/interface/ImportRemapper.h | 2 |
/src/solidity/liblangutil/ErrorReporter.h | 7 |
/src/solidity/liblangutil/DebugInfoSelection.h | 4 |
/src/solidity/liblangutil/DebugInfoSelection.cpp | 2 |
/src/solidity/liblangutil/Exceptions.h | 16 |
/src/solidity/libsolidity/interface/CompilerStack.h | 1 |
/src/solidity/liblangutil/ErrorReporter.cpp | 22 |
/src/solidity/liblangutil/SemVerHandler.cpp | 11 |
/src/solidity/liblangutil/SemVerHandler.h | 10 |
/src/solidity/liblangutil/SourceLocation.h | 12 |
/src/solidity/libsolidity/parsing/Parser.h | 11 |
/src/solidity/liblangutil/ParserBase.h | 4 |
/src/solidity/libsolidity/parsing/Parser.cpp | 132 |
/src/solidity/liblangutil/Scanner.h | 25 |
/src/solidity/liblangutil/ParserBase.cpp | 14 |
/src/solidity/liblangutil/Token.h | 17 |
/src/solidity/liblangutil/Token.cpp | 9 |
/src/solidity/libsolidity/ast/AST.h | 67 |
/src/solidity/libsolidity/ast/ASTEnums.h | 1 |
/src/solidity/liblangutil/Scanner.cpp | 30 |
/src/solidity/liblangutil/CharStream.cpp | 7 |
/src/solidity/liblangutil/CharStream.h | 11 |
/src/solidity/liblangutil/Common.h | 6 |
/src/solidity/libsolutil/StringUtils.h | 12 |
/src/solidity/libyul/backends/evm/EVMDialect.cpp | 9 |
/src/solidity/libyul/YulString.h | 12 |
/src/solidity/libyul/AsmParser.h | 14 |
/src/solidity/libyul/AsmParser.cpp | 21 |
/src/solidity/libsolutil/Common.h | 6 |
/usr/include/boost/algorithm/string/detail/predicate.hpp | 1 |
/src/solidity/libyul/AST.h | 41 |
/usr/include/boost/multiprecision/cpp_int.hpp | 37 |
/usr/include/boost/multiprecision/cpp_int/cpp_int_config.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/multiply.hpp | 7 |
/usr/include/boost/multiprecision/cpp_int/add.hpp | 9 |
/usr/include/boost/multiprecision/detail/constexpr.hpp | 4 |
/src/solidity/libyul/Exceptions.h | 5 |
/src/solidity/libsolutil/SetOnce.h | 13 |
/usr/include/boost/iterator/iterator_facade.hpp | 5 |
/usr/include/boost/type_traits/integral_constant.hpp | 2 |
/src/solidity/libsolidity/interface/ImportRemapper.cpp | 2 |
/src/solidity/libsolidity/interface/ReadFile.h | 2 |
/src/solidity/libsolidity/analysis/SyntaxChecker.h | 1 |
/src/solidity/libsolidity/ast/ASTVisitor.h | 6 |
/src/solidity/libsolidity/analysis/Scoper.cpp | 1 |
/src/solidity/libsolidity/analysis/Scoper.h | 2 |
/src/solidity/libsolidity/analysis/SyntaxChecker.cpp | 1 |
/src/solidity/libsolidity/analysis/NameAndTypeResolver.cpp | 17 |
/src/solidity/libsolidity/analysis/GlobalContext.cpp | 5 |
/src/solidity/libsolidity/analysis/DeclarationContainer.cpp | 5 |
/src/solidity/libsolutil/CommonData.h | 86 |
/src/solidity/libsolidity/ast/AST.cpp | 20 |
/src/solidity/libsolidity/analysis/DeclarationContainer.h | 2 |
/src/solidity/build/deps/include/range/v3/view/filter.hpp | 1 |
/src/solidity/libsolidity/analysis/DocStringTagParser.h | 1 |
/src/solidity/libsolidity/analysis/DocStringTagParser.cpp | 2 |
/src/solidity/libsolidity/ast/TypeProvider.h | 10 |
/src/solidity/libsolidity/ast/TypeProvider.cpp | 19 |
/src/solidity/libsolidity/analysis/GlobalContext.h | 1 |
/src/solidity/libsolidity/analysis/ReferencesResolver.h | 1 |
/src/solidity/libyul/optimiser/ASTWalker.h | 8 |
/src/solidity/libsolidity/analysis/ReferencesResolver.cpp | 1 |
/src/solidity/libsolidity/analysis/DeclarationTypeChecker.h | 2 |
/src/solidity/libsolidity/analysis/DeclarationTypeChecker.cpp | 1 |
/src/solidity/libsolidity/analysis/ContractLevelChecker.h | 2 |
/src/solidity/libsolidity/analysis/OverrideChecker.h | 8 |
/src/solidity/libsolidity/analysis/TypeChecker.h | 1 |
/src/solidity/libsolidity/analysis/ContractLevelChecker.cpp | 20 |
/src/solidity/libsolidity/ast/Types.cpp | 32 |
/src/solidity/libsolidity/ast/Types.h | 44 |
/src/solidity/libsolidity/analysis/OverrideChecker.cpp | 39 |
/src/solidity/build/deps/include/range/v3/view/reverse.hpp | 9 |
/src/solidity/build/deps/include/range/v3/iterator/reverse_iterator.hpp | 3 |
/src/solidity/libsolutil/Result.h | 10 |
/usr/include/boost/algorithm/string/join.hpp | 4 |
/src/solidity/build/deps/include/range/v3/functional/reference_wrapper.hpp | 8 |
/src/solidity/build/deps/include/range/v3/utility/semiregular_box.hpp | 3 |
/usr/include/boost/algorithm/string/detail/sequence.hpp | 5 |
/src/solidity/libsolutil/LazyInit.h | 3 |
/src/solidity/libsolutil/Keccak256.h | 2 |
/src/solidity/libsolutil/vector_ref.h | 13 |
/src/solidity/libsolutil/Keccak256.cpp | 5 |
/src/solidity/libsolutil/FixedHash.h | 15 |
/src/solidity/libsolidity/analysis/TypeChecker.cpp | 2 |
/usr/include/boost/core/empty_value.hpp | 3 |
/usr/include/boost/multiprecision/detail/number_base.hpp | 21 |
/usr/include/boost/multiprecision/number.hpp | 33 |
/usr/include/boost/multiprecision/detail/precision.hpp | 8 |
/usr/include/boost/multiprecision/detail/et_ops.hpp | 16 |
/usr/local/include/c++/v1/stdexcept | 2 |
/usr/include/boost/multiprecision/detail/default_ops.hpp | 10 |
/usr/include/boost/multiprecision/cpp_int/bitwise.hpp | 14 |
/usr/include/boost/multiprecision/detail/number_compare.hpp | 40 |
/src/solidity/libsolidity/analysis/DocStringAnalyser.h | 1 |
/src/solidity/libsolidity/analysis/DocStringAnalyser.cpp | 1 |
/src/solidity/libsolidity/analysis/PostTypeChecker.cpp | 3 |
/src/solidity/libsolidity/analysis/PostTypeChecker.h | 1 |
/src/solidity/libsolidity/analysis/FunctionCallGraph.cpp | 6 |
/src/solidity/libsolidity/analysis/FunctionCallGraph.h | 2 |
/src/solidity/libsolidity/ast/CallGraph.h | 3 |
/src/solidity/libsolutil/Algorithms.h | 23 |
/src/solidity/libsolidity/analysis/PostTypeContractLevelChecker.h | 1 |
/src/solidity/libsolidity/analysis/PostTypeContractLevelChecker.cpp | 2 |
/src/solidity/libsolutil/FunctionSelector.h | 2 |
/usr/include/boost/multiprecision/cpp_int/misc.hpp | 2 |
/src/solidity/libsolidity/analysis/ImmutableValidator.h | 1 |
/src/solidity/libsolidity/analysis/ImmutableValidator.cpp | 3 |
/src/solidity/libsolidity/analysis/ControlFlowGraph.h | 8 |
/src/solidity/libsolidity/analysis/ControlFlowGraph.cpp | 2 |
/src/solidity/libsolidity/analysis/ControlFlowRevertPruner.h | 2 |
/src/solidity/libsolidity/analysis/ControlFlowRevertPruner.cpp | 5 |
/src/solidity/libsolidity/analysis/ControlFlowAnalyzer.h | 2 |
/src/solidity/libsolidity/analysis/ControlFlowAnalyzer.cpp | 7 |
/src/solidity/build/deps/include/range/v3/algorithm/sort.hpp | 11 |
/src/solidity/build/deps/include/range/v3/iterator/operations.hpp | 8 |
/src/solidity/build/deps/include/range/v3/algorithm/partial_sort.hpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/heap_algorithm.hpp | 4 |
/src/solidity/build/deps/include/range/v3/iterator/access.hpp | 4 |
/src/solidity/build/deps/include/range/v3/utility/move.hpp | 1 |
/src/solidity/build/deps/include/concepts/swap.hpp | 2 |
/src/solidity/build/deps/include/range/v3/functional/identity.hpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/move_backward.hpp | 1 |
/src/solidity/libsolidity/analysis/StaticAnalyzer.cpp | 3 |
/src/solidity/libsolidity/analysis/ViewPureChecker.h | 1 |
/src/solidity/libsolidity/analysis/ViewPureChecker.cpp | 1 |
/src/solidity/libsolidity/formal/ModelChecker.cpp | 5 |
/src/solidity/liblangutil/UniqueErrorReporter.h | 8 |
/src/solidity/libsolidity/formal/EncodingContext.cpp | 9 |
/src/solidity/libsolidity/formal/SymbolicState.h | 12 |
/src/solidity/libsolidity/formal/SymbolicVariables.cpp | 11 |
/src/solidity/libsolidity/formal/SymbolicTypes.cpp | 24 |
/src/solidity/libsmtutil/Sorts.cpp | 1 |
/src/solidity/libsolidity/formal/SymbolicVariables.h | 3 |
/src/solidity/libsolidity/formal/SymbolicState.cpp | 7 |
/src/solidity/libsolidity/formal/BMC.cpp | 3 |
/src/solidity/libsolidity/formal/SMTEncoder.cpp | 24 |
/src/solidity/libsolidity/formal/VariableUsage.h | 3 |
/src/solidity/libsolidity/formal/SMTEncoder.h | 2 |
/src/solidity/libsolidity/formal/CHC.cpp | 19 |
/src/solidity/libsolidity/formal/BMC.h | 2 |
/src/solidity/libsolidity/formal/EncodingContext.h | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/any_of.hpp | 5 |
/src/solidity/libsmtutil/CHCSmtLib2Interface.h | 2 |
/src/solidity/libsolidity/formal/Predicate.cpp | 9 |
/src/solidity/libsolidity/formal/ArraySlicePredicate.h | 1 |
/src/solidity/libsmtutil/CHCSmtLib2Interface.cpp | 1 |
/src/solidity/libsolidity/formal/SSAVariable.cpp | 1 |
/usr/include/boost/rational.hpp | 2 |
/src/solidity/libsolidity/formal/PredicateSort.cpp | 6 |
/src/solidity/libsolidity/formal/SSAVariable.h | 1 |
/src/solidity/libsmtutil/Exceptions.h | 1 |
/src/solidity/libsolidity/formal/PredicateInstance.cpp | 2 |
/usr/include/boost/multiprecision/cpp_int/comparison.hpp | 2 |
/usr/include/boost/lexical_cast.hpp | 1 |
/usr/include/boost/lexical_cast/try_lexical_convert.hpp | 1 |
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp | 1 |
/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp | 6 |
/usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp | 1 |
/usr/include/boost/lexical_cast/bad_lexical_cast.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/divide.hpp | 2 |
/src/solidity/libsolutil/Numeric.h | 17 |
/src/solidity/libsolutil/CommonData.cpp | 6 |
/src/solidity/libsolidity/formal/Invariants.cpp | 2 |
/src/solidity/libsolidity/formal/ExpressionFormatter.cpp | 7 |
/src/solidity/libsolidity/formal/CHC.h | 4 |
/src/solidity/libsolidity/formal/Predicate.h | 1 |
/src/solidity/libsolidity/formal/ModelChecker.h | 1 |
/src/solidity/libsolidity/analysis/NameAndTypeResolver.h | 1 |
/src/solidity/libsolidity/codegen/CompilerContext.h | 33 |
/src/solidity/libsolidity/codegen/ir/IRGenerator.h | 2 |
/src/solidity/libsolidity/codegen/ir/IRGenerationContext.h | 15 |
/src/solidity/libsolidity/codegen/MultiUseYulFunctionCollector.h | 3 |
/src/solidity/libsolidity/codegen/YulUtilFunctions.h | 1 |
/src/solidity/libsolutil/IpfsHash.cpp | 10 |
/src/solidity/libsolutil/picosha2.h | 19 |
/src/solidity/libsolutil/SwarmHash.h | 1 |
/src/solidity/libsolutil/SwarmHash.cpp | 3 |
/src/solidity/libsolidity/codegen/ir/IRGenerator.cpp | 18 |
/src/solidity/libsolutil/Whiskers.cpp | 12 |
/src/solidity/libsolidity/codegen/MultiUseYulFunctionCollector.cpp | 3 |
/src/solidity/libsolidity/codegen/ir/IRGenerationContext.cpp | 11 |
/src/solidity/libsolidity/codegen/ir/Common.cpp | 9 |
/src/solidity/libsolutil/CommonIO.h | 2 |
/src/solidity/libsolutil/Whiskers.h | 4 |
/src/solidity/libyul/AsmPrinter.cpp | 3 |
/usr/include/boost/algorithm/string/replace.hpp | 5 |
/usr/include/boost/algorithm/string/finder.hpp | 3 |
/usr/include/boost/algorithm/string/detail/finder.hpp | 6 |
/usr/include/boost/algorithm/string/formatter.hpp | 2 |
/usr/include/boost/algorithm/string/detail/formatter.hpp | 3 |
/usr/include/boost/algorithm/string/find_format.hpp | 2 |
/usr/include/boost/range/empty.hpp | 1 |
/usr/include/boost/algorithm/string/detail/find_format_all.hpp | 4 |
/usr/include/boost/algorithm/string/detail/find_format_store.hpp | 8 |
/usr/include/boost/range/detail/safe_bool.hpp | 1 |
/usr/include/boost/algorithm/string/detail/replace_storage.hpp | 4 |
/src/solidity/libsolidity/codegen/YulUtilFunctions.cpp | 11 |
/src/solidity/libsolidity/codegen/CompilerUtils.h | 3 |
/src/solidity/libyul/Object.h | 6 |
/src/solidity/libyul/Utilities.cpp | 6 |
/usr/include/boost/range/distance.hpp | 1 |
/usr/include/boost/iterator/distance.hpp | 2 |
/usr/include/boost/algorithm/string/split.hpp | 1 |
/usr/include/boost/algorithm/string/iter_find.hpp | 1 |
/usr/include/boost/algorithm/string/find_iterator.hpp | 4 |
/usr/include/boost/algorithm/string/detail/find_iterator.hpp | 5 |
/usr/include/boost/function/function_template.hpp | 12 |
/usr/include/boost/function/function_base.hpp | 5 |
/usr/include/boost/core/addressof.hpp | 2 |
/usr/include/boost/iterator/transform_iterator.hpp | 3 |
/usr/include/boost/iterator/iterator_adaptor.hpp | 3 |
/src/solidity/libyul/YulStack.h | 6 |
/src/solidity/libyul/YulStack.cpp | 14 |
/src/solidity/libyul/ObjectParser.h | 1 |
/src/solidity/libyul/ObjectParser.cpp | 8 |
/src/solidity/libyul/backends/wasm/WasmDialect.cpp | 1 |
/src/solidity/libyul/Object.cpp | 3 |
/src/solidity/libyul/AsmAnalysis.h | 2 |
/src/solidity/libyul/SideEffects.h | 1 |
/src/solidity/libyul/backends/evm/EVMDialect.h | 7 |
/src/solidity/libyul/AsmAnalysis.cpp | 4 |
/src/solidity/libyul/ScopeFiller.cpp | 2 |
/src/solidity/liblangutil/SourceReferenceFormatter.cpp | 11 |
/src/solidity/liblangutil/SourceReferenceFormatter.h | 3 |
/src/solidity/liblangutil/SourceReferenceExtractor.cpp | 2 |
/usr/include/boost/exception/get_error_info.hpp | 6 |
/usr/include/boost/exception/detail/type_info.hpp | 1 |
/usr/include/boost/smart_ptr/detail/operator_bool.hpp | 1 |
/usr/include/boost/smart_ptr/shared_ptr.hpp | 1 |
/src/solidity/liblangutil/SourceReferenceExtractor.h | 5 |
/src/solidity/liblangutil/Exceptions.cpp | 2 |
/usr/include/boost/algorithm/string/case_conv.hpp | 1 |
/usr/include/boost/algorithm/string/detail/case_conv.hpp | 2 |
/src/solidity/libsolutil/AnsiColorized.h | 11 |
/src/solidity/libyul/optimiser/Suite.cpp | 10 |
/usr/include/boost/operators.hpp | 2 |
/src/solidity/libyul/optimiser/Disambiguator.h | 1 |
/src/solidity/libyul/optimiser/ASTCopier.h | 5 |
/src/solidity/libyul/optimiser/NameDispenser.cpp | 5 |
/src/solidity/libyul/optimiser/ASTCopier.cpp | 3 |
/src/solidity/libyul/optimiser/NameCollector.h | 4 |
/src/solidity/libyul/optimiser/Suite.h | 1 |
/src/solidity/libyul/optimiser/Metrics.cpp | 1 |
/src/solidity/libyul/optimiser/Metrics.h | 1 |
/src/solidity/libyul/optimiser/ASTWalker.cpp | 4 |
/src/solidity/libyul/optimiser/NameSimplifier.h | 2 |
/src/solidity/libyul/optimiser/NameSimplifier.cpp | 2 |
/src/solidity/libyul/optimiser/OptimizerUtilities.cpp | 2 |
/src/solidity/libyul/optimiser/NameDispenser.h | 2 |
/src/solidity/libyul/optimiser/StackCompressor.cpp | 7 |
/src/solidity/libyul/optimiser/Semantics.cpp | 2 |
/src/solidity/libyul/optimiser/Semantics.h | 3 |
/src/solidity/libyul/AsmAnalysisInfo.h | 3 |
/src/solidity/libyul/backends/evm/ControlFlowGraphBuilder.cpp | 11 |
/src/solidity/libyul/backends/evm/ControlFlowGraph.h | 4 |
/src/solidity/libsolutil/cxx20.h | 1 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.cpp | 29 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.h | 2 |
/src/solidity/build/deps/include/range/v3/algorithm/find.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/enumerate.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/zip.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/zip_with.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/iota.hpp | 5 |
/src/solidity/libyul/backends/evm/StackHelpers.h | 6 |
/src/solidity/build/deps/include/range/v3/algorithm/all_of.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/drop.hpp | 1 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.cpp | 4 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.h | 3 |
/src/solidity/libyul/optimiser/KnowledgeBase.h | 2 |
/src/solidity/libyul/optimiser/Rematerialiser.cpp | 2 |
/src/solidity/libyul/optimiser/NameCollector.cpp | 3 |
/src/solidity/libyul/optimiser/Rematerialiser.h | 1 |
/src/solidity/libyul/optimiser/UnusedPruner.cpp | 5 |
/src/solidity/build/deps/include/range/v3/action/remove_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/remove_if.hpp | 2 |
/src/solidity/build/deps/include/range/v3/algorithm/find_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/action/erase.hpp | 2 |
/src/solidity/libyul/optimiser/UnusedPruner.h | 2 |
/src/solidity/libyul/CompilabilityChecker.cpp | 1 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.cpp | 2 |
/src/solidity/libyul/Dialect.h | 3 |
/src/solidity/libevmasm/Instruction.h | 8 |
/src/solidity/liblangutil/EVMVersion.cpp | 1 |
/src/solidity/libevmasm/Instruction.cpp | 2 |
/src/solidity/libyul/ControlFlowSideEffects.h | 1 |
/src/solidity/libevmasm/SemanticInformation.cpp | 9 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.h | 1 |
/src/solidity/libyul/backends/evm/AbstractAssembly.h | 4 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.h | 5 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.cpp | 13 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.h | 3 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.cpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/none_of.hpp | 3 |
/src/solidity/libevmasm/Exceptions.h | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/max.hpp | 1 |
/src/solidity/libyul/CompilabilityChecker.h | 1 |
/src/solidity/libyul/backends/evm/ConstantOptimiser.h | 1 |
/src/solidity/libyul/optimiser/StackLimitEvader.cpp | 6 |
/src/solidity/build/deps/include/range/v3/view/take.hpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.cpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.h | 1 |
/src/solidity/libyul/optimiser/CallGraphGenerator.cpp | 5 |
/src/solidity/libyul/optimiser/CallGraphGenerator.h | 4 |
/src/solidity/build/deps/include/range/v3/view/concat.hpp | 1 |
/src/solidity/libyul/optimiser/StackToMemoryMover.cpp | 9 |
/src/solidity/libyul/optimiser/StackToMemoryMover.h | 3 |
/src/solidity/libyul/optimiser/VarNameCleaner.h | 2 |
/src/solidity/libyul/optimiser/VarNameCleaner.cpp | 1 |
/src/solidity/libsolutil/Exceptions.cpp | 2 |
/src/solidity/libevmasm/Assembly.h | 22 |
/src/solidity/libevmasm/LinkerObject.h | 4 |
/src/solidity/libyul/backends/evm/EthAssemblyAdapter.cpp | 1 |
/src/solidity/libyul/backends/evm/EVMObjectCompiler.cpp | 2 |
/src/solidity/libyul/backends/evm/EVMObjectCompiler.h | 1 |
/src/solidity/libyul/backends/evm/OptimizedEVMCodeTransform.cpp | 8 |
/src/solidity/build/deps/include/range/v3/view/take_last.hpp | 1 |
/src/solidity/libyul/backends/evm/OptimizedEVMCodeTransform.h | 1 |
/src/solidity/libevmasm/Assembly.cpp | 17 |
/src/solidity/libevmasm/JumpdestRemover.cpp | 2 |
/src/solidity/libevmasm/AssemblyItem.h | 21 |
/src/solidity/libevmasm/AssemblyItem.cpp | 8 |
/src/solidity/libevmasm/BlockDeduplicator.cpp | 2 |
/src/solidity/libevmasm/Inliner.h | 1 |
/src/solidity/libevmasm/Inliner.cpp | 10 |
/src/solidity/build/deps/include/range/v3/view/slice.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/span.hpp | 5 |
/src/solidity/build/deps/include/range/v3/range/primitives.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/subrange.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/drop_last.hpp | 3 |
/src/solidity/build/deps/include/range/v3/utility/optional.hpp | 5 |
/src/solidity/build/deps/include/range/v3/numeric/accumulate.hpp | 3 |
/src/solidity/libevmasm/GasMeter.h | 6 |
/src/solidity/libevmasm/GasMeter.cpp | 3 |
/src/solidity/libevmasm/JumpdestRemover.h | 1 |
/src/solidity/libevmasm/PeepholeOptimiser.h | 2 |
/src/solidity/libevmasm/PeepholeOptimiser.cpp | 7 |
/src/solidity/libevmasm/BlockDeduplicator.h | 3 |
/src/solidity/libevmasm/KnownState.h | 12 |
/usr/include/boost/bimap/bimap.hpp | 2 |
/usr/include/boost/multi_index_container.hpp | 11 |
/usr/include/boost/multi_index/detail/converter.hpp | 1 |
/usr/include/boost/bimap/views/set_view.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/set_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/ordered_associative_container_adaptor.hpp | 2 |
/usr/include/boost/bimap/container_adaptor/associative_container_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/container_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/detail/functor_bag.hpp | 1 |
/usr/include/boost/utility/base_from_member.hpp | 2 |
/usr/include/boost/multi_index/detail/header_holder.hpp | 3 |
/usr/include/boost/tuple/detail/tuple_basic.hpp | 5 |
/usr/include/boost/multi_index/detail/ord_index_impl.hpp | 17 |
/usr/include/boost/multi_index/detail/index_base.hpp | 4 |
/usr/include/boost/multi_index/detail/ord_index_node.hpp | 14 |
/usr/include/boost/bimap/views/map_view.hpp | 2 |
/usr/include/boost/bimap/container_adaptor/map_adaptor.hpp | 1 |
/src/solidity/libevmasm/CommonSubexpressionEliminator.h | 4 |
/usr/include/boost/multi_index/detail/copy_map.hpp | 10 |
/usr/include/boost/multi_index/detail/auto_space.hpp | 3 |
/usr/include/boost/multi_index/detail/bidir_node_iterator.hpp | 3 |
/usr/include/boost/multi_index/ordered_index.hpp | 1 |
/usr/include/boost/multi_index/detail/raw_ptr.hpp | 5 |
/usr/include/boost/multi_index/detail/index_node_base.hpp | 1 |
/src/solidity/libevmasm/CommonSubexpressionEliminator.cpp | 4 |
/src/solidity/libevmasm/KnownState.cpp | 9 |
/src/solidity/libevmasm/ExpressionClasses.cpp | 10 |
/src/solidity/libevmasm/ExpressionClasses.h | 3 |
/src/solidity/libevmasm/SimplificationRules.cpp | 12 |
/src/solidity/libevmasm/SimplificationRules.h | 10 |
/src/solidity/libevmasm/RuleList.h | 58 |
/src/solidity/libevmasm/SimplificationRule.h | 76 |
/src/solidity/libevmasm/ConstantOptimiser.cpp | 12 |
/src/solidity/libevmasm/ConstantOptimiser.h | 10 |
/usr/include/boost/multiprecision/detail/functions/pow.hpp | 2 |
/src/solidity/libyul/backends/evm/EthAssemblyAdapter.h | 1 |
/src/solidity/libevmasm/LinkerObject.cpp | 3 |
/src/solidity/libsolidity/codegen/Compiler.cpp | 2 |
/src/solidity/libsolidity/codegen/ContractCompiler.h | 2 |
/src/solidity/libsolidity/codegen/ContractCompiler.cpp | 19 |
/src/solidity/libsolidity/codegen/CompilerContext.cpp | 29 |
/src/solidity/libsolidity/codegen/CompilerUtils.cpp | 34 |
/src/solidity/libyul/backends/evm/EVMMetrics.h | 2 |
/src/solidity/libyul/AsmPrinter.h | 3 |
/src/solidity/libyul/backends/evm/AsmCodeGen.cpp | 1 |
/src/solidity/libsolidity/codegen/ArrayUtils.h | 1 |
/src/solidity/libsolidity/codegen/ArrayUtils.cpp | 5 |
/src/solidity/libsolidity/codegen/LValue.cpp | 4 |
/src/solidity/libsolidity/codegen/LValue.h | 2 |
/src/solidity/libsolidity/codegen/ABIFunctions.cpp | 5 |
/src/solidity/libsolidity/codegen/ABIFunctions.h | 3 |
/src/solidity/libsolidity/codegen/ExpressionCompiler.h | 2 |
/src/solidity/libsolidity/codegen/ExpressionCompiler.cpp | 3 |
/src/solidity/libsolidity/codegen/Compiler.h | 1 |
/src/solidity/libyul/backends/wasm/EVMToEwasmTranslator.h | 1 |
/src/solidity/libyul/backends/wasm/EVMToEwasmTranslator.cpp | 2 |
/src/solidity/libyul/optimiser/FunctionHoister.h | 2 |
/src/solidity/libyul/optimiser/FunctionHoister.cpp | 1 |
/src/solidity/libyul/optimiser/FunctionGrouper.h | 1 |
/src/solidity/libyul/optimiser/FunctionGrouper.cpp | 2 |
/src/solidity/libyul/optimiser/MainFunction.h | 1 |
/src/solidity/libyul/optimiser/MainFunction.cpp | 1 |
/src/solidity/libyul/optimiser/ForLoopConditionIntoBody.cpp | 1 |
/src/solidity/libyul/optimiser/ForLoopConditionIntoBody.h | 1 |
/src/solidity/libyul/optimiser/ExpressionSplitter.cpp | 2 |
/src/solidity/libyul/optimiser/TypeInfo.cpp | 3 |
/src/solidity/libyul/optimiser/ExpressionSplitter.h | 1 |
/src/solidity/libyul/optimiser/TypeInfo.h | 1 |
/src/solidity/libyul/backends/wasm/WordSizeTransform.cpp | 2 |
/src/solidity/libyul/optimiser/NameDisplacer.h | 1 |
/src/solidity/libyul/optimiser/NameDisplacer.cpp | 2 |
/src/solidity/libyul/backends/wasm/WordSizeTransform.h | 1 |
/src/solidity/libyul/backends/wasm/WasmObjectCompiler.cpp | 2 |
/src/solidity/libyul/backends/wasm/WasmObjectCompiler.h | 1 |
/src/solidity/libyul/backends/wasm/WasmCodeTransform.cpp | 7 |
/src/solidity/libyul/backends/wasm/WasmAST.h | 12 |
/src/solidity/libyul/backends/wasm/WasmCodeTransform.h | 2 |
/src/solidity/libyul/backends/wasm/TextTransform.cpp | 5 |
/src/solidity/libyul/backends/wasm/BinaryTransform.cpp | 30 |
/src/solidity/libsolutil/LEB128.h | 2 |
/src/solidity/libyul/backends/wasm/BinaryTransform.h | 2 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 2821 | 42.0% |
gold | 490 | 7.30% |
yellow | 41 | 0.61% |
greenyellow | 68 | 1.01% |
lawngreen | 3292 | 49.0% |
All colors | 6712 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
138 | 6079 | solidity::yul::TypeInfo::TypeInfo(solidity::yul::Dialect const&, solidity::yul::Block const&) | call site | _ZN6ranges11view_facadeINS_19iter_transform_viewINS_8ref_viewIKNSt3__13mapINS3_4pairINS3_6vectorIhNS3_9allocatorIhEEEES9_EENS6_INS3_12basic_stringIcNS3_11char_traitsIcEENS7_IcEEEENS7_ISF_EEEENS3_4lessISA_EENS7_INS5_IKSA_SH_EEEEEEEENS_10indirectedINS_6detail10get_secondEEEEELNS_11cardinalityEn1EE5beginISU_Lb1ELi0EEENS_14basic_iteratorINS3_5decayIDTclsr12range_accessE12begin_cursorclsr3stdE7declvalIRT_EEEEE4typeEEEv |
129 | 6218 |
std::__1::vector
|
call site | |
122 | 4401 | solidity::evmasm::CommonSubexpressionEliminator::CommonSubexpressionEliminator(solidity::evmasm::KnownState const&) | call site | __clang_call_terminate |
92 | 1513 | solidity::langutil::Scanner::scanToken() | call site | |
91 | 569 | solidity::yul::test::yul_fuzzer::ProtoConverter::createVars(unsigned int, unsigned int) | call site | _ZN5boost9function2INS_14iterator_rangeINSt3__111__wrap_iterIPcEEEES5_S5_EC2INS_9algorithm6detail13token_finderFINSA_10is_any_ofFIcEEEEEET_NS_10enable_if_IXntsr11is_integralISF_EE5valueEiE4typeE |
83 | 1761 |
solidity::yul::Parser::parseInline(std::__1::shared_ptr
|
call site | __cxa_guard_acquire |
81 | 5577 |
solidity::evmasm::ComputeMethod::checkRepresentation(boost::multiprecision::number
|
call site | _ZN5boost14multiprecision3powINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEEEENS_11enable_if_cIXeqsr15number_categoryIT_EE5valueLNS0_20number_category_typeE0EENS0_6numberIS8_LNS0_26expression_template_optionE0EEEE4typeERKSC_RKj |
75 | 1879 | solidity::langutil::ParserBase::expectToken(solidity::langutil::Token, bool) | call site | |
73 | 425 | solidity::yul::test::yul_fuzzer::ProtoConverter::visit(solidity::yul::test::yul_fuzzer::Expression const&) | call site | __cxa_guard_acquire |
60 | 898 | solidity::yul::test::yul_fuzzer::ProtoConverter::visit(solidity::yul::test::yul_fuzzer::CaseStmt const&) | call site | _ZN5boost14multiprecision8backends13eval_multiplyILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvLj256ELj256ELS3_0ELS4_0EvEENS_11enable_if_cIXaantsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valuentsr18is_trivial_cpp_intINS6_IXT4_EXT5_EXT6_EXT7_ET8_EEEE5valueEvE4typeERS8_RKSA_RKy |
59 | 5796 |
solidity::util::FixedHash<32u>::FixedHash(boost::multiprecision::number
|
call site | _ZN5boost14multiprecisionleINS0_8backends15cpp_int_backendILj256ELj256ELNS0_16cpp_integer_typeE0ELNS0_18cpp_int_check_typeE0EvEELNS0_26expression_template_optionE0EmEENS_11enable_if_cIXaasr6detail22is_valid_mixed_compareINS0_6numberIT_XT0_EEET1_EE5valuenesr15number_categoryISA_EE5valueLNS0_20number_category_typeE4EEbE4typeERKSB_RKSC_ |
58 | 4341 |
solidity::evmasm::Assembly::optimiseInternal(solidity::evmasm::Assembly::OptimiserSettings const&, std::__1::set
|
call site | _ZN5boost6bimaps17container_adaptor11set_adaptorINS_11multi_index6detail13ordered_indexINS3_6memberINS0_8relation6detail16relation_storageINS0_4tags6taggedIKjNS7_9member_at4leftEEENSB_IKNSt3__13setINS_14multiprecision6numberINSI_8backends15cpp_int_backendILj256ELj256ELNSI_16cpp_integer_typeE0ELNSI_18cpp_int_check_typeE0EvEELNSI_26expression_template_optionE0EEENSG_4lessISQ_EENSG_9allocatorISQ_EEEENSD_5rightEEELb1EEEjXadL_ZNSZ_4leftEEEEENSR_IjEENS4_9nth_layerILi2ENS7_15mutant_relationISF_SY_N4mpl_2naELb1EEENS0_6detail10bimap_coreIjSV_S15_S15_S15_E12core_indicesENST_IS16_EEEENS_3mpl6v_itemISE_NS1D_7vector0IS15_EELi0EEENS4_18ordered_unique_tagENS4_19null_augment_policyEEENS17_17set_view_iteratorINS4_19bidir_node_iteratorINS4_18ordered_index_nodeIS1J_NS4_15index_node_baseIS16_S1B_EEEEEEEENS17_23const_set_view_iteratorIS1R_EENS1L_INS_9iterators16reverse_iteratorIS1R_EEEENS1T_IS1X_EENS1_7support23iterator_facade_to_baseIS1S_S1U_EES15_S15_NS8_28get_mutable_relation_functorIS16_EENS7_7support22get_above_view_functorIS16_EENS17_20set_view_key_to_baseIjS16_S10_EENS1D_6vectorIS15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_S15_EEEC2ERS1K_ |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
3411 | 3797 |
solidity::yul::StackLimitEvader::run(solidity::yul::OptimiserStepContext&,solidity::yul::Object&,std::__1::map
|
/src/solidity/libyul/optimiser/StackLimitEvader.cpp:178 |
3279 | 14788 | solidity::evmasm::Assembly::assemble()const | /src/solidity/libevmasm/Assembly.cpp:519 |
2758 | 3258 |
solidity::yul::ObjectParser::parse(std::__1::shared_ptr
|
/src/solidity/libyul/ObjectParser.cpp:49 |
1748 | 1748 | solidity::yul::test::yul_fuzzer::ProtoConverter::visit(solidity::yul::test::yul_fuzzer::Expressionconst&) | /src/solidity/test/tools/ossfuzz/protoToYul.cpp:245 |
1650 | 3538 | solidity::yul::StackLimitEvader::run(solidity::yul::OptimiserStepContext&,solidity::yul::Object&) | /src/solidity/libyul/optimiser/StackLimitEvader.cpp:131 |
1640 | 3117 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:321 |
1601 | 1605 | solidity::langutil::ParserBase::expectToken(solidity::langutil::Token,bool) | /src/solidity/liblangutil/ParserBase.cpp:77 |
1593 | 10829 |
solidity::yul::RepresentationFinder::findRepresentation(boost::multiprecision::number
|
/src/solidity/libyul/backends/evm/ConstantOptimiser.cpp:155 |
1320 | 1953 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:337 |
1214 | 1823 | solidity::yul::AsmAnalyzer::operator()(solidity::yul::FunctionCallconst&) | /src/solidity/libyul/AsmAnalysis.cpp:371 |
1151 | 5544 |
solidity::evmasm::ComputeMethod::findRepresentation(boost::multiprecision::number
|
/src/solidity/libevmasm/ConstantOptimiser.cpp:226 |
982 | 3403 | solidity::yul::CodeTransform::operator()(solidity::yul::FunctionDefinitionconst&) | /src/solidity/libyul/backends/evm/EVMCodeTransform.cpp:397 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/solidity/test/tools/ossfuzz/StackReuseCodegenFuzzer.cpp | 2 |
/src/solidity/test/tools/ossfuzz/yulProto.pb.h | 292 |
/src/solidity/test/tools/ossfuzz/yulProto.pb.cc | 16 |
/usr/include/google/protobuf/message.h | 1 |
/usr/include/google/protobuf/message_lite.h | 4 |
/usr/include/google/protobuf/metadata_lite.h | 7 |
/usr/include/google/protobuf/generated_message_util.h | 1 |
/src/solidity/test/tools/ossfuzz/protoToYul.h | 7 |
/src/solidity/liblangutil/EVMVersion.h | 20 |
/src/solidity/test/tools/ossfuzz/protoToYul.cpp | 64 |
/usr/include/google/protobuf/wire_format_lite.h | 6 |
/usr/include/google/protobuf/io/coded_stream.h | 4 |
/usr/include/google/protobuf/stubs/port.h | 2 |
/usr/include/google/protobuf/repeated_ptr_field.h | 11 |
/src/solidity/libyul/Exceptions.h | 6 |
/usr/local/include/c++/v1/exception | 2 |
/usr/include/boost/exception/exception.hpp | 17 |
/src/solidity/libsolutil/Exceptions.h | 5 |
/src/solidity/libsolutil/Assertions.h | 1 |
/usr/include/boost/exception/detail/error_info_impl.hpp | 6 |
/usr/include/boost/exception/info.hpp | 17 |
/usr/include/boost/smart_ptr/shared_ptr.hpp | 7 |
/usr/include/boost/smart_ptr/detail/shared_count.hpp | 4 |
/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp | 1 |
/usr/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp | 6 |
/usr/include/boost/core/checked_delete.hpp | 1 |
/usr/include/boost/exception/detail/type_info.hpp | 1 |
/usr/include/boost/throw_exception.hpp | 20 |
/usr/include/google/protobuf/arenastring.h | 2 |
/usr/include/google/protobuf/explicitly_constructed.h | 1 |
/src/solidity/build/deps/include/range/v3/action/remove_if.hpp | 3 |
/src/solidity/build/deps/include/range/v3/algorithm/remove_if.hpp | 2 |
/src/solidity/build/deps/include/range/v3/range/access.hpp | 11 |
/src/solidity/build/deps/include/range/v3/functional/reference_wrapper.hpp | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/find_if.hpp | 1 |
/src/solidity/build/deps/include/range/v3/functional/invoke.hpp | 6 |
/src/solidity/build/deps/include/range/v3/functional/identity.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/operations.hpp | 4 |
/src/solidity/build/deps/include/range/v3/iterator/access.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/move.hpp | 1 |
/src/solidity/build/deps/include/range/v3/action/erase.hpp | 2 |
/usr/include/boost/operators.hpp | 2 |
/usr/local/include/c++/v1/optional | 23 |
/src/solidity/libsolutil/Whiskers.cpp | 6 |
/src/solidity/libsolutil/Whiskers.h | 3 |
/src/solidity/libsolutil/StringUtils.cpp | 1 |
/usr/include/boost/algorithm/string/classification.hpp | 1 |
/usr/include/boost/range/as_literal.hpp | 5 |
/usr/include/boost/algorithm/string/detail/classification.hpp | 4 |
/usr/include/boost/range/distance.hpp | 1 |
/usr/include/boost/range/begin.hpp | 6 |
/usr/include/boost/range/iterator_range_core.hpp | 12 |
/usr/include/boost/range/end.hpp | 6 |
/usr/include/boost/iterator/distance.hpp | 2 |
/usr/include/boost/algorithm/string/split.hpp | 1 |
/usr/include/boost/algorithm/string/finder.hpp | 1 |
/usr/include/boost/algorithm/string/detail/finder.hpp | 3 |
/usr/include/boost/algorithm/string/iter_find.hpp | 1 |
/usr/include/boost/algorithm/string/find_iterator.hpp | 4 |
/usr/include/boost/algorithm/string/detail/find_iterator.hpp | 5 |
/usr/include/boost/function/function_template.hpp | 12 |
/usr/include/boost/function/function_base.hpp | 5 |
/usr/include/boost/core/addressof.hpp | 2 |
/usr/include/boost/iterator/transform_iterator.hpp | 3 |
/usr/include/boost/iterator/iterator_adaptor.hpp | 3 |
/usr/include/boost/multiprecision/cpp_int.hpp | 33 |
/src/solidity/build/deps/include/range/v3/algorithm/all_of.hpp | 3 |
/src/solidity/libsolutil/FixedHash.h | 14 |
/src/solidity/libsolutil/CommonData.cpp | 5 |
/src/solidity/libsolutil/CommonData.h | 46 |
/usr/include/boost/multiprecision/detail/number_compare.hpp | 36 |
/usr/include/boost/multiprecision/detail/constexpr.hpp | 4 |
/usr/include/boost/assert/source_location.hpp | 4 |
/usr/include/boost/multiprecision/cpp_int/cpp_int_config.hpp | 2 |
/usr/include/boost/multiprecision/cpp_int/multiply.hpp | 8 |
/usr/include/boost/multiprecision/cpp_int/add.hpp | 7 |
/usr/local/include/c++/v1/initializer_list | 4 |
/src/solidity/test/EVMHost.cpp | 26 |
/src/solidity/test/evmc/mocked_host.hpp | 4 |
/src/solidity/test/evmc/evmc.hpp | 22 |
/src/solidity/libyul/YulString.h | 13 |
/src/solidity/libsolidity/interface/OptimiserSettings.h | 6 |
/src/solidity/test/tools/ossfuzz/YulEvmoneInterface.h | 1 |
/src/solidity/liblangutil/DebugInfoSelection.cpp | 1 |
/src/solidity/liblangutil/DebugInfoSelection.h | 2 |
/src/solidity/build/deps/include/range/v3/view/view.hpp | 31 |
/src/solidity/build/deps/include/range/v3/view/map.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/all.hpp | 8 |
/src/solidity/build/deps/include/range/v3/range_fwd.hpp | 5 |
/src/solidity/build/deps/include/range/v3/view/ref.hpp | 7 |
/src/solidity/build/deps/include/range/v3/view/transform.hpp | 19 |
/src/solidity/build/deps/include/range/v3/functional/indirect.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/adaptor.hpp | 8 |
/src/solidity/build/deps/include/range/v3/view/facade.hpp | 12 |
/src/solidity/build/deps/include/range/v3/detail/range_access.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/interface.hpp | 7 |
/src/solidity/build/deps/include/range/v3/utility/compressed_pair.hpp | 1 |
/src/solidity/build/deps/include/range/v3/utility/box.hpp | 6 |
/src/solidity/build/deps/include/range/v3/iterator/basic_iterator.hpp | 44 |
/src/solidity/libyul/YulStack.h | 6 |
/src/solidity/liblangutil/CharStreamProvider.h | 2 |
/src/solidity/liblangutil/ErrorReporter.h | 6 |
/src/solidity/test/tools/ossfuzz/YulEvmoneInterface.cpp | 4 |
/src/solidity/libyul/YulStack.cpp | 12 |
/src/solidity/libyul/backends/evm/EVMDialect.cpp | 8 |
/src/solidity/libyul/backends/wasm/WasmDialect.cpp | 1 |
/src/solidity/libyul/ObjectParser.h | 1 |
/src/solidity/liblangutil/ParserBase.h | 4 |
/src/solidity/libyul/ObjectParser.cpp | 8 |
/src/solidity/liblangutil/ParserBase.cpp | 11 |
/src/solidity/liblangutil/Scanner.h | 21 |
/src/solidity/liblangutil/Exceptions.h | 8 |
/src/solidity/liblangutil/CharStream.h | 8 |
/src/solidity/liblangutil/Scanner.cpp | 29 |
/src/solidity/liblangutil/Common.h | 6 |
/src/solidity/liblangutil/CharStream.cpp | 4 |
/src/solidity/liblangutil/SourceLocation.h | 6 |
/src/solidity/liblangutil/Token.cpp | 9 |
/src/solidity/libsolutil/StringUtils.h | 7 |
/src/solidity/liblangutil/Token.h | 6 |
/src/solidity/liblangutil/ErrorReporter.cpp | 7 |
/src/solidity/libyul/Object.h | 2 |
/src/solidity/libyul/AsmParser.h | 13 |
/src/solidity/libyul/AsmParser.cpp | 20 |
/src/solidity/libsolutil/Common.h | 6 |
/usr/include/boost/algorithm/string/predicate.hpp | 6 |
/usr/include/boost/algorithm/string/detail/predicate.hpp | 1 |
/usr/include/boost/algorithm/string/compare.hpp | 1 |
/src/solidity/libyul/AST.h | 40 |
/src/solidity/libyul/Object.cpp | 1 |
/src/solidity/libyul/AsmAnalysis.h | 2 |
/src/solidity/libyul/SideEffects.h | 1 |
/src/solidity/libyul/backends/evm/EVMDialect.h | 7 |
/src/solidity/libyul/AsmAnalysis.cpp | 4 |
/src/solidity/libyul/ScopeFiller.cpp | 2 |
/src/solidity/libyul/optimiser/Suite.cpp | 10 |
/src/solidity/libyul/optimiser/Disambiguator.h | 1 |
/src/solidity/libyul/optimiser/ASTCopier.h | 5 |
/src/solidity/libyul/optimiser/NameDispenser.cpp | 5 |
/src/solidity/libyul/optimiser/ASTCopier.cpp | 2 |
/src/solidity/libyul/optimiser/NameCollector.h | 4 |
/src/solidity/libyul/optimiser/ASTWalker.h | 8 |
/src/solidity/libyul/optimiser/Suite.h | 1 |
/src/solidity/libyul/optimiser/Metrics.cpp | 1 |
/src/solidity/libyul/optimiser/Metrics.h | 1 |
/src/solidity/libyul/optimiser/ASTWalker.cpp | 4 |
/src/solidity/libyul/optimiser/NameSimplifier.h | 2 |
/src/solidity/libyul/optimiser/NameSimplifier.cpp | 2 |
/src/solidity/libyul/optimiser/OptimizerUtilities.cpp | 2 |
/src/solidity/libyul/optimiser/NameDispenser.h | 2 |
/src/solidity/libyul/optimiser/StackCompressor.cpp | 7 |
/src/solidity/libyul/optimiser/Semantics.cpp | 2 |
/src/solidity/libyul/optimiser/Semantics.h | 3 |
/src/solidity/libyul/AsmAnalysisInfo.h | 3 |
/src/solidity/libyul/backends/evm/ControlFlowGraphBuilder.cpp | 11 |
/src/solidity/libyul/backends/evm/ControlFlowGraph.h | 4 |
/src/solidity/build/deps/include/range/v3/functional/bind_back.hpp | 7 |
/src/solidity/build/deps/include/range/v3/range/conversion.hpp | 10 |
/src/solidity/build/deps/include/range/v3/range/primitives.hpp | 4 |
/src/solidity/build/deps/include/range/v3/utility/semiregular_box.hpp | 2 |
/src/solidity/libsolutil/Algorithms.h | 12 |
/src/solidity/libsolutil/cxx20.h | 1 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.cpp | 30 |
/src/solidity/libyul/backends/evm/StackLayoutGenerator.h | 2 |
/src/solidity/build/deps/include/range/v3/algorithm/find.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/enumerate.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/zip.hpp | 6 |
/src/solidity/build/deps/include/range/v3/view/zip_with.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/reverse.hpp | 6 |
/src/solidity/build/deps/include/range/v3/utility/optional.hpp | 10 |
/src/solidity/build/deps/include/range/v3/utility/tuple_algorithm.hpp | 2 |
/src/solidity/build/deps/include/range/v3/detail/adl_get.hpp | 1 |
/src/solidity/build/deps/include/range/v3/iterator/reverse_iterator.hpp | 3 |
/src/solidity/build/deps/include/range/v3/view/iota.hpp | 6 |
/src/solidity/libyul/backends/evm/StackHelpers.h | 6 |
/src/solidity/build/deps/include/range/v3/algorithm/any_of.hpp | 4 |
/src/solidity/build/deps/include/range/v3/view/drop.hpp | 1 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.cpp | 4 |
/src/solidity/libyul/optimiser/DataFlowAnalyzer.h | 3 |
/src/solidity/libyul/optimiser/KnowledgeBase.h | 2 |
/src/solidity/libyul/optimiser/Rematerialiser.cpp | 2 |
/src/solidity/libyul/optimiser/NameCollector.cpp | 3 |
/src/solidity/libyul/optimiser/Rematerialiser.h | 1 |
/src/solidity/libyul/optimiser/UnusedPruner.cpp | 5 |
/src/solidity/libyul/optimiser/UnusedPruner.h | 2 |
/src/solidity/libyul/CompilabilityChecker.cpp | 1 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.cpp | 2 |
/src/solidity/libyul/Dialect.h | 3 |
/src/solidity/libevmasm/Instruction.h | 7 |
/src/solidity/liblangutil/EVMVersion.cpp | 1 |
/src/solidity/libevmasm/Instruction.cpp | 2 |
/src/solidity/libyul/ControlFlowSideEffects.h | 1 |
/src/solidity/libevmasm/SemanticInformation.cpp | 9 |
/src/solidity/libyul/backends/evm/NoOutputAssembly.h | 1 |
/src/solidity/libyul/backends/evm/AbstractAssembly.h | 2 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.h | 5 |
/src/solidity/libyul/backends/evm/EVMCodeTransform.cpp | 13 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.h | 3 |
/src/solidity/libyul/backends/evm/VariableReferenceCounter.cpp | 1 |
/src/solidity/build/deps/include/range/v3/algorithm/none_of.hpp | 3 |
/src/solidity/libevmasm/Exceptions.h | 5 |
/src/solidity/build/deps/include/range/v3/algorithm/max.hpp | 1 |
/src/solidity/libyul/CompilabilityChecker.h | 1 |
/src/solidity/libyul/backends/evm/ConstantOptimiser.h | 1 |
/src/solidity/libyul/optimiser/StackLimitEvader.cpp | 6 |
/src/solidity/build/deps/include/range/v3/view/take.hpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.cpp | 2 |
/src/solidity/libyul/optimiser/FunctionCallFinder.h | 1 |
/src/solidity/libyul/Utilities.cpp | 4 |
/usr/include/boost/multiprecision/detail/number_base.hpp | 15 |
/usr/local/include/c++/v1/stdexcept | 1 |
/usr/include/boost/multiprecision/cpp_int/bitwise.hpp | 10 |
/src/solidity/libyul/optimiser/CallGraphGenerator.cpp | 5 |
/src/solidity/libyul/optimiser/CallGraphGenerator.h | 4 |
/src/solidity/build/deps/include/range/v3/view/concat.hpp | 1 |
/src/solidity/libyul/optimiser/StackToMemoryMover.cpp | 9 |
/src/solidity/libyul/optimiser/StackToMemoryMover.h | 3 |
/usr/include/boost/multiprecision/detail/precision.hpp | 7 |
/src/solidity/libsolutil/Numeric.h | 12 |
/usr/include/boost/multiprecision/detail/default_ops.hpp | 9 |
/usr/include/boost/multiprecision/number.hpp | 24 |
/usr/include/boost/multiprecision/cpp_int/misc.hpp | 2 |
/src/solidity/libyul/optimiser/VarNameCleaner.h | 2 |
/src/solidity/libyul/optimiser/VarNameCleaner.cpp | 1 |
/src/solidity/libevmasm/Assembly.h | 7 |
/src/solidity/libevmasm/LinkerObject.h | 2 |
/src/solidity/libyul/backends/evm/EthAssemblyAdapter.cpp | 1 |
/src/solidity/libyul/backends/evm/EVMObjectCompiler.cpp | 2 |
/src/solidity/libyul/backends/evm/EVMObjectCompiler.h | 1 |
/src/solidity/libyul/backends/evm/OptimizedEVMCodeTransform.cpp | 8 |
/src/solidity/build/deps/include/range/v3/view/take_last.hpp | 1 |
/src/solidity/libyul/backends/evm/OptimizedEVMCodeTransform.h | 1 |
/src/solidity/libsolutil/Exceptions.cpp | 1 |
/usr/include/boost/exception/get_error_info.hpp | 2 |
/usr/include/boost/smart_ptr/detail/operator_bool.hpp | 1 |
/src/solidity/libevmasm/Assembly.cpp | 14 |
/src/solidity/libevmasm/JumpdestRemover.cpp | 2 |
/src/solidity/libevmasm/AssemblyItem.h | 21 |
/src/solidity/libevmasm/AssemblyItem.cpp | 8 |
/src/solidity/libevmasm/BlockDeduplicator.cpp | 2 |
/src/solidity/libevmasm/Inliner.h | 1 |
/src/solidity/libevmasm/Inliner.cpp | 10 |
/src/solidity/build/deps/include/range/v3/view/slice.hpp | 1 |
/src/solidity/build/deps/include/range/v3/view/span.hpp | 5 |
/src/solidity/build/deps/include/range/v3/view/subrange.hpp | 2 |
/src/solidity/build/deps/include/range/v3/view/drop_last.hpp | 4 |
/src/solidity/build/deps/include/range/v3/numeric/accumulate.hpp | 3 |
/src/solidity/libevmasm/GasMeter.h | 6 |
/usr/include/boost/core/empty_value.hpp | 3 |
/src/solidity/libevmasm/GasMeter.cpp | 3 |
/usr/include/boost/multiprecision/detail/et_ops.hpp | 10 |
/src/solidity/libevmasm/JumpdestRemover.h | 1 |
/src/solidity/libevmasm/PeepholeOptimiser.h | 2 |
/src/solidity/libevmasm/PeepholeOptimiser.cpp | 7 |
/src/solidity/libevmasm/BlockDeduplicator.h | 3 |
/src/solidity/libevmasm/KnownState.h | 12 |
/usr/include/boost/bimap/bimap.hpp | 2 |
/usr/include/boost/multi_index_container.hpp | 11 |
/usr/include/boost/multi_index/detail/converter.hpp | 1 |
/usr/include/boost/bimap/views/set_view.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/set_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/ordered_associative_container_adaptor.hpp | 2 |
/usr/include/boost/bimap/container_adaptor/associative_container_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/container_adaptor.hpp | 1 |
/usr/include/boost/bimap/container_adaptor/detail/functor_bag.hpp | 1 |
/usr/include/boost/utility/base_from_member.hpp | 2 |
/usr/include/boost/multi_index/detail/header_holder.hpp | 3 |
/usr/include/boost/tuple/detail/tuple_basic.hpp | 5 |
/usr/include/boost/multi_index/detail/ord_index_impl.hpp | 17 |
/usr/include/boost/multi_index/detail/index_base.hpp | 4 |
/usr/include/boost/multi_index/detail/ord_index_node.hpp | 14 |
/usr/include/boost/bimap/views/map_view.hpp | 2 |
/usr/include/boost/bimap/container_adaptor/map_adaptor.hpp | 1 |
/src/solidity/libevmasm/CommonSubexpressionEliminator.h | 4 |
/usr/include/boost/multi_index/detail/copy_map.hpp | 10 |
/usr/include/boost/multi_index/detail/auto_space.hpp | 3 |
/usr/include/boost/multi_index/detail/bidir_node_iterator.hpp | 3 |
/usr/include/boost/multi_index/ordered_index.hpp | 1 |
/usr/include/boost/multi_index/detail/raw_ptr.hpp | 5 |
/usr/inclu |