summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-2181.c
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
committerXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
commit268a53de823a6750d6256ee1fb1e7707b4b45740 (patch)
tree42c1799a9a82b2f7d9790ee9fe181d72a7274751 /support/regression/tests/bug-2181.c
downloadsdcc-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-2181.c')
-rw-r--r--support/regression/tests/bug-2181.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/support/regression/tests/bug-2181.c b/support/regression/tests/bug-2181.c
new file mode 100644
index 0000000..db27839
--- /dev/null
+++ b/support/regression/tests/bug-2181.c
@@ -0,0 +1,37 @@
+/*
+ bug 2181
+*/
+
+#include <testfwk.h>
+
+#include <string.h>
+
+#if !defined( __SDCC_mcs51) && !defined( __SDCC_pdk15)
+#define SROWLENGTH 36
+#else
+#define SROWLENGTH 6
+#endif
+
+#ifndef __SDCC_pdk14 // Not enough memory
+unsigned char a[2][4][SROWLENGTH];
+
+void f(void)
+{
+ unsigned char i;
+
+ for(i = 0; i < 4; i++)
+ memset(a[0][i], 144 + i * 32, SROWLENGTH);
+}
+#endif
+
+void testBug(void)
+{
+#ifndef __SDCC_pdk14 // Not enough memory
+ f();
+ ASSERT (a[0][0][0] == 144 + 0 * 32);
+ ASSERT (a[0][0][SROWLENGTH - 1] == 144 + 0 * 32);
+ ASSERT (a[0][3][0] == 144 + 3 * 32);
+ ASSERT (a[0][3][SROWLENGTH - 1] == 144 + 3 * 32);
+#endif
+}
+