[PATCH] D106262: [clang][analyzer] Use generic note tag in alpha.unix.Stream .

Balázs Kéri via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 31 09:21:37 PDT 2021


balazske added a comment.

The error state of the stream can store these combinations:

|   | FERROR flag | FEOF flag | file position indeterminate |
| 1 | false       | false     | false                       | No error (single state)                                                                                                         |
| 2 | true        | false     | false                       | should never happen unless the "indeterminate" is cleared with a debug function                                                 |
| 3 | false       | true      | false                       | FEOF flag set (single state)                                                                                                    |
| 4 | false       | false     | true                        | only indeterminate position but no error flags (single state), can occur after `fseek` or `clearerr`                            |
| 5 | true        | true      | false                       | should never occur                                                                                                              |
| 6 | true        | false     | true                        | FERROR set, always together with indeterminate position (single state)                                                          |
| 7 | false       | true      | true                        | FEOF set, indeterminate position should be ignored here (single state), same as case 3                                          |
| 8 | true        | true      | true                        | the single combined ("Schrödinger") state: cases 3 and 6, this means delay of the state split until the exact error is revealed |
|


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106262/new/

https://reviews.llvm.org/D106262



More information about the cfe-commits mailing list