@@ -94,14 +94,14 @@ func sourceString() -> String { return "" }
94
94
func sourceCCharArray( ) -> [ CChar ] { return [ ] }
95
95
func sourceCString( ) -> UnsafePointer < CChar > { return ( nil as UnsafePointer < CChar > ? ) ! }
96
96
func sourceDecoder( ) -> Decoder { return ( nil as Decoder ? ) ! }
97
-
98
97
func sink( filePath: FilePath ) { }
99
98
func sink( string: String ) { }
100
99
func sink( component: FilePath . Component ) { }
101
100
func sink( root: FilePath . Root ) { }
102
101
func sink( componentView: FilePath . ComponentView ) { }
103
102
func sink( encoder: Encoder ) { }
104
103
func sink< T> ( ptr: UnsafePointer < T > ) { }
104
+ func sink< T> ( arg: T ) { }
105
105
106
106
func test_files( e1: Encoder ) {
107
107
// --- FilePath.Root, FilePath.Component ---
@@ -148,39 +148,51 @@ func test_files(e1: Encoder) {
148
148
sink ( filePath: tainted. lexicallyResolving ( clean) !) // $ tainted=133
149
149
sink ( filePath: clean. lexicallyResolving ( tainted) !) // $ tainted=133
150
150
151
- let _ = clean. withCString ( {
151
+ let result1 = clean. withCString ( {
152
152
ptr in
153
153
sink ( ptr: ptr)
154
+ sink ( arg: ptr [ 0 ] )
155
+ return sourceString ( )
154
156
} )
155
- let _ = tainted. withCString ( {
157
+ sink ( string: result1) // $ tainted=155
158
+ let result2 = tainted. withCString ( {
156
159
ptr in
157
160
sink ( ptr: ptr) // $ tainted=133
161
+ sink ( arg: ptr [ 0 ] ) // $ tainted=133
162
+ return " "
158
163
} )
164
+ sink ( string: result2)
159
165
160
- let _ = clean. withPlatformString ( {
166
+ let result3 = clean. withPlatformString ( {
161
167
ptr in
162
168
sink ( ptr: ptr)
169
+ sink ( arg: ptr [ 0 ] )
163
170
sink ( string: String ( platformString: ptr) )
164
171
sink ( string: String ( validatingPlatformString: ptr) !)
172
+ return sourceString ( )
165
173
} )
166
- let _ = tainted. withPlatformString ( {
174
+ sink ( string: result3) // $ tainted=172
175
+ let result4 = tainted. withPlatformString ( {
167
176
ptr in
168
177
sink ( ptr: ptr) // $ tainted=133
178
+ sink ( arg: ptr [ 0 ] ) // $ tainted=133
169
179
sink ( string: String ( platformString: ptr) ) // $ tainted=133
170
180
sink ( string: String ( validatingPlatformString: ptr) !) // $ tainted=133
181
+ return " "
171
182
} )
183
+ sink ( string: result4)
172
184
173
185
var fp1 = FilePath ( " " )
174
186
sink ( filePath: fp1)
175
187
fp1. append ( sourceString ( ) )
176
- sink ( filePath: fp1) // $ tainted=175
188
+ sink ( filePath: fp1) // $ tainted=187
177
189
fp1. append ( " " )
178
- sink ( filePath: fp1) // $ tainted=175
190
+ sink ( filePath: fp1) // $ tainted=187
179
191
180
192
sink ( filePath: clean. appending ( " " ) )
181
- sink ( filePath: clean. appending ( sourceString ( ) ) ) // $ tainted=181
193
+ sink ( filePath: clean. appending ( sourceString ( ) ) ) // $ tainted=193
182
194
sink ( filePath: tainted. appending ( " " ) ) // $ tainted=133
183
- sink ( filePath: tainted. appending ( sourceString ( ) ) ) // $ tainted=133 tainted=183
195
+ sink ( filePath: tainted. appending ( sourceString ( ) ) ) // $ tainted=133 tainted=195
184
196
185
197
// --- FilePath member variables ---
186
198
0 commit comments