xref: /llvm-project/clang/test/Parser/cxx-invalid-for-range.cpp (revision 7d6b924df841faff6893207044cc57b02464b255)
1*7d6b924dSDenis Zobnin // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
2*7d6b924dSDenis Zobnin 
3*7d6b924dSDenis Zobnin // From PR23057 comment #18 (https://llvm.org/bugs/show_bug.cgi?id=23057#c18).
4*7d6b924dSDenis Zobnin 
5*7d6b924dSDenis Zobnin namespace N {
6*7d6b924dSDenis Zobnin   int X[10]; // expected-note{{declared here}}}}
7*7d6b924dSDenis Zobnin }
8*7d6b924dSDenis Zobnin 
f1()9*7d6b924dSDenis Zobnin void f1() {
10*7d6b924dSDenis Zobnin   for (auto operator new : X); // expected-error{{'operator new' cannot be the name of a variable or data member}}
11*7d6b924dSDenis Zobnin                                // expected-error@-1{{use of undeclared identifier 'X'; did you mean 'N::X'?}}
12*7d6b924dSDenis Zobnin }
13*7d6b924dSDenis Zobnin 
f2()14*7d6b924dSDenis Zobnin void f2() {
15*7d6b924dSDenis Zobnin   for (a operator== :) // expected-error{{'operator==' cannot be the name of a variable or data member}}
16*7d6b924dSDenis Zobnin                        // expected-error@-1{{expected expression}}
17*7d6b924dSDenis Zobnin                        // expected-error@-2{{unknown type name 'a'}}
18*7d6b924dSDenis Zobnin } // expected-error{{expected statement}}
19