aboutsummaryrefslogtreecommitdiff
path: root/gcc/objc/objc-act.c
diff options
context:
space:
mode:
authorZiemowit Laski <zlaski@apple.com>2004-01-18 01:15:30 +0000
committerZiemowit Laski <zlaski@gcc.gnu.org>2004-01-18 01:15:30 +0000
commitcfbed37cf88d2cec79b5ed34c71ea3e40b2b2578 (patch)
treec3595f57985b417613871b9f76d64f7fa7e654fe /gcc/objc/objc-act.c
parentcec403bcea4ea5736ecb2c92cd39ad4d5aac988d (diff)
downloadgcc-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.c13
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));