summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-1898.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-1898.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-1898.c')
-rwxr-xr-xsupport/regression/tests/bug-1898.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/support/regression/tests/bug-1898.c b/support/regression/tests/bug-1898.c
new file mode 100755
index 0000000..22ef2c9
--- /dev/null
+++ b/support/regression/tests/bug-1898.c
@@ -0,0 +1,42 @@
+/*
+ bug-1898.c
+ */
+
+#include <testfwk.h>
+
+struct tb {
+ char c;
+ short s;
+ int i;
+} arr[] = {
+ {'a', 1200, 32000},
+ {'b', 1201, 32010},
+ {'c', 1202, 32020},
+};
+
+int *g0 = &(arr[1].i);
+int *g1 = &(arr->i);
+int *g2 = &((arr + 2)->i);
+
+void testBug(void)
+{
+ int *l0 = &(arr[1].i);
+ int *l1 = &(arr->i);
+ int *l2 = &((arr + 2)->i);
+
+ static int *s0 = &(arr[1].i);
+ static int *s1 = &(arr->i);
+ static int *s2 = &((arr + 2)->i);
+
+ ASSERT (*g0 == 32010);
+ ASSERT (*g1 == 32000);
+ ASSERT (*g2 == 32020);
+
+ ASSERT (*l0 == 32010);
+ ASSERT (*l1 == 32000);
+ ASSERT (*l2 == 32020);
+
+ ASSERT (*s0 == 32010);
+ ASSERT (*s1 == 32000);
+ ASSERT (*s2 == 32020);
+}