PR c++/37302
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Sep 2008 20:52:44 +0000 (20:52 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Sep 2008 20:52:44 +0000 (20:52 +0000)
commit34eac767ac87eca1545ffff470bf5086928a9a90
tree0142184b1cea337fc342e6818257e4f6cb77fa58
parent6a5026545d3fac46f5eed664a147df23ae52efe9
    PR c++/37302
        * parser.c (cp_parser_parameter_declaration_list): Process the
        PARM_DECLs as we go and push them.  Return a TREE_LIST.
        (cp_parser_parameter_declaration_clause): Return a TREE_LIST.
        (cp_parser_direct_declarator): Create a binding level and
        suppress deprecated warnings in the parameter list.
        (make_call_declarator): PARMS is now a tree.
        * cp-tree.h (struct cp_declarator): Function parms are now a tree.
        * decl.h (enum deprecated_states, deprecated_state): Move here.
        * decl.c: From here.
        (type_is_deprecated): New fn.
        (grokparms): PARMLIST is a tree now.  Warn about parms that
        use deprecated types.
        * mangle.c (write_expression): Handle PARM_DECL, CALL_EXPR and
        0-operand cast.
        * pt.c (tsubst) [DECLTYPE_TYPE]: Set skip_evaluation.
        (tsubst_copy) [PARM_DECL]: Handle a PARM_DECL used outside of a
        function.
        * name-lookup.c (pushtag): Look through function parameter scopes.
        (pushdecl_maybe_friend): Don't set DECL_CONTEXT on a PARM_DECL
        when we're parsing a function declarator.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140120 138bc75d-0d04-0410-961f-82ee72b054a4
18 files changed:
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/decl.h
gcc/cp/mangle.c
gcc/cp/name-lookup.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/testsuite/g++.dg/cpp0x/auto2.C
gcc/testsuite/g++.dg/cpp0x/auto3.C
gcc/testsuite/g++.dg/cpp0x/auto6.C
gcc/testsuite/g++.dg/other/error15.C
gcc/testsuite/g++.dg/other/error6.C
gcc/testsuite/g++.dg/other/pr28114.C
gcc/testsuite/g++.dg/parse/error3.C
gcc/testsuite/g++.old-deja/g++.jason/rfg16.C
gcc/testsuite/g++.old-deja/g++.oliva/template1.C
gcc/testsuite/g++.old-deja/g++.pt/memtemp29.C