https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97653

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---


int printf(const char*, ...);

const unsigned long k = 256;

int main()
{
  long double r[] = { 0.1L, 0.2L, 0.5L, 0.9L };
  for (int i = 0; i < 4; ++i)
  {
    unsigned long j = k * r[i];
    printf("%lu * %Lf = %lu\n", k, r[i], j);
  }
}

$ ~/gcc/ieee128/bin/gcc k.c -mno-gnu-attribute -mabi=ibmlongdouble  -Wall &&
./a.out
256 * 0.100000 = 256
256 * 0.200000 = 256
256 * 0.500000 = 256
256 * 0.900000 = 256

Reply via email to