1 // RUN: %check_clang_tidy %s concurrency-mt-unsafe %t
2 
3 extern unsigned int sleep (unsigned int __seconds);
4 extern int *gmtime (const int *__timer);
5 extern int *gmtime_r (const int *__timer, char*);
6 extern char *dirname (char *__path);
7 
foo()8 void foo() {
9   sleep(2);
10   // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: function is not thread safe [concurrency-mt-unsafe]
11   ::sleep(2);
12   // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: function is not thread safe [concurrency-mt-unsafe]
13 
14   auto tm = gmtime(nullptr);
15   // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: function is not thread safe [concurrency-mt-unsafe]
16   tm = ::gmtime(nullptr);
17   // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: function is not thread safe [concurrency-mt-unsafe]
18 
19   tm = gmtime_r(nullptr, nullptr);
20   tm = ::gmtime_r(nullptr, nullptr);
21 
22   dirname(nullptr);
23   // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: function is not thread safe [concurrency-mt-unsafe]
24 }
25