зеркало из https://github.com/github/codeql.git
C#: Various minor CFG bug fixes
This commit is contained in:
Родитель
b161ff195b
Коммит
9a1e148e85
|
@ -1252,6 +1252,13 @@ module Internal {
|
|||
not c instanceof GotoDefaultCompletion and
|
||||
not c instanceof GotoCaseCompletion
|
||||
or
|
||||
// Last case exits with a non-match
|
||||
exists(int last |
|
||||
last = max(int i | exists(ss.getCase(i))) |
|
||||
result = lastConstCaseNoMatch(ss.getCase(last), c) or
|
||||
result = lastTypeCaseNoMatch(ss.getCase(last), c)
|
||||
)
|
||||
or
|
||||
// Last statement exits with any non-break completion
|
||||
exists(int last |
|
||||
last = max(int i | exists(ss.getStmt(i))) |
|
||||
|
@ -1262,8 +1269,7 @@ module Internal {
|
|||
or
|
||||
cfe = any(ConstCase cc |
|
||||
// Case expression exits with a non-match
|
||||
result = lastConstCaseExpr(cc, c) and
|
||||
c = any(MatchingCompletion mc | not mc.isMatch())
|
||||
result = lastConstCaseNoMatch(cc, c)
|
||||
or
|
||||
// Case expression exits abnormally
|
||||
result = lastConstCaseExpr(cc, c) and
|
||||
|
@ -1275,8 +1281,7 @@ module Internal {
|
|||
or
|
||||
cfe = any(TypeCase tc |
|
||||
// Type test exits with a non-match
|
||||
result = tc.getTypeAccess() and
|
||||
c = any(MatchingCompletion mc | not mc.isMatch())
|
||||
result = lastTypeCaseNoMatch(tc, c)
|
||||
or
|
||||
// Condition exists with a `false` completion
|
||||
result = lastTypeCaseCondition(tc, c) and
|
||||
|
@ -1405,6 +1410,17 @@ module Internal {
|
|||
)
|
||||
}
|
||||
|
||||
private ControlFlowElement lastConstCaseNoMatch(ConstCase cc, MatchingCompletion c) {
|
||||
result = lastConstCaseExpr(cc, c) and
|
||||
not c.isMatch()
|
||||
}
|
||||
|
||||
private ControlFlowElement lastTypeCaseNoMatch(TypeCase tc, MatchingCompletion c) {
|
||||
result = tc.getTypeAccess() and
|
||||
not c.isMatch() and
|
||||
c.isValidFor(result)
|
||||
}
|
||||
|
||||
pragma [noinline,nomagic]
|
||||
private ControlFlowElement lastStandardElementGetNonLastChildElement(StandardElement se, int i, Completion c) {
|
||||
result = last(se.getNonLastChildElement(i), c)
|
||||
|
@ -1935,7 +1951,7 @@ module Internal {
|
|||
or
|
||||
// Flow from last element of switch expression to first element of first statement
|
||||
cfe = lastSwitchStmtCondition(ss, c) and
|
||||
c instanceof SimpleCompletion and
|
||||
c instanceof NormalCompletion and
|
||||
result = first(ss.getStmt(0))
|
||||
or
|
||||
// Flow from last element of non-`case` statement `i` to first element of statement `i+1`
|
||||
|
@ -2123,7 +2139,7 @@ module Internal {
|
|||
exists(ForeachStmt fs |
|
||||
// Flow from last element of iterator expression to emptiness test
|
||||
cfe = lastForeachStmtIterableExpr(fs, c) and
|
||||
c instanceof SimpleCompletion and
|
||||
c instanceof NormalCompletion and
|
||||
result = fs
|
||||
or
|
||||
// Flow from emptiness test to first element of variable declaration/loop body
|
||||
|
|
|
@ -217,15 +217,19 @@
|
|||
| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:81:18:81:18 | 1 | 6 |
|
||||
| Switch.cs:77:10:77:11 | exit M7 | Switch.cs:77:10:77:11 | exit M7 | 1 |
|
||||
| Switch.cs:82:22:82:25 | true | Switch.cs:82:15:82:26 | return ...; | 2 |
|
||||
| Switch.cs:83:13:83:20 | case ...: | Switch.cs:84:19:84:23 | ... > ... | 6 |
|
||||
| Switch.cs:85:17:85:22 | break; | Switch.cs:88:9:88:21 | return ...; | 3 |
|
||||
| Switch.cs:83:13:83:20 | case ...: | Switch.cs:83:18:83:18 | 2 | 2 |
|
||||
| Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:84:19:84:23 | ... > ... | 4 |
|
||||
| Switch.cs:85:17:85:22 | break; | Switch.cs:85:17:85:22 | break; | 1 |
|
||||
| Switch.cs:86:22:86:25 | true | Switch.cs:86:15:86:26 | return ...; | 2 |
|
||||
| Switch.cs:88:16:88:20 | false | Switch.cs:88:9:88:21 | return ...; | 2 |
|
||||
| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:95:18:95:20 | access to type Int32 | 6 |
|
||||
| Switch.cs:91:10:91:11 | exit M8 | Switch.cs:91:10:91:11 | exit M8 | 1 |
|
||||
| Switch.cs:96:22:96:25 | true | Switch.cs:96:15:96:26 | return ...; | 2 |
|
||||
| Switch.cs:98:16:98:20 | false | Switch.cs:98:9:98:21 | return ...; | 2 |
|
||||
| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:105:18:105:18 | 0 | 7 |
|
||||
| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:103:17:103:17 | access to parameter s | 4 |
|
||||
| Switch.cs:101:9:101:10 | exit M9 | Switch.cs:101:9:101:10 | exit M9 | 1 |
|
||||
| Switch.cs:103:19:103:25 | access to property Length | Switch.cs:103:19:103:25 | access to property Length | 1 |
|
||||
| Switch.cs:105:13:105:20 | case ...: | Switch.cs:105:18:105:18 | 0 | 2 |
|
||||
| Switch.cs:105:29:105:29 | 0 | Switch.cs:105:22:105:30 | return ...; | 2 |
|
||||
| Switch.cs:106:13:106:20 | case ...: | Switch.cs:106:18:106:18 | 1 | 2 |
|
||||
| Switch.cs:106:29:106:29 | 1 | Switch.cs:106:22:106:30 | return ...; | 2 |
|
||||
|
@ -265,12 +269,16 @@
|
|||
| cflow.cs:42:17:42:39 | ...; | cflow.cs:43:17:43:28 | goto case ...; | 5 |
|
||||
| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | 2 |
|
||||
| cflow.cs:45:17:45:39 | ...; | cflow.cs:46:17:46:28 | goto case ...; | 5 |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:53:18:53:19 | 42 | 10 |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | 2 |
|
||||
| cflow.cs:48:17:48:39 | ...; | cflow.cs:49:17:49:22 | break; | 4 |
|
||||
| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:53:18:53:19 | 42 | 4 |
|
||||
| cflow.cs:54:17:54:48 | ...; | cflow.cs:55:17:55:22 | break; | 4 |
|
||||
| cflow.cs:56:13:56:20 | default: | cflow.cs:58:17:58:22 | break; | 5 |
|
||||
| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:23:63:33 | ... == ... | 12 |
|
||||
| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:62:18:62:18 | 0 | 6 |
|
||||
| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:23:63:33 | ... == ... | 6 |
|
||||
| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; | 2 |
|
||||
| cflow.cs:65:17:65:22 | break; | cflow.cs:67:9:67:17 | return ...; | 3 |
|
||||
| cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | break; | 1 |
|
||||
| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:9:67:17 | return ...; | 2 |
|
||||
| cflow.cs:70:18:70:18 | enter M | cflow.cs:72:13:72:21 | ... == ... | 6 |
|
||||
| cflow.cs:70:18:70:18 | exit M | cflow.cs:70:18:70:18 | exit M | 1 |
|
||||
| cflow.cs:73:13:73:19 | return ...; | cflow.cs:73:13:73:19 | return ...; | 1 |
|
||||
|
|
|
@ -235,8 +235,6 @@
|
|||
| post | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:43:20:68 | call to method Empty |
|
||||
| post | Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:22:20:22 | String x |
|
||||
| post | Foreach.cs:20:29:20:38 | call to method ToArray | Foreach.cs:20:29:20:38 | call to method ToArray |
|
||||
| post | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:18:10:18:11 | enter M3 |
|
||||
| post | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:29:20:38 | call to method ToArray |
|
||||
| post | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty |
|
||||
| post | Initializers.cs:6:5:6:16 | enter Initializers | Initializers.cs:6:5:6:16 | enter Initializers |
|
||||
| post | Initializers.cs:8:10:8:10 | enter M | Initializers.cs:8:10:8:10 | enter M |
|
||||
|
@ -422,12 +420,17 @@
|
|||
| post | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:77:10:77:11 | exit M7 |
|
||||
| post | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:82:22:82:25 | true |
|
||||
| post | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:83:13:83:20 | case ...: |
|
||||
| post | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:84:15:85:22 | if (...) ... |
|
||||
| post | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:85:17:85:22 | break; |
|
||||
| post | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:86:22:86:25 | true |
|
||||
| post | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:88:16:88:20 | false |
|
||||
| post | Switch.cs:82:22:82:25 | true | Switch.cs:82:22:82:25 | true |
|
||||
| post | Switch.cs:83:13:83:20 | case ...: | Switch.cs:83:13:83:20 | case ...: |
|
||||
| post | Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:84:15:85:22 | if (...) ... |
|
||||
| post | Switch.cs:85:17:85:22 | break; | Switch.cs:85:17:85:22 | break; |
|
||||
| post | Switch.cs:86:22:86:25 | true | Switch.cs:86:22:86:25 | true |
|
||||
| post | Switch.cs:88:16:88:20 | false | Switch.cs:85:17:85:22 | break; |
|
||||
| post | Switch.cs:88:16:88:20 | false | Switch.cs:88:16:88:20 | false |
|
||||
| post | Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | enter M8 |
|
||||
| post | Switch.cs:91:10:91:11 | exit M8 | Switch.cs:91:10:91:11 | enter M8 |
|
||||
| post | Switch.cs:91:10:91:11 | exit M8 | Switch.cs:91:10:91:11 | exit M8 |
|
||||
|
@ -438,10 +441,16 @@
|
|||
| post | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | enter M9 |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:101:9:101:10 | enter M9 |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:101:9:101:10 | exit M9 |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:103:19:103:25 | access to property Length |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:105:13:105:20 | case ...: |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:105:29:105:29 | 0 |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:106:13:106:20 | case ...: |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:106:29:106:29 | 1 |
|
||||
| post | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:108:17:108:17 | 1 |
|
||||
| post | Switch.cs:103:19:103:25 | access to property Length | Switch.cs:103:19:103:25 | access to property Length |
|
||||
| post | Switch.cs:105:13:105:20 | case ...: | Switch.cs:101:9:101:10 | enter M9 |
|
||||
| post | Switch.cs:105:13:105:20 | case ...: | Switch.cs:103:19:103:25 | access to property Length |
|
||||
| post | Switch.cs:105:13:105:20 | case ...: | Switch.cs:105:13:105:20 | case ...: |
|
||||
| post | Switch.cs:105:29:105:29 | 0 | Switch.cs:105:29:105:29 | 0 |
|
||||
| post | Switch.cs:106:13:106:20 | case ...: | Switch.cs:106:13:106:20 | case ...: |
|
||||
| post | Switch.cs:106:29:106:29 | 1 | Switch.cs:106:29:106:29 | 1 |
|
||||
|
@ -553,11 +562,15 @@
|
|||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:37:17:37:22 | exit Switch |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:44:13:44:19 | case ...: |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:47:13:47:19 | case ...: |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:48:17:48:39 | ...; |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:54:17:54:48 | ...; |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:56:13:56:20 | default: |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:65:17:65:22 | break; |
|
||||
| post | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| post | cflow.cs:42:17:42:39 | ...; | cflow.cs:42:17:42:39 | ...; |
|
||||
| post | cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | enter Switch |
|
||||
| post | cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | case ...: |
|
||||
|
@ -565,16 +578,27 @@
|
|||
| post | cflow.cs:47:13:47:19 | case ...: | cflow.cs:37:17:37:22 | enter Switch |
|
||||
| post | cflow.cs:47:13:47:19 | case ...: | cflow.cs:44:13:44:19 | case ...: |
|
||||
| post | cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | case ...: |
|
||||
| post | cflow.cs:48:17:48:39 | ...; | cflow.cs:48:17:48:39 | ...; |
|
||||
| post | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:37:17:37:22 | enter Switch |
|
||||
| post | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:44:13:44:19 | case ...: |
|
||||
| post | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:47:13:47:19 | case ...: |
|
||||
| post | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:48:17:48:39 | ...; |
|
||||
| post | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| post | cflow.cs:54:17:54:48 | ...; | cflow.cs:54:17:54:48 | ...; |
|
||||
| post | cflow.cs:56:13:56:20 | default: | cflow.cs:56:13:56:20 | default: |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:37:17:37:22 | enter Switch |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:44:13:44:19 | case ...: |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:47:13:47:19 | case ...: |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:48:17:48:39 | ...; |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:54:17:54:48 | ...; |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:56:13:56:20 | default: |
|
||||
| post | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| post | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| post | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| post | cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | break; |
|
||||
| post | cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:65:17:65:22 | break; |
|
||||
| post | cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| post | cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | enter M |
|
||||
| post | cflow.cs:70:18:70:18 | exit M | cflow.cs:70:18:70:18 | enter M |
|
||||
| post | cflow.cs:70:18:70:18 | exit M | cflow.cs:70:18:70:18 | exit M |
|
||||
|
@ -1290,9 +1314,6 @@
|
|||
| pre | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x |
|
||||
| pre | Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:22:20:22 | String x |
|
||||
| pre | Foreach.cs:20:29:20:38 | call to method ToArray | Foreach.cs:20:29:20:38 | call to method ToArray |
|
||||
| pre | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:18:10:18:11 | exit M3 |
|
||||
| pre | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... |
|
||||
| pre | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:22:20:22 | String x |
|
||||
| pre | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty |
|
||||
| pre | Initializers.cs:6:5:6:16 | enter Initializers | Initializers.cs:6:5:6:16 | enter Initializers |
|
||||
| pre | Initializers.cs:8:10:8:10 | enter M | Initializers.cs:8:10:8:10 | enter M |
|
||||
|
@ -1560,15 +1581,23 @@
|
|||
| pre | Switch.cs:77:10:77:11 | enter M7 | Switch.cs:77:10:77:11 | exit M7 |
|
||||
| pre | Switch.cs:77:10:77:11 | enter M7 | Switch.cs:82:22:82:25 | true |
|
||||
| pre | Switch.cs:77:10:77:11 | enter M7 | Switch.cs:83:13:83:20 | case ...: |
|
||||
| pre | Switch.cs:77:10:77:11 | enter M7 | Switch.cs:84:15:85:22 | if (...) ... |
|
||||
| pre | Switch.cs:77:10:77:11 | enter M7 | Switch.cs:85:17:85:22 | break; |
|
||||
| pre | Switch.cs:77:10:77:11 | enter M7 | Switch.cs:86:22:86:25 | true |
|
||||
| pre | Switch.cs:77:10:77:11 | enter M7 | Switch.cs:88:16:88:20 | false |
|
||||
| pre | Switch.cs:77:10:77:11 | exit M7 | Switch.cs:77:10:77:11 | exit M7 |
|
||||
| pre | Switch.cs:82:22:82:25 | true | Switch.cs:82:22:82:25 | true |
|
||||
| pre | Switch.cs:83:13:83:20 | case ...: | Switch.cs:83:13:83:20 | case ...: |
|
||||
| pre | Switch.cs:83:13:83:20 | case ...: | Switch.cs:84:15:85:22 | if (...) ... |
|
||||
| pre | Switch.cs:83:13:83:20 | case ...: | Switch.cs:85:17:85:22 | break; |
|
||||
| pre | Switch.cs:83:13:83:20 | case ...: | Switch.cs:86:22:86:25 | true |
|
||||
| pre | Switch.cs:83:13:83:20 | case ...: | Switch.cs:88:16:88:20 | false |
|
||||
| pre | Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:84:15:85:22 | if (...) ... |
|
||||
| pre | Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:85:17:85:22 | break; |
|
||||
| pre | Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:86:22:86:25 | true |
|
||||
| pre | Switch.cs:85:17:85:22 | break; | Switch.cs:85:17:85:22 | break; |
|
||||
| pre | Switch.cs:86:22:86:25 | true | Switch.cs:86:22:86:25 | true |
|
||||
| pre | Switch.cs:88:16:88:20 | false | Switch.cs:88:16:88:20 | false |
|
||||
| pre | Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | enter M8 |
|
||||
| pre | Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | exit M8 |
|
||||
| pre | Switch.cs:91:10:91:11 | enter M8 | Switch.cs:96:22:96:25 | true |
|
||||
|
@ -1578,11 +1607,20 @@
|
|||
| pre | Switch.cs:98:16:98:20 | false | Switch.cs:98:16:98:20 | false |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | enter M9 |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | exit M9 |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:103:19:103:25 | access to property Length |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:105:13:105:20 | case ...: |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:105:29:105:29 | 0 |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:106:13:106:20 | case ...: |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:106:29:106:29 | 1 |
|
||||
| pre | Switch.cs:101:9:101:10 | enter M9 | Switch.cs:108:17:108:17 | 1 |
|
||||
| pre | Switch.cs:101:9:101:10 | exit M9 | Switch.cs:101:9:101:10 | exit M9 |
|
||||
| pre | Switch.cs:103:19:103:25 | access to property Length | Switch.cs:103:19:103:25 | access to property Length |
|
||||
| pre | Switch.cs:105:13:105:20 | case ...: | Switch.cs:101:9:101:10 | exit M9 |
|
||||
| pre | Switch.cs:105:13:105:20 | case ...: | Switch.cs:105:13:105:20 | case ...: |
|
||||
| pre | Switch.cs:105:13:105:20 | case ...: | Switch.cs:105:29:105:29 | 0 |
|
||||
| pre | Switch.cs:105:13:105:20 | case ...: | Switch.cs:106:13:106:20 | case ...: |
|
||||
| pre | Switch.cs:105:13:105:20 | case ...: | Switch.cs:106:29:106:29 | 1 |
|
||||
| pre | Switch.cs:105:13:105:20 | case ...: | Switch.cs:108:17:108:17 | 1 |
|
||||
| pre | Switch.cs:105:29:105:29 | 0 | Switch.cs:105:29:105:29 | 0 |
|
||||
| pre | Switch.cs:106:13:106:20 | case ...: | Switch.cs:106:13:106:20 | case ...: |
|
||||
| pre | Switch.cs:106:13:106:20 | case ...: | Switch.cs:106:29:106:29 | 1 |
|
||||
|
@ -1740,37 +1778,65 @@
|
|||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:44:13:44:19 | case ...: |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:45:17:45:39 | ...; |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:47:13:47:19 | case ...: |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:48:17:48:39 | ...; |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:54:17:54:48 | ...; |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:56:13:56:20 | default: |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:37:17:37:22 | enter Switch | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:37:17:37:22 | exit Switch | cflow.cs:37:17:37:22 | exit Switch |
|
||||
| pre | cflow.cs:42:17:42:39 | ...; | cflow.cs:42:17:42:39 | ...; |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | exit Switch |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | case ...: |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:47:13:47:19 | case ...: |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:48:17:48:39 | ...; |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:54:17:54:48 | ...; |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:56:13:56:20 | default: |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:44:13:44:19 | case ...: | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:45:17:45:39 | ...; | cflow.cs:45:17:45:39 | ...; |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:37:17:37:22 | exit Switch |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | case ...: |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:48:17:48:39 | ...; |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:54:17:54:48 | ...; |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:56:13:56:20 | default: |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:48:17:48:39 | ...; | cflow.cs:48:17:48:39 | ...; |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:37:17:37:22 | exit Switch |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:54:17:54:48 | ...; |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:56:13:56:20 | default: |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:54:17:54:48 | ...; | cflow.cs:54:17:54:48 | ...; |
|
||||
| pre | cflow.cs:56:13:56:20 | default: | cflow.cs:56:13:56:20 | default: |
|
||||
| pre | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:37:17:37:22 | exit Switch |
|
||||
| pre | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| pre | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| pre | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| pre | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| pre | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException |
|
||||
| pre | cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | enter M |
|
||||
| pre | cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | exit M |
|
||||
| pre | cflow.cs:70:18:70:18 | enter M | cflow.cs:73:13:73:19 | return ...; |
|
||||
|
|
|
@ -375,12 +375,11 @@
|
|||
| post | Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:13:5:16:5 | {...} |
|
||||
| post | Foreach.cs:18:10:18:11 | exit M3 | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... |
|
||||
| post | Foreach.cs:19:5:22:5 | {...} | Foreach.cs:18:10:18:11 | enter M3 |
|
||||
| post | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:29:20:38 | call to method ToArray |
|
||||
| post | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:43:20:68 | call to method Empty |
|
||||
| post | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:21:11:21:11 | ; |
|
||||
| post | Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:68 | ... ?? ... |
|
||||
| post | Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:19:5:22:5 | {...} |
|
||||
| post | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:27:20:27 | access to parameter e |
|
||||
| post | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:29:20:38 | call to method ToArray |
|
||||
| post | Foreach.cs:21:11:21:11 | ; | Foreach.cs:20:22:20:22 | String x |
|
||||
| post | Initializers.cs:6:5:6:16 | exit Initializers | Initializers.cs:6:28:6:30 | {...} |
|
||||
| post | Initializers.cs:6:28:6:30 | {...} | Initializers.cs:6:5:6:16 | enter Initializers |
|
||||
|
@ -691,7 +690,6 @@
|
|||
| post | Switch.cs:81:18:81:18 | 1 | Switch.cs:81:13:81:20 | case ...: |
|
||||
| post | Switch.cs:82:15:82:26 | return ...; | Switch.cs:82:22:82:25 | true |
|
||||
| post | Switch.cs:83:18:83:18 | 2 | Switch.cs:83:13:83:20 | case ...: |
|
||||
| post | Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:83:18:83:18 | 2 |
|
||||
| post | Switch.cs:84:19:84:19 | access to parameter j | Switch.cs:84:15:85:22 | if (...) ... |
|
||||
| post | Switch.cs:84:19:84:23 | ... > ... | Switch.cs:84:23:84:23 | 2 |
|
||||
| post | Switch.cs:84:23:84:23 | 2 | Switch.cs:84:19:84:19 | access to parameter j |
|
||||
|
@ -713,7 +711,7 @@
|
|||
| post | Switch.cs:102:5:109:5 | {...} | Switch.cs:101:9:101:10 | enter M9 |
|
||||
| post | Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:102:5:109:5 | {...} |
|
||||
| post | Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:9:107:9 | switch (...) {...} |
|
||||
| post | Switch.cs:103:19:103:25 | access to property Length | Switch.cs:103:17:103:17 | access to parameter s |
|
||||
| post | Switch.cs:105:13:105:20 | case ...: | Switch.cs:103:17:103:17 | access to parameter s |
|
||||
| post | Switch.cs:105:13:105:20 | case ...: | Switch.cs:103:19:103:25 | access to property Length |
|
||||
| post | Switch.cs:105:18:105:18 | 0 | Switch.cs:105:13:105:20 | case ...: |
|
||||
| post | Switch.cs:105:22:105:30 | return ...; | Switch.cs:105:29:105:29 | 0 |
|
||||
|
@ -896,9 +894,9 @@
|
|||
| post | cflow.cs:47:13:47:19 | case ...: | cflow.cs:44:18:44:18 | 2 |
|
||||
| post | cflow.cs:47:18:47:18 | 3 | cflow.cs:47:13:47:19 | case ...: |
|
||||
| post | cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:48:35:48:37 | "3" |
|
||||
| post | cflow.cs:48:17:48:39 | ...; | cflow.cs:47:18:47:18 | 3 |
|
||||
| post | cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:39 | ...; |
|
||||
| post | cflow.cs:49:17:49:22 | break; | cflow.cs:48:17:48:38 | call to method WriteLine |
|
||||
| post | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:47:18:47:18 | 3 |
|
||||
| post | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:49:17:49:22 | break; |
|
||||
| post | cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| post | cflow.cs:53:13:53:20 | case ...: | cflow.cs:51:17:51:17 | access to parameter a |
|
||||
|
@ -917,7 +915,6 @@
|
|||
| post | cflow.cs:60:27:60:31 | this access | cflow.cs:60:9:66:9 | switch (...) {...} |
|
||||
| post | cflow.cs:62:13:62:19 | case ...: | cflow.cs:60:17:60:32 | call to method Parse |
|
||||
| post | cflow.cs:62:18:62:18 | 0 | cflow.cs:62:13:62:19 | case ...: |
|
||||
| post | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:62:18:62:18 | 0 |
|
||||
| post | cflow.cs:63:21:63:34 | !... | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| post | cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:23:63:27 | this access |
|
||||
| post | cflow.cs:63:23:63:27 | this access | cflow.cs:63:21:63:34 | !... |
|
||||
|
@ -2081,7 +2078,6 @@
|
|||
| pre | Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:29:20:38 | call to method ToArray |
|
||||
| pre | Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:43:20:68 | call to method Empty |
|
||||
| pre | Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:27 | access to parameter e |
|
||||
| pre | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... |
|
||||
| pre | Initializers.cs:6:5:6:16 | enter Initializers | Initializers.cs:6:28:6:30 | {...} |
|
||||
| pre | Initializers.cs:6:28:6:30 | {...} | Initializers.cs:6:5:6:16 | exit Initializers |
|
||||
| pre | Initializers.cs:8:10:8:10 | enter M | Initializers.cs:9:5:12:5 | {...} |
|
||||
|
@ -2405,12 +2401,12 @@
|
|||
| pre | Switch.cs:82:22:82:25 | true | Switch.cs:82:15:82:26 | return ...; |
|
||||
| pre | Switch.cs:83:13:83:20 | case ...: | Switch.cs:83:18:83:18 | 2 |
|
||||
| pre | Switch.cs:83:18:83:18 | 2 | Switch.cs:84:15:85:22 | if (...) ... |
|
||||
| pre | Switch.cs:83:18:83:18 | 2 | Switch.cs:88:16:88:20 | false |
|
||||
| pre | Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:84:19:84:19 | access to parameter j |
|
||||
| pre | Switch.cs:84:19:84:19 | access to parameter j | Switch.cs:84:23:84:23 | 2 |
|
||||
| pre | Switch.cs:84:19:84:23 | ... > ... | Switch.cs:85:17:85:22 | break; |
|
||||
| pre | Switch.cs:84:19:84:23 | ... > ... | Switch.cs:86:22:86:25 | true |
|
||||
| pre | Switch.cs:84:23:84:23 | 2 | Switch.cs:84:19:84:23 | ... > ... |
|
||||
| pre | Switch.cs:85:17:85:22 | break; | Switch.cs:88:16:88:20 | false |
|
||||
| pre | Switch.cs:86:22:86:25 | true | Switch.cs:86:15:86:26 | return ...; |
|
||||
| pre | Switch.cs:88:16:88:20 | false | Switch.cs:88:9:88:21 | return ...; |
|
||||
| pre | Switch.cs:91:10:91:11 | enter M8 | Switch.cs:92:5:99:5 | {...} |
|
||||
|
@ -2426,7 +2422,7 @@
|
|||
| pre | Switch.cs:102:5:109:5 | {...} | Switch.cs:103:9:107:9 | switch (...) {...} |
|
||||
| pre | Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:103:17:103:17 | access to parameter s |
|
||||
| pre | Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:19:103:25 | access to property Length |
|
||||
| pre | Switch.cs:103:19:103:25 | access to property Length | Switch.cs:105:13:105:20 | case ...: |
|
||||
| pre | Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:105:13:105:20 | case ...: |
|
||||
| pre | Switch.cs:105:13:105:20 | case ...: | Switch.cs:105:18:105:18 | 0 |
|
||||
| pre | Switch.cs:105:18:105:18 | 0 | Switch.cs:105:29:105:29 | 0 |
|
||||
| pre | Switch.cs:105:18:105:18 | 0 | Switch.cs:106:13:106:20 | case ...: |
|
||||
|
@ -2614,10 +2610,10 @@
|
|||
| pre | cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; |
|
||||
| pre | cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 |
|
||||
| pre | cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; |
|
||||
| pre | cflow.cs:47:18:47:18 | 3 | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:49:17:49:22 | break; |
|
||||
| pre | cflow.cs:48:17:48:39 | ...; | cflow.cs:48:35:48:37 | "3" |
|
||||
| pre | cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:38 | call to method WriteLine |
|
||||
| pre | cflow.cs:49:17:49:22 | break; | cflow.cs:51:9:59:9 | switch (...) {...} |
|
||||
| pre | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:17:51:17 | access to parameter a |
|
||||
| pre | cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:53:13:53:20 | case ...: |
|
||||
| pre | cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:18:53:19 | 42 |
|
||||
|
@ -2636,6 +2632,7 @@
|
|||
| pre | cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | access to field Field |
|
||||
| pre | cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:18:62:18 | 0 |
|
||||
| pre | cflow.cs:62:18:62:18 | 0 | cflow.cs:63:17:64:55 | if (...) ... |
|
||||
| pre | cflow.cs:62:18:62:18 | 0 | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | !... |
|
||||
| pre | cflow.cs:63:21:63:34 | !... | cflow.cs:63:23:63:27 | this access |
|
||||
| pre | cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:32:63:33 | "" |
|
||||
|
@ -2644,7 +2641,6 @@
|
|||
| pre | cflow.cs:63:23:63:33 | ... == ... | cflow.cs:65:17:65:22 | break; |
|
||||
| pre | cflow.cs:63:32:63:33 | "" | cflow.cs:63:23:63:33 | ... == ... |
|
||||
| pre | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; |
|
||||
| pre | cflow.cs:65:17:65:22 | break; | cflow.cs:67:16:67:16 | access to parameter a |
|
||||
| pre | cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:9:67:17 | return ...; |
|
||||
| pre | cflow.cs:70:18:70:18 | enter M | cflow.cs:71:5:82:5 | {...} |
|
||||
| pre | cflow.cs:71:5:82:5 | {...} | cflow.cs:72:9:73:19 | if (...) ... |
|
||||
|
|
|
@ -304,6 +304,7 @@
|
|||
| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:29:20:38 | call to method ToArray | semmle.label | non-null |
|
||||
| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:43:20:68 | call to method Empty | semmle.label | null |
|
||||
| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:27 | access to parameter e | semmle.label | successor |
|
||||
| Foreach.cs:20:29:20:38 | call to method ToArray | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | semmle.label | non-null |
|
||||
| Foreach.cs:20:29:20:38 | call to method ToArray | Foreach.cs:20:43:20:68 | call to method Empty | semmle.label | null |
|
||||
| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Foreach.cs:21:11:21:11 | ; | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
|
@ -625,6 +626,7 @@
|
|||
| Switch.cs:82:22:82:25 | true | Switch.cs:82:15:82:26 | return ...; | semmle.label | successor |
|
||||
| Switch.cs:83:13:83:20 | case ...: | Switch.cs:83:18:83:18 | 2 | semmle.label | successor |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:84:15:85:22 | if (...) ... | semmle.label | match |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:88:16:88:20 | false | semmle.label | no-match |
|
||||
| Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:84:19:84:19 | access to parameter j | semmle.label | successor |
|
||||
| Switch.cs:84:19:84:19 | access to parameter j | Switch.cs:84:23:84:23 | 2 | semmle.label | successor |
|
||||
| Switch.cs:84:19:84:23 | ... > ... | Switch.cs:85:17:85:22 | break; | semmle.label | true |
|
||||
|
@ -644,6 +646,7 @@
|
|||
| Switch.cs:102:5:109:5 | {...} | Switch.cs:103:9:107:9 | switch (...) {...} | semmle.label | successor |
|
||||
| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:103:17:103:17 | access to parameter s | semmle.label | successor |
|
||||
| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:19:103:25 | access to property Length | semmle.label | non-null |
|
||||
| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:105:13:105:20 | case ...: | semmle.label | null |
|
||||
| Switch.cs:103:19:103:25 | access to property Length | Switch.cs:105:13:105:20 | case ...: | semmle.label | successor |
|
||||
| Switch.cs:105:13:105:20 | case ...: | Switch.cs:105:18:105:18 | 0 | semmle.label | successor |
|
||||
| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:29:105:29 | 0 | semmle.label | match |
|
||||
|
@ -832,6 +835,7 @@
|
|||
| cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; | semmle.label | successor |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | semmle.label | successor |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | semmle.label | match |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:51:9:59:9 | switch (...) {...} | semmle.label | no-match |
|
||||
| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:49:17:49:22 | break; | semmle.label | successor |
|
||||
| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:35:48:37 | "3" | semmle.label | successor |
|
||||
| cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:38 | call to method WriteLine | semmle.label | successor |
|
||||
|
@ -856,6 +860,7 @@
|
|||
| cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | access to field Field | semmle.label | successor |
|
||||
| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:18:62:18 | 0 | semmle.label | successor |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:63:17:64:55 | if (...) ... | semmle.label | match |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:67:16:67:16 | access to parameter a | semmle.label | no-match |
|
||||
| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | !... | semmle.label | successor |
|
||||
| cflow.cs:63:21:63:34 | !... | cflow.cs:63:23:63:27 | this access | semmle.label | successor |
|
||||
| cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:32:63:33 | "" | semmle.label | successor |
|
||||
|
|
|
@ -887,6 +887,7 @@
|
|||
| Switch.cs:78:5:89:5 | {...} | Switch.cs:86:15:86:26 | return ...; | return |
|
||||
| Switch.cs:78:5:89:5 | {...} | Switch.cs:88:9:88:21 | return ...; | return |
|
||||
| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:82:15:82:26 | return ...; | return |
|
||||
| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:83:18:83:18 | 2 | no-match |
|
||||
| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:85:17:85:22 | break; | normal (break) |
|
||||
| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:86:15:86:26 | return ...; | return |
|
||||
| Switch.cs:79:17:79:17 | access to parameter i | Switch.cs:79:17:79:17 | access to parameter i | normal |
|
||||
|
@ -1127,6 +1128,7 @@
|
|||
| cflow.cs:33:35:33:35 | access to local variable i | cflow.cs:33:35:33:35 | access to local variable i | normal |
|
||||
| cflow.cs:38:5:68:5 | {...} | cflow.cs:64:21:64:55 | throw ...; | throw(NullReferenceException) |
|
||||
| cflow.cs:38:5:68:5 | {...} | cflow.cs:67:9:67:17 | return ...; | return |
|
||||
| cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:47:18:47:18 | 3 | no-match |
|
||||
| cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:49:17:49:22 | break; | normal (break) |
|
||||
| cflow.cs:39:17:39:17 | access to parameter a | cflow.cs:39:17:39:17 | access to parameter a | normal |
|
||||
| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:18:41:18 | 1 | no-match |
|
||||
|
@ -1171,6 +1173,7 @@
|
|||
| cflow.cs:57:17:57:52 | ...; | cflow.cs:57:17:57:51 | call to method WriteLine | normal |
|
||||
| cflow.cs:57:35:57:50 | "Not the answer" | cflow.cs:57:35:57:50 | "Not the answer" | normal |
|
||||
| cflow.cs:58:17:58:22 | break; | cflow.cs:58:17:58:22 | break; | break |
|
||||
| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:62:18:62:18 | 0 | no-match |
|
||||
| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:64:21:64:55 | throw ...; | throw(NullReferenceException) |
|
||||
| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:65:17:65:22 | break; | normal (break) |
|
||||
| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:60:17:60:32 | call to method Parse | normal |
|
||||
|
|
|
@ -435,6 +435,7 @@
|
|||
| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:29:20:38 | call to method ToArray | semmle.label | non-null |
|
||||
| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:43:20:68 | call to method Empty | semmle.label | null |
|
||||
| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:27 | access to parameter e | semmle.label | successor |
|
||||
| Foreach.cs:20:29:20:38 | call to method ToArray | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | semmle.label | non-null |
|
||||
| Foreach.cs:20:29:20:38 | call to method ToArray | Foreach.cs:20:43:20:68 | call to method Empty | semmle.label | null |
|
||||
| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
| Foreach.cs:21:11:21:11 | ; | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | semmle.label | successor |
|
||||
|
@ -814,6 +815,7 @@
|
|||
| Switch.cs:82:22:82:25 | true | Switch.cs:82:15:82:26 | return ...; | semmle.label | successor |
|
||||
| Switch.cs:83:13:83:20 | case ...: | Switch.cs:83:18:83:18 | 2 | semmle.label | successor |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:84:15:85:22 | if (...) ... | semmle.label | match |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:88:16:88:20 | false | semmle.label | no-match |
|
||||
| Switch.cs:84:15:85:22 | if (...) ... | Switch.cs:84:19:84:19 | access to parameter j | semmle.label | successor |
|
||||
| Switch.cs:84:19:84:19 | access to parameter j | Switch.cs:84:23:84:23 | 2 | semmle.label | successor |
|
||||
| Switch.cs:84:19:84:23 | ... > ... | Switch.cs:85:17:85:22 | break; | semmle.label | true |
|
||||
|
@ -839,6 +841,7 @@
|
|||
| Switch.cs:102:5:109:5 | {...} | Switch.cs:103:9:107:9 | switch (...) {...} | semmle.label | successor |
|
||||
| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:103:17:103:17 | access to parameter s | semmle.label | successor |
|
||||
| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:19:103:25 | access to property Length | semmle.label | non-null |
|
||||
| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:105:13:105:20 | case ...: | semmle.label | null |
|
||||
| Switch.cs:103:19:103:25 | access to property Length | Switch.cs:105:13:105:20 | case ...: | semmle.label | successor |
|
||||
| Switch.cs:105:13:105:20 | case ...: | Switch.cs:105:18:105:18 | 0 | semmle.label | successor |
|
||||
| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:29:105:29 | 0 | semmle.label | match |
|
||||
|
@ -1045,6 +1048,7 @@
|
|||
| cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; | semmle.label | successor |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | semmle.label | successor |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | semmle.label | match |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:51:9:59:9 | switch (...) {...} | semmle.label | no-match |
|
||||
| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:49:17:49:22 | break; | semmle.label | successor |
|
||||
| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:35:48:37 | "3" | semmle.label | successor |
|
||||
| cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:38 | call to method WriteLine | semmle.label | successor |
|
||||
|
@ -1069,6 +1073,7 @@
|
|||
| cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | access to field Field | semmle.label | successor |
|
||||
| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:18:62:18 | 0 | semmle.label | successor |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:63:17:64:55 | if (...) ... | semmle.label | match |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:67:16:67:16 | access to parameter a | semmle.label | no-match |
|
||||
| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | !... | semmle.label | successor |
|
||||
| cflow.cs:63:21:63:34 | !... | cflow.cs:63:23:63:27 | this access | semmle.label | successor |
|
||||
| cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:32:63:33 | "" | semmle.label | successor |
|
||||
|
|
Загрузка…
Ссылка в новой задаче