[GRASS-dev] suspicious warnings while compiling GRASS trunk (r38973)

Glynn Clements glynn at gclements.plus.com
Sat Sep 5 14:38:10 EDT 2009


Ivan Shmakov wrote:

> 	When building GRASS trunk (as of r38973) on an amd64 system,
> 	I've spotted the following warnings that look a bit suspicious.
> 
> 	I have no time now to investigate these further, but perhaps
> 	someone could take a look?
> 
> make[3]: Entering directory `/.../grass-trunk-r38973/lib/gis'
> spawn.c:474: warning: cast from pointer to integer of different size

These are safe. The values are small integers which have been cast to
pointers, so casting them back to integers is safe.

I don't think that the warnings can be eliminated.

> trim_dec.c:30: warning: 'return' with a value, in function returning void

Fixed in r39000.

> make[3]: Entering directory `/.../grass-trunk-r38973/lib/gmath'
> /.../grass-trunk-r38973/dist.x86_64-unknown-linux-gnu/include/grass/gmath.h:72: warning: parameter names (without types) in function declaration
> /.../grass-trunk-r38973/dist.x86_64-unknown-linux-gnu/include/grass/gmath.h:74: warning: parameter names (without types) in function declaration
> /.../grass-trunk-r38973/dist.x86_64-unknown-linux-gnu/include/grass/gmath.h:86: warning: parameter names (without types) in function declaration

Needs <stddef.h> for size_t; fixed in r39006.

> make[3]: Entering directory `/.../grass-trunk-r38973/lib/cluster'
> c_assign.c:34: warning: passing argument 1 of 'G_debug' makes integer from pointer without a cast
> c_assign.c:34: warning: passing argument 2 of 'G_debug' makes pointer from integer without a cast

Debug level omitted; fixed in r39001.

> make[3]: Entering directory `/.../grass-trunk-r38973/lib/sites'
> sites.c:621: warning: cast from pointer to integer of different size

Used (char)NULL instead of '\0' for NUL byte; harmless other than the
warnings; fixed in r39002.

> make[2]: Entering directory `/.../grass-trunk-r38973/display/d.legend'
> main.c:377: warning: passing argument 1 of 'Rast_get_c_cat' makes pointer from integer without a cast
> main.c:408: warning: passing argument 1 of 'Rast_get_c_cat' from incompatible pointer type
> main.c:607: warning: passing argument 1 of 'Rast_get_c_cat' makes pointer from integer without a cast
> main.c:783: warning: passing argument 1 of 'Rast_get_c_cat' from incompatible pointer type
> main.c:785: warning: passing argument 1 of 'Rast_get_c_cat' from incompatible pointer type

These are actual errors; I'll look into this later.

> make[2]: Entering directory `/.../grass-trunk-r38973/raster/r.circle'
> main.c:44: warning: cast from pointer to integer of different size

Harmless, but both the initialisation and the FILEDESC typedef were
gratuituous; fixed in r39005.

> make[2]: Entering directory `/.../grass-trunk-r38973/raster/r.in.poly'
> local_proto.h:3: warning: 'struct Categories' declared inside parameter list
> local_proto.h:3: warning: its scope is only this definition or declaration, which is probably not what you want

Needs <grass/raster.h>; fixed in r39007.

> make[3]: Entering directory `/.../grass-trunk-r38973/raster/r.li/r.li.shape'
> map.c:344: warning: cast to pointer from integer of different size

The named file doesn't exist in this directory.

> make[3]: Entering directory `/.../grass-trunk-r38973/raster/r.li/r.li.padsd'
> xround.c:24: warning: conflicting types for built-in function 'round'

Likewise.

> make[2]: Entering directory `/.../grass-trunk-r38973/raster/r.out.vtk'
> pv.h:33: warning: 'struct Colors' declared inside parameter list
> pv.h:33: warning: its scope is only this definition or declaration, which is probably not what you want
> pv.h:33: warning: 'struct Colors' declared inside parameter list
> pv.h:33: warning: its scope is only this definition or declaration, which is probably not what you want

Likewise.

> make[2]: Entering directory `/.../grass-trunk-r38973/raster/r.statistics2'
> method.h:33: warning: 'struct Categories' declared inside parameter list
> method.h:33: warning: its scope is only this definition or declaration, which is probably not what you want

Likewise.

> make[2]: Entering directory `/.../grass-trunk-r38973/raster/r.to.vect'
> areas_io.c:360: warning: passing argument 1 of 'Rast_get_c_cat' from incompatible pointer type

This is an actual error, similar to d.legend. I'll look into this later.

> make[2]: Entering directory `/.../grass-trunk-r38973/vector/v.normal'
> main.c:124: warning: cast from pointer to integer of different size

Another (char)NULL case; fixed in r39010.

> make[3]: Entering directory `/.../grass-trunk-r38973/ps/ps.map'
> ps_fclrtbl.c:217: warning: cast from pointer to integer of different size
> ps_fclrtbl.c:217: warning: cast from pointer to integer of different size

This introduces an actual bug on 64-bit systems. Fixed in r39011. 

> make[1]: Entering directory `/.../grass-trunk-r38973/gem'
> tools.c:56: warning: comparison with string literal results in unspecified behavior

Fixed in r39014.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list