Hi,

Sorry for the missing information above.  gcc -v did not supply the above 
information and for reasons unknown to me gccbug was not installed on the 
system in question.

Compiling with -O changes the results of this program.

double u_im = 0;

extern double atan(double);
extern int printf(const char *str,...);

int main(void)
{
    double y;
    double b;

    /* Becomes -0 with optimizations and 0 without. */
    b = 0 - 3*u_im;
    
    y = atan(-7/b);

    printf("b = %g\n",b);
    printf("atan(-7/b) = %g\n",y);
    
    if(y >= 0) {
        printf("Error happened!\n");
    }
    
    return (y>=0);
}

-- 
           Summary: Optimizations convert 0 to -0 leading to difference in
                    answers.
           Product: gcc
           Version: 3.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: fsmith at mathworks dot com
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21607

Reply via email to