diff options
author | Catherine Moore <clm@cygnus.com> | 1999-01-13 14:32:39 +0000 |
---|---|---|
committer | Catherine Moore <clm@gcc.gnu.org> | 1999-01-13 09:32:39 -0500 |
commit | c11145f6995c09869e75cd7946bea6b2f0ca969d (patch) | |
tree | 8bda4394f7aa870f436c5abb337ebdf44731d0c5 /gcc/config/arm/arm.h | |
parent | 31ee9d6c10cf0088adbb3f81bfcf4e40159d5ac2 (diff) | |
download | gcc-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.h | 9 |
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 } \ } |