// 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();
}
