diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-24 12:31:01 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-24 12:31:01 +0000 |
commit | a927c5fa8a3ed8135a800ecb5efc4bd94043c5e5 (patch) | |
tree | 58fa5569a0a61b2ddf609acd913fff4129d1cc27 /gcc/testsuite/gcc.dg | |
parent | 6fffb47b3402e38cec568581c1ea688df67885af (diff) | |
download | gcc-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.c | 27 |
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++; + } +} |