aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50838.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50838.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50838.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50838.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50838.c
new file mode 100644
index 000000000..a3911c975
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50838.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+
+typedef void * gcv_object_t;
+typedef gcv_object_t object;
+typedef const void * Pseudofun;
+extern struct pseudocode_tab_ {
+ Pseudofun pseudo_eql;
+ Pseudofun pseudo_iconv_wcslen;
+ Pseudofun pseudo_iconv_wcstombs;
+ Pseudofun pseudo_iconv_range;
+}
+pseudocode_tab;
+extern struct symbol_tab_ {
+ object pointer[1024];
+} pseudofun_tab;
+int
+init_memory (void)
+{
+ object* ptr2 = &pseudofun_tab.pointer[0];
+ const Pseudofun* ptr1 = (const Pseudofun*)&pseudocode_tab;
+ unsigned int count = (sizeof(pseudocode_tab)/sizeof(Pseudofun));
+ while (count--)
+ {
+ *ptr2++ = (gcv_object_t)(((unsigned char *)((*ptr1))));
+ ptr1++;
+ }
+}