[GRASS-dev] Re: i.modis.qc

Paul Kelly paul-grass at stjohnspoint.co.uk
Mon Oct 27 03:27:19 EDT 2008


Hi Yann,
Thought I would comment too so you know it is not just Glynn who sees 
there is a problem here.

On Mon, 27 Oct 2008, Yann Chemin wrote:

> Hello Glynn,
>
> since I rewrote the code, and tested it, I know quite much what I do
> with the bitshifts, the image input, and the classification resulting
> from bitshifts.
>
> I have not seen so far any need to >>= instead of >>, in any of the
> related code I read.

Well, it is not in doubt that the statement with the bit shift does not 
do anything and has no effect. So if you feel it works OK the way it is 
then that statement can be safely removed with no effect.

> My worry in this email below was that a non-Unix platform compiler
> (which I don't have) would cough on it for some unknown reason to me.

Whether or not there is a warning is a moot point (apart from the fact 
that because we're only finding this bug because of a warning, it suggests 
there could be other undiscovered bugs in the code that aren't generating 
warnings). Anyway as Glynn said, the point is that a statement like 
qctemp >> 2;
does not do anything. qctemp is not modified as a result; the bit-shifted 
value theoretically exists in the ether for an instant, but it is not 
assigned to anything so it is lost again instantly. That statement can be 
removed from the program and the output will be exactly the same.

> As I can imagine, the compiler would find strange there is no variable
> data allocation in a line of code, but I would expect it to understand
> the unique feature of bitshift too.

What do you mean? Bitshift doesn't have a unique feature; it works just 
like any other operator like + or - or | or &.

Paul


More information about the grass-dev mailing list