summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/dfp/fe-convert-3.c
blob: 5938edb94e734afb42295b6c8d58b0626292a9da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* Check that appropriate exceptions are raised for int to DFP conversions.  */

#include "fe-check.h"

volatile _Decimal32 d32;
volatile _Decimal64 d64;
volatile signed int si;
volatile unsigned int ui;
volatile signed long long sll;
volatile unsigned long long ull;

CONVERT (100, si, d32, 9999999, 0)
CONVERT (101, si, d32, 11111111, FE_INEXACT)
CONVERT (102, si, d32, -9999999, 0)
CONVERT (103, si, d32, -10000001, FE_INEXACT)
CONVERT (110, ui, d32, 9999999, 0)
CONVERT (111, ui, d32, 10000001, FE_INEXACT)
CONVERT (200, sll, d64, 9999999999999999, 0)
CONVERT (201, sll, d64, 10000000000000001, FE_INEXACT)
CONVERT (202, sll, d64, -9999999999999999, 0)
CONVERT (203, sll, d64, -10000000000000001, FE_INEXACT)
CONVERT (210, ull, d64, 9999999999999999, 0)
CONVERT (211, ull, d64, 10000000000000001, FE_INEXACT)

int
main ()
{
  if (sizeof (long long) != 16)
    return 0;

  convert_100 ();
  convert_101 ();
  convert_102 ();
  convert_103 ();
  convert_110 ();
  convert_111 ();
  convert_200 ();
  convert_201 ();
  convert_202 ();
  convert_203 ();
  convert_210 ();
  convert_211 ();

  FINISH
}