Coverage Report

Created: 2026-02-14 06:56

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/simdjson/include/simdjson/fallback/stringparsing_defs.h
Line
Count
Source
1
#ifndef SIMDJSON_FALLBACK_STRINGPARSING_DEFS_H
2
#define SIMDJSON_FALLBACK_STRINGPARSING_DEFS_H
3
4
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
5
#include "simdjson/fallback/base.h"
6
#endif // SIMDJSON_CONDITIONAL_INCLUDE
7
8
namespace simdjson {
9
namespace fallback {
10
namespace {
11
12
// Holds backslashes and quotes locations.
13
struct backslash_and_quote {
14
public:
15
  static constexpr uint32_t BYTES_PROCESSED = 1;
16
  simdjson_inline backslash_and_quote copy_and_find(const uint8_t *src, uint8_t *dst);
17
18
22.2M
  simdjson_inline bool has_quote_first() { return c == '"'; }
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
simdjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Line
Count
Source
18
22.2M
  simdjson_inline bool has_quote_first() { return c == '"'; }
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_quote_first()
19
22.0M
  simdjson_inline bool has_backslash() { return c == '\\'; }
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
simdjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Line
Count
Source
19
22.0M
  simdjson_inline bool has_backslash() { return c == '\\'; }
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::has_backslash()
20
257k
  simdjson_inline int quote_index() { return c == '"' ? 0 : 1; }
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
simdjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Line
Count
Source
20
257k
  simdjson_inline int quote_index() { return c == '"' ? 0 : 1; }
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::quote_index()
21
956k
  simdjson_inline int backslash_index() { return c == '\\' ? 0 : 1; }
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
simdjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Line
Count
Source
21
956k
  simdjson_inline int backslash_index() { return c == '\\' ? 0 : 1; }
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::backslash_index()
22
23
  uint8_t c;
24
}; // struct backslash_and_quote
25
26
22.2M
simdjson_inline backslash_and_quote backslash_and_quote::copy_and_find(const uint8_t *src, uint8_t *dst) {
27
  // store to dest unconditionally - we can overwrite the bits we don't like later
28
22.2M
  dst[0] = src[0];
29
22.2M
  return { src[0] };
30
22.2M
}
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
simdjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Line
Count
Source
26
22.2M
simdjson_inline backslash_and_quote backslash_and_quote::copy_and_find(const uint8_t *src, uint8_t *dst) {
27
  // store to dest unconditionally - we can overwrite the bits we don't like later
28
22.2M
  dst[0] = src[0];
29
22.2M
  return { src[0] };
30
22.2M
}
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::backslash_and_quote::copy_and_find(unsigned char const*, unsigned char*)
31
32
33
struct escaping {
34
  static constexpr uint32_t BYTES_PROCESSED = 1;
35
  simdjson_inline static escaping copy_and_find(const uint8_t *src, uint8_t *dst);
36
37
0
  simdjson_inline bool has_escape() { return escape_bits; }
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: simdjson.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::escaping::has_escape()
38
0
  simdjson_inline int escape_index() { return 0; }
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: simdjson.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::escaping::escape_index()
39
40
  bool escape_bits;
41
}; // struct escaping
42
43
44
45
0
simdjson_inline escaping escaping::copy_and_find(const uint8_t *src, uint8_t *dst) {
46
0
  dst[0] = src[0];
47
0
  return { (src[0] == '\\') || (src[0] == '"') || (src[0] < 32) };
48
0
}
Unexecuted instantiation: fuzz_padded.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: simdjson.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_minifyimpl.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_element.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_parser.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_atpointer.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_print_json.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_dump.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_utf8.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_implementations.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_minify.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_ondemand.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_dump_raw_tape.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
Unexecuted instantiation: fuzz_ndjson.cpp:simdjson::fallback::(anonymous namespace)::escaping::copy_and_find(unsigned char const*, unsigned char*)
49
50
} // unnamed namespace
51
} // namespace fallback
52
} // namespace simdjson
53
54
#endif // SIMDJSON_FALLBACK_STRINGPARSING_DEFS_H