1 // RUN: %check_clang_tidy %s android-cloexec-accept %t
2 
3 struct sockaddr {};
4 typedef int socklen_t;
5 #define NULL 0
6 
7 extern "C" int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
8 
f()9 void f() {
10   accept(0, NULL, NULL);
11   // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer accept4() to accept() because accept4() allows SOCK_CLOEXEC [android-cloexec-accept]
12   // CHECK-FIXES: accept4(0, NULL, NULL, SOCK_CLOEXEC);
13 }
14 
15 namespace i {
16 int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
g()17 void g() {
18   accept(0, NULL, NULL);
19 }
20 } // namespace i
21 
22 class C {
23 public:
24   int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
h()25   void h() {
26     accept(0, NULL, NULL);
27   }
28 };
29