diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2014-10-30 09:35:42 +0000 |
---|---|---|
committer | <> | 2015-01-09 11:51:27 +0000 |
commit | c27a97d04853380f1e80525391b3f0d156ed4c84 (patch) | |
tree | 68ffaade7c605bc80cffa18360799c98a810976f /gcc/testsuite/gcc.c-torture/execute/20101011-1.c | |
parent | 6af3fdec2262dd94954acc5e426ef71cbd4521d3 (diff) | |
download | gcc-tarball-c27a97d04853380f1e80525391b3f0d156ed4c84.tar.gz |
Imported from /home/lorry/working-area/delta_gcc-tarball/gcc-4.9.2.tar.bz2.gcc-4.9.2
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/20101011-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20101011-1.c | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20101011-1.c b/gcc/testsuite/gcc.c-torture/execute/20101011-1.c index fcf8c07124..1952dbd702 100644 --- a/gcc/testsuite/gcc.c-torture/execute/20101011-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/20101011-1.c @@ -12,12 +12,12 @@ #elif defined (__sh__) /* On SH division by zero does not trap. */ # define DO_TEST 0 +#elif defined (__aarch64__) + /* On AArch64 integer division by zero does not trap. */ +# define DO_TEST 0 #elif defined (__TMS320C6X__) /* On TI C6X division by zero does not trap. */ # define DO_TEST 0 -#elif defined (__arm__) - /* We cannot rely on division by zero generating a trap. */ -# define DO_TEST 0 #elif defined (__mips__) && !defined(__linux__) /* MIPS divisions do trap by default, but libgloss targets do not intercept the trap and raise a SIGFPE. The same is probably @@ -28,10 +28,45 @@ /* Not all Linux kernels deal correctly the breakpoints generated by MIPS16 divisions by zero. They show up as a SIGTRAP instead. */ # define DO_TEST 0 +#elif defined (__MICROBLAZE__) +/* We cannot rely on division by zero generating a trap. */ +# define DO_TEST 0 #elif defined (__epiphany__) /* Epiphany does not have hardware division, and the software implementation has truly undefined behaviour for division by 0. */ # define DO_TEST 0 +#elif defined (__m68k__) && !defined(__linux__) + /* Attempting to trap division-by-zero in this way isn't likely to work on + bare-metal m68k systems. */ +# define DO_TEST 0 +#elif defined (__CRIS__) + /* No SIGFPE for CRIS integer division. */ +# define DO_TEST 0 +#elif defined (__arc__) + /* No SIGFPE for ARC integer division. */ +# define DO_TEST 0 +#elif defined (__arm__) && defined (__ARM_EABI__) +# ifdef __ARM_ARCH_EXT_IDIV__ + /* Hardware division instructions may not trap, and handle trapping + differently anyway. Skip the test if we have those instructions. */ +# define DO_TEST 0 +# else +# include <signal.h> + /* ARM division-by-zero behaviour is to call a helper function, which + can do several different things, depending on requirements. Emulate + the behaviour of other targets here by raising SIGFPE. */ +int __attribute__((used)) +__aeabi_idiv0 (int return_value) +{ + raise (SIGFPE); + return return_value; +} +# define DO_TEST 1 +# endif +#elif defined (__nios2__) + /* Nios II requires both hardware support and user configuration to + raise an exception on divide by zero. */ +# define DO_TEST 0 #else # define DO_TEST 1 #endif |