annotate clang/test/SemaTemplate/array-to-pointer-decay.cpp @ 222:81f6424ef0e3 llvm-original

LLVM original branch
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 18 Jul 2021 22:10:01 +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
anatofuz
parents:
diff changeset
4 struct mystruct {
anatofuz
parents:
diff changeset
5 int member;
anatofuz
parents:
diff changeset
6 };
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 template <int i>
anatofuz
parents:
diff changeset
9 int foo() {
anatofuz
parents:
diff changeset
10 mystruct s[1];
anatofuz
parents:
diff changeset
11 return s->member;
anatofuz
parents:
diff changeset
12 }
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 int main() {
anatofuz
parents:
diff changeset
15 foo<1>();
anatofuz
parents:
diff changeset
16 }
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 // PR7405
anatofuz
parents:
diff changeset
19 struct hb_sanitize_context_t {
anatofuz
parents:
diff changeset
20 int start;
anatofuz
parents:
diff changeset
21 };
anatofuz
parents:
diff changeset
22 template <typename Type> static bool sanitize() {
anatofuz
parents:
diff changeset
23 hb_sanitize_context_t c[1];
anatofuz
parents:
diff changeset
24 return !c->start;
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26 bool closure = sanitize<int>();
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 // PR16206
anatofuz
parents:
diff changeset
29 typedef struct {
anatofuz
parents:
diff changeset
30 char x[4];
anatofuz
parents:
diff changeset
31 } chars;
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 chars getChars();
anatofuz
parents:
diff changeset
34 void use(char *);
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 void test() {
anatofuz
parents:
diff changeset
37 use(getChars().x);
anatofuz
parents:
diff changeset
38 }