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
diff --git a/test/SemaCXX/array-bounds.cpp b/test/SemaCXX/array-bounds.cpp
index 8d0b1e4..c1b3701 100644
--- a/test/SemaCXX/array-bounds.cpp
+++ b/test/SemaCXX/array-bounds.cpp
@@ -73,21 +73,17 @@
(*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 59b6bf9..f36300a 100644
--- a/test/SemaCXX/warn-unreachable.cpp
+++ b/test/SemaCXX/warn-unreachable.cpp
@@ -98,24 +98,6 @@
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 @@
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;
- }
-};