(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
float-range-3.c
       1  /* PR 23572 : warnings for out of range floating-point constants.  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-std=c99" } */
       4  #include <math.h>
       5  
       6  #ifndef INFINITY
       7  #define INFINITY (__builtin_inff ())
       8  #endif
       9  
      10  void overflow(void)
      11  {
      12    float f1 = 3.5E+38f;  /* { dg-warning "floating constant exceeds range" } */
      13    float f2 = -3.5E+38f; /* { dg-warning "floating constant exceeds range" } */
      14    float f3 = INFINITY;
      15    float f4 = -INFINITY;
      16  
      17    double d1 = 1.9E+308;  /* { dg-warning "floating constant exceeds range" } */
      18    double d2 = -1.9E+308; /* { dg-warning "floating constant exceeds range" } */
      19    double d3 = INFINITY;
      20    double d4 = -INFINITY;
      21  }
      22  
      23  void underflow(void)
      24  {
      25    float f11 = 3.3E-10000000000000000000f;  /* { dg-warning "floating constant truncated to zero" } */
      26    float f22 = -3.3E-10000000000000000000f; /* { dg-warning "floating constant truncated to zero" } */
      27    float f1 = 3.3E-46f;  /* { dg-warning "floating constant truncated to zero" } */
      28    float f2 = -3.3E-46f; /* { dg-warning "floating constant truncated to zero" } */
      29    float f3 = 0;
      30    float f4 = -0;
      31    float f5 = 0.0;
      32    float f6 = -0.0;
      33  
      34    double d11 = 3.3E-10000000000000000000;  /* { dg-warning "floating constant truncated to zero" } */
      35    double d22 = -3.3E-10000000000000000000; /* { dg-warning "floating constant truncated to zero" } */
      36    double d1 = 1.4E-325;  /* { dg-warning "floating constant truncated to zero" } */
      37    double d2 = -1.4E-325; /* { dg-warning "floating constant truncated to zero" } */
      38    double d3 = 0;
      39    double d4 = -0;
      40    double d5 = 0.0;
      41    double d6 = -0.0;
      42  }