objc-act.c (objc_fold_objc_type_ref): New function.
[gcc/objc/ChangeLog] 2004-09-21 Ziemowit Laski <zlaski@apple.com> * objc-act.c (objc_fold_objc_type_ref): New function. * objc-act.h (objc_fold_objc_type_ref): New prototype. From-SVN: r87838
This commit is contained in:
parent
76419821c6
commit
86c440722e
@ -1,3 +1,8 @@
|
||||
2004-09-21 Ziemowit Laski <zlaski@apple.com>
|
||||
|
||||
* objc-act.c (objc_fold_objc_type_ref): New function.
|
||||
* objc-act.h (objc_fold_objc_type_ref): New prototype.
|
||||
|
||||
2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
|
||||
|
||||
* objc-act.c (objc_start_function, really_start_method,
|
||||
|
@ -7530,6 +7530,33 @@ comp_proto_with_proto (tree proto1, tree proto2)
|
||||
return (!type1 && !type2);
|
||||
}
|
||||
|
||||
/* Fold an OBJ_TYPE_REF expression for ObjC method dispatches, where
|
||||
this occurs. ObjC method dispatches are _not_ like C++ virtual
|
||||
member function dispatches, and we account for the difference here. */
|
||||
tree
|
||||
#ifdef OBJCPLUS
|
||||
objc_fold_obj_type_ref (tree ref, tree known_type)
|
||||
#else
|
||||
objc_fold_obj_type_ref (tree ref ATTRIBUTE_UNUSED,
|
||||
tree known_type ATTRIBUTE_UNUSED)
|
||||
#endif
|
||||
{
|
||||
#ifdef OBJCPLUS
|
||||
tree v = BINFO_VIRTUALS (TYPE_BINFO (known_type));
|
||||
|
||||
/* If the receiver does not have virtual member functions, there
|
||||
is nothing we can (or need to) do here. */
|
||||
if (!v)
|
||||
return NULL_TREE;
|
||||
|
||||
/* Let C++ handle C++ virtual functions. */
|
||||
return cp_fold_obj_type_ref (ref, known_type);
|
||||
#else
|
||||
/* For plain ObjC, we currently do not need to do anything. */
|
||||
return NULL_TREE;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
objc_start_function (tree name, tree type, tree attrs,
|
||||
#ifdef OBJCPLUS
|
||||
|
@ -27,6 +27,7 @@ Boston, MA 02111-1307, USA. */
|
||||
bool objc_init (void);
|
||||
const char *objc_printable_name (tree, int);
|
||||
void objc_finish_file (void);
|
||||
tree objc_fold_obj_type_ref (tree, tree);
|
||||
|
||||
/* NB: The remaining public functions are prototyped in c-common.h, for the
|
||||
benefit of stub-objc.c and objc-act.c. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user