aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/arm.h
diff options
context:
space:
mode:
authorCatherine Moore <clm@cygnus.com>1999-01-13 14:32:39 +0000
committerCatherine Moore <clm@gcc.gnu.org>1999-01-13 09:32:39 -0500
commitc11145f6995c09869e75cd7946bea6b2f0ca969d (patch)
tree8bda4394f7aa870f436c5abb337ebdf44731d0c5 /gcc/config/arm/arm.h
parent31ee9d6c10cf0088adbb3f81bfcf4e40159d5ac2 (diff)
downloadgcc-c11145f6995c09869e75cd7946bea6b2f0ca969d.zip
gcc-c11145f6995c09869e75cd7946bea6b2f0ca969d.tar.gz
gcc-c11145f6995c09869e75cd7946bea6b2f0ca969d.tar.bz2
arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN before generating a call to abort for volatile...
* config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN before generating a call to abort for volatile functions. * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. (TARGET_ABORT_NORETURN): Define. (abort-on-noreturn): New option. From-SVN: r24653
Diffstat (limited to 'gcc/config/arm/arm.h')
-rw-r--r--gcc/config/arm/arm.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index f47f653..3c29f1c 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -312,6 +312,10 @@ extern char *target_fp_name;
big-endian (for backwards compatibility with older versions of GCC). */
#define ARM_FLAG_LITTLE_WORDS (0x2000)
+/* Nonzero if a call to abort should be generated if a noreturn
+function tries to return. */
+#define ARM_FLAG_ABORT_NORETURN (0x8000)
+
#define TARGET_APCS (target_flags & ARM_FLAG_APCS_FRAME)
#define TARGET_POKE_FUNCTION_NAME (target_flags & ARM_FLAG_POKE)
#define TARGET_FPE (target_flags & ARM_FLAG_FPE)
@@ -327,6 +331,7 @@ extern char *target_fp_name;
#define TARGET_BIG_END (target_flags & ARM_FLAG_BIG_END)
#define TARGET_THUMB_INTERWORK (target_flags & ARM_FLAG_THUMB)
#define TARGET_LITTLE_WORDS (target_flags & ARM_FLAG_LITTLE_WORDS)
+#define TARGET_ABORT_NORETURN (target_flags & ARM_FLAG_ABORT_NORETURN)
/* SUBTARGET_SWITCHES is used to add flags on a per-config basis.
Bit 31 is reserved. See riscix.h. */
@@ -377,6 +382,10 @@ extern char *target_fp_name;
{"thumb-interwork", ARM_FLAG_THUMB, \
"Support calls between THUMB and ARM instructions sets" }, \
{"no-thumb-interwork", -ARM_FLAG_THUMB, "" }, \
+ {"abort-on-noreturn", ARM_FLAG_ABORT_NORETURN, \
+ "Generate a call to abort if a noreturn function returns"}, \
+ {"no-abort-on-noreturn", -ARM_FLAG_ABORT_NORETURN, ""}, \
+
SUBTARGET_SWITCHES \
{"", TARGET_DEFAULT } \
}