[Mesa-dev] [PATCH] nvc0/ir: Fix assert accessing null pointer

Eric Engestrom eric at engestrom.ch
Fri Jul 19 13:39:39 UTC 2019


On Friday, 2019-07-19 13:56:30 +0200, Mark Menzynski wrote:
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=111007
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=111167

`Fixes:` is used to indicate the commit that introduced the code being
fixed, such as:
  Fixes: 1c4e6d7ca83578caf521 ("nvc0/ir: propagate immediates to CALL input MOVs")
This tag is used by our tools to backport fixes to the relevant stable
releases.

Bugzilla entries are referenced using the `Bugzilla:` prefix.

> Signed-off-by: Mark Menzynski <mmenzyns at redhat.com>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> index aca3b0afb1e..1f702a987d8 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> @@ -51,12 +51,12 @@ NVC0LegalizeSSA::handleDIV(Instruction *i)
>     // Generate movs to the input regs for the call we want to generate
>     for (int s = 0; i->srcExists(s); ++s) {
>        Instruction *ld = i->getSrc(s)->getInsn();
> -      assert(ld->getSrc(0) != NULL);

I'll admit I don't know anything about this code, but it looks like
this might be a better fix?
   assert(ld == NULL || ld->getSrc(0) != NULL)

I cc'ed Tobias who wrote this code as he'll probably know best.

>        // check if we are moving an immediate, propagate it in that case
>        if (!ld || ld->fixed || (ld->op != OP_LOAD && ld->op != OP_MOV) ||
>              !(ld->src(0).getFile() == FILE_IMMEDIATE))
>           bld.mkMovToReg(s, i->getSrc(s));
>        else {
> +         assert(ld->getSrc(0) != NULL);
>           bld.mkMovToReg(s, ld->getSrc(0));
>           // Clear the src, to make code elimination possible here before we
>           // delete the instruction i later
> -- 
> 2.21.0
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list