www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 21581] New: -inline discards floating point precision of


          Issue ID: 21581
           Summary: -inline discards floating point precision of return
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: ibuclaw gdcproject.org

Related to issue 21376, the following test fails when compiled with `-inline`.

import core.math;

float hypot(float x, float y)
    float u = fabs(x);
    float v = fabs(y);
    return sqrt(u*u + v*v);

float abs(float re, float im)
    return hypot(re, im);

void log(real x)
    assert(x == 1);

extern(C) void main()
    float re = 0.866025403784438646787;
    float im = 0.5;
    return log(abs(re, im));

This only occurs with dmd (gdc and ldc do not have this issue).

Jan 25 2021