diff options
author | Jason Merrill <jason@redhat.com> | 2001-02-18 14:08:00 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2001-02-18 14:08:00 -0500 |
commit | e0fff4b3a7312cd08165c9a010dbafc1a4c98316 (patch) | |
tree | 78833bf4bd67d918c1690aabd6f664e5a2d426ff /gcc/cp/error.c | |
parent | 31189758710a6ea118e5f8a65aad04ea5ef968fd (diff) | |
download | gcc-e0fff4b3a7312cd08165c9a010dbafc1a4c98316.zip gcc-e0fff4b3a7312cd08165c9a010dbafc1a4c98316.tar.gz gcc-e0fff4b3a7312cd08165c9a010dbafc1a4c98316.tar.bz2 |
Do put the VTT parameter in DECL_ARGUMENTS.
* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
(current_vtt_parm): New macro.
(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
(DECL_HAS_VTT_PARM_P): New macro.
(DECL_VTT_PARM): Remove.
(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
* decl.c (duplicate_decls): Only copy the operator code if
appropriate.
(start_function): Set current_vtt_parm.
(lang_mark_tree): Don't mark vtt_parm.
* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
* class.c (build_clone): Maybe remove the VTT parm.
* optimize.c (maybe_clone_body): Set up the VTT parm.
* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
* call.c (build_over_call): Just allow the VTT arg.
* method.c (make_thunk): Don't set DECL_VTT_PARM.
(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
* error.c (dump_function_decl): Likewise.
* call.c (build_user_type_conversion_1, convert_like_real): Abort
if we try to call a constructor with in-charge or VTT parms.
* method.c (skip_artificial_parms_for): New fn.
* call.c (add_function_candidate, build_over_call): Call it.
* call.c (build_new_method_call): Use current_vtt_parm.
* init.c (expand_virtual_init): Likewise.
* class.c (same_signature_p): No longer static.
* cp-tree.h: Declare it.
* search.c (look_for_overrides_r): Use it.
From-SVN: r39841
Diffstat (limited to 'gcc/cp/error.c')
-rw-r--r-- | gcc/cp/error.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 3091236..0ec7405 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1203,7 +1203,7 @@ dump_function_decl (t, flags) } fntype = TREE_TYPE (t); - parmtypes = TYPE_ARG_TYPES (fntype); + parmtypes = FUNCTION_FIRST_USER_PARMTYPE (t); if (DECL_CLASS_SCOPE_P (t)) cname = DECL_CONTEXT (t); @@ -1241,14 +1241,6 @@ dump_function_decl (t, flags) if (flags & TFF_DECL_SPECIFIERS) { - if (TREE_CODE (fntype) == METHOD_TYPE && parmtypes) - /* Skip "this" parameter. */ - parmtypes = TREE_CHAIN (parmtypes); - - /* Skip past the "in_charge" parameter. */ - if (DECL_HAS_IN_CHARGE_PARM_P (t)) - parmtypes = TREE_CHAIN (parmtypes); - dump_parameters (parmtypes, flags); if (show_return) |