@@ -135,33 +135,33 @@ func testManualMemoryManagement() {
135
135
let i1 = sourceInt ( " i1 " )
136
136
let r1 = withUnsafePointer ( to: i1, {
137
137
ptr in
138
- sink ( arg: ptr)
139
- sink ( arg: ptr [ 0 ] ) // $ MISSING: tainted=i1
138
+ sink ( arg: ptr) // $ tainted=i1
139
+ sink ( arg: ptr [ 0 ] ) // $ tainted=i1
140
140
sink ( arg: ptr. pointee) // $ MISSING: tainted=i1
141
141
return sourceInt ( " r1 " )
142
142
} )
143
- sink ( arg: r1) // $ MISSING: tainted=r1
143
+ sink ( arg: r1) // $ tainted=r1
144
144
145
145
var i2 = sourceInt ( " i2 " )
146
146
let r2 = withUnsafeMutablePointer ( to: & i2, {
147
147
ptr in
148
- sink ( arg: ptr)
149
- sink ( arg: ptr [ 0 ] ) // $ MISSING: tainted=i2
148
+ sink ( arg: ptr) // $ tainted=i2
149
+ sink ( arg: ptr [ 0 ] ) // $ tainted=i2
150
150
sink ( arg: ptr. pointee) // $ MISSING: tainted=i2
151
151
ptr. pointee = sourceInt ( " i2_overwrite " )
152
- sink ( arg: ptr)
153
- sink ( arg: ptr [ 0 ] ) // $ MISSING: tainted=i2_overwrite
152
+ sink ( arg: ptr) // $ SPURIOUS: tainted=i2
153
+ sink ( arg: ptr [ 0 ] ) // $ MISSING: tainted=i2_overwrite SPURIOUS: tainted=i2
154
154
sink ( arg: ptr. pointee) // $ tainted=i2_overwrite
155
155
return sourceInt ( " r2 " )
156
156
} )
157
- sink ( arg: r2) // $ MISSING: tainted=r2
157
+ sink ( arg: r2) // $ tainted=r2
158
158
sink ( arg: i2) // $ MISSING: tainted=i2_overwrite SPURIOUS: tainted=i2
159
159
160
160
let i3 = sourceInt ( " i3 " )
161
161
let r3 = withUnsafeBytes ( of: i3, {
162
162
ptr in
163
- sink ( arg: ptr)
164
- sink ( arg: ptr [ 0 ] ) // $ MISSING: tainted=i3
163
+ sink ( arg: ptr) // $ tainted=i3
164
+ sink ( arg: ptr [ 0 ] ) // $ tainted=i3
165
165
ptr. withMemoryRebound ( to: Int . self, {
166
166
buffer in
167
167
sink ( arg: buffer)
@@ -172,20 +172,20 @@ func testManualMemoryManagement() {
172
172
sink ( arg: buffer2 [ 0 ] ) // $ MISSING: tainted=i3
173
173
return sourceInt ( " r3 " )
174
174
} )
175
- sink ( arg: r3) // $ MISSING: tainted=r3
175
+ sink ( arg: r3) // $ tainted=r3
176
176
177
177
var i4 = sourceInt ( " i4 " )
178
178
let r4 = withUnsafeMutableBytes ( of: & i4, {
179
179
ptr in
180
- sink ( arg: ptr)
181
- sink ( arg: ptr [ 0 ] ) // $ MISSING: tainted=i4
180
+ sink ( arg: ptr) // $ tainted=i4
181
+ sink ( arg: ptr [ 0 ] ) // $ tainted=i4
182
182
ptr [ 0 ] = sourceUInt8 ( " i4_partialwrite " )
183
- sink ( arg: ptr) // $ tainted=i4_partialwrite MISSING: tainted=i4
184
- sink ( arg: ptr [ 0 ] ) // $ tainted=i4_partialwrite
183
+ sink ( arg: ptr) // $ tainted=i4_partialwrite tainted=i4
184
+ sink ( arg: ptr [ 0 ] ) // $ tainted=i4_partialwrite SPURIOUS: tainted=i4
185
185
return sourceInt ( " r4 " )
186
186
} )
187
- sink ( arg: r4) // $ MISSING: tainted=r4
188
- sink ( arg: i4) // $ tainted=i4 MISSING: tainted=i4_partialwrite
187
+ sink ( arg: r4) // $ tainted=r4
188
+ sink ( arg: i4) // $ tainted=i4 tainted=i4_partialwrite
189
189
190
190
let r5 = withUnsafeTemporaryAllocation ( of: Int . self, capacity: 10 , {
191
191
buffer in
@@ -196,10 +196,10 @@ func testManualMemoryManagement() {
196
196
sink ( arg: buffer [ 0 ] ) // $ tainted=buffer5
197
197
return sourceInt ( " r5 " )
198
198
} )
199
- sink ( arg: r5) // $ MISSING: tainted=r5
199
+ sink ( arg: r5) // $ tainted=r5
200
200
201
201
let r6 = withExtendedLifetime ( sourceInt ( " i6 " ) , {
202
202
return sourceInt ( " r6 " )
203
203
} )
204
- sink ( arg: r6) // $ MISSING: tainted=r6
204
+ sink ( arg: r6) // $ tainted=r6
205
205
}
0 commit comments