diff options
author | Sam Weinig <sam.weinig@gmail.com> | 2009-09-14 01:58:58 +0000 |
---|---|---|
committer | Sam Weinig <sam.weinig@gmail.com> | 2009-09-14 01:58:58 +0000 |
commit | 914244e7b0c67092a430737e65fe2698886ac968 (patch) | |
tree | ab276cff848e17383557d5cee2d62bf0ba78031e /clang/test | |
parent | 6d31b43592210339a7145c0a15a076876b9dfcf6 (diff) | |
download | bcm5719-llvm-914244e7b0c67092a430737e65fe2698886ac968.tar.gz bcm5719-llvm-914244e7b0c67092a430737e65fe2698886ac968.zip |
Add support for -Wchar-subscripts. Fixes PR4801.
llvm-svn: 81747
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Sema/warn-char-subscripts.c | 31 | ||||
-rw-r--r-- | clang/test/SemaCXX/warn-char-subscripts.cpp | 21 |
2 files changed, 52 insertions, 0 deletions
diff --git a/clang/test/Sema/warn-char-subscripts.c b/clang/test/Sema/warn-char-subscripts.c new file mode 100644 index 00000000000..65a34e8fc25 --- /dev/null +++ b/clang/test/Sema/warn-char-subscripts.c @@ -0,0 +1,31 @@ +// RUN: clang-cc -Wchar-subscripts -fsyntax-only -verify %s + +void t1() { + int array[1] = { 0 }; + char subscript = 0; + int val = array[subscript]; // expected-warning{{array subscript is of type 'char'}} +} + +void t2() { + int array[1] = { 0 }; + char subscript = 0; + int val = subscript[array]; // expected-warning{{array subscript is of type 'char'}} +} + +void t3() { + int *array = 0; + char subscript = 0; + int val = array[subscript]; // expected-warning{{array subscript is of type 'char'}} +} + +void t4() { + int *array = 0; + char subscript = 0; + int val = subscript[array]; // expected-warning{{array subscript is of type 'char'}} +} + +char returnsChar(); +void t5() { + int *array = 0; + int val = array[returnsChar()]; // expected-warning{{array subscript is of type 'char'}} +} diff --git a/clang/test/SemaCXX/warn-char-subscripts.cpp b/clang/test/SemaCXX/warn-char-subscripts.cpp new file mode 100644 index 00000000000..1c06db91c3f --- /dev/null +++ b/clang/test/SemaCXX/warn-char-subscripts.cpp @@ -0,0 +1,21 @@ +// RUN: clang-cc -Wchar-subscripts -fsyntax-only -verify %s + +template<typename T> +void t1() { + int array[1] = { 0 }; + T subscript = 0; + int val = array[subscript]; // expected-warning{{array subscript is of type 'char'}} +} + +template<typename T> +void t2() { + int array[1] = { 0 }; + T subscript = 0; + int val = subscript[array]; // expected-warning{{array subscript is of type 'char'}} +} + +void test() { + t1<char>(); // expected-note {{in instantiation of function template specialization 't1<char>' requested here}} + t2<char>(); // expected-note {{in instantiation of function template specialization 't2<char>' requested here}} +} + |