Shared: use a call bit when tracking reachability to/from a discriminator

This commit is contained in:
Asger F
2023-10-11 15:47:39 +02:00
parent 0eb543e0a9
commit 5aa1242117
2 changed files with 100 additions and 30 deletions

View File

@@ -7,11 +7,15 @@ nodes
| A.java:15:29:15:29 | x : String | semmle.label | x : String |
| A.java:17:20:17:27 | source(...) : String | semmle.label | source(...) : String |
| A.java:18:20:18:38 | apply(...) : String | semmle.label | apply(...) : String |
| A.java:18:20:18:38 | apply(...) : String | semmle.label | apply(...) : String |
| A.java:18:33:18:37 | step0 : String | semmle.label | step0 : String |
| A.java:19:20:19:38 | apply(...) : String | semmle.label | apply(...) : String |
| A.java:19:33:19:37 | step1 : String | semmle.label | step1 : String |
| A.java:19:33:19:37 | step1 : String | semmle.label | step1 : String |
| A.java:21:10:21:14 | step2 | semmle.label | step2 |
| A.java:26:8:26:8 | x : String | semmle.label | x : String |
| A.java:26:8:26:8 | x : String | semmle.label | x : String |
| A.java:26:13:26:81 | ...?...:... : String | semmle.label | ...?...:... : String |
| A.java:26:13:26:81 | ...?...:... : String | semmle.label | ...?...:... : String |
| A.java:26:35:26:56 | propagateState(...) : String | semmle.label | propagateState(...) : String |
| A.java:26:50:26:50 | x : String | semmle.label | x : String |
@@ -19,9 +23,11 @@ nodes
| A.java:26:75:26:75 | x : String | semmle.label | x : String |
| A.java:28:20:28:27 | source(...) : String | semmle.label | source(...) : String |
| A.java:29:20:29:38 | apply(...) : String | semmle.label | apply(...) : String |
| A.java:29:20:29:38 | apply(...) : String | semmle.label | apply(...) : String |
| A.java:29:33:29:37 | step0 : String | semmle.label | step0 : String |
| A.java:30:20:30:38 | apply(...) : String | semmle.label | apply(...) : String |
| A.java:30:33:30:37 | step1 : String | semmle.label | step1 : String |
| A.java:30:33:30:37 | step1 : String | semmle.label | step1 : String |
| A.java:32:10:32:14 | step2 | semmle.label | step2 |
edges
| A.java:14:9:14:9 | x : String | A.java:14:29:14:29 | x : String |
@@ -30,13 +36,16 @@ edges
| A.java:15:29:15:29 | x : String | A.java:15:14:15:35 | propagateState(...) : String |
| A.java:17:20:17:27 | source(...) : String | A.java:18:33:18:37 | step0 : String |
| A.java:18:20:18:38 | apply(...) : String | A.java:19:33:19:37 | step1 : String |
| A.java:18:20:18:38 | apply(...) : String | A.java:19:33:19:37 | step1 : String |
| A.java:18:33:18:37 | step0 : String | A.java:14:9:14:9 | x : String |
| A.java:18:33:18:37 | step0 : String | A.java:15:9:15:9 | x : String |
| A.java:18:33:18:37 | step0 : String | A.java:18:20:18:38 | apply(...) : String |
| A.java:18:33:18:37 | step0 : String | A.java:18:20:18:38 | apply(...) : String |
| A.java:19:20:19:38 | apply(...) : String | A.java:21:10:21:14 | step2 |
| A.java:19:33:19:37 | step1 : String | A.java:14:9:14:9 | x : String |
| A.java:19:33:19:37 | step1 : String | A.java:15:9:15:9 | x : String |
| A.java:19:33:19:37 | step1 : String | A.java:19:20:19:38 | apply(...) : String |
| A.java:19:33:19:37 | step1 : String | A.java:19:20:19:38 | apply(...) : String |
| A.java:26:8:26:8 | x : String | A.java:26:50:26:50 | x : String |
| A.java:26:8:26:8 | x : String | A.java:26:75:26:75 | x : String |
| A.java:26:35:26:56 | propagateState(...) : String | A.java:26:13:26:81 | ...?...:... : String |
@@ -45,10 +54,15 @@ edges
| A.java:26:75:26:75 | x : String | A.java:26:60:26:81 | propagateState(...) : String |
| A.java:28:20:28:27 | source(...) : String | A.java:29:33:29:37 | step0 : String |
| A.java:29:20:29:38 | apply(...) : String | A.java:30:33:30:37 | step1 : String |
| A.java:29:20:29:38 | apply(...) : String | A.java:30:33:30:37 | step1 : String |
| A.java:29:33:29:37 | step0 : String | A.java:26:8:26:8 | x : String |
| A.java:29:33:29:37 | step0 : String | A.java:26:8:26:8 | x : String |
| A.java:29:33:29:37 | step0 : String | A.java:29:20:29:38 | apply(...) : String |
| A.java:29:33:29:37 | step0 : String | A.java:29:20:29:38 | apply(...) : String |
| A.java:30:20:30:38 | apply(...) : String | A.java:32:10:32:14 | step2 |
| A.java:30:33:30:37 | step1 : String | A.java:26:8:26:8 | x : String |
| A.java:30:33:30:37 | step1 : String | A.java:26:8:26:8 | x : String |
| A.java:30:33:30:37 | step1 : String | A.java:30:20:30:38 | apply(...) : String |
| A.java:30:33:30:37 | step1 : String | A.java:30:20:30:38 | apply(...) : String |
subpaths
| A.java:18:33:18:37 | step0 : String | A.java:14:9:14:9 | x : String | A.java:14:14:14:35 | propagateState(...) : String | A.java:18:20:18:38 | apply(...) : String |
@@ -56,12 +70,10 @@ subpaths
| A.java:19:33:19:37 | step1 : String | A.java:14:9:14:9 | x : String | A.java:14:14:14:35 | propagateState(...) : String | A.java:19:20:19:38 | apply(...) : String |
| A.java:19:33:19:37 | step1 : String | A.java:15:9:15:9 | x : String | A.java:15:14:15:35 | propagateState(...) : String | A.java:19:20:19:38 | apply(...) : String |
| A.java:29:33:29:37 | step0 : String | A.java:26:8:26:8 | x : String | A.java:26:13:26:81 | ...?...:... : String | A.java:29:20:29:38 | apply(...) : String |
| A.java:29:33:29:37 | step0 : String | A.java:26:8:26:8 | x : String | A.java:26:13:26:81 | ...?...:... : String | A.java:29:20:29:38 | apply(...) : String |
| A.java:30:33:30:37 | step1 : String | A.java:26:8:26:8 | x : String | A.java:26:13:26:81 | ...?...:... : String | A.java:30:20:30:38 | apply(...) : String |
| A.java:30:33:30:37 | step1 : String | A.java:26:8:26:8 | x : String | A.java:26:13:26:81 | ...?...:... : String | A.java:30:20:30:38 | apply(...) : String |
spuriousFlow
| A.java:14:14:14:35 | propagateState(...) : String | B | A |
| A.java:15:14:15:35 | propagateState(...) : String | A | B |
| A.java:26:35:26:56 | propagateState(...) : String | B | A |
| A.java:26:60:26:81 | propagateState(...) : String | A | B |
#select
| A.java:17:20:17:27 | source(...) : String | A.java:17:20:17:27 | source(...) : String | A.java:21:10:21:14 | step2 | Flow |
| A.java:28:20:28:27 | source(...) : String | A.java:28:20:28:27 | source(...) : String | A.java:32:10:32:14 | step2 | Flow |