From 9e1a19b3785cfecd09190fd0ab0b99de6b611740 Mon Sep 17 00:00:00 2001 From: Luca Negrini Date: Wed, 21 Feb 2024 11:27:25 +0100 Subject: [PATCH] Adding support for other constants in Interval analysis --- .../unive/lisa/analysis/numeric/Interval.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lisa/lisa-analyses/src/main/java/it/unive/lisa/analysis/numeric/Interval.java b/lisa/lisa-analyses/src/main/java/it/unive/lisa/analysis/numeric/Interval.java index 2c4502f93..e64631220 100644 --- a/lisa/lisa-analyses/src/main/java/it/unive/lisa/analysis/numeric/Interval.java +++ b/lisa/lisa-analyses/src/main/java/it/unive/lisa/analysis/numeric/Interval.java @@ -145,10 +145,25 @@ public Interval evalNonNullConstant( Constant constant, ProgramPoint pp, SemanticOracle oracle) { - if (constant.getValue() instanceof Integer) { + if (constant.getValue() instanceof Byte) { + Byte i = (Byte) constant.getValue(); + return new Interval(new MathNumber(i), new MathNumber(i)); + } else if (constant.getValue() instanceof Byte) { + Byte i = (Byte) constant.getValue(); + return new Interval(new MathNumber(i), new MathNumber(i)); + } else if (constant.getValue() instanceof Integer) { Integer i = (Integer) constant.getValue(); return new Interval(new MathNumber(i), new MathNumber(i)); - } + } else if (constant.getValue() instanceof Long) { + Long i = (Long) constant.getValue(); + return new Interval(new MathNumber(i), new MathNumber(i)); + } else if (constant.getValue() instanceof Float) { + Float i = (Float) constant.getValue(); + return new Interval(new MathNumber(i), new MathNumber(i)); + } else if (constant.getValue() instanceof Double) { + Double i = (Double) constant.getValue(); + return new Interval(new MathNumber(i), new MathNumber(i)); + } return top(); }