diff options
| author | DeLesley Hutchins <delesley@google.com> | 2013-10-17 18:19:31 +0000 |
|---|---|---|
| committer | DeLesley Hutchins <delesley@google.com> | 2013-10-17 18:19:31 +0000 |
| commit | 6501320e723a63bcbadf49c9e9dd4cfde904619e (patch) | |
| tree | 53071dc37ac76561128d625a08f5b9c8561203fe /clang/test/SemaCXX/warn-consumed-analysis.cpp | |
| parent | 045a78fa7e21af1459b7eb5be2193a9789a80780 (diff) | |
| download | bcm5719-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.cpp | 28 |
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 + |

