summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/dfp/float-constant-double.c
blob: 52c5d7126655ae48c3650d7c4ba67b7febbee4ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* { dg-do compile } */

/* Constant float values of type double in <float.h> are suffixed with L
   and cast to double so they can be used within code that uses pragma
   FLOAT_CONST_DECIMAL64.  If they were not suffixed then use of the macro
   would have them interpreted as _Decimal64, leading to errors when used
   in expressions with other operands of type double.  */

#include <float.h>

extern double a, b, c, d;

void
foo ()
{
  _Pragma ("STDC FLOAT_CONST_DECIMAL64 ON")
  a = 0.1d * DBL_MAX;
  b = DBL_EPSILON * 10.0d;
  c = DBL_MIN * 200.0d;
}