OSDN Git Service

* cp-tree.h (DECL_PARM_LEVEL): New.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 Feb 2011 04:56:26 +0000 (04:56 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 Feb 2011 04:56:26 +0000 (04:56 +0000)
commit4d7aaf8ec69e851babf725342ec3676ead73962b
treed6fdd251fa53f073e7a55645ed002529e562a279
parentc73d8ee3ddc1766f1f4cd1e2adea9146a8ed22f8
* cp-tree.h (DECL_PARM_LEVEL): New.
(struct lang_decl_parm): Add level field.
* name-lookup.c (function_parm_depth): New fn.
* name-lookup.h: Declare it.
* parser.c (cp_parser_parameter_declaration_list): Use it.
* mangle.c (struct globals): Add parm_depth field.
(write_bare_function_type): Adjust it.
(write_expression): Include the level delta in PARM_DECL mangling
for abi >= 6.

* semantics.c (finish_decltype_type): Remove shortcut for decltype
of id-expression.
* mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170459 138bc75d-0d04-0410-961f-82ee72b054a4
15 files changed:
gcc/ChangeLog
gcc/common.opt
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/mangle.c
gcc/cp/name-lookup.c
gcc/cp/name-lookup.h
gcc/cp/parser.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/mangle39.C
gcc/testsuite/g++.dg/abi/mangle45.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/trailing1.C
gcc/testsuite/g++.dg/template/canon-type-12.C
gcc/testsuite/g++.dg/template/canon-type-9.C