| // RUN: %clang_analyze_cc1 -std=c23 -analyzer-checker=core,unix.StdCLibraryFunctions,debug.ExprInspection -verify -analyzer-config eagerly-assume=false %s |
| |
| void clang_analyzer_eval(int); |
| |
| typedef struct FILE FILE; |
| /// Test that the static analyzer doesn't interpret the most significant bit as the sign bit. |
| // Unorthodox EOF value with a power of 2 radix |
| #define EOF (-0b11) |
| |
| int getc(FILE *); |
| void test_getc(FILE *fp) { |
| int y = getc(fp); |
| if (y < 0) { |
| clang_analyzer_eval(y == EOF); // expected-warning{{TRUE}} |
| } |
| } |