aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>2015-04-22 00:44:43 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2015-04-22 00:44:43 +0000
commita8a6b3dfd3ec2794a21f34169678a48ed8ecae61 (patch)
tree5e5ff1f30205decc0c878102328c7fed3691df85 /gcc
parent058eb3b07a057f208d379aa72ecc06f775e4bf9d (diff)
downloadgcc-a8a6b3dfd3ec2794a21f34169678a48ed8ecae61.zip
gcc-a8a6b3dfd3ec2794a21f34169678a48ed8ecae61.tar.gz
gcc-a8a6b3dfd3ec2794a21f34169678a48ed8ecae61.tar.bz2
provide default for RETURN_ADDR_OFFSET
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/defaults.h5
-rw-r--r--gcc/except.c14
3 files changed, 19 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7b7729a..dc46aa9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
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)
(try_redirect_by_replacing_jump): Likewise.
(rtl_tidy_fallthru_edge): Likewise.
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 911c2f8..767901a 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -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. */
diff --git a/gcc/except.c b/gcc/except.c
index e05e196..750deb5 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -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;
}