| // RUN: %clang_analyze_cc1 -analyzer-checker=core,unix,osx,alpha.unix,alpha.security.taint -analyzer-store region -verify %s |
| // expected-no-diagnostics |
| |
| class Evil { |
| public: |
| void system(int); // taint checker |
| void malloc(void *); // taint checker, malloc checker |
| void free(); // malloc checker, keychain checker |
| void fopen(); // stream checker |
| void feof(int, int); // stream checker |
| void open(); // unix api checker |
| }; |
| |
| void test(Evil &E) { |
| // no warnings, no crashes |
| E.system(0); |
| E.malloc(0); |
| E.free(); |
| E.fopen(); |
| E.feof(0,1); |
| E.open(); |
| } |