1*67e74705SXin Li // RUN: not %clang -std=c++98 %s -Wno-c++0x-compat -fsyntax-only 2>&1 | FileCheck -check-prefix=CXX98 %s
2*67e74705SXin Li // RUN: not %clang -std=gnu++98 %s -Wno-c++0x-compat -fsyntax-only 2>&1 | FileCheck -check-prefix=GNUXX98 %s
3*67e74705SXin Li // RUN: not %clang -std=c++03 %s -Wno-c++0x-compat -fsyntax-only 2>&1 | FileCheck -check-prefix=CXX98 %s
4*67e74705SXin Li // RUN: not %clang -std=c++0x %s -fsyntax-only 2>&1 | FileCheck -check-prefix=CXX11 %s
5*67e74705SXin Li // RUN: not %clang -std=gnu++0x %s -fsyntax-only 2>&1 | FileCheck -check-prefix=GNUXX11 %s
6*67e74705SXin Li // RUN: not %clang -std=c++11 %s -fsyntax-only 2>&1 | FileCheck -check-prefix=CXX11 %s
7*67e74705SXin Li // RUN: not %clang -std=gnu++11 %s -fsyntax-only 2>&1 | FileCheck -check-prefix=GNUXX11 %s
8*67e74705SXin Li // RUN: not %clang -std=c++1y %s -fsyntax-only 2>&1 | FileCheck -check-prefix=CXX1Y %s
9*67e74705SXin Li // RUN: not %clang -std=gnu++1y %s -fsyntax-only 2>&1 | FileCheck -check-prefix=GNUXX1Y %s
10*67e74705SXin Li // RUN: not %clang -std=c++1z %s -fsyntax-only 2>&1 | FileCheck -check-prefix=CXX1Z %s
11*67e74705SXin Li // RUN: not %clang -std=gnu++1z %s -fsyntax-only 2>&1 | FileCheck -check-prefix=GNUXX1Z %s
12*67e74705SXin Li
f(int n)13*67e74705SXin Li void f(int n) {
14*67e74705SXin Li typeof(n)();
15*67e74705SXin Li decltype(n)();
16*67e74705SXin Li }
17*67e74705SXin Li
18*67e74705SXin Li // CXX98: undeclared identifier 'typeof'
19*67e74705SXin Li // CXX98: undeclared identifier 'decltype'
20*67e74705SXin Li
21*67e74705SXin Li // GNUXX98-NOT: undeclared identifier 'typeof'
22*67e74705SXin Li // GNUXX98: undeclared identifier 'decltype'
23*67e74705SXin Li
24*67e74705SXin Li // CXX11: undeclared identifier 'typeof'
25*67e74705SXin Li // CXX11-NOT: undeclared identifier 'decltype'
26*67e74705SXin Li
27*67e74705SXin Li // GNUXX11-NOT: undeclared identifier 'typeof'
28*67e74705SXin Li // GNUXX11-NOT: undeclared identifier 'decltype'
29*67e74705SXin Li
30*67e74705SXin Li // CXX1Y: undeclared identifier 'typeof'
31*67e74705SXin Li // CXX1Y-NOT: undeclared identifier 'decltype'
32*67e74705SXin Li
33*67e74705SXin Li // GNUXX1Y-NOT: undeclared identifier 'typeof'
34*67e74705SXin Li // GNUXX1Y-NOT: undeclared identifier 'decltype'
35*67e74705SXin Li
36*67e74705SXin Li // CXX1Z: undeclared identifier 'typeof'
37*67e74705SXin Li // CXX1Z-NOT: undeclared identifier 'decltype'
38*67e74705SXin Li
39*67e74705SXin Li // GNUXX1Z-NOT: undeclared identifier 'typeof'
40*67e74705SXin Li // GNUXX1Z-NOT: undeclared identifier 'decltype'
41