@@ -1143,7 +1143,7 @@ to_sva_sequence_property_expr_base(const exprt &expr)
1143
1143
}
1144
1144
1145
1145
inline sva_sequence_property_expr_baset &
1146
- to_sva_sequence_property_base_expr (exprt &expr)
1146
+ to_sva_sequence_property_expr_base (exprt &expr)
1147
1147
{
1148
1148
sva_sequence_property_expr_baset::check (expr);
1149
1149
return static_cast <sva_sequence_property_expr_baset &>(expr);
@@ -1152,45 +1152,47 @@ to_sva_sequence_property_base_expr(exprt &expr)
1152
1152
class sva_strong_exprt : public sva_sequence_property_expr_baset
1153
1153
{
1154
1154
public:
1155
- sva_strong_exprt (exprt __op)
1156
- : sva_sequence_property_expr_baset(ID_sva_strong , std::move(__op))
1155
+ sva_strong_exprt (irep_idt __id, exprt __op)
1156
+ : sva_sequence_property_expr_baset(__id , std::move(__op))
1157
1157
{
1158
1158
}
1159
1159
};
1160
1160
1161
1161
inline const sva_strong_exprt &to_sva_strong_expr (const exprt &expr)
1162
1162
{
1163
- PRECONDITION (expr.id () == ID_sva_strong);
1163
+ PRECONDITION (
1164
+ expr.id () == ID_sva_strong || expr.id () == ID_sva_implicit_strong);
1164
1165
sva_strong_exprt::check (expr);
1165
1166
return static_cast <const sva_strong_exprt &>(expr);
1166
1167
}
1167
1168
1168
1169
inline sva_strong_exprt &to_sva_strong_expr (exprt &expr)
1169
1170
{
1170
- PRECONDITION (expr.id () == ID_sva_strong);
1171
+ PRECONDITION (
1172
+ expr.id () == ID_sva_strong || expr.id () == ID_sva_implicit_strong);
1171
1173
sva_strong_exprt::check (expr);
1172
1174
return static_cast <sva_strong_exprt &>(expr);
1173
1175
}
1174
1176
1175
1177
class sva_weak_exprt : public sva_sequence_property_expr_baset
1176
1178
{
1177
1179
public:
1178
- sva_weak_exprt (exprt __op)
1179
- : sva_sequence_property_expr_baset(ID_sva_weak , std::move(__op))
1180
+ sva_weak_exprt (irep_idt __id, exprt __op)
1181
+ : sva_sequence_property_expr_baset(__id , std::move(__op))
1180
1182
{
1181
1183
}
1182
1184
};
1183
1185
1184
1186
inline const sva_weak_exprt &to_sva_weak_expr (const exprt &expr)
1185
1187
{
1186
- PRECONDITION (expr.id () == ID_sva_weak);
1188
+ PRECONDITION (expr.id () == ID_sva_weak || expr. id () == ID_sva_implicit_weak );
1187
1189
sva_weak_exprt::check (expr);
1188
1190
return static_cast <const sva_weak_exprt &>(expr);
1189
1191
}
1190
1192
1191
1193
inline sva_weak_exprt &to_sva_weak_expr (exprt &expr)
1192
1194
{
1193
- PRECONDITION (expr.id () == ID_sva_weak);
1195
+ PRECONDITION (expr.id () == ID_sva_weak || expr. id () == ID_sva_implicit_weak );
1194
1196
sva_weak_exprt::check (expr);
1195
1197
return static_cast <sva_weak_exprt &>(expr);
1196
1198
}
@@ -1584,4 +1586,11 @@ to_sva_sequence_property_expr(exprt &expr)
1584
1586
return static_cast <sva_sequence_property_exprt &>(expr);
1585
1587
}
1586
1588
1589
+ // / SVA sequences can be interpreted as weak or strong
1590
+ enum class sva_sequence_semanticst
1591
+ {
1592
+ WEAK,
1593
+ STRONG
1594
+ };
1595
+
1587
1596
#endif
0 commit comments