OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [c-c++-common/] [dfp/] [func-vararg-dfp.c] - Blame information for rev 686

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 686 jeremybenn
/* C99 6.5.2.2 Function calls.
2
   Test passing varargs of the decimal float types.  */
3
 
4
#include <stdarg.h>
5
#include "dfp-dbg.h"
6
 
7
static _Decimal32
8
vararg32 (unsigned arg, ...)
9
{
10
  int i;
11
  va_list ap;
12
  _Decimal32 result;
13
 
14
  va_start (ap, arg);
15
  for (i = 0; i <= arg; i++)
16
    result = va_arg (ap, _Decimal32);
17
  va_end (ap);
18
  return result;
19
}
20
 
21
static _Decimal64
22
vararg64 (unsigned arg, ...)
23
{
24
  int i;
25
  va_list ap;
26
  _Decimal64 result;
27
 
28
  va_start (ap, arg);
29
  for (i = 0; i <= arg; i++)
30
    result = va_arg (ap, _Decimal64);
31
  va_end (ap);
32
  return result;
33
}
34
 
35
static _Decimal128
36
vararg128 (unsigned arg, ...)
37
{
38
  int i;
39
  va_list ap;
40
  _Decimal128 result;
41
 
42
  va_start (ap, arg);
43
  for (i = 0; i <= arg; i++)
44
    result = va_arg (ap, _Decimal128);
45
  va_end (ap);
46
  return result;
47
}
48
 
49
 
50
int main()
51
{
52
  /* _Decimal32 variants.  */
53
  if (vararg32 (0, 0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 0.0df)
54
    FAILURE
55
  if (vararg32 (1, 0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 1.0df)
56
    FAILURE
57
  if (vararg32 (2, 0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 2.0df)
58
    FAILURE
59
  if (vararg32 (3, 0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 3.0df)
60
    FAILURE
61
  if (vararg32 (4, 0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 4.0df)
62
    FAILURE
63
  if (vararg32 (5, 0.0df, 1.0df, 2.0df, 3.0df, 4.0df, 5.0df) != 5.0df)
64
    FAILURE
65
 
66
  /* _Decimal64 variants.  */
67
  if (vararg64 (0, 0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 0.0dd)
68
    FAILURE
69
  if (vararg64 (1, 0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 1.0dd)
70
    FAILURE
71
  if (vararg64 (2, 0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 2.0dd)
72
    FAILURE
73
  if (vararg64 (3, 0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 3.0dd)
74
    FAILURE
75
  if (vararg64 (4, 0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 4.0dd)
76
    FAILURE
77
  if (vararg64 (5, 0.0dd, 1.0dd, 2.0dd, 3.0dd, 4.0dd, 5.0dd) != 5.0dd)
78
    FAILURE
79
 
80
  /* _Decimal128 variants.  */
81
  if (vararg128 (0, 0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 0.0dl)
82
    FAILURE
83
  if (vararg128 (1, 0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 1.0dl)
84
    FAILURE
85
  if (vararg128 (2, 0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 2.0dl)
86
    FAILURE
87
  if (vararg128 (3, 0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 3.0dl)
88
    FAILURE
89
  if (vararg128 (4, 0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 4.0dl)
90
    FAILURE
91
  if (vararg128 (5, 0.0dl, 1.0dl, 2.0dl, 3.0dl, 4.0dl, 5.0dl) != 5.0dl)
92
    FAILURE
93
 
94
  FINISH
95
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.