summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/warn-consumed-analysis.cpp
diff options
context:
space:
mode:
authorDeLesley Hutchins <delesley@google.com>2013-10-17 18:19:31 +0000
committerDeLesley Hutchins <delesley@google.com>2013-10-17 18:19:31 +0000
commit6501320e723a63bcbadf49c9e9dd4cfde904619e (patch)
tree53071dc37ac76561128d625a08f5b9c8561203fe /clang/test/SemaCXX/warn-consumed-analysis.cpp
parent045a78fa7e21af1459b7eb5be2193a9789a80780 (diff)
downloadbcm5719-llvm-6501320e723a63bcbadf49c9e9dd4cfde904619e.tar.gz
bcm5719-llvm-6501320e723a63bcbadf49c9e9dd4cfde904619e.zip
Consumed analysis: fix ICE in handling of loop source locations.
llvm-svn: 192911
Diffstat (limited to 'clang/test/SemaCXX/warn-consumed-analysis.cpp')
-rw-r--r--clang/test/SemaCXX/warn-consumed-analysis.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/clang/test/SemaCXX/warn-consumed-analysis.cpp b/clang/test/SemaCXX/warn-consumed-analysis.cpp
index 8a55c8820a2..e7380b97feb 100644
--- a/clang/test/SemaCXX/warn-consumed-analysis.cpp
+++ b/clang/test/SemaCXX/warn-consumed-analysis.cpp
@@ -546,14 +546,36 @@ void testWhileLoop1() {
ConsumableClass<int> var0, var1(42);
- while (i-- > 0) {
+ while (i-- > 0) { // expected-warning {{state of variable 'var1' must match at the entry and exit of loop}}
*var0; // expected-warning {{invalid invocation of method 'operator*' on object 'var0' while it is in the 'consumed' state}}
*var1;
var1.consume();
- *var1; // expected-warning {{invalid invocation of method 'operator*' on object 'var1' while it is in the 'consumed' state}} \
- // expected-warning {{state of variable 'var1' must match at the entry and exit of loop}}
+ *var1; // expected-warning {{invalid invocation of method 'operator*' on object 'var1' while it is in the 'consumed' state}}
}
*var0; // expected-warning {{invalid invocation of method 'operator*' on object 'var0' while it is in the 'consumed' state}}
}
+
+
+namespace ContinueICETest {
+
+bool cond1();
+bool cond2();
+
+static void foo1() {
+ while (cond1()) {
+ if (cond2())
+ continue;
+ }
+}
+
+static void foo2() {
+ while (true) {
+ if (false)
+ continue;
+ }
+}
+
+} // end namespace ContinueICETest
+
OpenPOWER on IntegriCloud