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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [compat/] [struct-return-19_y.c] - Blame information for rev 689

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
#include <stdarg.h>
2
 
3
#include "compat-common.h"
4
 
5
#include "mixed-struct-defs.h"
6
#include "mixed-struct-init.h"
7
 
8
#define T(TYPE)                                                 \
9
extern TYPE g01##TYPE, g02##TYPE, g03##TYPE, g04##TYPE;         \
10
extern TYPE g05##TYPE, g06##TYPE, g07##TYPE, g08##TYPE;         \
11
extern TYPE g09##TYPE, g10##TYPE, g11##TYPE, g12##TYPE;         \
12
extern TYPE g13##TYPE, g14##TYPE, g15##TYPE, g16##TYPE;         \
13
                                                                \
14
extern void check##TYPE (TYPE x, int i);                        \
15
                                                                \
16
void                                                            \
17
checkg##TYPE (void)                                             \
18
{                                                               \
19
  check##TYPE (g01##TYPE,  1);                                  \
20
  check##TYPE (g02##TYPE,  2);                                  \
21
  check##TYPE (g03##TYPE,  3);                                  \
22
  check##TYPE (g04##TYPE,  4);                                  \
23
  check##TYPE (g05##TYPE,  5);                                  \
24
  check##TYPE (g06##TYPE,  6);                                  \
25
  check##TYPE (g07##TYPE,  7);                                  \
26
  check##TYPE (g08##TYPE,  8);                                  \
27
  check##TYPE (g09##TYPE,  9);                                  \
28
  check##TYPE (g10##TYPE, 10);                                  \
29
  check##TYPE (g11##TYPE, 11);                                  \
30
  check##TYPE (g12##TYPE, 12);                                  \
31
  check##TYPE (g13##TYPE, 13);                                  \
32
  check##TYPE (g14##TYPE, 14);                                  \
33
  check##TYPE (g15##TYPE, 15);                                  \
34
  check##TYPE (g16##TYPE, 16);                                  \
35
}                                                               \
36
                                                                \
37
TYPE                                                            \
38
test0##TYPE (void)                                              \
39
{                                                               \
40
  return g01##TYPE;                                             \
41
}                                                               \
42
                                                                \
43
TYPE                                                            \
44
test1##TYPE (TYPE x01)                                          \
45
{                                                               \
46
  return x01;                                                   \
47
}                                                               \
48
                                                                \
49
TYPE                                                            \
50
testva##TYPE (int n, ...)                                       \
51
{                                                               \
52
  int i;                                                        \
53
  TYPE rslt;                                                    \
54
  va_list ap;                                                   \
55
  va_start (ap, n);                                             \
56
  for (i = 0; i < n; i++)                                        \
57
      rslt = va_arg (ap, TYPE);                                 \
58
  va_end (ap);                                                  \
59
  return rslt;                                                  \
60
}
61
 
62
T(Scdc)
63
T(Sd)
64
T(Sdi)
65
T(Scsdsc)
66
T(Scsdis)
67
T(Scsdisc)
68
T(Ssds)
69
T(Ssdsc)
70
T(Scssdssc)

powered by: WebSVN 2.1.0

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