Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #76814

Re: Objective C

From James Kuyper <jameskuyper@verizon.net>
Newsgroups comp.lang.c
Subject Re: Objective C
Date 2015-11-21 19:06 -0500
Organization Self
Message-ID <56510709.8000908@verizon.net> (permalink)
References (9 earlier) <kfnpoz48hpl.fsf@x-alumni2.alumni.caltech.edu> <8nj05bha7qo58upepjqipdds0fgjkl8umb@4ax.com> <m4k05bdossoe7criehdedlhgfpv1lml9rp@4ax.com> <ln7flb8u7t.fsf@kst-u.example.com> <n2qvdu$gqi$1@dont-email.me>

Show all headers | View raw


On 11/21/2015 06:43 PM, Stephen Sprunk wrote:
> On 21-Nov-15 05:31, Keith Thompson wrote:
>> Robert Wessel <robertwessel2@yahoo.com> writes:
>>> And, of course, writing to one union member and reading from the
>>> other is undefined.
>>
>> Incorrect.
>>
>> N1570 6.5.2.3p3, footnote:
>>
>>     If the member used to read the contents of a union object is
>>     not the same as the member last used to store a value in the
>>     object, the appropriate part of the object representation of
>>     the value is reinterpreted as an object representation in the
>>     new type as described in 6.2.6 (a process sometimes called
>>     "type punning"). This might be a trap representation.
> 
> That says the representation in the new type could be either a valid
> value or a trap representation, ...

True.

> ... which is the very definition of an
> indeterminate value. ...

No, it is not. When you have an indeterminate value, which value you
have (including whether or not it's a trap representation) is completely
unspecified.

When you read the value of one member of a union after having set the
value of a different member, the key point is that "the appropriate part
of the object representation of the value is reinterpreted as an object
representation in the new type". That is defined behavior - though
exactly what the behavior is that it defines depends upon the
representation of the two types.

"Except for bit-fields, objects are composed of contiguous sequences of
one or more bytes, the number, order, and encoding of which are either
explicitly specified or implementation-defined." (6.2.6.1p2)

So the implementation-specific representations of those types must be
documented, and if you read that documentation you can write such code
in a way that relies upon  that documentation. You never need to fear
reading any unexpected trap representations - because you have enough
information to make them expected, when they come up.
Such code is not portable, so it must be avoided if portability is
sufficiently important. But not all code needs to be perfectly portable.
Such code can be perfectly safe on the platforms for which it was written.

> ... Reading an indeterminate value invokes undefined
> behavior, even if it happens to _not_ be a trap representation.

Citation, please? The only argument I know of for undefined behavior
from the use of indeterminate values depends upon the fact that a trap
representation is a possibility. That argument therefore breaks down if
it's a type that is guaranteed to have no trap representations (such as
unsigned char) or a type that happens to have no trap representations on
the current platform.

Now if, for example, you subscript an array with a unspecified value
that could in fact be equal to or greater than the length of the array,
then the behavior could be undefined - but it is the behavior of the
subscript operation that is undefined, not the retrieval of the
unspecified value.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Objective C Alla _ <modelling.data@gmail.com> - 2015-11-10 09:10 -0800
  Re: Objective C "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2015-11-10 09:16 -0800
  Re: Objective C Richard Heathfield <rjh@cpax.org.uk> - 2015-11-10 17:17 +0000
  Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-10 09:32 -0800
    Re: Objective C Mark Storkamp <mstorkamp@yahoo.com> - 2015-11-10 11:38 -0600
  Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-10 12:36 -0500
    Re: Objective C Alla _ <modelling.data@gmail.com> - 2015-11-10 11:15 -0800
      Re: Objective C Richard Heathfield <rjh@cpax.org.uk> - 2015-11-10 21:51 +0000
        Re: Objective C Alla _ <modelling.data@gmail.com> - 2015-11-10 23:13 -0800
      Re: Objective C supercat@casperkitty.com - 2015-11-13 16:01 -0800
        Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-14 01:07 +0000
          Re: Objective C supercat@casperkitty.com - 2015-11-14 06:26 -0800
            Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-14 22:22 +0000
              Re: Objective C supercat@casperkitty.com - 2015-11-14 15:46 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 01:47 +0000
                Re: Objective C BartC <bc@freeuk.com> - 2015-11-15 10:43 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-15 13:19 -0800
            Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 15:43 -0800
            Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-15 23:50 +0100
              Re: Objective C gazelle@shell.xmission.com (Kenny McCormack) - 2015-11-16 00:05 +0000
              Re: Objective C supercat@casperkitty.com - 2015-11-15 19:10 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-16 09:11 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-16 11:57 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-16 20:38 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-16 13:20 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-16 22:28 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-16 15:33 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-16 15:56 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-17 01:43 +0000
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-17 01:21 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-16 18:11 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-16 20:12 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-19 00:59 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-18 22:46 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-19 14:25 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-19 07:58 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-19 22:13 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-19 15:29 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 08:44 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-17 01:26 +0000
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-16 21:48 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-16 20:27 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-17 13:58 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-17 12:28 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-18 13:00 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-18 12:31 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-18 16:43 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-18 15:57 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-19 19:09 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-19 19:05 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-20 15:00 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-20 15:30 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 17:11 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-22 15:53 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-23 13:51 -0600
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-24 12:00 +0000
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-17 10:26 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-17 06:20 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-17 16:41 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-17 12:08 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-17 16:27 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-17 14:55 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-18 13:59 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-18 13:06 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-24 14:24 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-24 15:11 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-26 17:02 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-27 07:26 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-18 21:56 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 02:17 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-22 07:16 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-26 17:11 -0600
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-22 19:09 +0000
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-17 23:28 -0600
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-18 15:33 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-18 23:06 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-19 09:12 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-19 09:25 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-19 21:06 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-20 13:49 -0800
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-21 05:01 -0600
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-21 05:09 -0600
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-21 03:31 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-21 17:43 -0600
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-21 16:00 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 01:12 -0600
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-27 16:42 +0000
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-27 12:38 -0500
                Re: Objective C supercat@casperkitty.com - 2015-11-27 11:09 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-21 19:06 -0500
                Re: Objective C supercat@casperkitty.com - 2015-11-21 17:00 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-22 14:44 +0000
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 01:55 -0600
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-22 00:03 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-22 10:18 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 03:21 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-22 10:53 -0500
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-22 20:28 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-22 18:52 -0800
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-23 11:58 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-23 15:24 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-23 09:46 -0500
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-23 08:13 -0800
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-23 12:04 -0500
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-23 11:52 -0600
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 16:05 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-24 09:09 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-12-08 08:48 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-12-08 10:40 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-12-09 12:34 -0800
                Re: Objective C supercat@casperkitty.com - 2015-12-08 10:50 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-12-09 12:42 -0800
                Re: Objective C supercat@casperkitty.com - 2015-12-09 13:38 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-12-10 19:54 +0000
                Re: Objective C David Thompson <dave.thompson2@verizon.net> - 2015-12-06 08:02 -0500
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-22 14:36 -0800
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-23 00:41 -0600
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 07:39 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-22 14:23 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-17 10:24 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-18 15:40 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-20 16:02 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-21 15:53 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-21 08:58 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-22 22:14 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 03:39 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-23 13:24 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-26 09:39 -0800
                Re: Objective C Robert Wessel <robertwessel2@yahoo.com> - 2015-11-26 13:16 -0600
                Re: Objective C supercat@casperkitty.com - 2015-11-26 12:25 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 14:34 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-26 12:39 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-27 16:43 +0000
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-27 09:29 -0800
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 14:18 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-23 22:35 +0000
                Re: Objective C James Kuyper <jameskuyper@verizon.net> - 2015-11-23 17:40 -0500
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-24 05:35 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-25 12:15 -0800
                Re: Objective C glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-25 22:49 +0000
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-27 16:44 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 14:03 -0800
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-29 09:29 +0000
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-22 19:01 +0000
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-23 07:31 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-23 07:43 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-23 08:17 -0800
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-23 17:34 +0100
                Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-23 22:02 +0000
                Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-24 10:12 +0100
                Re: Objective C Tim Rentsch <txr@alumni.caltech.edu> - 2015-11-27 08:39 -0800
          Re: Objective C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-11-14 18:24 +0000
        Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 12:23 -0800
          Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 12:36 -0800
            Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 13:13 -0800
              Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 14:04 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 14:15 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 14:29 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-14 15:39 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-14 16:37 -0800
                Re: Objective C Ian Collins <ian-news@hotmail.com> - 2015-11-15 13:46 +1300
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 02:06 +0000
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-15 03:25 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 12:56 +0000
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-15 07:53 -0600
                Re: Objective C Stephen Sprunk <stephen@sprunk.org> - 2015-11-15 07:19 -0600
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-15 13:29 +0000
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-15 10:56 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-15 14:35 -0800
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-15 16:52 -0800
                Re: Objective C supercat@casperkitty.com - 2015-11-15 19:49 -0800
                Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-16 11:02 +0000
                Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-16 10:36 -0800
                Re: Objective C David Thompson <dave.thompson2@verizon.net> - 2015-12-06 08:03 -0500
                Re: Objective C Melzzzzz <mel@zzzzz.com> - 2015-11-16 02:01 +0100
                Re: Objective C supercat@casperkitty.com - 2015-11-15 19:34 -0800
                Re: Objective C Chad <cdalten@gmail.com> - 2015-11-15 19:54 -0800
                Re: Objective C raltbos@xs4all.nl (Richard Bos) - 2015-11-17 22:36 +0000
                Re: Objective C supercat@casperkitty.com - 2015-11-17 15:27 -0800
                Re: Objective C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-11-17 21:15 -0800
          Re: Objective C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-14 22:08 +0000
      Re: Objective C fir <profesor.fir@gmail.com> - 2015-11-27 14:36 -0800
  Re: Objective C David Brown <david.brown@hesbynett.no> - 2015-11-10 19:03 +0100
    Re: Objective C Keith Thompson <kst-u@mib.org> - 2015-11-10 10:50 -0800

csiph-web