annotate clang/test/Sema/crash-invalid-array.c @ 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 c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -triple=x86_64-apple-darwin -fsyntax-only -verify %s
anatofuz
parents:
diff changeset
2 // PR6913
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 int main()
anatofuz
parents:
diff changeset
5 {
anatofuz
parents:
diff changeset
6 int x[10][10];
anatofuz
parents:
diff changeset
7 int (*p)[] = x;
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 int i;
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 for(i = 0; i < 10; ++i)
anatofuz
parents:
diff changeset
12 {
anatofuz
parents:
diff changeset
13 p[i][i] = i; // expected-error {{subscript of pointer to incomplete type 'int []'}}
anatofuz
parents:
diff changeset
14 }
anatofuz
parents:
diff changeset
15 }
anatofuz
parents:
diff changeset
16
anatofuz
parents:
diff changeset
17 // rdar://13705391
anatofuz
parents:
diff changeset
18 void foo(int a[*][2]) {(void)a[0][1]; } // expected-error {{variable length array must be bound in function definition}}
anatofuz
parents:
diff changeset
19 void foo1(int a[2][*]) {(void)a[0][1]; } // expected-error {{variable length array must be bound in function definition}}
anatofuz
parents:
diff changeset
20 void foo2(int a[*][*]) {(void)a[0][1]; } // expected-error {{variable length array must be bound in function definition}}
anatofuz
parents:
diff changeset
21 void foo3(int a[2][*][2]) {(void)a[0][1][1]; } // expected-error {{variable length array must be bound in function definition}}
anatofuz
parents:
diff changeset
22 void foo4(int a[2][*][*]) {(void)a[0][1][1]; } // expected-error {{variable length array must be bound in function definition}}