From 1f29f4db1e867357a119c0c7c34fb54dc27fb682 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 12 Nov 2018 16:02:23 -0600 Subject: [PATCH] nir/builder: Assert that intN_t immediates fit MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This assert won't catch all mistakes with this helper but it will at least ensure that the top bits are all zero or all one which should help catch bugs. Reviewed-by: Samuel Iglesias Gonsálvez --- src/compiler/nir/nir_builder.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index 3271a48..3be630a 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -330,6 +330,10 @@ nir_imm_intN_t(nir_builder *build, uint64_t x, unsigned bit_size) { nir_const_value v; + assert(bit_size == 64 || + (int64_t)x >> bit_size == 0 || + (int64_t)x >> bit_size == -1); + memset(&v, 0, sizeof(v)); assert(bit_size <= 64); v.i64[0] = x & (~0ull >> (64 - bit_size)); -- 2.7.4