[Developers] g++ warning: operation on *bla* may be undefined

Steve White steve.white at aei.mpg.de
Thu Oct 26 10:09:40 CDT 2006


Well, the mechanism I put in works for gcc...
It seems the pgCC doesn't consider sizeof( var ) to be a "use" of var.
I'm looking at an alternative.

On 26.10.06, Erik Schnetter wrote:
> gcc has __attribute__((unused)) to mark variables that are  
> intentionally unused.  This suppresses this warning.  Other compilers  
> may have similar ways for annotating variables.
> 
> I have implemented a bit of generic infrastructure to declare  
> variables, which makes it easier to experiment with these things.  I  
> have also implemented autodetecting whether __attribute__((unused))  
> is supported, so that it is used when present, and an old-style  
> mechanism is used otherwise.  A similar thing is done for Fortran code.
> 
> The changes are straightforward, but touch quite a number of files.   
> I would need to isolate them from other changes, and then they need  
> to be tested thoroughly.  I can do the first part if you are interested.
> 
> We discussed this before, and then the consensus was that using  
> __attribute__((unused)) was not worth the effort because the existing  
> mechanisms were sufficient.  Maybe this has changed with gcc 4 having  
> become too clever.
> 
> -erik
> 
> On Oct 26, 2006, at 15:50:38, Steve White wrote:
> 
> >Hi again.
> >
> >Unfortunately, Portland Group's C++ compiler (which I hadn't tried
> >in my tests) now warns:
> >
> >      variable "parameter_name" was set but never used
> >
> >for every CCTK parameter.  I don't think it was warning about the
> >old code.
> >
> >It seems that one can't please everybody.
> >
> >
> >On 20.10.06, Steve White wrote:
> >>Hi,
> >>
> >>This is concerned with g++ warnings like:
> >>
> >>	Preprocessing arrangements/Carpet/Carpet/src/Timing.cc
> >>	Compiling arrangements/Carpet/Carpet/src/Timing.cc
> >>	configs/chain_gcc_carpet/build/Carpet/Timing.cc:
> >>		In function ‘void Carpet::InitTimingVariables(const 
> >>		cGH*)’:
> >>	configs/chain_gcc_carpet/build/Carpet/Timing.cc:120:
> >>		warning: operation on ‘cctki_use’ may be undefined
> >>
> >>The culprit was in generated bindings code meant to get rid of  
> >>warnings
> >>about unused variables corresponding to Cactus parameters included in
> >>code by the DECLARE_CCTK_PARAMETERS macro.
> >>
> >>Typically, a struct was defined to hold copies of the macros, then
> >>such very interesting constructs would appear.
> >>
> >>  const void *PRIVATE_CACTUS_STRUCT_use = ( \
> >>    PRIVATE_CACTUS_STRUCT_use = &cctk_run_title, \
> >>    PRIVATE_CACTUS_STRUCT_use = &*PRIVATE_CACTUS_STRUCT_use \
> >>  )
> >>
> >>This code replaces that with a do-nothing enum declaration
> >>  enum {
> >>    dummy_cctk_run_title = sizeof( cctk_run_title )
> >>    //,etc.
> >>  };
> >>The nature of all the entities involved is here much clearer, both to
> >>compilers and to me.
> >>
> >>Like the existing solution, this permits the user to proceed to  
> >>make more
> >>declarations after the DECLARE_CCTK_PARAMETERS macro (simply  
> >>putting a list
> >>of variable assignments after the declaration would not have that  
> >>property).
> >>
> >>See also the patches list posting of the same name, and PR 2070
> >>http://www.cactuscode.org/cactus_cgi-bin/gnatsweb.pl?cmd=view% 
> >>20audit-trail&database=cactus&pr=2070
> >>for a patch.
> >>
> >>It has been tested on Gnu 4x, Intel 9x, IBM XL
> >>
> >>Cheers!
> >>
> >
> >-- 
> >Steve White : Programmer
> >Max-Planck-Institut für Gravitationsphysik      Albert-Einstein- 
> >Institut
> >Am Mühlenberg 1, D-14476 Golm, Germany                   
> >+49-331-567-7625
> >
> >_______________________________________________
> >Developers mailing list
> >Developers at cactuscode.org
> >http://www.cactuscode.org/mailman/listinfo/developers
> 
> 
> -- 
> Erik Schnetter <schnetter at cct.lsu.edu>
> 
> My email is as private as my paper mail.  I therefore support encrypting
> and signing email messages.  Get my PGP key from www.keyserver.net.
> 
> 
> 



> _______________________________________________
> Developers mailing list
> Developers at cactuscode.org
> http://www.cactuscode.org/mailman/listinfo/developers


-- 
Steve White : Programmer
Max-Planck-Institut für Gravitationsphysik      Albert-Einstein-Institut
Am Mühlenberg 1, D-14476 Golm, Germany                  +49-331-567-7625



More information about the Developers mailing list