hw/slavio_intctl.c: fix gcc warning about array bounds overrun
The Ubuntu 10.10 gcc for ARM complains that we might be overrunning the cpu_irqs[][] array: silence this by correcting the bounds on the loop. (In fact we would not have overrun the array because bit MAX_PILS in pil_pending and irl_out will always be 0.) Also add a comment about why the loop's lower bound is OK. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
		
							parent
							
								
									60f356e86d
								
							
						
					
					
						commit
						c84a88d8cb
					
				| @ -289,7 +289,12 @@ static void slavio_check_interrupts(SLAVIO_INTCTLState *s, int set_irqs) | ||||
|         pil_pending |= (s->slaves[i].intreg_pending & CPU_SOFTIRQ_MASK) >> 16; | ||||
| 
 | ||||
|         if (set_irqs) { | ||||
|             for (j = MAX_PILS; j > 0; j--) { | ||||
|             /* Since there is not really an interrupt 0 (and pil_pending
 | ||||
|              * and irl_out bit zero are thus always zero) there is no need | ||||
|              * to do anything with cpu_irqs[i][0] and it is OK not to do | ||||
|              * the j=0 iteration of this loop. | ||||
|              */ | ||||
|             for (j = MAX_PILS-1; j > 0; j--) { | ||||
|                 if (pil_pending & (1 << j)) { | ||||
|                     if (!(s->slaves[i].irl_out & (1 << j))) { | ||||
|                         qemu_irq_raise(s->cpu_irqs[i][j]); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Maydell
						Peter Maydell