blob: 2b474f544f26f6e71ec15d85d6006b24e5c33078 [file] [log] [blame]
/* PR target/58578 */
/* { dg-do run } */
/* { dg-options "-O1" } */
#include <stdlib.h>
typedef struct {
long _prec;
int _flag;
long _exp;
} __my_st_t;
typedef __my_st_t *__my_st_ptr;
int
_test_fn (__my_st_ptr y, const __my_st_ptr xt)
{
int inexact;
if (xt->_exp != -2147483647L)
{
(y->_flag = xt->_flag);
}
do {
__my_st_ptr _y = y;
long _err1 = -2 * xt->_exp;
long _err2 = 2;
if (0 < _err1)
{
unsigned long _err = (unsigned long) _err1 + _err2;
if (__builtin_expect(!!(_err > _y->_prec + 1), 0))
return 2;
return 3;
}
} while (0);
return 0;
}
int main ()
{
__my_st_t x, y;
long pz;
int inex;
x._prec = 914;
y._exp = 18;
if (_test_fn (&x, &y))
{
abort();
}
return 0;
}