[petsc-dev] CI error

Barry Smith bsmith at petsc.dev
Sun Apr 11 21:10:29 CDT 2021


  With PETSc, since we don't like having any warning messages while compiling for users (how can they know if the warning is meaningful or not), we try to initialize anything that any compiler at any optimization level complains about. So lots of initializations are not technically needed but are good for PR.

  Mark's case is kind of annoying because the size of the array is configure dependent and so initializing "all entries" depends on the size of the array which for other people may be different. This is why it would be nice (I don't know if possible) to have a standard C99 way of initializing arrays.

  My rule is, if it every complains (wrongly) about initialized values then initialize them.

  Barry

  

> On Apr 11, 2021, at 8:10 PM, Mark Adams <mfadams at lbl.gov> wrote:
> 
> It did seem to be non-deterministic. (how is that possible?).
> I got this error, sent my message.
> Tried Barry's idea and initialized them all (5) by hand.
> It worked!
> I tried initializing just one.
> It worked.
> I tried initializing none (yes, back to where I started)
> And it worked :o
> 
> I guess this error is another try-it-again CI error.
> 
> On Sun, Apr 11, 2021 at 8:06 PM <jacob.fai at gmail.com <mailto:jacob.fai at gmail.com>> wrote:
> I ran into a similar problem months ago and the long and short of it is that any compilers uninitialized variable detection is incredibly dependent on optimization level, which the higher you go becomes non-deterministic.
> 
>  
> 
> That being said, gcc is pretty terrible at getting this particular warning right :) https://gcc.gnu.org/bugzilla/buglist.cgi?quicksearch=may%20be%20uninitialized <https://gcc.gnu.org/bugzilla/buglist.cgi?quicksearch=may%20be%20uninitialized>
>  
> 
> Best regards,
> 
>  
> 
> Jacob Faibussowitsch
> 
> (Jacob Fai - booss - oh - vitch)
> 
> Cell: (312) 694-3391
> 
>  
> 
> From: petsc-dev <petsc-dev-bounces at mcs.anl.gov <mailto:petsc-dev-bounces at mcs.anl.gov>> On Behalf Of Barry Smith
> Sent: Sunday, April 11, 2021 17:51
> To: Mark Adams <mfadams at lbl.gov <mailto:mfadams at lbl.gov>>
> Cc: For users of the development version of PETSc <petsc-dev at mcs.anl.gov <mailto:petsc-dev at mcs.anl.gov>>
> Subject: Re: [petsc-dev] CI error
> 
>  
> 
>  
> 
>   You might be able to do:
> 
>  
> 
> col_scale[LANDAU_MAX_Q_FACE = {0};
> 
>  
> 
> but then the compiler may complain about not initializing enough values. Googling this type of initialization might help, something C initialize arrays "may be used uninitialized"
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On Apr 11, 2021, at 2:05 PM, Mark Adams <mfadams at lbl.gov <mailto:mfadams at lbl.gov>> wrote:
> 
>  
> 
> This warning went away. i don't know why.
> 
>  
> 
> On Sun, Apr 11, 2021 at 2:10 PM Mark Adams <mfadams at lbl.gov <mailto:mfadams at lbl.gov>> wrote:
> 
> I get this error in CI with complex float:  https://gitlab.com/petsc/petsc/-/jobs/1170144554 <https://gitlab.com/petsc/petsc/-/jobs/1170144554>
>  
> 
> I put in code earlier to fix this warning about uninitialized vars, but now it does not seem to work:
> 
>  
> 
> /home/glci/builds-stage1/AbTGp5-t/0/petsc/petsc/src/ts/utils/dmplexlandau/plexland.c:414:94: error: ‘col_scale[4]’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
> 
> 2251 <https://gitlab.com/petsc/petsc/-/jobs/1170144554#L2251> PetscScalar vals[LANDAU_MAX_Q_FACE*LANDAU_MAX_Q_FACE],row_scale[LANDAU_MAX_Q_FACE],col_scale[LANDAU_MAX_Q_FACE];
> 
> 
> Yet I have code to initialize col_scale:
> 
>  
> 
>         for (q = 0; q < LANDAU_MAX_Q_FACE; q++) col_scale[q] = 0.0; // suppress warnings
> 
>  
> 
> I get a similar error with an integer array. 
> 
>  
> 
> Any suggestions?
> 
>  
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20210411/5c6983da/attachment.html>


More information about the petsc-dev mailing list