Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #153179
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: does char *str="abcd"; alloc addressable memory? |
| Date | 2020-07-10 15:54 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <875zavqv26.fsf@bsb.me.uk> (permalink) |
| References | (5 earlier) <6HCNG.37756$bQ4.31924@fx04.iad> <86fta0fw7j.fsf@linuxsc.com> <87o8oo8s31.fsf@nosuchdomain.example.com> <re87g8$1c$1@reader1.panix.com> <re9udd$sq3$1@gioia.aioe.org> |
Manfred <noname@add.invalid> writes: > On 7/10/2020 12:59 AM, John Forkosh wrote: >> Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: >>> Tim Rentsch <tr.17687@z991.linuxsc.com> writes: >>> [...] >>>> Much more recently than that, gcc had an option -fwriteable-strings. >>>> That option has since been removed, but it was still available in >>>> the last ten years or so. >>> >>> The "-fwritable-strings" option (note spelling), was removed in 2004. >>> The version string for the commit that removed it was >>> "3.5.0 20040223 (experimental)". >> >> Just curious at this point (since you and TimR and BenB already >> elegantly solved my actual problem upthread), but why would the >> behavior be removed at all? Sounds like they were trying to >> protect the programmer from his own stupidity (or her own stupidity). >> But that wouldn't be the underlying C philosophy, at least not >> as I've understood it, as a "portable assembler". You're supposed >> to know what you're doing, and why, and its consequences/side-effects/ >> whatever. Forget strings,... old assembler programs could change >> their own program memory, i.e., change the instructions being >> executed, during execution. But now I'm not even allowed to change >> a string literal. Well, I can live with that, and work around it >> exactly as you've suggested, but I can't seem to fathom the >> legitimacy of the reasoning behind the decision to force me >> to do it. At least not in C (not as I've come to know and like it). >> > > I don't think this was a matter of protecting the programmer, at least > not as a primary purpose. > I see this more as improving the self-consistency of the language. > A 'literal' value is strictly read only, to the point of being even > hardcoded into the generated instructions; see e.g. numeric literals > that don't even have an address, forget modifying them. I think you are misunderstanding the word "literal". C has compound literals whose addresses can be taken and which can (if their type is not const qualified) be modified. > The fact that implementations store a string literal in a bytearray > somewhere in memory is orthogonal to their semantics as a literal > value. I'm not sure how to interpret the "orthogonal" metaphor here. It is usually used to mean something like "unrelated" but that can't be right in this context because the semantics of a string literal is that it designates an object -- specifically an array object -- so an implementation must generate an array (unless the "as if" rule allows it to avoid having to) at least for every unique string literal. > It is because if this that implementations have been free to store > multiple identical string literals in a single location, resulting in > the behavior reported by Jacob (if you change one, all of them are > changed) that is a clear logical inconsistency if you look at them as > data. And I'm not really sure what the "this" is that gives an implementation the permission you describe. In my opinion, that permission comes from the language standard the removed the requirement not to! -- Ben.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar
does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-06 11:24 +0000
Re: does char *str="abcd"; alloc addressable memory? jacobnavia <jacob@jacob.remcomp.fr> - 2020-07-06 13:29 +0200
Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) gazelle@shell.xmission.com (Kenny McCormack) - 2020-07-06 12:48 +0000
Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) BGB <cr88192@gmail.com> - 2020-07-06 11:55 -0500
Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) Vir Campestris <vir.campestris@invalid.invalid> - 2020-07-06 21:21 +0100
Re: Mark Twain had something to say about this... John Forkosh <forkosh@panix.com> - 2020-07-07 03:21 +0000
Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) mark.bluemel@gmail.com - 2020-07-09 06:30 -0700
Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) Richard Damon <Richard@Damon-Family.org> - 2020-07-06 22:16 -0400
Re: Mark Twain had something to say about this... Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 23:22 -0700
Re: Mark Twain had something to say about this... John Forkosh <forkosh@panix.com> - 2020-07-07 02:46 +0000
Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) jacobnavia <jacob@jacob.remcomp.fr> - 2020-07-07 09:29 +0200
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 11:25 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 03:05 +0000
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 23:25 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 06:47 +0000
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 07:00 +0000
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-07 01:24 -0700
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-07 20:47 +0100
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-08 03:43 +0000
Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-07 09:35 +0200
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 07:54 +0000
Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-07 11:27 +0200
Re: does char *str="abcd"; alloc addressable memory? Richard Damon <Richard@Damon-Family.org> - 2020-07-09 06:53 -0400
Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-09 14:48 +0200
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 17:01 +0100
Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-09 22:10 +0200
Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-09 20:23 +0000
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 23:56 +0100
Re: does char *str="abcd"; alloc addressable memory? antispam@math.uni.wroc.pl - 2020-07-10 03:25 +0000
Re: does char *str="abcd"; alloc addressable memory? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-07-10 11:56 -0400
Re: does char *str="abcd"; alloc addressable memory? richard@cogsci.ed.ac.uk (Richard Tobin) - 2020-07-10 12:31 +0000
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-09 13:35 -0700
Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-09 22:17 +0000
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 23:50 +0100
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 16:52 +0100
Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-09 10:13 -0700
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-09 11:24 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-09 22:59 +0000
Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-10 16:36 +0200
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-10 15:54 +0100
Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-10 18:33 +0200
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-10 22:50 +0100
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-11 16:21 +0100
Re: does char *str="abcd"; alloc addressable memory? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-07-11 08:55 -0700
Re: does char *str="abcd"; alloc addressable memory? Bart <bc@freeuk.com> - 2020-07-11 17:09 +0100
Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-11 18:34 +0200
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 13:17 -0700
Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-11 02:00 +0200
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 17:46 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-11 03:09 +0000
Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-11 18:43 +0200
Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-11 15:09 -0400
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-11 13:39 -0700
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-11 15:50 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-12 01:06 +0000
Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-10 08:54 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-11 03:26 +0000
Re: does char *str="abcd"; alloc addressable memory? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-07-11 03:56 -0700
Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-10 08:46 -0700
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 13:38 -0700
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 13:54 -0700
Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-07 08:52 -0400
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 02:56 +0000
Re: does char *str="abcd"; alloc addressable memory? antispam@math.uni.wroc.pl - 2020-07-07 19:08 +0000
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-08 04:07 +0000
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-07 21:54 -0700
Re: does char *str="abcd"; alloc addressable memory? Ike Naar <ike@sdf.org> - 2020-07-06 11:56 +0000
Re: does char *str="abcd"; alloc addressable memory? Bonita Montero <Bonita.Montero@gmail.com> - 2020-07-06 13:57 +0200
Re: does char *str="abcd"; alloc addressable memory? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-07-06 05:37 -0700
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-06 19:52 +0100
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 12:20 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 03:32 +0000
Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-07 06:26 -0700
Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-07 10:03 -0700
Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-09 10:07 -0700
Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-08 03:57 +0000
Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-08 11:02 -0400
Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-06 09:43 -0700
Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-06 19:35 +0100
Re: does char *str="abcd"; alloc addressable memory? Andrey Tarasevich <andreytarasevich@hotmail.com> - 2020-07-06 18:50 -0700
Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-06 08:35 -0400
Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-06 11:21 -0400
Re: does char *str="abcd"; alloc addressable memory? Barry Schwarz <schwarzb@delq.com> - 2020-07-06 09:58 -0700
Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-06 23:07 +0000
Re: does char *str="abcd"; alloc addressable memory? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-07-06 20:03 -0400
Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-07 14:36 +0000
Re: does char *str="abcd"; alloc addressable memory? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-07-07 11:58 -0400
csiph-web