On 09/15/2010 11:32 AM, g...@raphael.poss.name wrote:
> Hi all,
>
> the page at http://gcc.gnu.org/projects/cxx0x.html suggests that g++ 4.6
> supports range-based "for" 
> (http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html);
> however it appears that the construct is actually not recognized in 4.6,
> and I could find no support for it in gcc/cp/parser.c no cp-tree.def. 
>   
Evidently you don't have a current tree. This is the top of the current
cp/ChangeLog

2010-09-13  Rodrigo Rivas Costa <rodrigorivasco...@gmail.com>

    * semantics.c (finish_for_stmt): Always test flag_new_for_scope.
    (begin_range_for_stmt): Likewise.

2010-09-11  Rodrigo Rivas <rodrigorivasco...@gmail.com>

    Implement range-based for-statements.
    * cp-tree.def (RANGE_FOR_STMT): New.
    * cp-tree.h (RANGE_FOR_DECL, RANGE_FOR_EXPR, RANGE_FOR_BODY): New.
    (cp_convert_range_for): Declare.
    * pt.c (tsubst_expr): Add RANGE_FOR_STMT.
    (tsubst_copy_and_build): perform_koenig_lookup takes extra argument.
    * semantics.c (begin_range_for_stmt): New.
    (finish_range_for_decl): New.
    (finish_for_stmt): Accept also RANGE_FOR_STMT.
    (perform_koenig_lookup): Add extra argument include_std.
    * parser.c (cp_parser_c_for): New with code from
    cp_parser_iteration_statement().
    (cp_parser_range_for): New.
    (cp_convert_range_for): New.
    (cp_parser_iteration_statement): Add range-for support.
    (cp_parser_condition): Adjust comment.
    (cp_parser_postfix_expression): perform_koenig_lookup takes extra
    argument.
    * dump.c (cp_dump_tree): Add RANGE_FOR_STMT.
    * cxx-pretty-print.c: Likewise.
    * lex.c (cxx_init): Likewise.
    * name-lookup.c (lookup_function_nonclass): Add extra argument
    include_std.
    (lookup_arg_dependent): Likewise.
    * name-lookup.h: Likewise.

Reply via email to