summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/for-range-examples.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-02-21 20:01:35 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-02-21 20:01:35 +0000
commit9a2b7e820c79055ee83652ffc0321566f4bddf1f (patch)
tree113ab523b3a05bfc43434a3d2164eaa5c7b07707 /clang/test/SemaCXX/for-range-examples.cpp
parent58dab6829a970b798e04daed5ce750b8023483f2 (diff)
downloadbcm5719-llvm-9a2b7e820c79055ee83652ffc0321566f4bddf1f.tar.gz
bcm5719-llvm-9a2b7e820c79055ee83652ffc0321566f4bddf1f.zip
Don't assume that a valid expression for the first part of a for-statement
is non-null when diagnosing a broken attempt to write a for-range-statement. llvm-svn: 151081
Diffstat (limited to 'clang/test/SemaCXX/for-range-examples.cpp')
-rw-r--r--clang/test/SemaCXX/for-range-examples.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/for-range-examples.cpp b/clang/test/SemaCXX/for-range-examples.cpp
index 868de9d4f0e..8bda51062a4 100644
--- a/clang/test/SemaCXX/for-range-examples.cpp
+++ b/clang/test/SemaCXX/for-range-examples.cpp
@@ -169,3 +169,14 @@ namespace test3 {
template<typename T> void f() { for (auto a : A()) {} }
void g() { f<int>(); }
}
+
+namespace test4 {
+ void f() {
+ int y;
+
+ // Make sure these don't crash. Better diagnostics would be nice.
+ for (: {1, 2, 3}) {} // expected-error {{expected expression}} expected-error {{expected ';'}}
+ for (x : {1, 2, 3}) {} // expected-error {{undeclared identifier}} expected-error {{expected ';'}}
+ for (y : {1, 2, 3}) {} // expected-error {{must declare a variable}} expected-warning {{result unused}}
+ }
+}
OpenPOWER on IntegriCloud