svf-lib 1.0.1339 → 1.0.1340
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
Binary file
|
|
@@ -187,7 +187,7 @@ public:
|
|
|
187
187
|
return lhs.geq(rhs);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
friend NumericLiteral operator+(const NumericLiteral
|
|
190
|
+
friend NumericLiteral operator+(const NumericLiteral& lhs, const NumericLiteral& rhs)
|
|
191
191
|
{
|
|
192
192
|
if (!lhs.is_infinity() && !rhs.is_infinity())
|
|
193
193
|
return lhs.getNumeral() + rhs.getNumeral();
|
|
@@ -198,7 +198,10 @@ public:
|
|
|
198
198
|
else if (eq(lhs, rhs))
|
|
199
199
|
return lhs;
|
|
200
200
|
else
|
|
201
|
+
{
|
|
201
202
|
assert(false && "undefined operation +oo + -oo");
|
|
203
|
+
abort();
|
|
204
|
+
}
|
|
202
205
|
}
|
|
203
206
|
|
|
204
207
|
friend NumericLiteral operator-(const NumericLiteral &lhs, const NumericLiteral &rhs)
|
|
@@ -212,12 +215,16 @@ public:
|
|
|
212
215
|
else if (!eq(lhs, rhs))
|
|
213
216
|
return lhs;
|
|
214
217
|
else
|
|
218
|
+
{
|
|
215
219
|
assert(false && "undefined operation +oo - +oo");
|
|
220
|
+
abort();
|
|
221
|
+
}
|
|
216
222
|
}
|
|
217
223
|
|
|
218
224
|
friend NumericLiteral operator*(const NumericLiteral &lhs, const NumericLiteral &rhs)
|
|
219
225
|
{
|
|
220
|
-
if (lhs.is_zero() || rhs.is_zero())
|
|
226
|
+
if (lhs.is_zero() || rhs.is_zero())
|
|
227
|
+
return 0;
|
|
221
228
|
else if (lhs.is_infinity() && rhs.is_infinity())
|
|
222
229
|
return eq(lhs, rhs) ? plus_infinity() : minus_infinity();
|
|
223
230
|
else if (lhs.is_infinity())
|
|
@@ -230,7 +237,12 @@ public:
|
|
|
230
237
|
|
|
231
238
|
friend NumericLiteral operator/(const NumericLiteral &lhs, const NumericLiteral &rhs)
|
|
232
239
|
{
|
|
233
|
-
if (rhs.is_zero())
|
|
240
|
+
if (rhs.is_zero())
|
|
241
|
+
{
|
|
242
|
+
|
|
243
|
+
assert(false && "divide by zero");
|
|
244
|
+
abort();
|
|
245
|
+
}
|
|
234
246
|
else if (!lhs.is_infinity() && !rhs.is_infinity())
|
|
235
247
|
return lhs.getNumeral() / rhs.getNumeral();
|
|
236
248
|
else if (!lhs.is_infinity() && rhs.is_infinity())
|
|
@@ -244,7 +256,11 @@ public:
|
|
|
244
256
|
|
|
245
257
|
friend NumericLiteral operator%(const NumericLiteral &lhs, const NumericLiteral &rhs)
|
|
246
258
|
{
|
|
247
|
-
if (rhs.is_zero())
|
|
259
|
+
if (rhs.is_zero())
|
|
260
|
+
{
|
|
261
|
+
assert(false && "divide by zero");
|
|
262
|
+
abort();
|
|
263
|
+
}
|
|
248
264
|
else if (!lhs.is_infinity() && !rhs.is_infinity())
|
|
249
265
|
return (s32_t) lhs.getNumeral() % (s32_t) rhs.getNumeral();
|
|
250
266
|
else if (!lhs.is_infinity() && rhs.is_infinity())
|