annotate clang/test/Sema/invalid-member.cpp @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 0572611fdcc8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 // RUN: %clang_cc1 -verify -fsyntax-only -fno-recovery-ast %s
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 // RUN: %clang_cc1 -verify -fsyntax-only -frecovery-ast %s
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 void foo(); // expected-note 2{{requires 0 arguments}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 class X {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 decltype(foo(42)) invalid; // expected-error {{no matching function}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 };
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 // Should be able to evaluate sizeof without crashing.
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 static_assert(sizeof(X) == 1, "No valid members");
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 class Y {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 typeof(foo(42)) invalid; // expected-error {{no matching function}}
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 };
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 // Should be able to evaluate sizeof without crashing.
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 static_assert(sizeof(Y) == 1, "No valid members");
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
16
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
17 class Z {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
18 int array[sizeof(invalid())]; // expected-error {{use of undeclared identifier}}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
19 };
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
20 // Should be able to evaluate sizeof without crashing.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
21 static_assert(sizeof(Z) == 1, "No valid members");
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
22
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
23 constexpr int N = undef; // expected-error {{use of undeclared identifier}}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
24 template<int a>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
25 class ABC {};
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
26 class T {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
27 ABC<N> abc;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
28 };
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
29 static_assert(sizeof(T) == 1, "No valid members");