@@ -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