diff options
author | David Blaikie <dblaikie@gmail.com> | 2012-01-24 04:51:48 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2012-01-24 04:51:48 +0000 |
commit | 23661d3e348c5f44ae89b6848bbc331829bb46f2 (patch) | |
tree | 9078d38be6bad8a7e86c21f14bfd49af47630ad6 /test/SemaCXX | |
parent | a9bb955b499c244d24d02311f0f9100ade506794 (diff) |
Revert various template unreachability code I committed accidentally.
r148774, r148775, r148776, r148777
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148780 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX')
-rw-r--r-- | test/SemaCXX/array-bounds.cpp | 10 | ||||
-rw-r--r-- | test/SemaCXX/warn-unreachable.cpp | 34 |
2 files changed, 3 insertions, 41 deletions
diff --git a/test/SemaCXX/array-bounds.cpp b/test/SemaCXX/array-bounds.cpp index 8d0b1e4e30..c1b3701172 100644 --- a/test/SemaCXX/array-bounds.cpp +++ b/test/SemaCXX/array-bounds.cpp @@ -73,21 +73,17 @@ 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 4 {{declared here}} + char arr[I]; // expected-note 2 {{declared here}} }; template <int I> void f() { S<3> s; - 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)}} + 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)}} } void test_templates() { f<5>(); // expected-note {{in instantiation}} - f<3>(); // expected-note {{in instantiation}} } #define SIZE 10 diff --git a/test/SemaCXX/warn-unreachable.cpp b/test/SemaCXX/warn-unreachable.cpp index 59b6bf9f30..f36300af4d 100644 --- a/test/SemaCXX/warn-unreachable.cpp +++ b/test/SemaCXX/warn-unreachable.cpp @@ -98,24 +98,6 @@ void test_unreachable_templates_harness() { test_unreachable_templates<TestUnreachableB>(); } -// Do warn about non-dependent unreachable code in templates -// Warn even if the template is never instantiated - -template<typename T> void test_non_dependent_unreachable_templates() { - TestUnreachableA::foo(); - isUnreachable(); // expected-warning {{will never be executed}} -} - -// Warn only once even if the template is instantiated multiple times - -template<typename T> void test_non_dependent_unreachable_templates2() { - TestUnreachableA::foo(); - isUnreachable(); // expected-warning {{will never be executed}} -} - -template void test_non_dependent_unreachable_templates2<int>(); -template void test_non_dependent_unreachable_templates2<long>(); - // Do warn about explict template specializations, as they represent // actual concrete functions that somebody wrote. @@ -125,19 +107,3 @@ template <> void funcToSpecialize<int>() { dead(); // expected-warning {{will never be executed}} } -// Ensure we don't regress a fix involving undefined bases to template -// destructors when computing the CFG for unreachable code analysis -template<int> struct imp; -template<int a> -struct aligned_storage : imp<a> { - ~aligned_storage() { } -}; - -// is this valid? -template<typename T> -class outer { - class inner; - void func() { - inner t; - } -}; |