Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: An advice to all programmers:

Author: Christophe Theron

Date: 16:43:57 12/06/01

Go up one level in this thread


On December 06, 2001 at 13:31:44, Miguel A. Ballicora wrote:

>On December 06, 2001 at 12:53:14, Severi Salminen wrote:
>
>>Hi!
>>
>>Don't ever, I mean never ever, disable "those stupid warnings you don't want to
>>see anymore because they mean nothing". Well, for some odd reason I had disabled
>>unary operator and type conversion warnings. Now I just removed the #pragma
>>directive and found a major bug! I was using a 32-bit integer as a temporary
>>variable to store a 64-bit bitboard - how smart of me!! Actually I'm surprised I
>>hadn't noticed it before as it should've had corrupted the board representation
>>badly every time there was pawn double move. Well, now my program plays at least
>>5 elos better ;)
>>
>>Severi
>
>What I generally do is try to silence the warnings by rewriting my code
>as long as it is possible. Most of the time it is easy and it results in a
>safer, cleaner and more readable code (at least for me). When I can't, I include
>a local #pragma that I disable immediately after. Generally, I do not need this
>many times. Now, I have only one pragma valid for one line in my entire souce.
>I am pretty sure that I have more undetected bugs that pragmas :-)
>
>Miguel



I do the same, except that I do not use #pragma to silence warnings.

Whenever possible I rewrite the code so the compiler does not have to issue a
warning. Generally just adding an explicit cast does it, and it is free. In some
cases I have to add an instruction (to initialize a variable that the compiler
thought was not initialized, when actually it was). So I accept a performance
penalty in order to have a clean (warning free) code.

Naturally my compiler's warning level is set to the maximum.

I treat warnings the same way I treat errors: I just fix them.

I don't understand why people write C or C++ programs without setting warnings
to their maximum level. I don't even understand why it is allowed to set the
warning level to a lower value in most C and C++ compilers.



    Christophe



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.