* Why is there now a difference between "{static const char a[]={...}" and "{const char a[]={...}"?
@ 2018-10-30 2:15 John Carter
2018-11-02 11:12 ` Jonathan Wakely
0 siblings, 1 reply; 3+ messages in thread
From: John Carter @ 2018-10-30 2:15 UTC (permalink / raw)
To: GCC help
https://gcc.godbolt.org/z/6c4QLO
Something changed between gcc 4.1 and 4.4
--
John Carter
Phone : (64)(3) 358 6639
Tait Electronics
PO Box 1645 Christchurch
New Zealand
--
This Communication is Confidential. We only send and receive email on the
basis of the terms set out at www.taitradio.com/email_disclaimer
<http://www.taitradio.com/email_disclaimer>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Why is there now a difference between "{static const char a[]={...}" and "{const char a[]={...}"?
2018-10-30 2:15 Why is there now a difference between "{static const char a[]={...}" and "{const char a[]={...}"? John Carter
@ 2018-11-02 11:12 ` Jonathan Wakely
2018-11-02 11:13 ` Jonathan Wakely
0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Wakely @ 2018-11-02 11:12 UTC (permalink / raw)
To: John Carter; +Cc: gcc-help
On Tue, 30 Oct 2018 at 02:16, John Carter wrote:
>
> https://gcc.godbolt.org/z/6c4QLO
>
> Something changed between gcc 4.1 and 4.4
I think this changed with https://gcc.gnu.org/r143570 to fix
https://gcc.gnu.org/PR38615
See https://gcc.gnu.org/ml/gcc/2008-11/msg00201.html and
https://gcc.gnu.org/ml/gcc/2008-11/msg00202.html for a more complete
explanation of why the 4.1 behaviour is non-conforming and had to be
fixed.
If you use -fmerge-all-constants you get the old behaviour back, but
as noted in the manual that option makes the program non-confirming.
If your program doesn't rely on stack variables having distinct
addresses in recursive calls, you can probably use that option safely.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Why is there now a difference between "{static const char a[]={...}" and "{const char a[]={...}"?
2018-11-02 11:12 ` Jonathan Wakely
@ 2018-11-02 11:13 ` Jonathan Wakely
0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Wakely @ 2018-11-02 11:13 UTC (permalink / raw)
To: John Carter; +Cc: gcc-help
On Fri, 2 Nov 2018 at 11:11, Jonathan Wakely wrote:
>
> On Tue, 30 Oct 2018 at 02:16, John Carter wrote:
> >
> > https://gcc.godbolt.org/z/6c4QLO
> >
> > Something changed between gcc 4.1 and 4.4
>
> I think this changed with https://gcc.gnu.org/r143570 to fix
> https://gcc.gnu.org/PR38615
>
> See https://gcc.gnu.org/ml/gcc/2008-11/msg00201.html and
> https://gcc.gnu.org/ml/gcc/2008-11/msg00202.html for a more complete
> explanation of why the 4.1 behaviour is non-conforming and had to be
> fixed.
>
> If you use -fmerge-all-constants you get the old behaviour back, but
> as noted in the manual that option makes the program non-confirming.
s/non-confirming/non-conforming/
> If your program doesn't rely on stack variables having distinct
> addresses in recursive calls, you can probably use that option safely.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-11-02 11:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-30 2:15 Why is there now a difference between "{static const char a[]={...}" and "{const char a[]={...}"? John Carter
2018-11-02 11:12 ` Jonathan Wakely
2018-11-02 11:13 ` Jonathan Wakely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).