This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ PATCH to tidy up build_vtbl_ref


OK.

On Mon, Sep 10, 2018 at 12:32 AM, Marek Polacek <polacek@redhat.com> wrote:
> The wrapper for build_vtbl_ref_1 doesn't seem to do anything useful.
>
> Bootstrapped/regtested on x86_64-linux, ok for trunk?
>
> 2018-09-09  Marek Polacek  <polacek@redhat.com>
>
>         * class.c (build_vtbl_ref): Remove.
>         (build_vtbl_ref_1): Rename to build_vtbl_ref.
>         (build_vfn_ref): Call build_vtbl_ref instead of build_vtbl_ref_1.
>
> diff --git gcc/cp/class.c gcc/cp/class.c
> index e11173d2e59..e950a7423f7 100644
> --- gcc/cp/class.c
> +++ gcc/cp/class.c
> @@ -133,7 +133,6 @@ static void maybe_warn_about_overly_private_class (tree);
>  static void add_implicitly_declared_members (tree, tree*, int, int);
>  static tree fixed_type_or_null (tree, int *, int *);
>  static tree build_simple_base_path (tree expr, tree binfo);
> -static tree build_vtbl_ref_1 (tree, tree);
>  static void build_vtbl_initializer (tree, tree, tree, tree, int *,
>                                     vec<constructor_elt, va_gc> **);
>  static bool check_bitfield_decl (tree);
> @@ -699,8 +698,8 @@ build_vfield_ref (tree datum, tree type)
>     cases for INSTANCE which we take care of here, mainly to avoid
>     creating extra tree nodes when we don't have to.  */
>
> -static tree
> -build_vtbl_ref_1 (tree instance, tree idx)
> +tree
> +build_vtbl_ref (tree instance, tree idx)
>  {
>    tree aref;
>    tree vtbl = NULL_TREE;
> @@ -730,14 +729,6 @@ build_vtbl_ref_1 (tree instance, tree idx)
>    return aref;
>  }
>
> -tree
> -build_vtbl_ref (tree instance, tree idx)
> -{
> -  tree aref = build_vtbl_ref_1 (instance, idx);
> -
> -  return aref;
> -}
> -
>  /* Given a stable object pointer INSTANCE_PTR, return an expression which
>     yields a function pointer corresponding to vtable element INDEX.  */
>
> @@ -746,8 +737,7 @@ build_vfn_ref (tree instance_ptr, tree idx)
>  {
>    tree aref;
>
> -  aref = build_vtbl_ref_1 (cp_build_fold_indirect_ref (instance_ptr),
> -                           idx);
> +  aref = build_vtbl_ref (cp_build_fold_indirect_ref (instance_ptr), idx);
>
>    /* When using function descriptors, the address of the
>       vtable entry is treated as a function pointer.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]