Re: [PATCH v2 3/4] strbuf_setlen: don't write to strbuf_slopbuf
- From
Brandon Casey <drafnel@gmail.com>
- Date
- Aug 23, 2017, 22:39 UTC
- Message-ID
- <CA+sFfMdvOcXd_ePyqyiCXL9O6xpYxxn+iKw6NRJCYsiCFK_ADA@mail.gmail.com>
- In-Reply-To
- <xmqq378hylbd.fsf@gitster.mtv.corp.google.com>
On Wed, Aug 23, 2017 at 3:24 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
> Brandon Casey <drafnel@gmail.com> writes: > >> On Wed, Aug 23, 2017 at 2:04 PM, Junio C Hamano <gitster@pobox.com> wrote: >>> Brandon Casey <drafnel@gmail.com> writes: >>> >>>> So is there any reason why didn't do something like the following in >>>> the first place? >>> >>> My guess is that we didn't bother; if we cared, we would have used a >>> single instance of const char in a read-only segment, instead of >>> such a macro. >> >> I think you mean something like this: >> >> const char * const strbuf_slopbuf = ""; > > Rather, more like "const char slopbuf[1];"
You'd think that would be sufficient right? Apparently gcc and clang will only place a variable marked as const in the read-only section if you initialize it with a constant too. (gcc 4.9.2, clang 3.8.1 on linux, clang 8.1.0 on osx)
I might have to adjust my stance on initializing global variables moving forward :-)
-Brandon