Hi Xi, On Wed, Aug 14, 2013 at 1:55 PM, Xi Wang <xi.w...@gmail.com> wrote: > In C99 signed shift (1 << 31) is undefined behavior, since the result > exceeds INT_MAX. Use 1U instead and move the shift after the check. > > Cc: Jia Liu <pro...@gmail.com> > Cc: Paolo Bonzini <pbonz...@redhat.com> > Signed-off-by: Xi Wang <xi.w...@gmail.com> > --- > hw/openrisc/pic_cpu.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/openrisc/pic_cpu.c b/hw/openrisc/pic_cpu.c > index 3fcee02..2af1d60 100644 > --- a/hw/openrisc/pic_cpu.c > +++ b/hw/openrisc/pic_cpu.c > @@ -26,12 +26,14 @@ static void openrisc_pic_cpu_handler(void *opaque, int > irq, int level) > { > OpenRISCCPU *cpu = (OpenRISCCPU *)opaque; > CPUState *cs = CPU(cpu); > - uint32_t irq_bit = 1 << irq; > + uint32_t irq_bit; > > if (irq > 31 || irq < 0) { > return; > } > > + irq_bit = 1U << irq; > +
Thanks for making the code better. Acked-by: Jia Liu <pro...@gmail.com> > if (level) { > cpu->env.picsr |= irq_bit; > } else { > -- > 1.8.1.2 > Regards, Jia