remove STRUCT_VALUE macro
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Sat, 12 Sep 2015 22:19:00 +0000 (22:19 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Sat, 12 Sep 2015 22:19:00 +0000 (22:19 +0000)
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  <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-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

PR libobjc/24775
* sendmsg.c: Remove check of STRUCT_VALUE macro.

From-SVN: r227710

gcc/ChangeLog
gcc/config/arc/arc.h
gcc/config/lm32/lm32.h
gcc/config/mep/mep.h
gcc/config/visium/visium.h
gcc/system.h
libobjc/ChangeLog
libobjc/sendmsg.c

index c49902d0e59ca07dfa7e4e66f4de5ff10bec4434..6e9e378ee9614d4f85fb47c1987be7f027e7a2a9 100644 (file)
@@ -1,3 +1,11 @@
+2015-09-12  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.
+
 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
 
        * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
index 874b118421dfb21a39bb9a36e03ea5c0837cdf0b..e8baf5b8d79e0854e219f04e8164b4d23b14978c 100644 (file)
@@ -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.
index 986383f91b031397479eb733b28f4ef2830d59ff..c65538adcd8e0483bbbf618917f3bd587c21c975 100644 (file)
@@ -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.  */
 /*---------------------------*/
index f7322cb7c56e0f7633e2b278726ea754907f4105..4d335b05adf06fa3d4198dc0baf65c7074a67bad 100644 (file)
@@ -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)
 \f
 /* Prologue and epilogues are all handled via RTL.  */
index a2ab61c540b2b02e527e15a965236c44c4ff24e6..71c960ed4fa65648708221fa54c646a14ce09ffe 100644 (file)
@@ -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.
index 1cc5d408df0b756100a755b43fafa7db4d9ac932..3189bda8e5f790bb49e1e977c6c02b50976ac81d 100644 (file)
@@ -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  \
index f176fd0fc45315143d2c6d13e18faa44bd20d20c..26e468fc58487919e8d89604f52dd86e5bf64906 100644 (file)
@@ -1,3 +1,8 @@
+2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+
+       PR libobjc/24775
+       * sendmsg.c: Remove check of STRUCT_VALUE macro.
+
 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
 
        * configure.ac: Remove manual SJLJ check.
index 8e347dfede3e8eb81e221c8488d64c633fdf5f2a..3a079f089031883e4beb1ace26f752a1728eca82 100644 (file)
@@ -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