1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -Wchar-subscripts -fsyntax-only -verify %s
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T>
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid t1() {
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int array[1] = { 0 };
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  T subscript = 0;
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int val = array[subscript]; // expected-warning{{array subscript is of type 'char'}}
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T>
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid t2() {
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int array[1] = { 0 };
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  T subscript = 0;
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int val = subscript[array]; // expected-warning{{array subscript is of type 'char'}}
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid test() {
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  t1<char>(); // expected-note {{in instantiation of function template specialization 't1<char>' requested here}}
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  t2<char>(); // expected-note {{in instantiation of function template specialization 't2<char>' requested here}}
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
22