annotate clang/test/SemaTemplate/instantiate-declref-ice.cpp @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
anatofuz
parents:
diff changeset
2 // expected-no-diagnostics
anatofuz
parents:
diff changeset
3 template<int i> struct x {
anatofuz
parents:
diff changeset
4 static const int j = i;
anatofuz
parents:
diff changeset
5 x<j>* y;
anatofuz
parents:
diff changeset
6 };
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 template<int i>
anatofuz
parents:
diff changeset
9 const int x<i>::j;
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 int array0[x<2>::j];
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 template<typename T>
anatofuz
parents:
diff changeset
14 struct X0 {
anatofuz
parents:
diff changeset
15 static const unsigned value = sizeof(T);
anatofuz
parents:
diff changeset
16 };
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 template<typename T>
anatofuz
parents:
diff changeset
19 const unsigned X0<T>::value;
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 int array1[X0<int>::value == sizeof(int)? 1 : -1];
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 const unsigned& testX0() { return X0<int>::value; }
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 int array2[X0<int>::value == sizeof(int)? 1 : -1];
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 template<typename T>
anatofuz
parents:
diff changeset
28 struct X1 {
anatofuz
parents:
diff changeset
29 static const unsigned value;
anatofuz
parents:
diff changeset
30 };
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 template<typename T>
anatofuz
parents:
diff changeset
33 const unsigned X1<T>::value = sizeof(T);
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35 int array3[X1<int>::value == sizeof(int)? 1 : -1];