re PR objc/18408 (ICE compiling code that involves casting classes)
2005-01-25 Alexander Malmberg <alexander@malmberg.org> PR objc/18408 * objc-act.c (objc_types_compatible_p): New function. * objc-act.h (objc_types_compatible_p): Declare. * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define. From-SVN: r94199
This commit is contained in:
parent
a6d2976a97
commit
3f16185feb
|
@ -1,3 +1,10 @@
|
|||
2005-01-25 Alexander Malmberg <alexander@malmberg.org>
|
||||
|
||||
PR objc/18408
|
||||
* objc-act.c (objc_types_compatible_p): New function.
|
||||
* objc-act.h (objc_types_compatible_p): Declare.
|
||||
* objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
|
||||
|
||||
2005-01-16 Ziemowit Laski <zlaski@apple.com>
|
||||
|
||||
* objc-act.c (objc_push_parm): Call c_type_promotes_to()
|
||||
|
|
|
@ -73,6 +73,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "tree-iterator.h"
|
||||
#include "libfuncs.h"
|
||||
#include "hashtab.h"
|
||||
#include "langhooks-def.h"
|
||||
|
||||
#define OBJC_VOID_AT_END void_list_node
|
||||
|
||||
|
@ -836,6 +837,27 @@ objc_is_class_id (tree type)
|
|||
return OBJC_TYPE_NAME (type) == objc_class_id;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
objc_types_compatible_p (tree type1, tree type2)
|
||||
{
|
||||
|
||||
if (objc_is_object_ptr (type1) || objc_is_object_ptr (type2)
|
||||
|| objc_is_class_name (type1) || objc_is_class_name (type2))
|
||||
{
|
||||
return lhd_types_compatible_p (type1, type2);
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef OBJCPLUS
|
||||
return cxx_types_compatible_p (type1, type2);
|
||||
#else
|
||||
return c_types_compatible_p (type1, type2);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Return 1 if LHS and RHS are compatible types for assignment or
|
||||
various other operations. Return 0 if they are incompatible, and
|
||||
return -1 if we choose to not decide (because the types are really
|
||||
|
|
|
@ -28,6 +28,7 @@ bool objc_init (void);
|
|||
const char *objc_printable_name (tree, int);
|
||||
void objc_finish_file (void);
|
||||
tree objc_fold_obj_type_ref (tree, tree);
|
||||
int objc_types_compatible_p (tree, tree);
|
||||
|
||||
/* NB: The remaining public functions are prototyped in c-common.h, for the
|
||||
benefit of stub-objc.c and objc-act.c. */
|
||||
|
|
|
@ -45,6 +45,8 @@ enum c_language_kind c_language = clk_objc;
|
|||
#define LANG_HOOKS_INIT objc_init
|
||||
#undef LANG_HOOKS_DECL_PRINTABLE_NAME
|
||||
#define LANG_HOOKS_DECL_PRINTABLE_NAME objc_printable_name
|
||||
#undef LANG_HOOKS_TYPES_COMPATIBLE_P
|
||||
#define LANG_HOOKS_TYPES_COMPATIBLE_P objc_types_compatible_p
|
||||
|
||||
/* Each front end provides its own lang hook initializer. */
|
||||
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
|
||||
|
|
Loading…
Reference in New Issue