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


Groups > comp.lang.c > #102892

Re: lvalues from the ternary op

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: lvalues from the ternary op
Date 2017-02-01 01:51 +0000
Organization A noiseless patient Spider
Message-ID <87y3xqn0fe.fsf@bsb.me.uk> (permalink)
References (16 earlier) <2f20253f-9ce6-4dcd-82e7-2fcdc2eae5b0@googlegroups.com> <ln1svxh6i1.fsf@kst-u.example.com> <aa4dec3a-ebfc-495a-9160-e260037473f5@googlegroups.com> <kfnlgtrdvq3.fsf@x-alumni2.alumni.caltech.edu> <698d5687-fb5e-488d-841e-99991d26c314@googlegroups.com>

Show all headers | View raw


supercat@casperkitty.com writes:

> On Tuesday, January 31, 2017 at 10:45:31 AM UTC-6, Tim Rentsch wrote:
>> supercat writes:
>> > Given "union u { uint32_t x; float y; } u;", if both u.x and u.y are objects,
>> > which of the following can be said about the code "u.x = 1;":
>> >
>> >     1. The thing to the left of the equals is something other than an
>> >        lvalue of type "uint32_t".
>> >
>> >     2. The code does not access the stored value of a "float" object.
>> >
>> >     3. The code invokes Undefined Behavior because it uses an lvalue of type
>> >        uint32_t to access the value of a float object.
>> 
>> The Standard is quite clear that unions (that have more than one
>> member) hold multiple overlapping objects (6.2.5 p20).  Here u.x
>> and u.y are two distinct objects, and they overlap.  If you think
>> that doesn't make sense then you're confused about something.
>
> Explain the error in my logic, given "union {int i; float f;} u; u.i=4;"
> [within a function]:
>
>   1. "u.i" is an lvalue of type "int".
>
>   2. The statement "u.i=4;" writes to an lvalue of type int.
>
>   3. There exists an object, known as "u.f", whose declared type is "float".

A union holds only one object at a time.

>   4. The act of writing to that lvalue of type "int" also constitutes an
>      access to the storage underlying u.f.

Since a union holds only one object at a time the update of u.i is only
to that object.

<snip>
-- 
Ben.

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


Thread

Re: lvalues from the ternary op Manfred <noname@invalid.add> - 2017-01-04 19:46 +0100
  Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-04 11:08 -0800
  Re: lvalues from the ternary op Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-04 21:10 +0000
    Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-04 13:48 -0800
      Re: lvalues from the ternary op Ian Collins <ian-news@hotmail.com> - 2017-01-05 11:07 +1300
        Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-04 14:20 -0800
      Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-04 14:41 -0800
        Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-04 15:21 -0800
          Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-04 15:52 -0800
            Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-04 16:37 -0800
            Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-04 18:31 -0800
              Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-13 17:26 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-13 17:49 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-15 22:53 -0800
    Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-13 17:08 -0800
      Re: lvalues from the ternary op Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-01-14 02:15 +0000
        Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-15 22:51 -0800
      Re: lvalues from the ternary op luser droog <luser.droog@gmail.com> - 2017-01-16 23:09 -0800
        Re: lvalues from the ternary op Manfred <noname@invalid.add> - 2017-01-18 14:51 +0100
          Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-18 09:59 -0800
            Re: lvalues from the ternary op Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-01-18 13:12 -0500
            Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-18 12:11 -0800
              Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-18 12:45 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-18 14:07 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-18 14:40 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-18 16:10 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-18 18:08 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-19 06:44 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-19 08:40 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-19 12:32 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-20 06:01 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-20 08:15 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-20 10:51 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-20 11:32 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-20 13:41 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-23 07:04 -0800
                Re: lvalues from the ternary op Ike Naar <ike@iceland.freeshell.org> - 2017-01-23 17:59 +0000
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-23 10:57 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-31 08:45 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-01-31 09:13 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-31 10:17 -0800
                Re: lvalues from the ternary op Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-01 01:51 +0000
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-01 14:24 -0800
                Re: lvalues from the ternary op Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-02 03:07 +0000
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 04:43 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-04 08:01 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-09 09:06 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-09 11:56 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-12 10:29 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-12 13:43 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-19 21:44 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-20 08:15 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-24 07:58 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-24 10:00 -0800
                Re: lvalues from the ternary op scott@slp53.sl.home (Scott Lurndal) - 2017-02-24 18:58 +0000
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-24 13:03 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-02-24 14:11 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-02-24 12:42 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-02-24 13:49 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-24 13:58 -0800
                Re: lvalues from the ternary op Keith Thompson <kst-u@mib.org> - 2017-02-24 14:56 -0800
                Re: lvalues from the ternary op supercat <flatfinger@casperkitty.com> - 2017-02-25 14:00 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-25 09:23 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-25 09:43 -0800
                Re: lvalues from the ternary op Kelsey Bjarnason <kbjarnason@gmail.com> - 2017-02-01 22:47 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-02 10:12 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 07:51 -0800
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-02-04 08:18 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-09 08:58 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 04:00 -0800
                Re: lvalues from the ternary op Kelsey Bjarnason <kbjarnason@gmail.com> - 2017-02-04 09:35 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 09:35 -0800
                Re: lvalues from the ternary op Robert Wessel <robertwessel2@yahoo.com> - 2017-01-31 13:36 -0600
                Re: lvalues from the ternary op supercat@casperkitty.com - 2017-01-31 12:23 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-01 13:48 -0800
                Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-31 08:53 -0800
            Re: lvalues from the ternary op Manfred <noname@invalid.add> - 2017-01-19 14:10 +0100
        Re: lvalues from the ternary op Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-30 12:05 -0800

csiph-web