// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s | |
template<typename T, typename U> | |
struct pair {}; | |
template<typename T, typename U> | |
struct map { | |
typedef pair<T,U> *iterator; | |
iterator begin(); | |
iterator end(); | |
}; | |
template<typename T, typename U> | |
pair<T,U> &tie(T &, U &); | |
int foo(map<char*,int> &m) { | |
char *p; | |
int n; | |
for (pair<char*,int> x : m) { | |
(void)x; | |
} | |
for (tie(p, n) : m) { // expected-error {{for range declaration must declare a variable}} | |
(void)p; | |
(void)n; | |
} | |
return n; | |
} |