re PR fortran/9793 (Internal compiler error in `float_signal', at toplev.c:2442)
PR fortran/9793 * target.h (ffetarget_divide_integer1): Perform division by -1 using negation to prevent possible overflow trap on the host. * g77.f-torture/compile/20030326.f: New test case. From-SVN: r64909
This commit is contained in:
parent
db8627a1ec
commit
a24278e2fa
4 changed files with 26 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2003-03-26 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
PR fortran/9793
|
||||
* target.h (ffetarget_divide_integer1): Perform division by -1
|
||||
using negation to prevent possible overflow trap on the host.
|
||||
|
||||
2003-03-25 Marcelo Abreu <mmabreu@inf.ufrgs.br>
|
||||
|
||||
PR fortran/10204
|
||||
|
|
|
@ -1154,7 +1154,8 @@ void *ffetarget_memcpy_ (void *dst, void *src, size_t len);
|
|||
FFEBAD; })
|
||||
#define ffetarget_divide_integer1(res,l,r) \
|
||||
(((r) == 0) ? (*(res) = 0, FFEBAD_DIV_BY_ZERO) \
|
||||
: (*(res) = (l) / (r), FFEBAD))
|
||||
: (((r) == -1) ? (*(res) = -(l), FFEBAD) \
|
||||
: (*(res) = (l) / (r), FFEBAD)))
|
||||
#define ffetarget_divide_integer2(res,l,r) \
|
||||
ffetarget_divide_integer1(res,l,r)
|
||||
#define ffetarget_divide_integer3(res,l,r) \
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2003-03-26 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* g77.f-torture/compile/20030326-1.f: New test case.
|
||||
|
||||
2003-03-26 Janis Johnson <janis187@us.ibm.com>
|
||||
|
||||
* gcc.c-torture/execute/20020227-1.x: Don't XFAIL for powerpc64.
|
||||
|
|
14
gcc/testsuite/g77.f-torture/compile/20030326-1.f
Normal file
14
gcc/testsuite/g77.f-torture/compile/20030326-1.f
Normal file
|
@ -0,0 +1,14 @@
|
|||
C PR fortran/9793
|
||||
C larson@w6yx.stanford.edu
|
||||
C
|
||||
integer a, b, c
|
||||
|
||||
c = -2147483648 / -1
|
||||
|
||||
a = 1
|
||||
b = 0
|
||||
c = a / b
|
||||
|
||||
print *, c
|
||||
|
||||
end
|
Loading…
Add table
Reference in a new issue