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

Re: [PATCH 1/2] git-compat-util: st_add4: work around gcc 4.2.x compiler crash

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Mar 21, 2016, 05:38 UTC
Message-ID
<CAPig+cR2rBJ4Tn9h7d4pp_Uxrfgc-BgHMLOhxKhWtYbm2wnARA@mail.gmail.com>
In-Reply-To
<CAP8UFD0Kp55bpwdNrXY3KhpDiHVDReWKpuNJz7_Q537DXeUXHA@mail.gmail.com>

On Mon, Mar 21, 2016 at 12:56 AM, Christian Couder <christian.couder@gmail.com> wrote:

Show 17 quoted lines
> On Mon, Mar 21, 2016 at 5:35 AM, Eric Sunshine <sunshine@sunshineco.com> wrote:
>>
>> diff --git a/git-compat-util.h b/git-compat-util.h
>> index c07e0c1..4743954 100644
>> --- a/git-compat-util.h
>> +++ b/git-compat-util.h
>> @@ -715,8 +715,8 @@ static inline size_t st_add(size_t a, size_t b)
>>                     (uintmax_t)a, (uintmax_t)b);
>>         return a + b;
>>  }
>> -#define st_add3(a,b,c)   st_add((a),st_add((b),(c)))
>> -#define st_add4(a,b,c,d) st_add((a),st_add3((b),(c),(d)))
>> +#define st_add3(a,b,c)   st_add(st_add((a),(b)),(c))
>> +#define st_add4(a,b,c,d) st_add(st_add3((a),(b),(c)),(d))
>
> Nit: maybe a comment around those lines would make sure that people do
> not inadvertently change them back later.
Maybe, maybe not. I'm hesitant for the following reason.

Unless we determine the exact compiler bug and patch which fixed it, we don't really have a good handle on what triggers this crash. Consequently, even with a comment saying "don't change the code in such and such a way", if someone ever does need to modify st_add4() in some fashion, it's entirely possible that the modification will trigger the crash again, even if the current evaluation order is kept or only modified slightly. We just don't know.

So, such a comment doesn't strike me as having a lot of value, and whatever value it does have wanes as this old compiler (gcc 4.2.1) and these old platforms (Mac OS X 10.6 and FreeBSD 9.x) become less and less relevant over time.

Previous: Christian CouderNext: Torsten Bögershausen
Message 5 of 7 in “work around gcc 4.2.x compiler crash”
  1. 0/2 work around gcc 4.2.x compiler crashEric Sunshine, Mar 21, 2016
  2. 1/2 git-compat-util: st_add4: work around gcc 4.2.x compiler crashEric Sunshine, Mar 21, 2016
  3. Jeff KingMar 21, 2016
  4. Christian CouderMar 21, 2016
  5. Eric SunshineMar 21, 2016
  6. Torsten BögershausenMar 21, 2016
  7. 2/2 Revert "config.mak.uname: use clang for Mac OS X 10.6"Eric Sunshine, Mar 21, 2016

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.