This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: if() and trailing ;


Joe Buck <Joe.Buck@synopsys.COM> writes:

> On Sat, Jul 29, 2006 at 07:33:03PM -0400, Simon Boulet wrote:
>> After a couple hours debugging code, I figured our an if() somewhere  
>> had a trailing ;  like this:
>> 
>>                 if (memcmp(p, COMMUNITY, strlen(COMMUNITY)) != 0);
>>                         continue; /* failed */
>> 
>> The code above will always reach "continue" even when memcmp() == 0.
>> 
>> I was surprised to see gcc doesn't report anything, I would expect a  
>> "statement has no effect" warning.
>
> But it is common to have an empty action on a condition.  You'll often
> see code like
>
>     if (condition) 
>         /* nothing */;

Having an empty action on a condition without an else clause does not make
any sense.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]