11541Srgrimes/* PR rtl-optimization/27616 */ 21541Srgrimes/* Reported by Lee Ji Hwan <moonz@kaist.ac.kr> */ 31541Srgrimes/* Testcase by Andrew Pinski <pinskia@gcc.gnu.org> */ 41541Srgrimes 51541Srgrimesstruct chunk_s 61541Srgrimes{ 71541Srgrimes unsigned int size; 81541Srgrimes int offset_next; 91541Srgrimes}; 101541Srgrimes 111541Srgrimestypedef struct chunk_s chunk_t; 121541Srgrimes 131541Srgrimesvoid foo(chunk_t *first) 141541Srgrimes{ 151541Srgrimes chunk_t *cur; 161541Srgrimes char *first0; 171541Srgrimes 181541Srgrimes do { 191541Srgrimes first0 = (char *) first; 201541Srgrimes cur = (chunk_t *) (first0 + first->offset_next); 211541Srgrimes if ((chunk_t *) (first0 + cur->offset_next) != first) 221541Srgrimes return ; 231541Srgrimes 241541Srgrimes first->offset_next = 0; 251541Srgrimes 261541Srgrimes } while (cur->size != 0); 271541Srgrimes} 281541Srgrimes