summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/compat/sdata-1_x.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/compat/sdata-1_x.c')
-rw-r--r--gcc/testsuite/gcc.dg/compat/sdata-1_x.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/compat/sdata-1_x.c b/gcc/testsuite/gcc.dg/compat/sdata-1_x.c
new file mode 100644
index 000000000..fc7b8cef3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/compat/sdata-1_x.c
@@ -0,0 +1,25 @@
+#include "sdata-section.h"
+
+struct s { int x; int y[4]; };
+extern struct s small_struct SDATA_SECTION;
+
+/* Test "load address" operations. */
+int *xaddr (void) { return &small_struct.x; }
+int *yaddr (int i) { return &small_struct.y[i]; }
+
+void sdata_1_x (void)
+{
+ int i;
+
+ /* Test direct accesses. */
+ small_struct.x = 5;
+ for (i = 0; i < 4; i++)
+ small_struct.y[i] = i + 42;
+
+ if (*xaddr () != 5)
+ abort ();
+
+ for (i = 0; i < 4; i++)
+ if (*yaddr (i) != i + 42)
+ abort ();
+}