------- Comment #10 from rguenth at gcc dot gnu dot org 2009-01-25 11:15 ------- The self-init is of course for the case where the -Wuninitialized warning is bogus (which happens). It simply has no effect on whatever undefinedness is in your code - it was added to be a "cheaper" way instead of adding the usual zero-initialization which people do when they get seemingly bogus uninitialized warnings.
Yes, I see the situation is somewhat unfortunate here ;) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38961