diff options
author | Jason Merrill <jason@redhat.com> | 2011-02-23 23:56:26 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-02-23 23:56:26 -0500 |
commit | 67e18edbc6fcddeb11629224e53629bdb59c7ed1 (patch) | |
tree | d6fdd251fa53f073e7a55645ed002529e562a279 /gcc/cp/name-lookup.c | |
parent | 5a30f819c7f84dcee4987b96d7e9d8ea0177fe90 (diff) | |
download | gcc-67e18edbc6fcddeb11629224e53629bdb59c7ed1.zip gcc-67e18edbc6fcddeb11629224e53629bdb59c7ed1.tar.gz gcc-67e18edbc6fcddeb11629224e53629bdb59c7ed1.tar.bz2 |
cp-tree.h (DECL_PARM_LEVEL): New.
* 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.
From-SVN: r170459
Diffstat (limited to 'gcc/cp/name-lookup.c')
-rw-r--r-- | gcc/cp/name-lookup.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index e2e5450..4117202 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -1635,6 +1635,22 @@ getdecls (void) return current_binding_level->names; } +/* Return how many function prototypes we are currently nested inside. */ + +int +function_parm_depth (void) +{ + int level = 0; + struct cp_binding_level *b; + + for (b = current_binding_level; + b->kind == sk_function_parms; + b = b->level_chain) + ++level; + + return level; +} + /* For debugging. */ static int no_print_functions = 0; static int no_print_builtins = 0; |