if (pfrag.included_delay_frag_id != INVALID_FRAG_ID &&
!rebuild_prog.empty()) {
const auto &cfrag = fragments[pfrag.included_delay_frag_id];
- /** assert(pfrag.s.length() >= cfrag.s.length() && **/
- assert(pfrag.s.length() == cfrag.s.length() &&
- !pfrag.s.any_nocase() != !cfrag.s.any_nocase());
+ // cppcheck-suppress comparisonOfTwoFuncsReturningBoolError
+ assert(pfrag.s.length() >= cfrag.s.length() && !pfrag.s.any_nocase() >= !cfrag.s.any_nocase());
u32 child_offset = cfrag.delay_program_offset;
DEBUG_PRINTF("child %u offset %u\n", cfrag.fragment_id,
child_offset);
err = hs_free_scratch(scratch);
ASSERT_EQ(HS_SUCCESS, err);
hs_free_database(db);
-}
\ No newline at end of file
+}
+
+TEST(bug339, delayed_fragment_assert) {
+ hs_database_t *db = buildDB(R"((?:1\d|3[01])(?:0[1-9]|1[01])\d)", 0, 0, HS_MODE_STREAM);
+ ASSERT_NE(nullptr, db);
+
+ hs_free_database(db);
+}