On Mon, 16 Mar 2020 at 13:15, Yifei Jiang <jiangyi...@huawei.com> wrote: > > This fixes coverity issues 75234842, etc.,:
Where does this issue number come from, by the way? It's not from the online Coverity Scan we use which is the issue ID we usually cite for coverity stuff. > 2221 tcg_gen_andi_i64(t, t, dup_const(vece, 1)); > CID 75234842: (OVERFLOW_BEFORE_WIDEN) > 2222. overflow_before_widen: Potentially overflowing expression "1 << > nbit" with type "int" (32 bits, signed) is evaluated using 32-bit arithmetic, > and then used in a context that expects an expression of type "int64_t" (64 > bits, signed). > 2222 tcg_gen_muli_i64(t, t, (1 << nbit) - 1); Again, you need to apply a more critical eye to the Coverity suggestions. For instance: > diff --git a/tcg/tcg-op-gvec.c b/tcg/tcg-op-gvec.c > index 327d9588e0..3aeb049a46 100644 > --- a/tcg/tcg-op-gvec.c > +++ b/tcg/tcg-op-gvec.c > @@ -2219,7 +2219,7 @@ static void gen_absv_mask(TCGv_i64 d, TCGv_i64 b, > unsigned vece) > /* Create -1 for each negative element. */ > tcg_gen_shri_i64(t, b, nbit - 1); > tcg_gen_andi_i64(t, t, dup_const(vece, 1)); > - tcg_gen_muli_i64(t, t, (1 << nbit) - 1); > + tcg_gen_muli_i64(t, t, ((int64_t)1 << nbit) - 1); In this function nbit can only be 8 or 16, so this shift can never overflow. I haven't checked whether any of the others are valid. thanks -- PMM