1 | // RUN: %clang_cc1 -fsyntax-only %s -std=c++14 -verify |
2 | |
3 | // This is a test for an egregious hack in Clang that works around |
4 | // an issue with libstdc++'s detection of whether glibc provides a |
5 | // ::gets function. If there is no ::gets, ignore |
6 | // using ::gets; |
7 | // in namespace std. |
8 | // |
9 | // See PR18402 and gcc.gnu.org/PR77795 for more details. |
10 | |
11 | #ifdef BE_THE_HEADER |
12 | |
13 | #pragma GCC system_header |
14 | namespace std { |
15 | using ::gets; |
16 | using ::getx; // expected-error {{no member named 'getx'}} |
17 | } |
18 | |
19 | #else |
20 | |
21 | #define BE_THE_HEADER |
22 | #include "libstdcxx_pointer_return_false_hack.cpp" |
23 | |
24 | namespace foo { |
25 | using ::gets; // expected-error {{no member named 'gets'}} |
26 | } |
27 | |
28 | #endif |
29 | |