From: Joshua Juran Date: Fri, 02 Jul 2010 01:43:47 GMT Subject: Re: Purpose of "struct object_entry *oe = oe;"? Message-ID: <69D6E995-8F0E-446C-90CD-758C160A7807@gmail.com> In-Reply-To: <8039w681lo.fsf@tiny.isode.net> On Jun 29, 2010, at 5:28 AM, Bruce Stephens wrote: > Out of curiousity, where did this convention/idiom come from, and > what's > it for? > > I presume it's to remove a warning ("oe might be used > uninitialised") on > a compiler (or something) that's clever enough to attempt such > analysis > but too stupid to notice that the supposed initialisation is using > something uninitialised (or perhaps the compiler's deliberately > recognising the convention?). Is that right, or does it actually do > something more? > > I'm mostly surprised that it surprises me. Is it used commonly in > other > projects? (It appears not to be mentioned in CodingGuidelines; should > it be?) I was wondering this myself. My compiler complains in (and only in) the *presence* of this idiom, rather than its absence, so I undid it: jj/warn/uninitialized branch on GitHub http://github.com/jjuran/git/tree/jj/warn/uninitialized jj/warn/uninitialized commit on GitHub http://github.com/jjuran/git/commit/ 8affbf2d8e46fbd5f3d6898aa07ea8548432e7bc Signed-Off-By: Joshua Juran (or s/gmail/metamage/) A compiler that warns of uninitialized usage *unless* a variable is initialized *with itself* is doubly broken. Cheers, Josh