blob: d48a3cf090e716fcf4eade2be455c144a236e7d5 (
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
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/*
bug-1929.c
*/
#include <testfwk.h>
#define MASK 0x0f
unsigned char reg0;
unsigned char reg1;
signed char reg2;
signed char reg3;
void tAnd (void)
{
reg0 &= ~MASK;
ASSERT (reg0 == 0xa0);
reg1 &= MASK;
ASSERT (reg1 == 0x0a);
reg2 &= ~MASK;
ASSERT ((unsigned char) reg2 == 0xa0);
reg3 &= MASK;
ASSERT (reg3 == 0x0a);
}
void tOr (void)
{
reg0 |= ~MASK;
ASSERT (reg0 == 0xfa);
reg1 |= MASK;
ASSERT (reg1 == 0xaf);
reg2 |= ~MASK;
ASSERT ((unsigned char) reg2 == 0xfa);
reg3 |= MASK;
ASSERT ((unsigned char) reg3 == 0xaf);
}
void tXor (void)
{
reg0 ^= ~MASK;
ASSERT (reg0 == 0x5a);
reg1 ^= MASK;
ASSERT (reg1 == 0xa5);
reg2 ^= ~MASK;
ASSERT (reg2 == 0x5a);
reg3 ^= MASK;
ASSERT ((unsigned char) reg3 == 0xa5);
}
void testBug (void)
{
reg0 = reg1 = reg2 = reg3 = 0xaa;
tAnd();
reg0 = reg1 = reg2 = reg3 = 0xaa;
tOr();
reg0 = reg1 = reg2 = reg3 = 0xaa;
tXor();
}
|