/Users/eugenesiegel/btc/bitcoin/src/util/string.h
| Line | Count | Source (jump to first uncovered line) | 
| 1 |  | // Copyright (c) 2019-present The Bitcoin Core developers | 
| 2 |  | // Distributed under the MIT software license, see the accompanying | 
| 3 |  | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | 
| 4 |  |  | 
| 5 |  | #ifndef BITCOIN_UTIL_STRING_H | 
| 6 |  | #define BITCOIN_UTIL_STRING_H | 
| 7 |  |  | 
| 8 |  | #include <span.h> | 
| 9 |  |  | 
| 10 |  | #include <array> | 
| 11 |  | #include <cstdint> | 
| 12 |  | #include <cstring> | 
| 13 |  | #include <locale> | 
| 14 |  | #include <sstream> | 
| 15 |  | #include <string>      // IWYU pragma: export | 
| 16 |  | #include <string_view> // IWYU pragma: export | 
| 17 |  | #include <vector> | 
| 18 |  |  | 
| 19 |  | namespace util { | 
| 20 |  | namespace detail { | 
| 21 |  | template <unsigned num_params> | 
| 22 |  | constexpr static void CheckNumFormatSpecifiers(const char* str) | 
| 23 | 0 | { | 
| 24 | 0 |     unsigned count_normal{0}; // Number of "normal" specifiers, like %s | 
| 25 | 0 |     unsigned count_pos{0};    // Max number in positional specifier, like %8$s | 
| 26 | 0 |     for (auto it{str}; *it != '\0'; ++it) { | 
| 27 | 0 |         if (*it != '%' || *++it == '%') continue; // Skip escaped %% | 
| 28 | 0 | 
 | 
| 29 | 0 |         auto add_arg = [&] { | 
| 30 | 0 |             unsigned maybe_num{0}; | 
| 31 | 0 |             while ('0' <= *it && *it <= '9') { | 
| 32 | 0 |                 maybe_num *= 10; | 
| 33 | 0 |                 maybe_num += *it - '0'; | 
| 34 | 0 |                 ++it; | 
| 35 | 0 |             } | 
| 36 | 0 | 
 | 
| 37 | 0 |             if (*it == '$') { | 
| 38 | 0 |                 ++it; | 
| 39 | 0 |                 // Positional specifier, like %8$s | 
| 40 | 0 |                 if (maybe_num == 0) throw "Positional format specifier must have position of at least 1"; | 
| 41 | 0 |                 count_pos = std::max(count_pos, maybe_num); | 
| 42 | 0 |             } else { | 
| 43 | 0 |                 // Non-positional specifier, like %s | 
| 44 | 0 |                 ++count_normal; | 
| 45 | 0 |             } | 
| 46 | 0 |         }; | 
| 47 | 0 | 
 | 
| 48 | 0 |         // Increase argument count and consume positional specifier, if present. | 
| 49 | 0 |         add_arg(); | 
| 50 | 0 | 
 | 
| 51 | 0 |         // Consume flags. | 
| 52 | 0 |         while (*it == '#' || *it == '0' || *it == '-' || *it == ' ' || *it == '+') ++it; | 
| 53 | 0 | 
 | 
| 54 | 0 |         auto parse_size = [&] { | 
| 55 | 0 |             if (*it == '*') { | 
| 56 | 0 |                 ++it; | 
| 57 | 0 |                 add_arg(); | 
| 58 | 0 |             } else { | 
| 59 | 0 |                 while ('0' <= *it && *it <= '9') ++it; | 
| 60 | 0 |             } | 
| 61 | 0 |         }; | 
| 62 | 0 | 
 | 
| 63 | 0 |         // Consume dynamic or static width value. | 
| 64 | 0 |         parse_size(); | 
| 65 | 0 | 
 | 
| 66 | 0 |         // Consume dynamic or static precision value. | 
| 67 | 0 |         if (*it == '.') { | 
| 68 | 0 |             ++it; | 
| 69 | 0 |             parse_size(); | 
| 70 | 0 |         } | 
| 71 | 0 | 
 | 
| 72 | 0 |         if (*it == '\0') throw "Format specifier incorrectly terminated by end of string"; | 
| 73 | 0 | 
 | 
| 74 | 0 |         // Length and type in "[flags][width][.precision][length]type" | 
| 75 | 0 |         // is not checked. Parsing continues with the next '%'. | 
| 76 | 0 |     } | 
| 77 | 0 |     if (count_normal && count_pos) throw "Format specifiers must be all positional or all non-positional!"; | 
| 78 | 0 |     unsigned count{count_normal | count_pos}; | 
| 79 | 0 |     if (num_params != count) throw "Format specifier count must match the argument count!"; | 
| 80 | 0 | } Unexecuted instantiation: addition_overflow.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: asmap.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: asmap_direct.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: autofile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: base_encode_decode.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: bip324.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: bitdeque.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: bitset.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: block.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: block_header.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: block_index.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: blockfilter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: bloom_filter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: buffered_file.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: chain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: checkqueue.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: cluster_linearize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: cmpctblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: cmpctblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: cmpctblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: coins_view.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: coinscache_sim.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: connman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: connman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: connman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: crypto.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_aes256.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_aes256cbc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_chacha20.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_chacha20poly1305.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_diff_fuzz_chacha20.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_hkdf_hmac_sha256_l32.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypto_poly1305.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: cuckoocache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: deserialize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: deserialize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: deserialize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: feefrac.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: fee_rate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: feeratediagram.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: flatfile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: float.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: golomb_rice.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: http_request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: http_request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: integer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: integer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: key.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: kitchen_sink.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: load_external_block_file.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: locale.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: merkle.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: merkleblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: miniscript.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: minisketch.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: mini_miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: muhash.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: multiplication_overflow.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: net_permissions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: net_permissions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: net_permissions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: netbase_dns_lookup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: netbase_dns_lookup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: netbase_dns_lookup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: node_eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: node_eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: node_eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: p2p_handshake.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: p2p_handshake.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: p2p_handshake.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: p2p_headers_presync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: p2p_headers_presync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: p2p_transport_serialization.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: p2p_transport_serialization.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: package_eval.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: parse_hd_keypath.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: partially_downloaded_block.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: policy_estimator.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: policy_estimator_io.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: poolresource.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: pow.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: prevector.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: primitives_transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: process_message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: process_message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: process_message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: process_messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: process_messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: process_messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: protocol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: protocol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: psbt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: random.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: rbf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: rolling_bloom_filter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: rpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_assets_test_minimizer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_descriptor_cache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_flags.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_format.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_interpreter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_ops.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_sigcache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: script_sign.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: scriptnum_ops.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: secp256k1_ec_seckey_import_export_der.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: secp256k1_ecdsa_signature_parse_der_lax.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: signature_checker.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: signet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: socks5.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: socks5.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: socks5.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: span.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: string.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: string.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: strprintf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: system.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txdownloadman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: txdownloadman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txdownloadman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKcUnexecuted instantiation: tx_in.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: tx_out.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: tx_pool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txgraph.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txorphan.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: txorphan.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txrequest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: txrequest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: utxo_snapshot.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: utxo_snapshot.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: utxo_total_supply.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: validation_load_mempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: vecdeque.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: versionbits.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: coincontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: coinselection.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: crypter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: wallet_bdb_parser.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: mempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: threadinterrupt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: fuzz.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: client.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: chain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKcUnexecuted instantiation: chain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: chainparams.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: chainparams.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: bloom.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: config.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: config.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: config.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: netif.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: netif.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: settings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: settings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: system.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: core_read.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: core_write.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: core_write.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: core_write.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: external_signer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: external_signer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: key_io.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: key_io.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: net_types.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: net_types.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: feerate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: rawtransaction_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: rawtransaction_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: descriptor.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: descriptor.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: descriptor.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: signingprovider.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: asmap.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: asmap.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: bip32.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: check.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKcUnexecuted instantiation: check.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: exception.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: exception.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: exception.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: fs_helpers.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: fs_helpers.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: moneystr.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: sock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: sock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: sock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: syserror.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: syserror.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: thread.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: time.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKcUnexecuted instantiation: time.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: random.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: streams.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: coinselection.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: coinselection.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: db.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: db.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: external_signer_scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: migrate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: migrate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: migrate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj20EEEvPKcUnexecuted instantiation: sqlite.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: sqlite.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: sqlite.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: mining.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: random.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: setup_common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: setup_common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txmempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txmempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: blockencodings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: blockencodings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: blockencodings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKcUnexecuted instantiation: tx_verify.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: tx_verify.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: flatfile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: flatfile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: httprpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: httprpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: httprpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: base.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: base.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: coinstatsindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: coinstatsindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: coinstatsindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: txindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: coinstats.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: context.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: mapport.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: mapport.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: mapport.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj8EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKcUnexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: netgroup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: netgroup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: abort.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: blockmanager_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKcUnexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: caches.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: caches.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: chainstate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: chainstate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: chainstatemanager_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: chainstatemanager_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: coin.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: coins_view_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: context.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: database_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: interface_ui.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: kernel_notifications.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: mempool_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: mempool_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: mempool_persist_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: peerman_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: peerman_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: timeoffsets.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: timeoffsets.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKcUnexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: txreconciliation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: txreconciliation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: noui.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: noui.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: ephemeral_policy.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj18EEEvPKcUnexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKcUnexecuted instantiation: rbf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: rbf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: truc_policy.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: truc_policy.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: rest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: rest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: rest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: mempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: mining.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: node.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: node.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: output_script.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: rawtransaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: rawtransaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: server.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: server.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: server_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: server_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txoutproof.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: sigcache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: signet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: txdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: txdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: txdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: txmempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKcUnexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj12EEEvPKcUnexecuted instantiation: validationinterface.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKcUnexecuted instantiation: validationinterface.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: validationinterface.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: clientversion.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKcUnexecuted instantiation: clientversion.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKcUnexecuted instantiation: clientversion.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKcUnexecuted instantiation: block.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj8EEEvPKcUnexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc | 
| 81 |  | } // namespace detail | 
| 82 |  |  | 
| 83 |  | /** | 
| 84 |  |  * @brief A wrapper for a compile-time partially validated format string | 
| 85 |  |  * | 
| 86 |  |  * This struct can be used to enforce partial compile-time validation of format | 
| 87 |  |  * strings, to reduce the likelihood of tinyformat throwing exceptions at | 
| 88 |  |  * run-time. Validation is partial to try and prevent the most common errors | 
| 89 |  |  * while avoiding re-implementing the entire parsing logic. | 
| 90 |  |  */ | 
| 91 |  | template <unsigned num_params> | 
| 92 |  | struct ConstevalFormatString { | 
| 93 |  |     const char* const fmt; | 
| 94 |  |     consteval ConstevalFormatString(const char* str) : fmt{str} { detail::CheckNumFormatSpecifiers<num_params>(fmt); } | 
| 95 |  | }; | 
| 96 |  |  | 
| 97 |  | void ReplaceAll(std::string& in_out, const std::string& search, const std::string& substitute); | 
| 98 |  |  | 
| 99 |  | /** Split a string on any char found in separators, returning a vector. | 
| 100 |  |  * | 
| 101 |  |  * If sep does not occur in sp, a singleton with the entirety of sp is returned. | 
| 102 |  |  * | 
| 103 |  |  * @param[in] include_sep Whether to include the separator at the end of the left side of the splits. | 
| 104 |  |  * | 
| 105 |  |  * Note that this function does not care about braces, so splitting | 
| 106 |  |  * "foo(bar(1),2),3) on ',' will return {"foo(bar(1)", "2)", "3)"}. | 
| 107 |  |  * | 
| 108 |  |  * If include_sep == true, splitting "foo(bar(1),2),3) on ',' | 
| 109 |  |  * will return: | 
| 110 |  |  *  - foo(bar(1), | 
| 111 |  |  *  - 2), | 
| 112 |  |  *  - 3) | 
| 113 |  |  */ | 
| 114 |  | template <typename T = std::span<const char>> | 
| 115 |  | std::vector<T> Split(const std::span<const char>& sp, std::string_view separators, bool include_sep = false) | 
| 116 | 0 | { | 
| 117 | 0 |     std::vector<T> ret; | 
| 118 | 0 |     auto it = sp.begin(); | 
| 119 | 0 |     auto start = it; | 
| 120 | 0 |     while (it != sp.end()) { | 
| 121 | 0 |         if (separators.find(*it) != std::string::npos) { | 
| 122 | 0 |             if (include_sep) { | 
| 123 | 0 |                 ret.emplace_back(start, it + 1); | 
| 124 | 0 |             } else { | 
| 125 | 0 |                 ret.emplace_back(start, it); | 
| 126 | 0 |             } | 
| 127 | 0 |             start = it + 1; | 
| 128 | 0 |         } | 
| 129 | 0 |         ++it; | 
| 130 | 0 |     } | 
| 131 | 0 |     ret.emplace_back(start, it); | 
| 132 | 0 |     return ret; | 
| 133 | 0 | } Unexecuted instantiation: _ZN4util5SplitINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS1_6vectorIT_NS5_IS9_EEEERKNS1_4spanIKcLm18446744073709551615EEENS1_17basic_string_viewIcS4_EEbUnexecuted instantiation: _ZN4util5SplitINSt3__14spanIKcLm18446744073709551615EEEEENS1_6vectorIT_NS1_9allocatorIS6_EEEERKS4_NS1_17basic_string_viewIcNS1_11char_traitsIcEEEEbUnexecuted instantiation: _ZN4util5SplitINSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEEENS1_6vectorIT_NS1_9allocatorIS7_EEEERKNS1_4spanIKcLm18446744073709551615EEES5_b | 
| 134 |  |  | 
| 135 |  | /** Split a string on every instance of sep, returning a vector. | 
| 136 |  |  * | 
| 137 |  |  * If sep does not occur in sp, a singleton with the entirety of sp is returned. | 
| 138 |  |  * | 
| 139 |  |  * Note that this function does not care about braces, so splitting | 
| 140 |  |  * "foo(bar(1),2),3) on ',' will return {"foo(bar(1)", "2)", "3)"}. | 
| 141 |  |  */ | 
| 142 |  | template <typename T = std::span<const char>> | 
| 143 |  | std::vector<T> Split(const std::span<const char>& sp, char sep, bool include_sep = false) | 
| 144 | 0 | { | 
| 145 | 0 |     return Split<T>(sp, std::string_view{&sep, 1}, include_sep); | 
| 146 | 0 | } Unexecuted instantiation: _ZN4util5SplitINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS1_6vectorIT_NS5_IS9_EEEERKNS1_4spanIKcLm18446744073709551615EEEcbUnexecuted instantiation: _ZN4util5SplitINSt3__14spanIKcLm18446744073709551615EEEEENS1_6vectorIT_NS1_9allocatorIS6_EEEERKS4_cbUnexecuted instantiation: _ZN4util5SplitINSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEEENS1_6vectorIT_NS1_9allocatorIS7_EEEERKNS1_4spanIKcLm18446744073709551615EEEcb | 
| 147 |  |  | 
| 148 |  | [[nodiscard]] inline std::vector<std::string> SplitString(std::string_view str, char sep) | 
| 149 | 0 | { | 
| 150 | 0 |     return Split<std::string>(str, sep); | 
| 151 | 0 | } | 
| 152 |  |  | 
| 153 |  | [[nodiscard]] inline std::vector<std::string> SplitString(std::string_view str, std::string_view separators) | 
| 154 | 0 | { | 
| 155 | 0 |     return Split<std::string>(str, separators); | 
| 156 | 0 | } | 
| 157 |  |  | 
| 158 |  | [[nodiscard]] inline std::string_view TrimStringView(std::string_view str, std::string_view pattern = " \f\n\r\t\v") | 
| 159 | 102k | { | 
| 160 | 102k |     std::string::size_type front = str.find_first_not_of(pattern); | 
| 161 | 102k |     if (front == std::string::npos) { | 
| 162 | 0 |         return {}; | 
| 163 | 0 |     } | 
| 164 | 102k |     std::string::size_type end = str.find_last_not_of(pattern); | 
| 165 | 102k |     return str.substr(front, end - front + 1); | 
| 166 | 102k | } | 
| 167 |  |  | 
| 168 |  | [[nodiscard]] inline std::string TrimString(std::string_view str, std::string_view pattern = " \f\n\r\t\v") | 
| 169 | 0 | { | 
| 170 | 0 |     return std::string(TrimStringView(str, pattern)); | 
| 171 | 0 | } | 
| 172 |  |  | 
| 173 |  | [[nodiscard]] inline std::string_view RemoveSuffixView(std::string_view str, std::string_view suffix) | 
| 174 | 0 | { | 
| 175 | 0 |     if (str.ends_with(suffix)) { | 
| 176 | 0 |         return str.substr(0, str.size() - suffix.size()); | 
| 177 | 0 |     } | 
| 178 | 0 |     return str; | 
| 179 | 0 | } | 
| 180 |  |  | 
| 181 |  | [[nodiscard]] inline std::string_view RemovePrefixView(std::string_view str, std::string_view prefix) | 
| 182 | 102k | { | 
| 183 | 102k |     if (str.starts_with(prefix)) { | 
| 184 | 0 |         return str.substr(prefix.size()); | 
| 185 | 0 |     } | 
| 186 | 102k |     return str; | 
| 187 | 102k | } | 
| 188 |  |  | 
| 189 |  | [[nodiscard]] inline std::string RemovePrefix(std::string_view str, std::string_view prefix) | 
| 190 | 0 | { | 
| 191 | 0 |     return std::string(RemovePrefixView(str, prefix)); | 
| 192 | 0 | } | 
| 193 |  |  | 
| 194 |  | /** | 
| 195 |  |  * Join all container items. Typically used to concatenate strings but accepts | 
| 196 |  |  * containers with elements of any type. | 
| 197 |  |  * | 
| 198 |  |  * @param container The items to join | 
| 199 |  |  * @param separator The separator | 
| 200 |  |  * @param unary_op  Apply this operator to each item | 
| 201 |  |  */ | 
| 202 |  | template <typename C, typename S, typename UnaryOp> | 
| 203 |  | // NOLINTNEXTLINE(misc-no-recursion) | 
| 204 |  | auto Join(const C& container, const S& separator, UnaryOp unary_op) | 
| 205 | 483k | { | 
| 206 | 483k |     decltype(unary_op(*container.begin())) ret; | 
| 207 | 483k |     bool first{true}; | 
| 208 | 4.51M |     for (const auto& item : container) { | 
| 209 | 4.51M |         if (!first) ret += separator4.05M; | 
| 210 | 4.51M |         ret += unary_op(item); | 
| 211 | 4.51M |         first = false; | 
| 212 | 4.51M |     } | 
| 213 | 483k |     return ret; | 
| 214 | 483k | } Unexecuted instantiation: _ZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEA2_cZNS_17MakeUnorderedListERKSA_EUlRKS8_E_EEDaRKT_RKT0_T1__ZN4util4JoinINSt3__16vectorI11LogCategoryNS1_9allocatorIS3_EEEEA3_cZNK5BCLog6Logger19LogCategoriesStringEvEUlRKS3_E_EEDaRKT_RKT0_T1_| Line | Count | Source |  | 205 | 102k | { |  | 206 | 102k |     decltype(unary_op(*container.begin())) ret; |  | 207 | 102k |     bool first{true}; |  | 208 | 2.87M |     for (const auto& item : container) { |  | 209 | 2.87M |         if (!first) ret += separator2.76M; |  | 210 | 2.87M |         ret += unary_op(item); |  | 211 | 2.87M |         first = false; |  | 212 | 2.87M |     } |  | 213 | 102k |     return ret; |  | 214 | 102k | } | 
Unexecuted instantiation: _ZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEA4_cZNS_4JoinISA_SB_EEDaRKT_RKT0_EUlSF_E_EEDaSF_SI_T1_Unexecuted instantiation: _ZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEES8_ZNS_4JoinISA_S8_EEDaRKT_RKT0_EUlSE_E_EEDaSE_SH_T1__ZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEA3_cZNS_4JoinISA_SB_EEDaRKT_RKT0_EUlSF_E_EEDaSF_SI_T1_| Line | Count | Source |  | 205 | 205k | { |  | 206 | 205k |     decltype(unary_op(*container.begin())) ret; |  | 207 | 205k |     bool first{true}; |  | 208 | 1.07M |     for (const auto& item : container) { |  | 209 | 1.07M |         if (!first) ret += separator871k; |  | 210 | 1.07M |         ret += unary_op(item); |  | 211 | 1.07M |         first = false; |  | 212 | 1.07M |     } |  | 213 | 205k |     return ret; |  | 214 | 205k | } | 
Unexecuted instantiation: messages.cpp:_ZN4util4JoinINSt3__16vectorINS1_4pairINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE15FeeEstimateModeEENS7_ISB_EEEES9_ZN6common8FeeModesERKS9_E3$_0EEDaRKT_RKT0_T1_outputtype.cpp:_ZN4util4JoinINSt3__15arrayI10OutputTypeLm4EEEA3_cZ20FormatAllOutputTypesvE3$_0EEDaRKT_RKT0_T1_| Line | Count | Source |  | 205 | 102k | { |  | 206 | 102k |     decltype(unary_op(*container.begin())) ret; |  | 207 | 102k |     bool first{true}; |  | 208 | 410k |     for (const auto& item : container) { |  | 209 | 410k |         if (!first) ret += separator307k; |  | 210 | 410k |         ret += unary_op(item); |  | 211 | 410k |         first = false; |  | 212 | 410k |     } |  | 213 | 102k |     return ret; |  | 214 | 102k | } | 
Unexecuted instantiation: util.cpp:_ZN4util4JoinINSt3__16vectorI6RPCArgNS1_9allocatorIS3_EEEEA2_cZNKS3_8ToStringEbE3$_0EEDaRKT_RKT0_T1_logging.cpp:_ZN4util4JoinINSt3__16vectorIN5BCLog5LevelENS1_9allocatorIS4_EEEEA3_cZNKS3_6Logger15LogLevelsStringEvE3$_0EEDaRKT_RKT0_T1_| Line | Count | Source |  | 205 | 51.2k | { |  | 206 | 51.2k |     decltype(unary_op(*container.begin())) ret; |  | 207 | 51.2k |     bool first{true}; |  | 208 | 153k |     for (const auto& item : container) { |  | 209 | 153k |         if (!first) ret += separator102k; |  | 210 | 153k |         ret += unary_op(item); |  | 211 | 153k |         first = false; |  | 212 | 153k |     } |  | 213 | 51.2k |     return ret; |  | 214 | 51.2k | } | 
_ZN4util4JoinINSt3__16vectorI13bilingual_strNS1_9allocatorIS3_EEEES3_ZNS_4JoinIS6_S3_EEDaRKT_RKT0_EUlSA_E_EEDaSA_SD_T1_| Line | Count | Source |  | 205 | 21.8k | { |  | 206 | 21.8k |     decltype(unary_op(*container.begin())) ret; |  | 207 | 21.8k |     bool first{true}; |  | 208 | 21.8k |     for (const auto& item : container) { |  | 209 | 0 |         if (!first) ret += separator; |  | 210 | 0 |         ret += unary_op(item); |  | 211 | 0 |         first = false; |  | 212 | 0 |     } |  | 213 | 21.8k |     return ret; |  | 214 | 21.8k | } | 
Unexecuted instantiation: blockfilter.cpp:_ZN4util4JoinINSt3__13mapI15BlockFilterTypeNS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_4lessIS3_EENS7_INS1_4pairIKS3_S9_EEEEEEA3_cZ20ListBlockFilterTypesvE3$_0EEDaRKT_RKT0_T1_Unexecuted instantiation: validation.cpp:_ZN4util4JoinINSt3__16vectorIiNS1_9allocatorIiEEEEA3_cZN17ChainstateManager16ActivateSnapshotER8AutoFileRKN4node16SnapshotMetadataEbE3$_0EEDaRKT_RKT0_T1_ | 
| 215 |  |  | 
| 216 |  | template <typename C, typename S> | 
| 217 |  | auto Join(const C& container, const S& separator) | 
| 218 | 226k | { | 
| 219 | 1.07M |     return Join(container, separator, [](const auto& i) { return i; });Unexecuted instantiation: _ZZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEA4_cEEDaRKT_RKT0_ENKUlSE_E_clIS8_EEDaSE_Unexecuted instantiation: _ZZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEES8_EEDaRKT_RKT0_ENKUlSD_E_clIS8_EEDaSD__ZZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEA3_cEEDaRKT_RKT0_ENKUlSE_E_clIS8_EEDaSE_| Line | Count | Source |  | 219 | 1.07M |     return Join(container, separator, [](const auto& i) { return i; }); | 
Unexecuted instantiation: _ZZN4util4JoinINSt3__16vectorI13bilingual_strNS1_9allocatorIS3_EEEES3_EEDaRKT_RKT0_ENKUlS9_E_clIS3_EEDaS9_ | 
| 220 | 226k | } Unexecuted instantiation: _ZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEA4_cEEDaRKT_RKT0_Unexecuted instantiation: _ZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEES8_EEDaRKT_RKT0__ZN4util4JoinINSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEA3_cEEDaRKT_RKT0_| Line | Count | Source |  | 218 | 205k | { |  | 219 | 205k |     return Join(container, separator, [](const auto& i) { return i; }); |  | 220 | 205k | } | 
_ZN4util4JoinINSt3__16vectorI13bilingual_strNS1_9allocatorIS3_EEEES3_EEDaRKT_RKT0_| Line | Count | Source |  | 218 | 21.8k | { |  | 219 | 21.8k |     return Join(container, separator, [](const auto& i) { return i; }); |  | 220 | 21.8k | } | 
 | 
| 221 |  |  | 
| 222 |  | /** | 
| 223 |  |  * Create an unordered multi-line list of items. | 
| 224 |  |  */ | 
| 225 |  | inline std::string MakeUnorderedList(const std::vector<std::string>& items) | 
| 226 | 0 | { | 
| 227 | 0 |     return Join(items, "\n", [](const std::string& item) { return "- " + item; }); | 
| 228 | 0 | } | 
| 229 |  |  | 
| 230 |  | /** | 
| 231 |  |  * Check if a string does not contain any embedded NUL (\0) characters | 
| 232 |  |  */ | 
| 233 |  | [[nodiscard]] inline bool ContainsNoNUL(std::string_view str) noexcept | 
| 234 | 0 | { | 
| 235 | 0 |     for (auto c : str) { | 
| 236 | 0 |         if (c == 0) return false; | 
| 237 | 0 |     } | 
| 238 | 0 |     return true; | 
| 239 | 0 | } | 
| 240 |  |  | 
| 241 |  | /** | 
| 242 |  |  * Locale-independent version of std::to_string | 
| 243 |  |  */ | 
| 244 |  | template <typename T> | 
| 245 |  | std::string ToString(const T& t) | 
| 246 | 0 | { | 
| 247 | 0 |     std::ostringstream oss; | 
| 248 | 0 |     oss.imbue(std::locale::classic()); | 
| 249 | 0 |     oss << t; | 
| 250 | 0 |     return oss.str(); | 
| 251 | 0 | } Unexecuted instantiation: _ZN4util8ToStringIxEENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKT_Unexecuted instantiation: _ZN4util8ToStringIjEENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKT_Unexecuted instantiation: _ZN4util8ToStringIyEENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKT_Unexecuted instantiation: _ZN4util8ToStringImEENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKT_Unexecuted instantiation: _ZN4util8ToStringIiEENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKT_ | 
| 252 |  |  | 
| 253 |  | /** | 
| 254 |  |  * Check whether a container begins with the given prefix. | 
| 255 |  |  */ | 
| 256 |  | template <typename T1, size_t PREFIX_LEN> | 
| 257 |  | [[nodiscard]] inline bool HasPrefix(const T1& obj, | 
| 258 |  |                                 const std::array<uint8_t, PREFIX_LEN>& prefix) | 
| 259 | 2.51M | { | 
| 260 | 2.51M |     return obj.size() >= PREFIX_LEN && | 
| 261 | 2.51M |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 
| 262 | 2.51M | } _ZN4util9HasPrefixI9prevectorILj16EhjiELm6EEEbRKT_RKNSt3__15arrayIhXT0_EEE| Line | Count | Source |  | 259 | 30.6k | { |  | 260 | 30.6k |     return obj.size() >= PREFIX_LEN && |  | 261 | 30.6k |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 30.6k | } | 
_ZN4util9HasPrefixI9prevectorILj16EhjiELm12EEEbRKT_RKNSt3__15arrayIhXT0_EEE| Line | Count | Source |  | 259 | 34.1k | { |  | 260 | 34.1k |     return obj.size() >= PREFIX_LEN && |  | 261 | 34.1k |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 34.1k | } | 
_ZN4util9HasPrefixINSt3__14spanIKhLm18446744073709551615EEELm12EEEbRKT_RKNS1_5arrayIhXT0_EEE| Line | Count | Source |  | 259 | 191k | { |  | 260 | 191k |     return obj.size() >= PREFIX_LEN && |  | 261 | 191k |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 191k | } | 
_ZN4util9HasPrefixINSt3__14spanIKhLm18446744073709551615EEELm6EEEbRKT_RKNS1_5arrayIhXT0_EEE| Line | Count | Source |  | 259 | 383k | { |  | 260 | 383k |     return obj.size() >= PREFIX_LEN && |  | 261 | 383k |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 383k | } | 
_ZN4util9HasPrefixI9prevectorILj16EhjiELm2EEEbRKT_RKNSt3__15arrayIhXT0_EEE| Line | Count | Source |  | 259 | 431k | { |  | 260 | 431k |     return obj.size() >= PREFIX_LEN && |  | 261 | 431k |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 431k | } | 
_ZN4util9HasPrefixI9prevectorILj16EhjiELm3EEEbRKT_RKNSt3__15arrayIhXT0_EEE| Line | Count | Source |  | 259 | 1.32M | { |  | 260 | 1.32M |     return obj.size() >= PREFIX_LEN && |  | 261 | 1.32M |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 1.32M | } | 
_ZN4util9HasPrefixI9prevectorILj16EhjiELm4EEEbRKT_RKNSt3__15arrayIhXT0_EEE| Line | Count | Source |  | 259 | 83.8k | { |  | 260 | 83.8k |     return obj.size() >= PREFIX_LEN && |  | 261 | 83.8k |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 83.8k | } | 
_ZN4util9HasPrefixI9prevectorILj16EhjiELm8EEEbRKT_RKNSt3__15arrayIhXT0_EEE| Line | Count | Source |  | 259 | 30.3k | { |  | 260 | 30.3k |     return obj.size() >= PREFIX_LEN && |  | 261 | 30.3k |            std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |  | 262 | 30.3k | } | 
 | 
| 263 |  | } // namespace util | 
| 264 |  |  | 
| 265 |  | #endif // BITCOIN_UTIL_STRING_H |