git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git on HP NonStop

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 20, 2012, 16:29 UTC
Message-ID
<7vfw7hle6l.fsf@alter.siamese.dyndns.org>
In-Reply-To
<503217F2.5070105@viscovery.net>
Johannes Sixt <j.sixt@viscovery.net> writes:
Show 13 quoted lines
> Am 8/20/2012 12:36, schrieb Joachim Schmitz:
>> int var = var;
>> char *othervar = othervar;
>> 
>> ... 
>>
>> What is the reason for using that self-init stuff? I don't think it is
>> really portable, is it?
>
> It is used to avoid "var may be used uninitialized" warnings for some
> compilers. Officially (according to the C standard), it is undefined
> behavior. But I've observed considerable resistance by Junio to fix this
> properly.
I had resisted
	-	int foo = foo;
        +	int foo = 0;

in the past. If some compiler is not seeing that "foo" is never used uninitialized, such a compiler will generate an unnecessary initialization, so it is not a _proper_ fix anyway (in fact, I do not think a proper fix exists, short of simplifying the code so that less sophisticated compilers can see that "foo" is never used uninitialized).

So, no, I never resisted a "proper" fix. I resisted swapping an unsatisfactory workaround with another.

Between the two unsatisfactory workarounds, the latter (explicit and unnecessary assignment to an innocuous value) is lessor of two evils, so I do not particularly mind it, though. Indeed, I think more recent history shows that we have such changes.

Previous: Joachim SchmitzNext: Joachim Schmitz
Message 6 of 11 in “RE: git on HP NonStop”
  1. Joachim SchmitzAug 14, 2012
  2. Jan EngelhardtAug 19, 2012
  3. Joachim SchmitzAug 20, 2012
  4. Johannes SixtAug 20, 2012
  5. Joachim SchmitzAug 20, 2012
  6. Junio C HamanoAug 20, 2012
  7. Joachim SchmitzAug 20, 2012
  8. Junio C HamanoAug 21, 2012
  9. Joachim SchmitzAug 22, 2012
  10. Andreas EricssonAug 23, 2012
  11. Joachim SchmitzAug 23, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.