diff options
author | Ziemowit Laski <zlaski@apple.com> | 2004-01-18 01:15:30 +0000 |
---|---|---|
committer | Ziemowit Laski <zlaski@gcc.gnu.org> | 2004-01-18 01:15:30 +0000 |
commit | cfbed37cf88d2cec79b5ed34c71ea3e40b2b2578 (patch) | |
tree | c3595f57985b417613871b9f76d64f7fa7e654fe /gcc/objc/objc-act.c | |
parent | cec403bcea4ea5736ecb2c92cd39ad4d5aac988d (diff) | |
download | gcc-cfbed37cf88d2cec79b5ed34c71ea3e40b2b2578.zip gcc-cfbed37cf88d2cec79b5ed34c71ea3e40b2b2578.tar.gz gcc-cfbed37cf88d2cec79b5ed34c71ea3e40b2b2578.tar.bz2 |
objc-act.c (build_objc_method_call): Use target hooks instead of macros to determine if...
[gcc/ChangeLog]
2004-01-17 Ziemowit Laski <zlaski@apple.com>
* objc/objc-act.c (build_objc_method_call): Use target
hooks instead of macros to determine if ..._stret
dispatchers should be used (NeXT runtime only).
[gcc/testsuite/ChangeLog]
2004-01-17 Ziemowit Laski <zlaski@apple.com>
* objc.dg/stret-1.m: New.
* objc.dg/stret-2.m: New.
From-SVN: r76072
Diffstat (limited to 'gcc/objc/objc-act.c')
-rw-r--r-- | gcc/objc/objc-act.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index c552bad..c135292 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -5890,21 +5890,18 @@ build_objc_method_call (int super_flag, tree method_prototype, if (flag_next_runtime) { -#ifdef STRUCT_VALUE /* If we are returning a struct in memory, and the address of that memory location is passed as a hidden first argument, then change which messenger entry point this expr will call. NB: Note that sender_cast remains unchanged (it already has a struct return type). */ - if ((TREE_CODE (ret_type) == RECORD_TYPE - || TREE_CODE (ret_type) == UNION_TYPE) -#if defined (DEFAULT_PCC_STRUCT_RETURN) && DEFAULT_PCC_STRUCT_RETURN == 0 - && RETURN_IN_MEMORY (ret_type) -#endif - && STRUCT_VALUE == 0) + if (!targetm.calls.struct_value_rtx (0, 0) + && (TREE_CODE (ret_type) == RECORD_TYPE + || TREE_CODE (ret_type) == UNION_TYPE) + && targetm.calls.return_in_memory (ret_type, 0)) sender = (super_flag ? umsg_super_stret_decl : flag_nil_receivers ? umsg_stret_decl : umsg_nonnil_stret_decl); -#endif + method_params = tree_cons (NULL_TREE, lookup_object, tree_cons (NULL_TREE, selector, method_params)); |