// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.unix.Stream -verify %s | |
typedef struct _IO_FILE FILE; | |
extern FILE *fopen(const char *path, const char *mode); | |
struct X { | |
int A; | |
int B; | |
}; | |
void *fopen(X x, const char *mode) { | |
return new char[4]; | |
} | |
void f1() { | |
X X1; | |
void *p = fopen(X1, "oo"); | |
} // no-warning | |
void f2() { | |
FILE *f = fopen("file", "r"); | |
} // expected-warning {{Opened stream never closed. Potential resource leak}} |