@@ -94,14 +94,14 @@ func sourceString() -> String { return "" }
9494func sourceCCharArray( ) -> [ CChar ] { return [ ] }
9595func sourceCString( ) -> UnsafePointer < CChar > { return ( nil as UnsafePointer < CChar > ? ) ! }
9696func sourceDecoder( ) -> Decoder { return ( nil as Decoder ? ) ! }
97-
9897func sink( filePath: FilePath ) { }
9998func sink( string: String ) { }
10099func sink( component: FilePath . Component ) { }
101100func sink( root: FilePath . Root ) { }
102101func sink( componentView: FilePath . ComponentView ) { }
103102func sink( encoder: Encoder ) { }
104103func sink< T> ( ptr: UnsafePointer < T > ) { }
104+ func sink< T> ( arg: T ) { }
105105
106106func test_files( e1: Encoder ) {
107107 // --- FilePath.Root, FilePath.Component ---
@@ -148,39 +148,51 @@ func test_files(e1: Encoder) {
148148 sink ( filePath: tainted. lexicallyResolving ( clean) !) // $ tainted=133
149149 sink ( filePath: clean. lexicallyResolving ( tainted) !) // $ tainted=133
150150
151- let _ = clean. withCString ( {
151+ let result1 = clean. withCString ( {
152152 ptr in
153153 sink ( ptr: ptr)
154+ sink ( arg: ptr [ 0 ] )
155+ return sourceString ( )
154156 } )
155- let _ = tainted. withCString ( {
157+ sink ( string: result1) // $ tainted=155
158+ let result2 = tainted. withCString ( {
156159 ptr in
157160 sink ( ptr: ptr) // $ tainted=133
161+ sink ( arg: ptr [ 0 ] ) // $ tainted=133
162+ return " "
158163 } )
164+ sink ( string: result2)
159165
160- let _ = clean. withPlatformString ( {
166+ let result3 = clean. withPlatformString ( {
161167 ptr in
162168 sink ( ptr: ptr)
169+ sink ( arg: ptr [ 0 ] )
163170 sink ( string: String ( platformString: ptr) )
164171 sink ( string: String ( validatingPlatformString: ptr) !)
172+ return sourceString ( )
165173 } )
166- let _ = tainted. withPlatformString ( {
174+ sink ( string: result3) // $ tainted=172
175+ let result4 = tainted. withPlatformString ( {
167176 ptr in
168177 sink ( ptr: ptr) // $ tainted=133
178+ sink ( arg: ptr [ 0 ] ) // $ tainted=133
169179 sink ( string: String ( platformString: ptr) ) // $ tainted=133
170180 sink ( string: String ( validatingPlatformString: ptr) !) // $ tainted=133
181+ return " "
171182 } )
183+ sink ( string: result4)
172184
173185 var fp1 = FilePath ( " " )
174186 sink ( filePath: fp1)
175187 fp1. append ( sourceString ( ) )
176- sink ( filePath: fp1) // $ tainted=175
188+ sink ( filePath: fp1) // $ tainted=187
177189 fp1. append ( " " )
178- sink ( filePath: fp1) // $ tainted=175
190+ sink ( filePath: fp1) // $ tainted=187
179191
180192 sink ( filePath: clean. appending ( " " ) )
181- sink ( filePath: clean. appending ( sourceString ( ) ) ) // $ tainted=181
193+ sink ( filePath: clean. appending ( sourceString ( ) ) ) // $ tainted=193
182194 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
184196
185197 // --- FilePath member variables ---
186198
0 commit comments