OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
2012-04-13 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git]
/
gcc
/
testsuite
/
gcc.dg
/
torture
/
pr48702.c
1
/* { dg-do run } */
2
3
extern void abort (void);
4
5
#define LEN 4
6
7
static inline void unpack(int array[LEN])
8
{
9
int ii, val;
10
val = 1;
11
for (ii = 0; ii < LEN; ii++) {
12
array[ii] = val % 2;
13
val = val / 2;
14
}
15
}
16
17
static inline int pack(int array[LEN])
18
{
19
int ans, ii;
20
ans = 0;
21
for (ii = LEN-1; ii >= 0; ii--) {
22
ans = 2 * ans + array[ii];
23
}
24
return ans;
25
}
26
27
int __attribute__((noinline))
28
foo()
29
{
30
int temp, ans;
31
int array[LEN];
32
unpack(array);
33
temp = array[0];
34
array[0] = array[2];
35
array[2] = temp;
36
ans = pack(array);
37
return ans;
38
}
39
40
int main(void)
41
{
42
int val;
43
val = foo();
44
if (val != 4)
45
abort ();
46
return 0;
47
}