Mesa (master): nv50: use larger arrays to silence warnings and fix buffer overflows
Brian Paul
brianp at kemper.freedesktop.org
Wed Feb 1 14:23:23 UTC 2012
Module: Mesa
Branch: master
Commit: 541bb2e33f89b07bcbea2e27275df858760c8ec8
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=541bb2e33f89b07bcbea2e27275df858760c8ec8
Author: Brian Paul <brianp at vmware.com>
Date: Tue Jan 31 07:01:53 2012 -0700
nv50: use larger arrays to silence warnings and fix buffer overflows
The warnings were:
nv50_pc_regalloc.c: In function ‘pass_generate_phi_movs’:
nv50_pc_regalloc.c:423:41: warning: array subscript is above array bounds
codegen/nv50_ir_peephole.cpp: In member function ‘bool nv50_ir::MemoryOpt::replaceStFromSt(nv50_ir::Instruction*, nv50_ir::MemoryOpt::Record*)’:
codegen/nv50_ir_peephole.cpp:1475:18: warning: array subscript is above array bounds
codegen/nv50_ir_peephole.cpp:1475:18: warning: array subscript is above array bounds
codegen/nv50_ir_peephole.cpp:1475:18: warning: array subscript is above array bounds
codegen/nv50_ir_peephole.cpp:1475:18: warning: array subscript is above array bounds
And add some assertions to catch this sooner in debug builds.
---
.../drivers/nv50/codegen/nv50_ir_peephole.cpp | 2 +-
src/gallium/drivers/nv50/nv50_pc.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp
index fc025d8..fb4041f 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_peephole.cpp
@@ -1463,7 +1463,7 @@ MemoryOpt::replaceStFromSt(Instruction *restrict st, Record *rec)
st->takeExtraSources(0, extra);
if (offR < offS) {
- Value *vals[4];
+ Value *vals[10];
int s, n;
int k = 0;
// get non-replaced sources of ri
diff --git a/src/gallium/drivers/nv50/nv50_pc.h b/src/gallium/drivers/nv50/nv50_pc.h
index 45804d3..9abefa2 100644
--- a/src/gallium/drivers/nv50/nv50_pc.h
+++ b/src/gallium/drivers/nv50/nv50_pc.h
@@ -234,7 +234,7 @@ struct nv_instruction {
int serial;
struct nv_value *def[4];
struct nv_value *flags_def;
- struct nv_ref *src[5];
+ struct nv_ref *src[6];
struct nv_ref *flags_src;
struct nv_basic_block *bb;
struct nv_basic_block *target; /* target block of control flow insn */
More information about the mesa-commit
mailing list