diff mbox

[1/3] remove STRUCT_VALUE macro

Message ID 1441886239-28535-2-git-send-email-tbsaunde+gcc@tbsaunde.org
State New
Headers show

Commit Message

tbsaunde+gcc@tbsaunde.org Sept. 10, 2015, 11:57 a.m. UTC
From: Trevor Saunders <tbsaunde+gcc@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+gcc@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+gcc@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(-)

Comments

Bernd Schmidt Sept. 10, 2015, 12:28 p.m. UTC | #1
On 09/10/2015 01:57 PM, tbsaunde+gcc@tbsaunde.org wrote:
> From: Trevor Saunders <tbsaunde+gcc@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.

Apparently it was converted to TARGET_STRUCT_VALUE_RTX in 2003/2004. The
default definition of that is documented as just returning 0, so
removing these macros should be fine.

> gcc/ChangeLog:
> 
> 2015-09-10  Trevor Saunders  <tbsaunde+gcc@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.

Ok.


Bernd
diff mbox

Patch

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