@@ -365,27 +365,22 @@ void error_fseek(void) {
365
365
return ;
366
366
int rc = fseek (F , 1 , SEEK_SET );
367
367
if (rc ) {
368
+ clang_analyzer_eval (rc == -1 ); // expected-warning {{TRUE}}
368
369
int IsFEof = feof (F ), IsFError = ferror (F );
369
- // Get feof or ferror or no error.
370
- clang_analyzer_eval (IsFEof || IsFError );
371
- // expected-warning@-1 {{FALSE}}
372
- // expected-warning@-2 {{TRUE}}
373
- clang_analyzer_eval (IsFEof && IsFError ); // expected-warning {{FALSE}}
370
+ // Get ferror or no error.
371
+ clang_analyzer_eval (IsFError ); // expected-warning {{FALSE}} \
372
+ // expected-warning {{TRUE}}
373
+ clang_analyzer_eval (IsFEof ); // expected-warning {{FALSE}}
374
374
// Error flags should not change.
375
- if (IsFEof )
376
- clang_analyzer_eval (feof (F )); // expected-warning {{TRUE}}
377
- else
378
- clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
375
+ clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
379
376
if (IsFError )
380
- clang_analyzer_eval (ferror (F )); // expected-warning {{TRUE}}
381
- else
382
- clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}}
377
+ clang_analyzer_eval (ferror (F )); // expected-warning {{TRUE}}
383
378
} else {
384
- clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
385
- clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}}
379
+ clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
380
+ clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}}
386
381
// Error flags should not change.
387
- clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
388
- clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}}
382
+ clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
383
+ clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}}
389
384
}
390
385
fclose (F );
391
386
}
@@ -396,15 +391,13 @@ void error_fseeko(void) {
396
391
return ;
397
392
int rc = fseeko (F , 1 , SEEK_SET );
398
393
if (rc ) {
399
- int IsFEof = feof (F ), IsFError = ferror (F );
400
- // Get feof or ferror or no error.
401
- clang_analyzer_eval (IsFEof || IsFError );
402
- // expected-warning@-1 {{FALSE}}
403
- // expected-warning@-2 {{TRUE}}
404
- clang_analyzer_eval (IsFEof && IsFError ); // expected-warning {{FALSE}}
394
+ // Get ferror or no error.
395
+ clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}} \
396
+ // expected-warning {{TRUE}}
397
+ clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
405
398
} else {
406
- clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
407
- clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}}
399
+ clang_analyzer_eval (feof (F )); // expected-warning {{FALSE}}
400
+ clang_analyzer_eval (ferror (F )); // expected-warning {{FALSE}}
408
401
}
409
402
fclose (F );
410
403
}
@@ -414,7 +407,7 @@ void error_fseek_0(void) {
414
407
if (!F )
415
408
return ;
416
409
int rc = fseek (F , 0 , SEEK_SET );
417
- if (rc ) {
410
+ if (rc == -1 ) {
418
411
int IsFEof = feof (F ), IsFError = ferror (F );
419
412
// Get ferror or no error, but not feof.
420
413
clang_analyzer_eval (IsFError );
0 commit comments