(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
builtins-70.c
       1  /* Copyright (C) 2021 Free Software Foundation.
       2  
       3     Check that constant folding of built-in fmod functions doesn't
       4     break anything and produces the expected results.
       5  
       6  /* { dg-do link } */
       7  /* { dg-options "-O2 -ffast-math" } */
       8  
       9  extern void link_error(void);
      10  
      11  extern double fmod(double,double);
      12  extern float fmodf(float,float);
      13  extern long double fmodl(long double,long double);
      14  
      15  int main()
      16  {
      17    if (fmod (6.5, 2.3) < 1.8999 || fmod (6.5, 2.3) > 1.9001)
      18      link_error ();
      19    if (fmod (-6.5, 2.3) < -1.9001 || fmod (-6.5, 2.3) > -1.8999)
      20      link_error ();
      21    if (fmod (6.5, -2.3) < 1.8999 || fmod (6.5, -2.3) > 1.9001)
      22      link_error ();
      23    if (fmod (-6.5, -2.3) < -1.9001 || fmod (-6.5, -2.3) > -1.8999)
      24      link_error ();
      25  
      26    if (fmodf (6.5f, 2.3f) < 1.8999f || fmodf (6.5f, 2.3f) > 1.9001f)
      27      link_error ();
      28    if (fmodf (-6.5f, 2.3f) < -1.9001f || fmodf (-6.5f, 2.3f) > -1.8999f)
      29      link_error ();
      30    if (fmodf (6.5f, -2.3f) < 1.8999f || fmodf (6.5f, -2.3f) > 1.9001f)
      31      link_error ();
      32    if (fmodf (-6.5f, -2.3f) < -1.9001f || fmodf (-6.5f, -2.3f) > -1.8999f)
      33      link_error ();
      34  
      35    if (fmodl (6.5l, 2.3l) < 1.8999l || fmod (6.5l, 2.3l) > 1.9001l)
      36      link_error ();
      37    if (fmodl (-6.5l, 2.3l) < -1.9001l || fmod (-6.5l, 2.3l) > -1.8999l)
      38      link_error ();
      39    if (fmodl (6.5l, -2.3l) < 1.8999l || fmod (6.5l, -2.3l) > 1.9001l)
      40      link_error ();
      41    if (fmodl (-6.5l, -2.3l) < -1.9001l || fmod (-6.5l, -2.3l) > -1.8999l)
      42      link_error ();
      43  
      44    return 0;
      45  }
      46