Missing "var is used uninitialized" warning?

Georg-Johann Lay avr@gjlay.de
Sun Sep 18 14:38:00 GMT 2011


Jonathan Wakely schrieb:
> On 17 September 2011 21:42, Georg-Johann Lay wrote:
> 
>>Jonathan Wakely schrieb:
>>
>>>On 17 September 2011 21:32, Georg-Johann Lay wrote:
>>>
>>>
>>>>Hi, compiled with -Wall -Wextra the wollowing lines don't complain about
>>>>a
>>>>being used uninitialized.  Tried with 4.5 and 4.6.  Am I missing
>>>>something?
>>>>
>>>>int func (void)
>>>>{
>>>> int a = a;
>>>>
>>>> return a;
>>>>}
>>>
>>>Yes, you're missing -Winit-self
>>
>>Thanks.
>>
>>Confusing... extra option for that?
> 
> Maybe, but it's documented, so that makes it ok!
> 
>>The message with -Wuninitialized -Winit-self is
>>warning: 'a' is used uninitialized in this function [-Wuninitialized]
>>
>>Is there a special reason why this is not part of Wall or Wextra?
> 
> Initialising a variable with itself is a GNU extension, used to
> suppress warnings about uninitialised variables when you *really*
> don't want to initialise a variable and don't want a warning either.

Thanks for the explanation, now I understand it.

> Personally I think it's an abomination :)



More information about the Gcc-help mailing list