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