From: Trevor Saunders <tbsaunde+...@tbsaunde.org> It is undocumented so the meaning is unclear, but it is only ever defined to 0, which the one user in libobjc treats the same as being undefined.
gcc/ChangeLog: 2015-09-10 Trevor Saunders <tbsaunde+...@tbsaunde.org> * 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-10 Trevor Saunders <tbsaunde+...@tbsaunde.org> * sendmsg.c: Remove check of STRUCT_VALUE macro. --- 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/sendmsg.c | 5 ----- 6 files changed, 1 insertion(+), 22 deletions(-) diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index d98cce1..4b67716 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -901,10 +901,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 986383f..c65538a 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 f7322cb7..4d335b0 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 a2ab61c..71c960e 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 9ca5b5f..e306459 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -948,7 +948,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/sendmsg.c b/libobjc/sendmsg.c index 8e347df..3a079f0 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 <assert.h> /* For assert */ #include <string.h> /* 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.4.0