mirror of git://gcc.gnu.org/git/gcc.git
Fixed warning from __objc_get_forward_imp not returning a value
From-SVN: r54707
This commit is contained in:
parent
97272202aa
commit
bd8d449d1d
|
|
@ -78,32 +78,36 @@ static Method_t search_for_method_in_hierarchy (Class class, SEL sel);
|
||||||
Method_t search_for_method_in_list(MethodList_t list, SEL op);
|
Method_t search_for_method_in_list(MethodList_t list, SEL op);
|
||||||
id nil_method(id, SEL, ...);
|
id nil_method(id, SEL, ...);
|
||||||
|
|
||||||
/* Given a selector, return the proper forwarding implementation. */
|
/* Given a selector, return the proper forwarding implementation. */
|
||||||
__inline__
|
__inline__
|
||||||
IMP
|
IMP
|
||||||
__objc_get_forward_imp (SEL sel)
|
__objc_get_forward_imp (SEL sel)
|
||||||
{
|
{
|
||||||
|
/* If a custom forwarding hook was registered, try getting a forwarding
|
||||||
|
* function from it. */
|
||||||
if (__objc_msg_forward)
|
if (__objc_msg_forward)
|
||||||
{
|
{
|
||||||
IMP result;
|
IMP result;
|
||||||
if ((result = __objc_msg_forward (sel)))
|
if ((result = __objc_msg_forward (sel)) != NULL)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
const char *t = sel->sel_types;
|
|
||||||
|
|
||||||
if (t && (*t == '[' || *t == '(' || *t == '{')
|
/* In all other cases, use the default forwarding functions built using
|
||||||
|
* __builtin_apply and friends. */
|
||||||
|
{
|
||||||
|
const char *t = sel->sel_types;
|
||||||
|
|
||||||
|
if (t && (*t == '[' || *t == '(' || *t == '{')
|
||||||
#ifdef OBJC_MAX_STRUCT_BY_VALUE
|
#ifdef OBJC_MAX_STRUCT_BY_VALUE
|
||||||
&& objc_sizeof_type(t) > OBJC_MAX_STRUCT_BY_VALUE
|
&& objc_sizeof_type(t) > OBJC_MAX_STRUCT_BY_VALUE
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
return (IMP)__objc_block_forward;
|
return (IMP)__objc_block_forward;
|
||||||
else if (t && (*t == 'f' || *t == 'd'))
|
else if (t && (*t == 'f' || *t == 'd'))
|
||||||
return (IMP)__objc_double_forward;
|
return (IMP)__objc_double_forward;
|
||||||
else
|
else
|
||||||
return (IMP)__objc_word_forward;
|
return (IMP)__objc_word_forward;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Given a class and selector, return the selector's implementation. */
|
/* Given a class and selector, return the selector's implementation. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue