LGTM

On Sat, Sep 5, 2026 at 1:09 PM Brian Cain <[email protected]>
wrote:

> Cast operands to uint32_t before left-shifting in build_mreg() to
> avoid undefined behavior when the shift result overflows int32_t.
> Found with UBSan.
>
> Signed-off-by: Brian Cain <[email protected]>
> ---
>  tests/tcg/hexagon/circ.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tests/tcg/hexagon/circ.c b/tests/tcg/hexagon/circ.c
> index ab949ebef1c..2a15c324242 100644
> --- a/tests/tcg/hexagon/circ.c
> +++ b/tests/tcg/hexagon/circ.c
> @@ -97,9 +97,9 @@ INIT(dbuf, NDOBLS)
>   */
>  static int32_t build_mreg(int32_t inc, int32_t K, int32_t len)
>  {
> -    return ((inc & 0x780) << 21) |
> -           ((K & 0xf) << 24) |
> -           ((inc & 0x7f) << 17) |
> +    return ((uint32_t)(inc & 0x780) << 21) |
> +           ((uint32_t)(K & 0xf) << 24) |
> +           ((uint32_t)(inc & 0x7f) << 17) |
>             (len & 0x1ffff);
>  }
>
> --
> 2.34.1
>
>

Reply via email to