projects
/
fw
/
sdcc
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Use 'ao-dbg' instead of 's51' to communicate with TeleMetrum
[fw/sdcc]
/
support
/
regression
/
tests
/
bug1536762.c
1
/*
2
bug1536762.c
3
*/
4
5
#include <testfwk.h>
6
#include <string.h>
7
#include <stdint.h>
8
9
xdata uint8_t c = 1;
10
11
struct d {
12
xdata struct d *n;
13
uint8_t f;
14
uint8_t s;
15
xdata uint8_t *buffer;
16
uint16_t length;
17
};
18
19
20
xdata struct d xd = {&xd, 1, 0xab, &c, 3};
21
22
23
struct {
24
xdata struct d *c;
25
int16_t count;
26
xdata uint8_t *bptr;
27
} s = {&xd, -1, &c};
28
29
30
void blurb(void)
31
{
32
if (s.count < 0) {
33
s.c->s = 0xef;
34
s.count = s.c->length - 1;
35
s.bptr = s.c->buffer;
36
}
37
*s.bptr = 0;
38
s.bptr++;
39
s.count--;
40
}
41
42
43
void
44
testBug(void)
45
{
46
ASSERT(xd.s == 0xab);
47
ASSERT(s.c->s == 0xab);
48
49
s.c->s = 0xcd;
50
51
ASSERT(xd.s == 0xcd);
52
ASSERT(s.c->s == 0xcd);
53
54
blurb();
55
56
ASSERT(xd.s == 0xef);
57
ASSERT(s.c->s == 0xef);
58
ASSERT(c == 0);
59
}
60