annotate clang/test/Sema/warn-char-subscripts.c @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -Wchar-subscripts -fsyntax-only -verify %s
anatofuz
parents:
diff changeset
2
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
3 void t1(void) {
150
anatofuz
parents:
diff changeset
4 int array[1] = { 0 };
anatofuz
parents:
diff changeset
5 char subscript = 0;
anatofuz
parents:
diff changeset
6 int val = array[subscript]; // expected-warning{{array subscript is of type 'char'}}
anatofuz
parents:
diff changeset
7 }
anatofuz
parents:
diff changeset
8
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
9 void t2(void) {
150
anatofuz
parents:
diff changeset
10 int array[1] = { 0 };
anatofuz
parents:
diff changeset
11 char subscript = 0;
anatofuz
parents:
diff changeset
12 int val = subscript[array]; // expected-warning{{array subscript is of type 'char'}}
anatofuz
parents:
diff changeset
13 }
anatofuz
parents:
diff changeset
14
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
15 void t3(void) {
150
anatofuz
parents:
diff changeset
16 int *array = 0;
anatofuz
parents:
diff changeset
17 char subscript = 0;
anatofuz
parents:
diff changeset
18 int val = array[subscript]; // expected-warning{{array subscript is of type 'char'}}
anatofuz
parents:
diff changeset
19 }
anatofuz
parents:
diff changeset
20
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
21 void t4(void) {
150
anatofuz
parents:
diff changeset
22 int *array = 0;
anatofuz
parents:
diff changeset
23 char subscript = 0;
anatofuz
parents:
diff changeset
24 int val = subscript[array]; // expected-warning{{array subscript is of type 'char'}}
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
27 char returnsChar(void);
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
28 void t5(void) {
150
anatofuz
parents:
diff changeset
29 int *array = 0;
anatofuz
parents:
diff changeset
30 int val = array[returnsChar()]; // expected-warning{{array subscript is of type 'char'}}
anatofuz
parents:
diff changeset
31 }
anatofuz
parents:
diff changeset
32
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
33 void t6(void) {
150
anatofuz
parents:
diff changeset
34 int array[1] = { 0 };
anatofuz
parents:
diff changeset
35 signed char subscript = 0;
anatofuz
parents:
diff changeset
36 int val = array[subscript]; // no warning for explicit signed char
anatofuz
parents:
diff changeset
37 }
anatofuz
parents:
diff changeset
38
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
39 void t7(void) {
150
anatofuz
parents:
diff changeset
40 int array[1] = { 0 };
anatofuz
parents:
diff changeset
41 unsigned char subscript = 0;
anatofuz
parents:
diff changeset
42 int val = array[subscript]; // no warning for unsigned char
anatofuz
parents:
diff changeset
43 }
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 typedef char CharTy;
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
46 void t8(void) {
150
anatofuz
parents:
diff changeset
47 int array[1] = { 0 };
anatofuz
parents:
diff changeset
48 CharTy subscript = 0;
anatofuz
parents:
diff changeset
49 int val = array[subscript]; // expected-warning{{array subscript is of type 'char'}}
anatofuz
parents:
diff changeset
50 }
anatofuz
parents:
diff changeset
51
anatofuz
parents:
diff changeset
52 typedef signed char SignedCharTy;
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
53 void t9(void) {
150
anatofuz
parents:
diff changeset
54 int array[1] = { 0 };
anatofuz
parents:
diff changeset
55 SignedCharTy subscript = 0;
anatofuz
parents:
diff changeset
56 int val = array[subscript]; // no warning for explicit signed char
anatofuz
parents:
diff changeset
57 }
anatofuz
parents:
diff changeset
58
anatofuz
parents:
diff changeset
59 typedef unsigned char UnsignedCharTy;
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
60 void t10(void) {
150
anatofuz
parents:
diff changeset
61 int array[1] = { 0 };
anatofuz
parents:
diff changeset
62 UnsignedCharTy subscript = 0;
anatofuz
parents:
diff changeset
63 int val = array[subscript]; // no warning for unsigned char
anatofuz
parents:
diff changeset
64 }