Missing "var is used uninitialized" warning?

Jonathan Wakely jwakely.gcc@gmail.com
Sat Sep 17 20:48:00 GMT 2011


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.

Personally I think it's an abomination :)



More information about the Gcc-help mailing list