aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/xref.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-06-22 22:42:04 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-06-22 22:42:04 -0400
commitb532e7f1dc84b4045b5f2d7cfe4a571bb575b22e (patch)
tree65a4c9d4828dffec9c1e4ace0d8b06f8f613b564 /gcc/cp/xref.c
parente1b7b0cb2e688fac7793af38a4d805a13e36056b (diff)
downloadgcc-b532e7f1dc84b4045b5f2d7cfe4a571bb575b22e.zip
gcc-b532e7f1dc84b4045b5f2d7cfe4a571bb575b22e.tar.gz
gcc-b532e7f1dc84b4045b5f2d7cfe4a571bb575b22e.tar.bz2
(build_signature_table_constructor): Use DECL_CONTEXT instead of...
(build_signature_table_constructor): Use DECL_CONTEXT instead of DECL_CLASS_CONTEXT for calculating the vfield offset so abstract virtual functions are handled correctly. (build_signature_table_constructor): Store the correct delta in signature table entries. It does not yet work for classes with virtual base classes as implementations of signatures. (build_signature_method_call): Add the delta to the object_ptr before generating the function call. (build_signature_method_call): Dereference the optr for the direct and virtual calls. (build_signature_table_constructor): Make the tag for default implementations -1 instead of 2. (build_signature_method_call): Change the generated conditional expression correspondingly. (build_signature_pointer_constructor): Deleted the sorry message that said we can't handle multiple inheritance for implementations of signatures (build_signature_method_call): Use the offset from the sigtable entry instead of the vptr field from the signature pointer for building a virtual function call. (build_vptr_ref): Deleted. (build_signature_pointer_or_reference_type): Deleted construction of the vptr field. (build_signature_pointer_constructor): Deleted initialization of/assignment to the vptr field. (build_signature_table_constructor): Convert the signature table entry fields to their correct types. (build_signature_table_constructor): Don't call digest_init for the fields of a sigtable entry, it's wasted time. (build_signature_table_constructor): Correctly set the offset and index fields of a sigtable entry. Build the constructor the way digest_init does, digest_init can't handle initializing an anonymous union inside a struct. (build_signature_method_call): Use the index field instead of the delta field to get the vtable index. (build_signature_table_constructor): Rename code and offset to tag and delta, respectively. (build_signature_method_call): Ditto. Use above variables. From-SVN: r10046
Diffstat (limited to 'gcc/cp/xref.c')
0 files changed, 0 insertions, 0 deletions