Comments
Patch
commit 2515fd89aeb268d395242d6ef3137da7119fdce8
Author: Jason Merrill <jason@redhat.com>
Date: Fri Aug 5 10:16:58 2011 -0400
PR c++/49983
* parser.c (cp_parser_range_for): Only do auto deduction in
template if the range is non-dependent.
@@ -8679,7 +8679,8 @@ cp_parser_range_for (cp_parser *parser, tree scope, tree init, tree range_decl)
{
stmt = begin_range_for_stmt (scope, init);
finish_range_for_decl (stmt, range_decl, range_expr);
- do_range_for_auto_deduction (range_decl, range_expr);
+ if (!type_dependent_expression_p (range_expr))
+ do_range_for_auto_deduction (range_decl, range_expr);
}
else
{
new file mode 100644
@@ -0,0 +1,8 @@
+// PR c++/49983
+// { dg-options -std=c++0x }
+
+template <class T>
+void f(T t)
+{
+ for (auto v : t);
+}