Skip to content

Commit 5c5949b

Browse files
committed
Add tests for neutral models
1 parent c964fc2 commit 5c5949b

File tree

14 files changed

+210
-174
lines changed

14 files changed

+210
-174
lines changed

go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ extensions:
55
data:
66
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
77
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
8-
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
8+
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
9+
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
910
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
1011
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
1112
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
@@ -25,13 +26,16 @@ extensions:
2526
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
2627
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
2728
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
28-
29+
- addsTo:
30+
pack: codeql/go-all
31+
extensible: neutralModel
32+
data:
33+
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
2934
- addsTo:
3035
pack: codeql/go-all
3136
extensible: sourceModel
3237
data:
3338
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
34-
3539
- addsTo:
3640
pack: codeql/go-all
3741
extensible: sinkModel
Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,45 @@
11
invalidModelRow
22
#select
3-
| test.go:47:10:47:12 | arg | qltest |
4-
| test.go:48:2:48:13 | type assertion | qltest |
5-
| test.go:61:10:61:15 | taint1 | qltest |
6-
| test.go:64:10:64:15 | taint2 | qltest |
7-
| test.go:68:10:68:15 | taint3 | qltest |
8-
| test.go:72:10:72:15 | taint4 | qltest |
9-
| test.go:75:10:75:15 | taint5 | qltest |
10-
| test.go:79:10:79:15 | taint6 | qltest |
11-
| test.go:82:10:82:15 | taint7 | qltest |
12-
| test.go:85:10:85:18 | index expression | qltest |
13-
| test.go:87:11:87:11 | x | qltest |
14-
| test.go:90:11:90:11 | x | qltest |
15-
| test.go:95:10:95:15 | taint9 | qltest |
16-
| test.go:98:10:98:33 | call to GetElement | qltest |
17-
| test.go:99:10:99:18 | <-... | qltest |
18-
| test.go:101:11:101:11 | e | qltest |
19-
| test.go:104:11:104:11 | e | qltest |
20-
| test.go:109:10:109:16 | taint11 | qltest |
21-
| test.go:112:10:112:32 | call to GetMapKey | qltest |
22-
| test.go:114:11:114:11 | k | qltest |
23-
| test.go:117:11:117:11 | k | qltest |
24-
| test.go:120:11:120:11 | k | qltest |
25-
| test.go:123:11:123:11 | k | qltest |
26-
| test.go:128:10:128:16 | taint13 | qltest |
27-
| test.go:131:10:131:20 | index expression | qltest |
28-
| test.go:133:11:133:11 | v | qltest |
29-
| test.go:136:11:136:11 | v | qltest |
30-
| test.go:141:10:141:16 | taint15 | qltest |
31-
| test.go:145:10:145:17 | index expression | qltest |
32-
| test.go:151:10:151:18 | index expression | qltest |
33-
| test.go:156:10:156:16 | taint16 | qltest |
34-
| test.go:160:10:160:13 | selection of F | qltest |
35-
| test.go:163:10:163:17 | call to Get | qltest |
36-
| test.go:167:10:167:17 | call to Get | qltest |
3+
| test.go:48:10:48:12 | arg | qltest |
4+
| test.go:49:2:49:13 | type assertion | qltest |
5+
| test.go:62:10:62:15 | taint1 | qltest |
6+
| test.go:65:10:65:15 | taint2 | qltest |
7+
| test.go:69:10:69:15 | taint3 | qltest |
8+
| test.go:73:10:73:22 | taint3ignored | qltest |
9+
| test.go:77:10:77:15 | taint4 | qltest |
10+
| test.go:80:10:80:15 | taint5 | qltest |
11+
| test.go:84:10:84:15 | taint6 | qltest |
12+
| test.go:87:10:87:15 | taint7 | qltest |
13+
| test.go:90:10:90:18 | index expression | qltest |
14+
| test.go:92:11:92:11 | x | qltest |
15+
| test.go:95:11:95:11 | x | qltest |
16+
| test.go:100:10:100:15 | taint9 | qltest |
17+
| test.go:103:10:103:33 | call to GetElement | qltest |
18+
| test.go:104:10:104:18 | <-... | qltest |
19+
| test.go:106:11:106:11 | e | qltest |
20+
| test.go:109:11:109:11 | e | qltest |
21+
| test.go:114:10:114:16 | taint11 | qltest |
22+
| test.go:117:10:117:32 | call to GetMapKey | qltest |
23+
| test.go:119:11:119:11 | k | qltest |
24+
| test.go:122:11:122:11 | k | qltest |
25+
| test.go:125:11:125:11 | k | qltest |
26+
| test.go:128:11:128:11 | k | qltest |
27+
| test.go:133:10:133:16 | taint13 | qltest |
28+
| test.go:136:10:136:20 | index expression | qltest |
29+
| test.go:138:11:138:11 | v | qltest |
30+
| test.go:141:11:141:11 | v | qltest |
31+
| test.go:146:10:146:16 | taint15 | qltest |
32+
| test.go:150:10:150:17 | index expression | qltest |
33+
| test.go:156:10:156:18 | index expression | qltest |
34+
| test.go:161:10:161:16 | taint16 | qltest |
35+
| test.go:165:10:165:13 | selection of F | qltest |
36+
| test.go:168:10:168:17 | call to Get | qltest |
3737
| test.go:172:10:172:17 | call to Get | qltest |
38-
| test.go:176:10:176:14 | selection of F | qltest |
39-
| test.go:179:10:179:32 | call to GetThroughPointer | qltest |
40-
| test.go:183:10:183:32 | call to GetThroughPointer | qltest |
38+
| test.go:177:10:177:17 | call to Get | qltest |
39+
| test.go:181:10:181:14 | selection of F | qltest |
40+
| test.go:184:10:184:32 | call to GetThroughPointer | qltest |
4141
| test.go:188:10:188:32 | call to GetThroughPointer | qltest |
42-
| test.go:194:17:194:20 | arg1 | qltest |
43-
| test.go:194:23:194:26 | arg2 | qltest |
44-
| test.go:194:29:194:32 | arg3 | qltest |
42+
| test.go:193:10:193:32 | call to GetThroughPointer | qltest |
43+
| test.go:199:17:199:20 | arg1 | qltest |
44+
| test.go:199:23:199:26 | arg2 | qltest |
45+
| test.go:199:29:199:32 | arg3 | qltest |
Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
invalidModelRow
22
#select
33
| test.go:10:6:10:8 | definition of arg | qltest-arg |
4-
| test.go:38:8:38:15 | call to Src1 | qltest |
5-
| test.go:39:8:39:15 | call to Src2 | qltest |
6-
| test.go:39:8:39:15 | call to Src2 | qltest-w-subtypes |
7-
| test.go:40:8:40:16 | call to Src2 | qltest-w-subtypes |
8-
| test.go:41:2:41:21 | ... = ...[0] | qltest |
9-
| test.go:41:2:41:21 | ... = ...[1] | qltest-w-subtypes |
10-
| test.go:42:2:42:22 | ... = ...[1] | qltest-w-subtypes |
11-
| test.go:58:9:58:16 | call to Src1 | qltest |
12-
| test.go:97:46:97:53 | call to Src1 | qltest |
13-
| test.go:107:35:107:42 | call to Src1 | qltest |
14-
| test.go:111:42:111:49 | call to Src1 | qltest |
15-
| test.go:154:8:154:15 | call to Src1 | qltest |
16-
| test.go:159:9:159:16 | call to Src1 | qltest |
17-
| test.go:162:15:162:22 | call to Src1 | qltest |
18-
| test.go:166:9:166:16 | call to Src1 | qltest |
19-
| test.go:170:9:170:16 | call to Src1 | qltest |
20-
| test.go:175:24:175:31 | call to Src1 | qltest |
21-
| test.go:178:17:178:24 | call to Src1 | qltest |
22-
| test.go:182:24:182:31 | call to Src1 | qltest |
23-
| test.go:186:24:186:31 | call to Src1 | qltest |
4+
| test.go:39:8:39:15 | call to Src1 | qltest |
5+
| test.go:40:8:40:15 | call to Src2 | qltest |
6+
| test.go:40:8:40:15 | call to Src2 | qltest-w-subtypes |
7+
| test.go:41:8:41:16 | call to Src2 | qltest-w-subtypes |
8+
| test.go:42:2:42:21 | ... = ...[0] | qltest |
9+
| test.go:42:2:42:21 | ... = ...[1] | qltest-w-subtypes |
10+
| test.go:43:2:43:22 | ... = ...[1] | qltest-w-subtypes |
11+
| test.go:59:9:59:16 | call to Src1 | qltest |
12+
| test.go:102:46:102:53 | call to Src1 | qltest |
13+
| test.go:112:35:112:42 | call to Src1 | qltest |
14+
| test.go:116:42:116:49 | call to Src1 | qltest |
15+
| test.go:159:8:159:15 | call to Src1 | qltest |
16+
| test.go:164:9:164:16 | call to Src1 | qltest |
17+
| test.go:167:15:167:22 | call to Src1 | qltest |
18+
| test.go:171:9:171:16 | call to Src1 | qltest |
19+
| test.go:175:9:175:16 | call to Src1 | qltest |
20+
| test.go:180:24:180:31 | call to Src1 | qltest |
21+
| test.go:183:17:183:24 | call to Src1 | qltest |
22+
| test.go:187:24:187:31 | call to Src1 | qltest |
23+
| test.go:191:24:191:31 | call to Src1 | qltest |

go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.expected

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ invalidModelRow
33
| test.go:17:23:17:25 | arg | test.go:17:10:17:26 | call to StepArgRes |
44
| test.go:18:27:18:29 | arg | test.go:18:2:18:30 | ... = ...[1] |
55
| test.go:19:15:19:17 | arg | test.go:11:6:11:9 | definition of arg1 |
6-
| test.go:20:16:20:18 | arg | test.go:13:6:13:6 | definition of t |
7-
| test.go:21:10:21:10 | t | test.go:21:10:21:24 | call to StepQualRes |
8-
| test.go:22:2:22:2 | t | test.go:10:6:10:8 | definition of arg |
9-
| test.go:23:32:23:34 | arg | test.go:23:10:23:35 | call to StepArgResNoQual |
10-
| test.go:60:25:60:27 | src | test.go:60:12:60:28 | call to StepArgRes |
11-
| test.go:63:29:63:31 | src | test.go:63:2:63:32 | ... := ...[1] |
12-
| test.go:67:15:67:17 | src | test.go:66:6:66:11 | definition of taint3 |
13-
| test.go:71:21:71:23 | src | test.go:70:6:70:11 | definition of taint4 |
14-
| test.go:74:13:74:25 | type assertion | test.go:74:12:74:40 | call to StepQualRes |
15-
| test.go:78:3:78:15 | type assertion | test.go:77:6:77:11 | definition of taint6 |
16-
| test.go:81:34:81:36 | src | test.go:81:12:81:37 | call to StepArgResNoQual |
6+
| test.go:21:16:21:18 | arg | test.go:13:6:13:6 | definition of t |
7+
| test.go:22:10:22:10 | t | test.go:22:10:22:24 | call to StepQualRes |
8+
| test.go:23:2:23:2 | t | test.go:10:6:10:8 | definition of arg |
9+
| test.go:24:32:24:34 | arg | test.go:24:10:24:35 | call to StepArgResNoQual |
10+
| test.go:61:25:61:27 | src | test.go:61:12:61:28 | call to StepArgRes |
11+
| test.go:64:29:64:31 | src | test.go:64:2:64:32 | ... := ...[1] |
12+
| test.go:68:15:68:17 | src | test.go:67:6:67:11 | definition of taint3 |
13+
| test.go:76:21:76:23 | src | test.go:75:6:75:11 | definition of taint4 |
14+
| test.go:79:13:79:25 | type assertion | test.go:79:12:79:40 | call to StepQualRes |
15+
| test.go:83:3:83:15 | type assertion | test.go:82:6:82:11 | definition of taint6 |
16+
| test.go:86:34:86:36 | src | test.go:86:12:86:37 | call to StepArgResNoQual |

go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,16 @@ extensions:
55
data:
66
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
77
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
8-
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
8+
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
9+
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
910
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
1011
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
1112
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
1213
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
1314
- ["github.com/nonexistent/test", "", False, "StepArgResContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"]
1415
- ["github.com/nonexistent/test", "", False, "StepArgContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
16+
- addsTo:
17+
pack: codeql/go-all
18+
extensible: neutralModel
19+
data:
20+
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]

go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func main() {
1717
taint = t.StepArgRes(arg)
1818
_, taint = t.StepArgRes1(arg)
1919
t.StepArgArg(arg, arg1)
20+
t.StepArgArgIgnored(arg, arg1)
2021
t.StepArgQual(arg)
2122
taint = t.StepQualRes()
2223
t.StepQualArg(arg)
@@ -67,6 +68,10 @@ func simpleflow() {
6768
t.StepArgArg(src, taint3)
6869
b.Sink1(taint3) // $ hasTaintFlow="taint3"
6970

71+
var taint3ignored interface{}
72+
t.StepArgArgIgnored(src, taint3ignored)
73+
b.Sink1(taint3ignored)
74+
7075
var taint4 test.T
7176
taint4.StepArgQual(src)
7277
b.Sink1(taint4) // $ hasTaintFlow="taint4"

go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/vendor/github.com/nonexistent/test/stub.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ extensions:
55
data:
66
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
77
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "value", "manual"]
8-
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "manual"]
8+
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
9+
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
910
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "value", "manual"]
1011
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "value", "manual"]
1112
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "value", "manual"]
@@ -25,13 +26,16 @@ extensions:
2526
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
2627
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
2728
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
28-
29+
- addsTo:
30+
pack: codeql/go-all
31+
extensible: neutralModel
32+
data:
33+
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
2934
- addsTo:
3035
pack: codeql/go-all
3136
extensible: sourceModel
3237
data:
3338
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
34-
3539
- addsTo:
3640
pack: codeql/go-all
3741
extensible: sinkModel
Lines changed: 47 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,51 @@
11
invalidModelRow
22
#select
3-
| test.go:47:10:47:12 | arg | qltest |
4-
| test.go:48:2:48:13 | type assertion | qltest |
5-
| test.go:61:10:61:15 | taint1 | qltest |
6-
| test.go:64:10:64:15 | taint2 | qltest |
7-
| test.go:68:10:68:15 | taint3 | qltest |
8-
| test.go:72:10:72:15 | taint4 | qltest |
9-
| test.go:75:10:75:15 | taint5 | qltest |
10-
| test.go:79:10:79:15 | taint6 | qltest |
11-
| test.go:82:10:82:15 | taint7 | qltest |
12-
| test.go:85:10:85:18 | index expression | qltest |
13-
| test.go:87:11:87:11 | x | qltest |
14-
| test.go:90:11:90:11 | x | qltest |
15-
| test.go:95:10:95:15 | taint9 | qltest |
16-
| test.go:98:10:98:33 | call to GetElement | qltest |
17-
| test.go:99:10:99:18 | <-... | qltest |
18-
| test.go:101:11:101:11 | e | qltest |
19-
| test.go:104:11:104:11 | e | qltest |
20-
| test.go:109:10:109:16 | taint11 | qltest |
21-
| test.go:112:10:112:32 | call to GetMapKey | qltest |
22-
| test.go:114:11:114:11 | k | qltest |
23-
| test.go:117:11:117:11 | k | qltest |
24-
| test.go:120:11:120:11 | k | qltest |
25-
| test.go:123:11:123:11 | k | qltest |
26-
| test.go:128:10:128:16 | taint13 | qltest |
27-
| test.go:131:10:131:20 | index expression | qltest |
28-
| test.go:133:11:133:11 | v | qltest |
29-
| test.go:136:11:136:11 | v | qltest |
30-
| test.go:141:10:141:16 | taint15 | qltest |
31-
| test.go:145:10:145:17 | index expression | qltest |
32-
| test.go:151:10:151:18 | index expression | qltest |
33-
| test.go:156:10:156:16 | taint16 | qltest |
34-
| test.go:160:10:160:13 | selection of F | qltest |
35-
| test.go:163:10:163:17 | call to Get | qltest |
36-
| test.go:167:10:167:17 | call to Get | qltest |
3+
| test.go:48:10:48:12 | arg | qltest |
4+
| test.go:49:2:49:13 | type assertion | qltest |
5+
| test.go:62:10:62:15 | taint1 | qltest |
6+
| test.go:65:10:65:15 | taint2 | qltest |
7+
| test.go:69:10:69:15 | taint3 | qltest |
8+
| test.go:73:10:73:22 | taint3ignored | qltest |
9+
| test.go:77:10:77:15 | taint4 | qltest |
10+
| test.go:80:10:80:15 | taint5 | qltest |
11+
| test.go:84:10:84:15 | taint6 | qltest |
12+
| test.go:87:10:87:15 | taint7 | qltest |
13+
| test.go:90:10:90:18 | index expression | qltest |
14+
| test.go:92:11:92:11 | x | qltest |
15+
| test.go:95:11:95:11 | x | qltest |
16+
| test.go:100:10:100:15 | taint9 | qltest |
17+
| test.go:103:10:103:33 | call to GetElement | qltest |
18+
| test.go:104:10:104:18 | <-... | qltest |
19+
| test.go:106:11:106:11 | e | qltest |
20+
| test.go:109:11:109:11 | e | qltest |
21+
| test.go:114:10:114:16 | taint11 | qltest |
22+
| test.go:117:10:117:32 | call to GetMapKey | qltest |
23+
| test.go:119:11:119:11 | k | qltest |
24+
| test.go:122:11:122:11 | k | qltest |
25+
| test.go:125:11:125:11 | k | qltest |
26+
| test.go:128:11:128:11 | k | qltest |
27+
| test.go:133:10:133:16 | taint13 | qltest |
28+
| test.go:136:10:136:20 | index expression | qltest |
29+
| test.go:138:11:138:11 | v | qltest |
30+
| test.go:141:11:141:11 | v | qltest |
31+
| test.go:146:10:146:16 | taint15 | qltest |
32+
| test.go:150:10:150:17 | index expression | qltest |
33+
| test.go:156:10:156:18 | index expression | qltest |
34+
| test.go:161:10:161:16 | taint16 | qltest |
35+
| test.go:165:10:165:13 | selection of F | qltest |
36+
| test.go:168:10:168:17 | call to Get | qltest |
3737
| test.go:172:10:172:17 | call to Get | qltest |
38-
| test.go:176:10:176:14 | selection of F | qltest |
39-
| test.go:179:10:179:32 | call to GetThroughPointer | qltest |
40-
| test.go:183:10:183:32 | call to GetThroughPointer | qltest |
38+
| test.go:177:10:177:17 | call to Get | qltest |
39+
| test.go:181:10:181:14 | selection of F | qltest |
40+
| test.go:184:10:184:32 | call to GetThroughPointer | qltest |
4141
| test.go:188:10:188:32 | call to GetThroughPointer | qltest |
42-
| test.go:194:17:194:20 | arg1 | qltest |
43-
| test.go:194:23:194:26 | arg2 | qltest |
44-
| test.go:194:29:194:32 | arg3 | qltest |
45-
| test.go:197:10:197:26 | call to max | qltest |
46-
| test.go:198:10:198:26 | call to max | qltest |
47-
| test.go:199:10:199:26 | call to max | qltest |
48-
| test.go:200:10:200:26 | call to min | qltest |
49-
| test.go:201:10:201:26 | call to min | qltest |
50-
| test.go:202:10:202:26 | call to min | qltest |
42+
| test.go:193:10:193:32 | call to GetThroughPointer | qltest |
43+
| test.go:199:17:199:20 | arg1 | qltest |
44+
| test.go:199:23:199:26 | arg2 | qltest |
45+
| test.go:199:29:199:32 | arg3 | qltest |
46+
| test.go:202:10:202:26 | call to max | qltest |
47+
| test.go:203:10:203:26 | call to max | qltest |
48+
| test.go:204:10:204:26 | call to max | qltest |
49+
| test.go:205:10:205:26 | call to min | qltest |
50+
| test.go:206:10:206:26 | call to min | qltest |
51+
| test.go:207:10:207:26 | call to min | qltest |

0 commit comments

Comments
 (0)