The assertion added in f09910f3 broke nv50 completely by asserting that the number of elements in a dereferenced pointer (i.e. 1) was greater than i (which ranged up to six), rather than checking the number of elements in the containing array. Signed-off-by: Daniel Stone <daniel at fooishbar.org> --- src/gallium/drivers/nv50/nv50_pc_regalloc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/gallium/drivers/nv50/nv50_pc_regalloc.c b/src/gallium/drivers/nv50/nv50_pc_regalloc.c index 72922cb..12a59cb 100644 --- a/src/gallium/drivers/nv50/nv50_pc_regalloc.c +++ b/src/gallium/drivers/nv50/nv50_pc_regalloc.c @@ -421,7 +421,7 @@ phi_opnd_for_bb(struct nv_instruction *phi, struct nv_basic_block *b, int i, j; for (j = -1, i = 0; i < 6 && phi->src[i]; ++i) { - assert(i < Elements(phi->src[i])); + assert(i < Elements(phi->src)); srci = phi->src[i]; /* if already replaced, check with original source first */ if (srci->flags & NV_REF_FLAG_REGALLOC_PRIV) -- 1.7.9
Jose Fonseca
2012-Feb-07 12:47 UTC
[Nouveau] [Mesa-dev] [PATCH] nv50: Fix broken assertion
Makes sense. Jose ----- Original Message -----> The assertion added in f09910f3 broke nv50 completely by asserting > that > the number of elements in a dereferenced pointer (i.e. 1) was greater > than i (which ranged up to six), rather than checking the number of > elements in the containing array. > > Signed-off-by: Daniel Stone <daniel at fooishbar.org> > --- > src/gallium/drivers/nv50/nv50_pc_regalloc.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/src/gallium/drivers/nv50/nv50_pc_regalloc.c > b/src/gallium/drivers/nv50/nv50_pc_regalloc.c > index 72922cb..12a59cb 100644 > --- a/src/gallium/drivers/nv50/nv50_pc_regalloc.c > +++ b/src/gallium/drivers/nv50/nv50_pc_regalloc.c > @@ -421,7 +421,7 @@ phi_opnd_for_bb(struct nv_instruction *phi, > struct nv_basic_block *b, > int i, j; > > for (j = -1, i = 0; i < 6 && phi->src[i]; ++i) { > - assert(i < Elements(phi->src[i])); > + assert(i < Elements(phi->src)); > srci = phi->src[i]; > /* if already replaced, check with original source first */ > if (srci->flags & NV_REF_FLAG_REGALLOC_PRIV) > -- > 1.7.9 > > _______________________________________________ > mesa-dev mailing list > mesa-dev at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
Christoph Bumiller
2012-Feb-07 13:03 UTC
[Nouveau] [Mesa-dev] [PATCH] nv50: Fix broken assertion
On 07.02.2012 13:47, Jose Fonseca wrote:> Makes sense.Very much so ... http://cgit.freedesktop.org/mesa/mesa/commit/?id=189e6c7e81ce35b89d9b52d4bd0d6271a7e9c10f (of 26 hours ago).> > Jose > > ----- Original Message ----- >> The assertion added in f09910f3 broke nv50 completely by asserting >> that >> the number of elements in a dereferenced pointer (i.e. 1) was greater >> than i (which ranged up to six), rather than checking the number of >> elements in the containing array. >> >> Signed-off-by: Daniel Stone <daniel at fooishbar.org> >> --- >> src/gallium/drivers/nv50/nv50_pc_regalloc.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/src/gallium/drivers/nv50/nv50_pc_regalloc.c >> b/src/gallium/drivers/nv50/nv50_pc_regalloc.c >> index 72922cb..12a59cb 100644 >> --- a/src/gallium/drivers/nv50/nv50_pc_regalloc.c >> +++ b/src/gallium/drivers/nv50/nv50_pc_regalloc.c >> @@ -421,7 +421,7 @@ phi_opnd_for_bb(struct nv_instruction *phi, >> struct nv_basic_block *b, >> int i, j; >> >> for (j = -1, i = 0; i < 6 && phi->src[i]; ++i) { >> - assert(i < Elements(phi->src[i])); >> + assert(i < Elements(phi->src)); >> srci = phi->src[i]; >> /* if already replaced, check with original source first */ >> if (srci->flags & NV_REF_FLAG_REGALLOC_PRIV) >> -- >> 1.7.9 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev at lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev >> > _______________________________________________ > mesa-dev mailing list > mesa-dev at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev