From 9a2b7e820c79055ee83652ffc0321566f4bddf1f Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 21 Feb 2012 20:01:35 +0000 Subject: 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 --- clang/test/SemaCXX/for-range-examples.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'clang/test/SemaCXX/for-range-examples.cpp') 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 void f() { for (auto a : A()) {} } void g() { f(); } } + +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}} + } +} -- cgit v1.2.3