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/bug608752.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/bug608752.c')
| -rw-r--r-- | support/regression/tests/bug608752.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/support/regression/tests/bug608752.c b/support/regression/tests/bug608752.c new file mode 100644 index 0000000..12dfbbb --- /dev/null +++ b/support/regression/tests/bug608752.c @@ -0,0 +1,45 @@ +/* OpAssign tests + */ +#include <testfwk.h> + +#ifdef __SDCC +#include <sdcc-lib.h> +#else +#define _STATMEM +#endif + +typedef struct +{ + char a; + char n; +} item_type; + +item_type t; + + +_STATMEM item_type* get_next_item(void) +{ + /* have a side effect */ + t.n++; + + /* keep things easy, not implementing a list. + Using a true list would break things + even more pointedly: + a) reading beyond end of the list and + b) intermixing list members */ + return &t; +} + + +void +testOpAssign(void) +{ + t.a = 0; + t.n = 0; + + /* get_next_item() should be called only once */ + get_next_item()->a |= 42; + + ASSERT (t.a == 42); + ASSERT (t.n == 1); +} |
