1*e31899c7SNico Weber // RUN: %clang_cc1 -triple x86_64-pc-windows-msvc -fms-extensions -fsyntax-only -verify %s
2*e31899c7SNico Weber 
f()3*e31899c7SNico Weber [[deprecated]] void f() {} // expected-note 2 {{marked deprecated here}}
4*e31899c7SNico Weber 
5*e31899c7SNico Weber #define From__pragma() \
6*e31899c7SNico Weber   __pragma(warning(push)) \
7*e31899c7SNico Weber   __pragma(warning(disable:4996)) \
8*e31899c7SNico Weber   f(); \
9*e31899c7SNico Weber   __pragma(warning(pop))
10*e31899c7SNico Weber 
g()11*e31899c7SNico Weber void g() {
12*e31899c7SNico Weber   f(); // expected-warning {{deprecated}}
13*e31899c7SNico Weber 
14*e31899c7SNico Weber #pragma warning(push)
15*e31899c7SNico Weber #pragma warning(disable: 4996)
16*e31899c7SNico Weber   f(); // no diag
17*e31899c7SNico Weber 
18*e31899c7SNico Weber #pragma warning(disable: 49960000)
19*e31899c7SNico Weber #pragma warning(pop)
20*e31899c7SNico Weber 
21*e31899c7SNico Weber   f(); // expected-warning {{deprecated}}
22*e31899c7SNico Weber 
23*e31899c7SNico Weber   From__pragma(); // no diag
24*e31899c7SNico Weber }
25