1 // RUN: %check_clang_tidy %s android-cloexec-dup %t
2 
3 extern "C" int dup(int oldfd);
f()4 void f() {
5   dup(1);
6   // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer fcntl() to dup() because fcntl() allows F_DUPFD_CLOEXEC [android-cloexec-dup]
7   // CHECK-FIXES: fcntl(1, F_DUPFD_CLOEXEC);
8   int oldfd = 0;
9   dup(oldfd);
10   // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: prefer
11   // CHECK-FIXES: fcntl(oldfd, F_DUPFD_CLOEXEC);
12 }
13 
14 namespace i {
15 int dup(int oldfd);
g()16 void g() {
17   dup(0);
18   int oldfd = 1;
19   dup(oldfd);
20 }
21 } // namespace i
22 
23 class C {
24 public:
25   int dup(int oldfd);
h()26   void h() {
27     dup(0);
28     int oldfd = 1;
29     dup(oldfd);
30   }
31 };
32