blob: 85dea3977ab595d19e0d305547443d479acf71b3 (
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
71
72
73
74
|
/*
bug-2195.c
A z80 parameter passing bug.
*/
#include <testfwk.h>
typedef unsigned char u8;
typedef struct WindowPositionStruct
{
u8 mX;
u8 mY;
} WindowPosition;
typedef struct WindowSizeStruct
{
u8 mW;
u8 mH;
} WindowSize;
typedef struct WindowPositionAndSizeStruct
{
WindowPosition mPosition;
WindowSize mSize;
} WindowPositionAndSize;
typedef struct WindowRenderStyleStruct
{
u8 mStateColor[4];
} WindowRenderStyle;
typedef struct WindowStruct
{
WindowPositionAndSize mPositionAndSize;
WindowRenderStyle* mpStyle;
} Window;
void BG_FillRect( u8 x, u8 y, u8 w, u8 h, u8 f)
{
ASSERT(x == 1);
ASSERT(y == 2);
ASSERT(w == 3);
ASSERT(h == 4);
ASSERT(f == 0);
}
static Window gWindow;
static WindowRenderStyle gWindowRenderStyle;
void testBug(void)
{
u8 state = 0;
gWindow.mpStyle = &gWindowRenderStyle;
gWindow.mPositionAndSize.mPosition.mX = 1;
gWindow.mPositionAndSize.mPosition.mY = 2;
gWindow.mPositionAndSize.mSize.mW = 3;
gWindow.mPositionAndSize.mSize.mH = 4;
{
Window* pWindow = &gWindow;
BG_FillRect(
pWindow->mPositionAndSize.mPosition.mX,
pWindow->mPositionAndSize.mPosition.mY,
pWindow->mPositionAndSize.mSize.mW,
pWindow->mPositionAndSize.mSize.mH,
pWindow->mpStyle->mStateColor[state]
);
}
}
|