Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #109625
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: error: initializer element is not constant| |
| Date | 2017-05-09 12:54 -0700 |
| Organization | None to speak of |
| Message-ID | <lnpofh9579.fsf@kst-u.example.com> (permalink) |
| References | (10 earlier) <oestp7$gkd$1@gioia.aioe.org> <3dv3hc1ueu2en2hl1oprs3ui6j6bdoqmf1@4ax.com> <oet0bm$l6s$2@gioia.aioe.org> <lny3u597uc.fsf@kst-u.example.com> <a75fdbe7-307a-43cb-b731-e159605af894@googlegroups.com> |
supercat@casperkitty.com writes:
> On Tuesday, May 9, 2017 at 1:57:22 PM UTC-5, Keith Thompson wrote:
>> On the other hand, given:
>>
>> char foo[] = "hello";
>> char *bar = foo;
>>
>> the expression `foo` in the initializer yields the address of a
>> static object, not the (current) value of that object. The compiler
>> has to be able to generate code that refers to the address of a
>> static object anyway, so there's no extra burden in requiring it
>> to treat such an address as a compile-time constant expression.
>
> Actually, in some cases the latter may be a significant burden, but it is
> one that the authors of the C Standard thought was worthwhile to impose.
> Most notably, there are some platforms where static variables are accessed
> using a displacement from an address register. Such a design makes it
> practical for a system without a memory-management unit (e.g. the classic
> Macintosh) to have multiple applications in memory simultaneously but means
> that after a program is loaded into memory as a blob, the startup code will
> need to patch all static objects that are initialized to hold addresses of
> functions or other static objects.
I said it's no *extra* burden. It's a burden that's required for
handling static objects at all.
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 09:55 +0200
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 10:05 +0200
Re: error: initializer element is not constant| Noob <root@127.0.0.1> - 2017-05-08 10:38 +0200
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 11:55 +0200
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 11:01 +0100
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-08 12:18 +0200
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 12:02 +0100
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 09:00 -0700
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 17:50 +0100
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 11:37 -0700
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 19:49 +0100
Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-08 20:13 +0100
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 12:44 -0700
Re: error: initializer element is not constant| scott@slp53.sl.home (Scott Lurndal) - 2017-05-08 20:24 +0000
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 09:54 +0200
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 10:15 +0200
Re: error: initializer element is not constant| GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-05-09 12:12 +0200
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-09 11:47 +0100
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 19:06 +0200
Re: error: initializer element is not constant| scott@slp53.sl.home (Scott Lurndal) - 2017-05-09 17:10 +0000
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 19:20 +0200
Re: error: initializer element is not constant| Barry Schwarz <schwarzb@dqel.com> - 2017-05-09 10:35 -0700
Re: error: initializer element is not constant| jak <please@nospam.tnx> - 2017-05-09 20:04 +0200
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 11:57 -0700
Re: error: initializer element is not constant| supercat@casperkitty.com - 2017-05-09 12:50 -0700
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 12:54 -0700
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-09 20:15 +0100
Re: error: initializer element is not constant| "James R. Kuyper" <jameskuyper@verizon.net> - 2017-05-09 14:13 -0400
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 11:41 -0700
Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-09 12:16 +0100
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-09 08:11 -0700
Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-08 12:12 +0100
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 13:45 +0100
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 09:04 -0700
Re: error: initializer element is not constant| Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-08 19:53 +0100
Re: error: initializer element is not constant| bartc <bc@freeuk.com> - 2017-05-08 20:44 +0100
Re: error: initializer element is not constant| Noob <root@127.0.0.1> - 2017-05-09 09:27 +0200
Re: error: initializer element is not constant| Tim Rentsch <txr@alumni.caltech.edu> - 2017-05-09 07:10 -0700
Re: error: initializer element is not constant| Keith Thompson <kst-u@mib.org> - 2017-05-08 09:30 -0700
Re: error: initializer element is not constant| John Bode <jfbode1029@gmail.com> - 2017-05-08 08:05 -0700
csiph-web