@@ -305,8 +305,8 @@ class StdIStreamIn extends DataFlowFunction, TaintFunction {
305305 StdIStreamIn ( ) { this .hasQualifiedName ( "std" , "basic_istream" , "operator>>" ) }
306306
307307 override predicate hasDataFlow ( FunctionInput input , FunctionOutput output ) {
308- // flow from qualifier to return value
309- input .isQualifierObject ( ) and
308+ // returns reference to `*this`
309+ input .isQualifierAddress ( ) and
310310 output .isReturnValue ( )
311311 }
312312
@@ -374,8 +374,8 @@ class StdIStreamRead extends DataFlowFunction, TaintFunction {
374374 }
375375
376376 override predicate hasDataFlow ( FunctionInput input , FunctionOutput output ) {
377- // flow from qualifier to return value
378- input .isQualifierObject ( ) and
377+ // returns reference to `*this`
378+ input .isQualifierAddress ( ) and
379379 output .isReturnValue ( )
380380 }
381381
@@ -410,7 +410,7 @@ class StdIStreamPutBack extends DataFlowFunction, TaintFunction {
410410 StdIStreamPutBack ( ) { this .hasQualifiedName ( "std" , "basic_istream" , "putback" ) }
411411
412412 override predicate hasDataFlow ( FunctionInput input , FunctionOutput output ) {
413- // flow from qualifier to return value
413+ // returns reference to `*this`
414414 input .isQualifierAddress ( ) and
415415 output .isReturnValue ( )
416416 }
@@ -451,7 +451,7 @@ class StdOStreamOut extends DataFlowFunction, TaintFunction {
451451 StdOStreamOut ( ) { this .hasQualifiedName ( "std" , "basic_ostream" , [ "operator<<" , "put" , "write" ] ) }
452452
453453 override predicate hasDataFlow ( FunctionInput input , FunctionOutput output ) {
454- // flow from qualifier to return value
454+ // returns reference to `*this`
455455 input .isQualifierAddress ( ) and
456456 output .isReturnValue ( )
457457 }
0 commit comments