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/bug-2031.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/bug-2031.c')
| -rw-r--r-- | support/regression/tests/bug-2031.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/support/regression/tests/bug-2031.c b/support/regression/tests/bug-2031.c new file mode 100644 index 0000000..cfac19c --- /dev/null +++ b/support/regression/tests/bug-2031.c @@ -0,0 +1,57 @@ +/* + bug-2031.c + */ + +#include <testfwk.h> + +struct bugtest { + unsigned int i; + unsigned char c; + unsigned long l; +}; + +unsigned long gv; +unsigned long *gp = &gv; +#ifdef __SDCC +unsigned int gi = (unsigned int) &gv; +unsigned long gl = (unsigned long) &gv; +unsigned char gc = (unsigned char) &gv; + +struct bugtest gs = { + (unsigned int) &gv, + (unsigned char) &gv, + (unsigned long) &gv, +}; +#endif // __SDCC + +void testBug(void) +{ +#ifdef __SDCC + unsigned long lv; + unsigned long *lp = &lv; + unsigned char lc = (unsigned char) &lv; + unsigned int li = (unsigned int) &lv; + unsigned long ll = (unsigned long) &lv; +#ifndef __SDCC_pdk14 // Not enough RAM + struct bugtest ls = {(unsigned int) &lv, (unsigned char) &lv, (unsigned long) &lv}; +#endif + + ASSERT (gc == (unsigned char) gp); + ASSERT (gi == (unsigned int) gp); + ASSERT (gl == (unsigned long) gp); + + ASSERT (gs.i == (unsigned int) gp); + ASSERT (gs.c == (unsigned char) gp); + ASSERT (gs.l == (unsigned long) gp); + + ASSERT (lc == (unsigned char) lp); + ASSERT (li == (unsigned int) lp); + ASSERT (ll == (unsigned long) lp); + +#ifndef __SDCC_pdk14 // Not enough RAM + ASSERT (ls.i == (unsigned int) lp); + ASSERT (ls.c == (unsigned char) lp); + ASSERT (ls.l == (unsigned long) lp); +#endif +#endif // __SDCC +} |
