@@ -605,11 +605,15 @@ namespace sls {
605
605
zstring ch (m_chars[ctx.rand (m_chars.size ())]);
606
606
m_str_updates.push_back ({ x, strval1 (y) + ch, 1 });
607
607
m_str_updates.push_back ({ x, ch + strval1 (y), 1 });
608
+ m_str_updates.push_back ({ x, ch, 1 });
609
+ m_str_updates.push_back ({ x, zstring (), 1 });
608
610
}
609
611
if (!is_value (y) && !m_chars.empty ()) {
610
612
zstring ch (m_chars[ctx.rand (m_chars.size ())]);
611
613
m_str_updates.push_back ({ y, strval1 (x) + ch, 1 });
612
614
m_str_updates.push_back ({ y, ch + strval1 (x), 1 });
615
+ m_str_updates.push_back ({ x, ch, 1 });
616
+ m_str_updates.push_back ({ x, zstring (), 1 });
613
617
}
614
618
}
615
619
return apply_update ();
@@ -826,6 +830,7 @@ namespace sls {
826
830
expr* x, * y;
827
831
VERIFY (seq.str .is_at (e, x, y));
828
832
zstring se = strval0 (e);
833
+ verbose_stream () << " repair down at " << mk_pp (e, m) << " " << se << " \n " ;
829
834
if (se.length () > 1 )
830
835
return false ;
831
836
zstring sx = strval0 (x);
@@ -886,6 +891,12 @@ namespace sls {
886
891
if (offset_r.is_unsigned ())
887
892
offset_u = offset_r.get_unsigned ();
888
893
894
+ // set to not a member:
895
+ if (value == -1 ) {
896
+ m_str_updates.push_back ({ y, zstring (m_chars[ctx.rand (m_chars.size ())]), 1 });
897
+ if (lenx > 0 )
898
+ m_str_updates.push_back ({ x, zstring (), 1 });
899
+ }
889
900
// change x:
890
901
// insert y into x at offset
891
902
if (offset_r.is_unsigned () && 0 <= value && offset_u + value <= lenx && leny > 0 ) {
0 commit comments