[Mesa-dev] [PATCH] util/tgsi: add static assertion to catch opcode overflowing bitfield

Brian Paul brianp at vmware.com
Tue Nov 7 16:09:36 UTC 2017


I've noticed at least two places where we store the TGSI opcode in
an unsigned:8 bitfield.  We're at 249 opcodes now.  If we hit 256 we'll
need to grow those bitfields.  Add a static assertion to detect that.
---
 src/gallium/auxiliary/tgsi/tgsi_info.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c b/src/gallium/auxiliary/tgsi/tgsi_info.c
index 4e39950..ff4b150 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_info.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_info.c
@@ -55,6 +55,11 @@ tgsi_get_opcode_info( uint opcode )
 {
    static boolean firsttime = 1;
 
+   /* If this assertion fails, increase tgsi_opcode_info::opcode
+    * and glsl_to_tgsi_instruction::op field sizes (and other locations?)
+    */
+   STATIC_ASSERT(TGSI_OPCODE_LAST <= 255);
+
    if (firsttime) {
       unsigned i;
       firsttime = 0;
-- 
1.9.1



More information about the mesa-dev mailing list