diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/regression/tests/bug3559997.c | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'support/regression/tests/bug3559997.c')
| -rw-r--r-- | support/regression/tests/bug3559997.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/support/regression/tests/bug3559997.c b/support/regression/tests/bug3559997.c new file mode 100644 index 0000000..5635171 --- /dev/null +++ b/support/regression/tests/bug3559997.c @@ -0,0 +1,63 @@ +/* + bug3559997.c +*/ + +#include <testfwk.h> + +#pragma disable_warning 85 + +typedef struct +{ + long i_size; +} s1_t; + +typedef struct { + s1_t s; +} i_t, *ip_t; + +typedef struct +{ + char *m3; + long m4; +} data_t; + +data_t data; + +void f1(char *a, char *p, int b) +{ +} + +char *f2(int a, int b, char c) +{ + return(0); +} + +int f3(char *p, int c) +{ + return(1); +} + +void rx(ip_t i) +{ + char *bp = 0; + int dev = 0; + + + bp = f2(dev, 0, 1); + f1(data.m3, bp, 1); + if (f3(bp, 2) < 0) + return; + if (data.m4 > i->s.i_size) + i->s.i_size = data.m4; + +} + +void testBug(void) +{ + i_t i; + data.m4 = 0xaa55; + i.s.i_size = 0x55aa; + rx(&i); + ASSERT(i.s.i_size == 0xaa55); +} + |
