From 2f0c2a0cc4024163281b7c960764635fafb21b8d Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Sat, 12 Sep 2015 22:19:00 +0000 Subject: [PATCH] remove STRUCT_VALUE macro This macro was converted to the TARGET_STRUCT_VALUE_RTX hook many years ago, however there are still some lingering definitions, and a use in libobjc. All the remaining definitions define the macro to 0, which libobjc treats the same as undefined, so it won't break anything else to have libobjc stop checking the macro. However it may be that this part of libobjc has been broken for a long time on targets that only define the hook, but that is a separate issue. gcc/ChangeLog: 2015-09-12 Trevor Saunders * config/arc/arc.h: Remove define of STRUCT_VALUE. * config/lm32/lm32.h: Likewise. * config/mep/mep.h: Likewise. * config/visium/visium.h: Likewise. * system.h: Poison STRUCT_VALUE macro. libobjc/ChangeLog: 2015-09-12 Trevor Saunders PR libobjc/24775 * sendmsg.c: Remove check of STRUCT_VALUE macro. From-SVN: r227710 --- gcc/ChangeLog | 8 ++++++++ gcc/config/arc/arc.h | 4 ---- gcc/config/lm32/lm32.h | 2 -- gcc/config/mep/mep.h | 2 -- gcc/config/visium/visium.h | 8 -------- gcc/system.h | 2 +- libobjc/ChangeLog | 5 +++++ libobjc/sendmsg.c | 5 ----- 8 files changed, 14 insertions(+), 22 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c49902d0e59..6e9e378ee96 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-09-12 Trevor Saunders + + * config/arc/arc.h: Remove define of STRUCT_VALUE. + * config/lm32/lm32.h: Likewise. + * config/mep/mep.h: Likewise. + * config/visium/visium.h: Likewise. + * system.h: Poison STRUCT_VALUE macro. + 2015-09-12 John David Anglin * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index 874b118421d..e8baf5b8d79 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -896,10 +896,6 @@ arc_return_addr_rtx(COUNT,FRAME) /* Tell GCC to use RETURN_IN_MEMORY. */ #define DEFAULT_PCC_STRUCT_RETURN 0 -/* Register in which address to store a structure value - is passed to a function, or 0 to use `invisible' first argument. */ -#define STRUCT_VALUE 0 - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. diff --git a/gcc/config/lm32/lm32.h b/gcc/config/lm32/lm32.h index 986383f91b0..c65538adcd8 100644 --- a/gcc/config/lm32/lm32.h +++ b/gcc/config/lm32/lm32.h @@ -302,8 +302,6 @@ enum reg_class LM32_NUM_INTS ((MODE) == BLKmode ? \ int_size_in_bytes (TYPE) : GET_MODE_SIZE (MODE)) -#define STRUCT_VALUE 0 - /*---------------------------*/ /* Function entry and exit. */ /*---------------------------*/ diff --git a/gcc/config/mep/mep.h b/gcc/config/mep/mep.h index f7322cb7c56..4d335b05adf 100644 --- a/gcc/config/mep/mep.h +++ b/gcc/config/mep/mep.h @@ -499,8 +499,6 @@ typedef struct #define DEFAULT_PCC_STRUCT_RETURN 0 -#define STRUCT_VALUE 0 - #define FUNCTION_OK_FOR_SIBCALL(DECL) mep_function_ok_for_sibcall(DECL) /* Prologue and epilogues are all handled via RTL. */ diff --git a/gcc/config/visium/visium.h b/gcc/config/visium/visium.h index a2ab61c540b..71c960ed4fa 100644 --- a/gcc/config/visium/visium.h +++ b/gcc/config/visium/visium.h @@ -1075,14 +1075,6 @@ struct visium_args If not defined, this defaults to the value 1. */ #define DEFAULT_PCC_STRUCT_RETURN 0 -/* `STRUCT_VALUE' - - If the structure value address is not passed in a register, define - `STRUCT_VALUE' as an expression returning an RTX for the place - where the address is passed. If it returns 0, the address is - passed as an "invisible" first argument. */ -#define STRUCT_VALUE 0 - /* Caller-Saves Register Allocation If you enable it, GNU CC can save registers around function calls. diff --git a/gcc/system.h b/gcc/system.h index 1cc5d408df0..3189bda8e5f 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -956,7 +956,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P \ CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL \ ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \ - LIBGCC2_LONG_DOUBLE_TYPE_SIZE + LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE /* Hooks that are no longer used. */ #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index f176fd0fc45..26e468fc584 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,8 @@ +2015-09-12 Trevor Saunders + + PR libobjc/24775 + * sendmsg.c: Remove check of STRUCT_VALUE macro. + 2015-05-13 Eric Botcazou * configure.ac: Remove manual SJLJ check. diff --git a/libobjc/sendmsg.c b/libobjc/sendmsg.c index 8e347dfede3..3a079f08903 100644 --- a/libobjc/sendmsg.c +++ b/libobjc/sendmsg.c @@ -47,7 +47,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include /* For assert */ #include /* For strlen */ -/* This is how we hack STRUCT_VALUE to be 1 or 0. */ #define gen_rtx(args...) 1 #define gen_rtx_MEM(args...) 1 #define gen_rtx_REG(args...) 1 @@ -55,11 +54,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #undef rtx #define rtx int -#if ! defined (STRUCT_VALUE) || STRUCT_VALUE == 0 #define INVISIBLE_STRUCT_RETURN 1 -#else -#define INVISIBLE_STRUCT_RETURN 0 -#endif /* The uninstalled dispatch table. If a class' dispatch table points to __objc_uninstalled_dtable then that means it needs its dispatch -- 2.30.2