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-2793.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-2793.c')
| -rw-r--r-- | support/regression/tests/bug-2793.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/support/regression/tests/bug-2793.c b/support/regression/tests/bug-2793.c new file mode 100644 index 0000000..c171a52 --- /dev/null +++ b/support/regression/tests/bug-2793.c @@ -0,0 +1,62 @@ +/* bug-2793.c + A parameter changed from unsigned int to unsigned long in CSE. + */ + +#include <testfwk.h> + +typedef unsigned int UINT; +typedef unsigned char BYTE; +typedef unsigned short WORD; +typedef unsigned long DWORD; + +BYTE global_buf[10]; + +static void mem_set (void* dst, int val, UINT cnt) +{ + ASSERT (dst == global_buf); + ASSERT (val == 0); + ASSERT (cnt == 1); +} + +void f_mkfs ( + void* work, + UINT len +) +{ + const UINT n_fats = 1; + + BYTE *buf; + WORD ss = 1; + DWORD szb_buf, sz_buf, sect, nsect, n; + DWORD b_fat; + DWORD sz_fat; + UINT i; + + b_fat = 1; + sz_fat = 0; + + { + buf = (BYTE*)work; + sz_buf = len / ss; + szb_buf = sz_buf * ss; + } + + { + mem_set(buf, 0, (UINT)szb_buf); + sect = b_fat; + for (i = 0; i < n_fats; i++) { + nsect = sz_fat; + do { + n = (nsect > sz_buf) ? sz_buf : nsect; + mem_set(buf, 0, ss); + sect += n; nsect -= n; + } while (nsect); + } + } +} + +void testBug(void) +{ + f_mkfs (global_buf, 1); +} + |
