// RUN: %clang_cc1 -fsyntax-only -verify %s #ifdef BE_THE_HEADER #pragma clang system_header template struct traits; template <> struct [[deprecated]] traits {}; // expected-note {{'traits' has been explicitly marked deprecated here}} template> // expected-warning {{'traits' is deprecated}} struct basic_string {}; // should not warn, defined and used in system headers using __do_what_i_say_not_what_i_do = traits ; template> struct should_not_warn {}; #else #define BE_THE_HEADER #include __FILE__ basic_string test1; // expected-note {{in instantiation of default argument for 'basic_string' required here}} should_not_warn test2; #endif