<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 13, 2015 at 5:48 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
When I run clang --analyze on PETSc on getting warnings of the type below, any idea how to deal with them? Clearly these things are usually not null pointers or PETSc would crash everywhere.<br></blockquote><div><br></div><div>Lisandro brought this up.</div><div><br></div><div>This is a problem with the analyzer. Anything that uses PetscMallocK() will be wrong since it can</div><div>possibly be NULL. The limitations of static analysis are stark.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   Thanks<br>
<br>
  Barry<br>
<br>
<br>
12 warnings generated.<br>
          CC arch-debug/obj/src/mat/impls/aij/seq/bas/basfactor.o<br>
          CC arch-debug/obj/src/mat/impls/aij/seq/bas/spbas.o<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/bas/basfactor.c:33:11: warning: Array access (from variable 'ui') results in a null pointer dereference<br>
    ui[0] = 0;<br>
    ~~    ^<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/bas/basfactor.c:43:39: warning: Dereference of null pointer<br>
      for (j=0; j<ncols; j++) *cols++ = *aj++;<br>
                              ~~~~~~~~^~~~~~~<br>
2 warnings generated.<br>
          CC arch-debug/obj/src/mat/impls/aij/seq/csrperm/csrperm.o<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/csrperm/csrperm.c:190:23: warning: Array access (from variable 'rows_in_bucket') results in a null pointer dereference<br>
    rows_in_bucket[i] = 0;<br>
    ~~~~~~~~~~~~~~    ^<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/csrperm/csrperm.c:194:5: warning: Array access (from variable 'rows_in_bucket') results in a null pointer dereference<br>
    rows_in_bucket[nz]++;<br>
    ^~~~~~~~~~~~~~~~~~~~<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/csrperm/csrperm.c:221:27: warning: Array access (via field 'xgroup') results in a null pointer dereference<br>
  aijperm->xgroup[ngroup] = istart;<br>
           ~~~~~~         ^<br>
3 warnings generated.<br>
          CC arch-debug/obj/src/mat/impls/aij/seq/ftn-auto/aijf.o<br>
          CC arch-debug/obj/src/mat/impls/aij/seq/crl/crl.o<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/crl/crl.c:62:20: warning: Array access (from variable 'acols') results in a null pointer dereference<br>
      acols[j*m+i] = *aa++;<br>
      ~~~~~        ^<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/crl/crl.c:63:20: warning: Array access (from variable 'icols') results in a null pointer dereference<br>
      icols[j*m+i] = *aj++;<br>
      ~~~~~        ^<br>
/Users/barrysmith/Src/PETSc/src/mat/impls/aij/seq/crl/crl.c:66:20: warning: Array access (from variable 'acols') results in a null pointer dereference<br>
      acols[j*m+i] = 0.0;<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>