summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-24 12:31:01 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-24 12:31:01 +0000
commita927c5fa8a3ed8135a800ecb5efc4bd94043c5e5 (patch)
tree58fa5569a0a61b2ddf609acd913fff4129d1cc27 /gcc/testsuite/gcc.dg
parent6fffb47b3402e38cec568581c1ea688df67885af (diff)
downloadgcc-a927c5fa8a3ed8135a800ecb5efc4bd94043c5e5.tar.gz
2011-10-24 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50838 * tree-data-ref.c (dr_analyze_indices): Properly canonicalize a MEM_REF base if we change it. * gcc.dg/torture/pr50838.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180381 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr50838.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr50838.c b/gcc/testsuite/gcc.dg/torture/pr50838.c
new file mode 100644
index 00000000000..a3911c9752a
--- /dev/null
+++ b/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++;
+ }
+}