[Mesa-dev] [PATCH 1/6] nv50/codegen: do not emitATOM() if the subOp is unknown

Emil Velikov emil.l.velikov at gmail.com
Thu Apr 11 16:22:30 PDT 2013


For debug build we'll hit the assert, for release we are going to emit random data
as subOp is used uninitilised. Spotted by gcc

codegen/nv50_ir_emit_nv50.cpp: In member function 'void nv50_ir::CodeEmitterNV50::emitATOM(const nv50_ir::Instruction*)':
codegen/nv50_ir_emit_nv50.cpp:1554:12: warning: 'subOp' may be used uninitialized in this function [-Wmaybe-uninitialized]
    uint8_t subOp;
            ^

Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp
index 2638ef1..bc5a833 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp
@@ -1565,7 +1565,7 @@ CodeEmitterNV50::emitATOM(const Instruction *i)
    case NV50_IR_SUBOP_ATOM_EXCH: subOp = 0x1; break;
    default:
       assert(!"invalid subop");
-      break;
+      return;
    }
    code[0] = 0xd0000001;
    code[1] = 0xe0c00000 | (subOp << 2);
-- 
1.8.2.1



More information about the mesa-dev mailing list