// RUN: %clang_cc1 -analyze -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();
}
