173
|
1 // RUN: %clang_cc1 -verify -fsyntax-only -fno-recovery-ast %s
|
|
2 // RUN: %clang_cc1 -verify -fsyntax-only -frecovery-ast %s
|
|
3
|
|
4 void foo(); // expected-note 2{{requires 0 arguments}}
|
|
5 class X {
|
|
6 decltype(foo(42)) invalid; // expected-error {{no matching function}}
|
|
7 };
|
|
8 // Should be able to evaluate sizeof without crashing.
|
|
9 static_assert(sizeof(X) == 1, "No valid members");
|
|
10
|
|
11 class Y {
|
|
12 typeof(foo(42)) invalid; // expected-error {{no matching function}}
|
|
13 };
|
|
14 // Should be able to evaluate sizeof without crashing.
|
|
15 static_assert(sizeof(Y) == 1, "No valid members");
|
207
|
16
|
|
17 class Z {
|
|
18 int array[sizeof(invalid())]; // expected-error {{use of undeclared identifier}}
|
|
19 };
|
|
20 // Should be able to evaluate sizeof without crashing.
|
|
21 static_assert(sizeof(Z) == 1, "No valid members");
|
|
22
|
|
23 constexpr int N = undef; // expected-error {{use of undeclared identifier}}
|
|
24 template<int a>
|
|
25 class ABC {};
|
|
26 class T {
|
|
27 ABC<N> abc;
|
|
28 };
|
|
29 static_assert(sizeof(T) == 1, "No valid members");
|