|  | // RUN: %check_clang_tidy %s android-cloexec-creat %t | 
|  |  | 
|  | typedef int mode_t; | 
|  |  | 
|  | extern "C" int creat(const char *path, mode_t, ...); | 
|  | extern "C" int create(const char *path, mode_t, ...); | 
|  |  | 
|  | void f() { | 
|  | creat("filename", 0); | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer open() to creat() because open() allows O_CLOEXEC [android-cloexec-creat] | 
|  | // CHECK-FIXES: open ("filename", O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0); | 
|  | create("filename", 0); | 
|  | // CHECK-MESSAGES-NOT: warning: | 
|  | mode_t mode = 0755; | 
|  | creat("filename", mode); | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: | 
|  | // CHECK-FIXES: open ("filename", O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, mode); | 
|  | } | 
|  |  | 
|  | namespace i { | 
|  | int creat(const char *path, mode_t, ...); | 
|  | void g() { | 
|  | creat("filename", 0); | 
|  | // CHECK-MESSAGES-NOT: warning: | 
|  | } | 
|  | } // namespace i | 
|  |  | 
|  | class C { | 
|  | public: | 
|  | int creat(const char *path, mode_t, ...); | 
|  | void h() { | 
|  | creat("filename", 0); | 
|  | // CHECK-MESSAGES-NOT: warning: | 
|  | } | 
|  | }; |