diff options
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.c | 27 |
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++; + } +} |