aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/array-bounds.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2012-01-24 04:29:18 +0000
committerDavid Blaikie <dblaikie@gmail.com>2012-01-24 04:29:18 +0000
commit36b7c63664bea8e9aa85a024c515877be2ff92fa (patch)
tree3e8f8547ec4c53f0dd927d8b1a073437adb2b40b /test/SemaCXX/array-bounds.cpp
parent7514f31c8fa3fbb3428d0dca98c32145fb0faaa5 (diff)
Simple hack to do unreachable code analysis on template patterns.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148774 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/array-bounds.cpp')
-rw-r--r--test/SemaCXX/array-bounds.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/test/SemaCXX/array-bounds.cpp b/test/SemaCXX/array-bounds.cpp
index c1b3701172..8d0b1e4e30 100644
--- a/test/SemaCXX/array-bounds.cpp
+++ b/test/SemaCXX/array-bounds.cpp
@@ -73,17 +73,21 @@ void test() {
(*array_ptr)[3] = 1; // expected-warning {{array index 3 is past the end of the array (which contains 2 elements)}}
}
+// FIXME: we should see the next note only 3 times and the following warning once, not twice
+// since it is independent of the template parameter 'I'.
template <int I> struct S {
- char arr[I]; // expected-note 2 {{declared here}}
+ char arr[I]; // expected-note 4 {{declared here}}
};
template <int I> void f() {
S<3> s;
- s.arr[4] = 0; // expected-warning {{array index 4 is past the end of the array (which contains 3 elements)}}
- s.arr[I] = 0; // expected-warning {{array index 5 is past the end of the array (which contains 3 elements)}}
+ s.arr[4] = 0; // expected-warning 2 {{array index 4 is past the end of the array (which contains 3 elements)}}
+ s.arr[I] = 0; // expected-warning {{array index 5 is past the end of the array (which contains 3 elements)}} \
+ expected-warning {{array index 3 is past the end of the array (which contains 3 elements)}}
}
void test_templates() {
f<5>(); // expected-note {{in instantiation}}
+ f<3>(); // expected-note {{in instantiation}}
}
#define SIZE 10