optimazion bug in C compiler on SS1+?
    Steven Janowsky 
    janowsky at math.rutgers.edu
       
    Tue Mar 12 06:31:40 AEST 1991
    
    
  
The following program (part of a random number generator) generates NaN
when compiled O2, O3, or O4 but works as expected if O1 or no optimiztion.
SS1+ running 4.0.3c
Any clues? (Please mail response to janowsky at hilbert.rutgers.edu)
#include <stdio.h>
main()
{
  int seed;
  double rand_a, rand_t;
  seed = 34;
  rand_a= -1.0 + 1.0 / 2147483648.0;
  rand_t=seed/2147483648.0;
  printf("%g\n",rand_t);
  rand_t *= 16807;
  rand_t += rand_a * ((int) rand_t);
  if(rand_t >= 1.0) rand_t += rand_a;
  printf("%g\n",rand_t);
}
    
    
More information about the Comp.unix.wizards
mailing list