Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beta9 roundup #289

Merged
merged 53 commits into from
Oct 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
f61b2b3
Customizability of widening points usage
lucaneg Sep 6, 2023
eaa833f
Exposing callgraph to semantic checks
lucaneg Sep 6, 2023
b895388
Disabling optimizations by default in cron tests
lucaneg Sep 6, 2023
4387f2f
Minor refactorings
lucaneg Sep 6, 2023
4323231
Preventing syntactic structure change on call creation
lucaneg Sep 7, 2023
55dac3b
Fixing tests
lucaneg Sep 7, 2023
4dbd26d
Moved exposed ops to AbstractState to prepare for generics elimination
lucaneg Sep 7, 2023
8418f32
Removing non-essential type parameters from AnalysisState
lucaneg Sep 7, 2023
e3815b9
Using DefaultConfiguration for defaults #268
lucaneg Sep 8, 2023
7d2a115
Flattening cron test structure
lucaneg Sep 8, 2023
229430c
Renaming variable() to fixedVariable() in NonRelationalElement #279
lucaneg Sep 8, 2023
a02125b
FunctionalLattice.stateOfUnknown() for customization #279
lucaneg Sep 8, 2023
ddfcaaa
Ensuring assignability to Untyped #284
lucaneg Sep 8, 2023
ca3b2f8
Moving DomainRepresentation classes
lucaneg Sep 11, 2023
50562ff
Renamed DomainRepresentation to StructuredRepresentation
lucaneg Sep 11, 2023
98313a9
StructuredObject for accessing representation method
lucaneg Sep 11, 2023
2f14160
Removing type param from ExpressionSet
lucaneg Sep 11, 2023
b44d850
Adding FixpointInfo #287
lucaneg Sep 11, 2023
a700f6c
Supporting arraylength #288
lucaneg Sep 11, 2023
fea333e
Fixing javadoc
lucaneg Sep 11, 2023
22b2079
Substitutions for FieldSensitivePointBasedHeap
lucaneg Sep 13, 2023
3fbf1b7
Refactoring point-based heap analyses
lucaneg Sep 13, 2023
423ef4a
Documentation and formatting
lucaneg Sep 14, 2023
7e77c69
Adding ExpressionInverseSet
lucaneg Sep 14, 2023
1e73fab
Fixing javadoc visibility problems
lucaneg Sep 14, 2023
629e3c9
Fixing minor bugs
lucaneg Sep 18, 2023
6a03e5d
Javadoc links
lucaneg Sep 19, 2023
66b7c83
SemanticDomain.knowsIdentifier() for querying info on id
lucaneg Sep 19, 2023
a4ae7ba
Annotations propagation for field insensitive point based heap analysis
VincenzoArceri Sep 20, 2023
da2fcdb
Add annotation propagations to field sensitive point-based heap analysis
VincenzoArceri Sep 21, 2023
2b06a4d
Apply spotless and Javadoc
VincenzoArceri Sep 21, 2023
a208102
Recursions work with top as default for NRVDs
lucaneg Sep 20, 2023
60d095c
Adding SemanticOracle to domains #291
lucaneg Sep 21, 2023
121014c
Using SemanticOracle to retrieve runtime types #291
lucaneg Sep 23, 2023
898b911
Avoiding rewriting of value expressions #291
lucaneg Sep 27, 2023
49eda2e
Supporting recursions #291
lucaneg Sep 28, 2023
db68abb
Fixing rewriting #291
lucaneg Sep 28, 2023
1f05cbe
Changing formatting style and applying spotless + javadoc
lucaneg Sep 28, 2023
b2e030d
Merge remote-tracking branch 'origin/beta9' into anns-propagation
lucaneg Sep 28, 2023
fdd42df
Merge pull request #290 from lisa-analyzer/anns-propagation
lucaneg Sep 28, 2023
31959f8
Fixing recursion tests
lucaneg Oct 2, 2023
217b756
Default and unknown values at type level #280
lucaneg Oct 2, 2023
7776342
Removing 'forward' from dataflow class naming #120
lucaneg Oct 2, 2023
88217bf
Infrastructure for backward analyses #120
lucaneg Oct 3, 2023
cebe6fe
Fwd/Bwd edge traversal #120
lucaneg Oct 3, 2023
81586ba
Renaming forward semantics methods #120
lucaneg Oct 3, 2023
fe14abc
Methods renaming #120
lucaneg Oct 6, 2023
9827722
Fixing tests #120
lucaneg Oct 6, 2023
820abcf
Minor refactorings
lucaneg Oct 6, 2023
2543b47
Liveness analysis #120
lucaneg Oct 6, 2023
896d23b
Finalizing backward tests #120
lucaneg Oct 9, 2023
bd00779
Memory oracle methods #291
lucaneg Oct 9, 2023
eac22a8
Bumping version number
lucaneg Oct 9, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion lisa/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# project properties
group = 'it.unive'
version = 0.1b8
version = 0.1b9

# gradle build properties
org.gradle.caching=true
Expand Down
3 changes: 3 additions & 0 deletions lisa/java.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ javadoc {
if(JavaVersion.current().isJava9Compatible()) {
options.addBooleanOption('html5', true)
}
options {
links 'https://docs.oracle.com/javase/11/docs/api/'
}
}

test {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"warnings" : [ ],
"files" : [ "report.json", "untyped_arrays.bitest(arrays__this).json", "untyped_arrays.test(arrays__this).json" ],
"info" : {
"cfgs" : "2",
"duration" : "420ms",
"end" : "2023-09-11T19:18:34.470+02:00",
"expressions" : "64",
"files" : "2",
"globals" : "0",
"members" : "2",
"programs" : "1",
"start" : "2023-09-11T19:18:34.050+02:00",
"statements" : "19",
"units" : "1",
"version" : "0.1b8",
"warnings" : "0"
},
"configuration" : {
"analysisGraphs" : "NONE",
"descendingPhaseType" : "NONE",
"dumpForcesUnwinding" : "false",
"fixpointWorkingSet" : "DuplicateFreeFIFOWorkingSet",
"glbThreshold" : "5",
"hotspots" : "unset",
"jsonOutput" : "true",
"openCallPolicy" : "WorstCasePolicy",
"optimize" : "false",
"recursionWideningThreshold" : "5",
"semanticChecks" : "",
"serializeInputs" : "false",
"serializeResults" : "true",
"syntacticChecks" : "",
"useWideningPoints" : "true",
"wideningThreshold" : "5",
"workdir" : "test-outputs/arrays/allocations-fields"
}
}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

38 changes: 38 additions & 0 deletions lisa/lisa-analyses/imp-testcases/arrays/allocations/report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"warnings" : [ ],
"files" : [ "report.json", "untyped_arrays.bitest(arrays__this).json", "untyped_arrays.test(arrays__this).json" ],
"info" : {
"cfgs" : "2",
"duration" : "62ms",
"end" : "2023-09-11T19:18:35.263+02:00",
"expressions" : "64",
"files" : "2",
"globals" : "0",
"members" : "2",
"programs" : "1",
"start" : "2023-09-11T19:18:35.201+02:00",
"statements" : "19",
"units" : "1",
"version" : "0.1b8",
"warnings" : "0"
},
"configuration" : {
"analysisGraphs" : "NONE",
"descendingPhaseType" : "NONE",
"dumpForcesUnwinding" : "false",
"fixpointWorkingSet" : "DuplicateFreeFIFOWorkingSet",
"glbThreshold" : "5",
"hotspots" : "unset",
"jsonOutput" : "true",
"openCallPolicy" : "WorstCasePolicy",
"optimize" : "false",
"recursionWideningThreshold" : "5",
"semanticChecks" : "",
"serializeInputs" : "false",
"serializeResults" : "true",
"syntacticChecks" : "",
"useWideningPoints" : "true",
"wideningThreshold" : "5",
"workdir" : "test-outputs/arrays/allocations"
}
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name":"untyped arrays::test(arrays* this)","description":null,"nodes":[{"id":0,"subNodes":[1,2],"text":"arr = new int32[](5)"},{"id":1,"text":"arr"},{"id":2,"subNodes":[3],"text":"new int32[](5)"},{"id":3,"text":"5"},{"id":4,"subNodes":[5,8],"text":"[](arr, 0) = 0"},{"id":5,"subNodes":[6,7],"text":"[](arr, 0)"},{"id":6,"text":"arr"},{"id":7,"text":"0"},{"id":8,"text":"0"},{"id":9,"subNodes":[10,13],"text":"[](arr, 1) = 1"},{"id":10,"subNodes":[11,12],"text":"[](arr, 1)"},{"id":11,"text":"arr"},{"id":12,"text":"1"},{"id":13,"text":"1"},{"id":14,"subNodes":[15,18],"text":"[](arr, 2) = 2"},{"id":15,"subNodes":[16,17],"text":"[](arr, 2)"},{"id":16,"text":"arr"},{"id":17,"text":"2"},{"id":18,"text":"2"},{"id":19,"subNodes":[20,23],"text":"[](arr, 3) = 3"},{"id":20,"subNodes":[21,22],"text":"[](arr, 3)"},{"id":21,"text":"arr"},{"id":22,"text":"3"},{"id":23,"text":"3"},{"id":24,"subNodes":[25,28],"text":"[](arr, 4) = 4"},{"id":25,"subNodes":[26,27],"text":"[](arr, 4)"},{"id":26,"text":"arr"},{"id":27,"text":"4"},{"id":28,"text":"4"},{"id":29,"subNodes":[30,31],"text":"x = arraylen(arr)"},{"id":30,"text":"x"},{"id":31,"subNodes":[32],"text":"arraylen(arr)"},{"id":32,"text":"arr"},{"id":33,"subNodes":[34],"text":"return x"},{"id":34,"text":"x"}],"edges":[{"sourceId":0,"destId":4,"kind":"SequentialEdge"},{"sourceId":4,"destId":9,"kind":"SequentialEdge"},{"sourceId":9,"destId":14,"kind":"SequentialEdge"},{"sourceId":14,"destId":19,"kind":"SequentialEdge"},{"sourceId":19,"destId":24,"kind":"SequentialEdge"},{"sourceId":24,"destId":29,"kind":"SequentialEdge"},{"sourceId":29,"destId":33,"kind":"SequentialEdge"}],"descriptions":[{"nodeId":0,"description":{"expressions":["arr"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[5, 5]"}}}},{"nodeId":1,"description":{"expressions":["arr"],"state":{"heap":{"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[5, 5]"}}}},{"nodeId":2,"description":{"expressions":["ref$new int32[]"],"state":{"heap":{"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[5, 5]"}}}},{"nodeId":3,"description":{"expressions":["5"],"state":{"heap":{"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"this":["arrays*"]},"value":"#TOP#"}}},{"nodeId":4,"description":{"expressions":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":5,"description":{"expressions":["*(arr)->0"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[5, 5]"}}}},{"nodeId":6,"description":{"expressions":["arr"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[5, 5]"}}}},{"nodeId":7,"description":{"expressions":["0"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[5, 5]"}}}},{"nodeId":8,"description":{"expressions":["0"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[5, 5]"}}}},{"nodeId":9,"description":{"expressions":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":10,"description":{"expressions":["*(arr)->1"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":11,"description":{"expressions":["arr"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":12,"description":{"expressions":["1"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":13,"description":{"expressions":["1"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":14,"description":{"expressions":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":15,"description":{"expressions":["*(arr)->2"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":16,"description":{"expressions":["arr"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":17,"description":{"expressions":["2"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":18,"description":{"expressions":["2"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":19,"description":{"expressions":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":20,"description":{"expressions":["*(arr)->3"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":21,"description":{"expressions":["arr"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":22,"description":{"expressions":["3"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":23,"description":{"expressions":["3"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":24,"description":{"expressions":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":25,"description":{"expressions":["*(arr)->4"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":26,"description":{"expressions":["arr"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":27,"description":{"expressions":["4"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":28,"description":{"expressions":["4"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":29,"description":{"expressions":["x"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"],"x":["int32","int32[]"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]","x":"[0, 5]"}}}},{"nodeId":30,"description":{"expressions":["x"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":31,"description":{"expressions":["*(arr)->len"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":32,"description":{"expressions":["arr"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]"}}}},{"nodeId":33,"description":{"expressions":["ret_value@test"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"ret_value@test":["int32","int32[]"],"this":["arrays*"],"x":["int32","int32[]"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]","ret_value@test":"[0, 5]","x":"[0, 5]"}}}},{"nodeId":34,"description":{"expressions":["x"],"state":{"heap":{"arr":["heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21"],"this":["heap[s]:pp@unknown@'imp-testcases/arrays/arrays.imp':3:6"]},"type":{"arr":["int32[]*"],"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":["int32","int32[]"],"this":["arrays*"],"x":["int32","int32[]"]},"value":{"heap[w]:pp@'imp-testcases/arrays/arrays.imp':4:21":"[0, 5]","x":"[0, 5]"}}}}]}
29 changes: 29 additions & 0 deletions lisa/lisa-analyses/imp-testcases/arrays/arrays.imp
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
class arrays {

test() {
def arr = new int[5];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
arr[3] = 3;
arr[4] = 4;
def x = arraylen(arr);
return x;
}

bitest() {
def a1 = new int[3];
a1[0] = 0;
a1[1] = 1;
a1[2] = 2;

def a2 = new int[2];
a2[0] = 5;
a2[1] = 6;

def x = arraylen(a1);
def y = arraylen(a2);
def z = x + y;
return z;
}
}
38 changes: 38 additions & 0 deletions lisa/lisa-analyses/imp-testcases/arrays/monolith/report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"warnings" : [ ],
"files" : [ "report.json", "untyped_arrays.bitest(arrays__this).json", "untyped_arrays.test(arrays__this).json" ],
"info" : {
"cfgs" : "2",
"duration" : "32ms",
"end" : "2023-09-11T19:18:35.529+02:00",
"expressions" : "64",
"files" : "2",
"globals" : "0",
"members" : "2",
"programs" : "1",
"start" : "2023-09-11T19:18:35.497+02:00",
"statements" : "19",
"units" : "1",
"version" : "0.1b8",
"warnings" : "0"
},
"configuration" : {
"analysisGraphs" : "NONE",
"descendingPhaseType" : "NONE",
"dumpForcesUnwinding" : "false",
"fixpointWorkingSet" : "DuplicateFreeFIFOWorkingSet",
"glbThreshold" : "5",
"hotspots" : "unset",
"jsonOutput" : "true",
"openCallPolicy" : "WorstCasePolicy",
"optimize" : "false",
"recursionWideningThreshold" : "5",
"semanticChecks" : "",
"serializeInputs" : "false",
"serializeResults" : "true",
"syntacticChecks" : "",
"useWideningPoints" : "true",
"wideningThreshold" : "5",
"workdir" : "test-outputs/arrays/monolith"
}
}
Loading
Loading