blob: a2cbf024c9c00a446bdd3e0e1ba6bdfac1d9c0d8 (
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
46
47
48
49
50
51
52
53
54
55
56
57
|
/* PR target/30665: bug in cris.md peephole2 condition.
Original reduced testcase (fails on 3.2.1 derivate, not on trunk). */
/* { dg-do run } */
extern void abort (void);
extern void exit (int);
struct t
{
unsigned int a : 12;
unsigned int b : 12;
unsigned int dummy1 : 8;
};
struct area
{
int xa;
int xb;
};
struct c
{
struct area ii;
};
static struct c c;
void __attribute__ ((__noinline__)) g(int a)
{
if (a != 79)
abort ();
}
void __attribute__ ((__noinline__)) h(struct t tt)
{
if (tt.a != 20 || tt.b != 79)
abort ();
}
void __attribute__ ((__noinline__)) s(void);
int main(int argc, char **argv)
{
c.ii.xa = 20;
c.ii.xb = 79;
s();
exit (0);
}
void __attribute__ ((__noinline__)) s(void)
{
struct t ii_x = { .a = c.ii.xa, .b = c.ii.xb };
g(c.ii.xb);
h(ii_x);
}
|