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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [compat/] [struct-align-1_x.c] - Blame information for rev 689

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* { dg-options "-Wno-psabi" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
2
 
3
#include "compat-common.h"
4
#include "struct-align-1.h"
5
 
6
#define SETUP(NAME,V1,V2,V3)                            \
7
char v1_##NAME = V1;                                    \
8
double v2_##NAME = V2;                                  \
9
int v3_##NAME = V3;                                     \
10
                                                        \
11
struct B1_##NAME b1_##NAME = { V1, V2 };                \
12
struct B2_##NAME b2_##NAME = { V1, { V2 } };            \
13
struct B3_##NAME b3_##NAME = { V1, { V2, V3 } };        \
14
                                                        \
15
struct B1_##NAME ab1_##NAME[2] =                        \
16
  { { V1, V2 }, { V1, V2 } };                           \
17
struct B2_##NAME ab2_##NAME[2] =                        \
18
  { { V1, { V2 } }, { V1, { V2 } } };                   \
19
struct B3_##NAME ab3_##NAME[2] =                        \
20
  { { V1, { V2, V3 } }, { V1, { V2, V3 } } };           \
21
                                                        \
22
extern void test_##NAME (void);                         \
23
extern void checkp1_##NAME (struct B1_##NAME *);        \
24
extern void checkp2_##NAME (struct B2_##NAME *);        \
25
extern void checkp3_##NAME (struct B3_##NAME *);        \
26
extern void checkg1_##NAME (void);                      \
27
extern void checkg2_##NAME (void);                      \
28
extern void checkg3_##NAME (void);                      \
29
                                                        \
30
void                                                    \
31
pass1_##NAME (struct B1_##NAME s)                       \
32
{                                                       \
33
  checkp1_##NAME (&s);                                  \
34
}                                                       \
35
                                                        \
36
void                                                    \
37
pass2_##NAME (struct B2_##NAME s)                       \
38
{                                                       \
39
  checkp2_##NAME (&s);                                  \
40
}                                                       \
41
                                                        \
42
void                                                    \
43
pass3_##NAME (struct B3_##NAME s)                       \
44
{                                                       \
45
  checkp3_##NAME (&s);                                  \
46
}                                                       \
47
                                                        \
48
struct B1_##NAME                                        \
49
return1_##NAME (void)                                   \
50
{                                                       \
51
  return ab1_##NAME[0];                                 \
52
}                                                       \
53
                                                        \
54
struct B2_##NAME                                        \
55
return2_##NAME (void)                                   \
56
{                                                       \
57
  return ab2_##NAME[0];                                 \
58
}                                                       \
59
                                                        \
60
struct B3_##NAME                                        \
61
return3_##NAME (void)                                   \
62
{                                                       \
63
  return ab3_##NAME[0];                                 \
64
}
65
 
66
#define CHECK(NAME) test_##NAME()
67
 
68
#if __INT_MAX__ > 32767
69
SETUP (orig, 49, 1.0, 111111)
70
#else
71
SETUP (orig, 49, 1.0, 1111)
72
#endif
73
#ifndef SKIP_ATTRIBUTE
74
#if __INT_MAX__ > 32767
75
SETUP (p_all, 50, 2.0, 222222)
76
SETUP (p_inner, 51, 3.0, 333333)
77
SETUP (p_outer, 52, 4.0, 444444)
78
SETUP (a_max, 53, 5.0, 555555)
79
SETUP (m_outer_p_inner, 54, 6.0, 666666)
80
SETUP (m_inner_p_outer, 55, 7.0, 777777)
81
#else
82
SETUP (p_all, 50, 2.0, 2222)
83
SETUP (p_inner, 51, 3.0, 3333)
84
SETUP (p_outer, 52, 4.0, 4444)
85
SETUP (a_max, 53, 5.0, 5555)
86
SETUP (m_outer_p_inner, 54, 6.0, 6666)
87
SETUP (m_inner_p_outer, 55, 7.0, 7777)
88
#endif
89
#endif
90
 
91
void
92
struct_align_1_x (void)
93
{
94
  DEBUG_INIT
95
 
96
  CHECK (orig);
97
#ifndef SKIP_ATTRIBUTE
98
  CHECK (p_all);
99
  CHECK (p_inner);
100
  CHECK (p_outer);
101
  CHECK (a_max);
102
  CHECK (m_outer_p_inner);
103
  CHECK (m_inner_p_outer);
104
#endif
105
 
106
  DEBUG_FINI
107
 
108
  if (fails != 0)
109
    abort ();
110
}

powered by: WebSVN 2.1.0

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