tree.def (FDESC_EXPR): New.
authorRichard Henderson <rth@redhat.com>
Fri, 21 Sep 2001 16:58:22 +0000 (09:58 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 21 Sep 2001 16:58:22 +0000 (09:58 -0700)
commit6723181663a87a735bdfdf2e16a6bd41dbc30be1
tree746cb9ad4b9e1b8562a39be3d23d3c85abfdac19
parent2e3b2d2c0791d979571fd33155b62e66ea7fe27c
tree.def (FDESC_EXPR): New.

gcc/
        * tree.def (FDESC_EXPR): New.
        * expr.c (expand_expr): Handle it.
        * varasm.c (initializer_constant_valid_p): Likewise.
        (output_constant): Likewise.
        * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
        * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
        (ASM_OUTPUT_FDESC): New.
        * doc/tm.texi: Document the new macros.
gcc/cp/
        * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
        (build_vtbl_initializer): Likewise.
        (build_vfn_ref): New.
        * cp-tree.h: Declare it.
        * call.c (build_over_call): Use it.
        * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
        * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
gcc/java/
        * class.c (get_dispatch_table): Handle function descriptors.
        (build_dtable_decl): Likewise.
        * expr.c (build_invokevirtual): Likewise.
gcc/testsuite/
        * g++.old-deja/g++.abi/ptrmem.C: Update for ia64 c++ abi.
        * g++.old-deja/g++.abi/vtable2.C: Likewise.

From-SVN: r45733
19 files changed:
gcc/ChangeLog
gcc/config/ia64/ia64.h
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl2.c
gcc/cp/typeck.c
gcc/defaults.h
gcc/doc/tm.texi
gcc/expr.c
gcc/java/ChangeLog
gcc/java/class.c
gcc/java/expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.abi/ptrmem.C
gcc/testsuite/g++.old-deja/g++.abi/vtable2.C
gcc/tree.def
gcc/varasm.c