provide default for RETURN_ADDR_OFFSET
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Wed, 22 Apr 2015 00:44:43 +0000 (00:44 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Wed, 22 Apr 2015 00:44:43 +0000 (00:44 +0000)
gcc/ChangeLog:

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* defaults.h (RETURN_ADDR_OFFSET): New definition.
* except.c (expand_builtin_extract_return_addr): Remove ifdef
RETURN_ADDR_OFFSET.
(expand_builtin_frob_return_addr): Likewise.

From-SVN: r222298

gcc/ChangeLog
gcc/defaults.h
gcc/except.c

index 7b7729ac05e849176f1931e1c86ea7c07282a968..dc46aa99f99f8eabd21c7b60eca29804b7487d02 100644 (file)
@@ -1,3 +1,10 @@
+2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+
+       * defaults.h (RETURN_ADDR_OFFSET): New definition.
+       * except.c (expand_builtin_extract_return_addr): Remove ifdef
+       RETURN_ADDR_OFFSET.
+       (expand_builtin_frob_return_addr): Likewise.
+
 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
 
        * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
index 911c2f8df13bfc7e7c9b00a6a1b9c89d8ff45704..767901acf2921eb683c4c54756e614eb8fa474d4 100644 (file)
@@ -383,6 +383,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM
 #endif
 
+/* Offset between the eh handler address and entry in eh tables.  */
+#ifndef RETURN_ADDR_OFFSET
+#define RETURN_ADDR_OFFSET 0
+#endif
+
 /* If we have named section and we support weak symbols, then use the
    .jcr section for recording java classes which need to be registered
    at program start-up time.  */
index e05e196989975f4e4858d887e4340b2ce73c9e1a..750deb56bfecef604e61ea4e7cddf62dc2409551 100644 (file)
@@ -2190,9 +2190,8 @@ expand_builtin_extract_return_addr (tree addr_tree)
 #endif
 
   /* Then adjust to find the real return address.  */
-#if defined (RETURN_ADDR_OFFSET)
-  addr = plus_constant (Pmode, addr, RETURN_ADDR_OFFSET);
-#endif
+  if (RETURN_ADDR_OFFSET)
+    addr = plus_constant (Pmode, addr, RETURN_ADDR_OFFSET);
 
   return addr;
 }
@@ -2208,10 +2207,11 @@ expand_builtin_frob_return_addr (tree addr_tree)
 
   addr = convert_memory_address (Pmode, addr);
 
-#ifdef RETURN_ADDR_OFFSET
-  addr = force_reg (Pmode, addr);
-  addr = plus_constant (Pmode, addr, -RETURN_ADDR_OFFSET);
-#endif
+  if (RETURN_ADDR_OFFSET)
+    {
+      addr = force_reg (Pmode, addr);
+      addr = plus_constant (Pmode, addr, -RETURN_ADDR_OFFSET);
+    }
 
   return addr;
 }