1*1f5207b7SJohn Levon struct ture { 2*1f5207b7SJohn Levon int x; 3*1f5207b7SJohn Levon }; 4*1f5207b7SJohn Levon 5*1f5207b7SJohn Levon struct ture *p; 6*1f5207b7SJohn Levon struct ture *q; 7*1f5207b7SJohn Levon int xxx; 8*1f5207b7SJohn Levon func(void)9*1f5207b7SJohn Levonint func (void) 10*1f5207b7SJohn Levon { 11*1f5207b7SJohn Levon 12*1f5207b7SJohn Levon for (xxx = 0; xxx < 10; xxx++) { 13*1f5207b7SJohn Levon if (p && q) 14*1f5207b7SJohn Levon break; 15*1f5207b7SJohn Levon } 16*1f5207b7SJohn Levon // this needs two pass processing to work. 17*1f5207b7SJohn Levon // if (xxx == 5) 18*1f5207b7SJohn Levon // q->x = 1; 19*1f5207b7SJohn Levon if (xxx == 10) 20*1f5207b7SJohn Levon return; 21*1f5207b7SJohn Levon p->x = 1; 22*1f5207b7SJohn Levon 23*1f5207b7SJohn Levon return 0; 24*1f5207b7SJohn Levon } 25*1f5207b7SJohn Levon 26*1f5207b7SJohn Levon /* 27*1f5207b7SJohn Levon * check-name: Implied Ranges #1 28*1f5207b7SJohn Levon * check-command: smatch sm_range1.c 29*1f5207b7SJohn Levon */ 30