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

 

Best regards,

 

Jacob Faibussowitsch

(Jacob Fai - booss - oh - vitch)

Cell: (312) 694-3391

 

From: petsc-dev <[email protected]> On Behalf Of Barry Smith
Sent: Sunday, April 11, 2021 17:51
To: Mark Adams <[email protected]>
Cc: For users of the development version of PETSc <[email protected]>
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 <[email protected] 
<mailto:[email protected]> > wrote:

 

This warning went away. i don't know why.

 

On Sun, Apr 11, 2021 at 2:10 PM Mark Adams <[email protected] 
<mailto:[email protected]> > wrote:

I get this error in CI with complex float:  
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]

 <https://gitlab.com/petsc/petsc/-/jobs/1170144554#L2251> 2251 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?

 

Reply via email to