Post Reply 
Undoc'd Feature?
07-13-2022, 10:12 PM (This post was last modified: 07-13-2022 10:32 PM by ijabbott.)
Post: #36
RE: Undoc'd Feature?
(07-12-2022 01:49 PM)Wes Loewer Wrote:  
(07-11-2022 07:49 PM)ijabbott Wrote:  Not really. For `i = i++ + 1;`, the `i++` part says that the old value of `i` plus 1 will be be stored in `i`, and the `i = i + 1` part also says that the old value of `i` plus 1 will be stored in `i`, so there is no conflict (in C++17, but undefined in C17).

So are you saying that (i = i++ + 2) would also be undefined since it is ambiguous whether i gets incremented by 1 or by 2?

My (perhaps flawed) understanding was that this is defined to follow the following sequence. Say i=5 to start.
1) i is evaluated to 5
2) 2 is added to 5 to get 7
3) i is incremented to 6
4) the value of 7 is stored in i

Or maybe steps 2 and 3 might be reversed, but in either case, i ends up equaling 7, so compilers are free to ignore the ++.

EDIT: IGNORE THE FOLLOWING - IT IS WRONG (see my post just above this one)

At some point 7 is stored in `i` and at some other point `i` is modified by adding 1 to it. Those two points are unsequenced relative to each other so the behaviour is undefined. Maybe `i` is incremented to 6 before 7 is stored in `i`, or maybe 7 is stored in `i` before `i` is incremented to 8, or (since the behaviour is undefined) maybe 7 is stored in `i` before 1 is added to the old value (5) of `i` and stored in `i`.

— Ian Abbott
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Undoc'd Feature? - toml_12953 - 07-03-2022, 03:42 AM
RE: Undoc'd Feature? - Wes Loewer - 07-03-2022, 09:14 AM
RE: Undoc'd Feature? - toml_12953 - 07-03-2022, 09:38 AM
RE: Undoc'd Feature? - Wes Loewer - 07-03-2022, 01:16 PM
RE: Undoc'd Feature? - Wes Loewer - 07-03-2022, 01:49 PM
RE: Undoc'd Feature? - toml_12953 - 07-03-2022, 02:18 PM
RE: Undoc'd Feature? - Wes Loewer - 07-03-2022, 06:24 PM
RE: Undoc'd Feature? - Albert Chan - 07-03-2022, 07:09 PM
RE: Undoc'd Feature? - toml_12953 - 07-04-2022, 01:49 AM
RE: Undoc'd Feature? - toml_12953 - 07-04-2022, 09:41 AM
RE: Undoc'd Feature? - Wes Loewer - 07-04-2022, 03:40 PM
RE: Undoc'd Feature? - xerxes - 08-03-2022, 08:17 PM
RE: Undoc'd Feature? - parisse - 07-03-2022, 11:02 AM
RE: Undoc'd Feature? - Wes Loewer - 07-03-2022, 01:03 PM
RE: Undoc'd Feature? - parisse - 07-03-2022, 06:31 PM
RE: Undoc'd Feature? - Wes Loewer - 07-03-2022, 07:34 PM
RE: Undoc'd Feature? - jte - 07-08-2022, 03:15 AM
RE: Undoc'd Feature? - Wes Loewer - 07-08-2022, 05:00 AM
RE: Undoc'd Feature? - jte - 07-08-2022, 08:32 PM
RE: Undoc'd Feature? - Wes Loewer - 07-09-2022, 05:15 AM
RE: Undoc'd Feature? - RPNerd - 07-09-2022, 12:20 PM
RE: Undoc'd Feature? - Albert Chan - 07-09-2022, 05:10 PM
RE: Undoc'd Feature? - Wes Loewer - 07-10-2022, 05:22 AM
RE: Undoc'd Feature? - toml_12953 - 07-10-2022, 10:22 AM
RE: Undoc'd Feature? - RPNerd - 07-10-2022, 12:48 PM
RE: Undoc'd Feature? - Wes Loewer - 07-17-2022, 01:05 PM
RE: Undoc'd Feature? - jte - 07-31-2022, 02:12 AM
RE: Undoc'd Feature? - Wes Loewer - 07-31-2022, 06:43 PM
RE: Undoc'd Feature? - toml_12953 - 07-31-2022, 07:25 PM
RE: Undoc'd Feature? - Wes Loewer - 08-01-2022, 03:48 AM
RE: Undoc'd Feature? - ijabbott - 07-14-2022, 05:22 PM
RE: Undoc'd Feature? - toml_12953 - 07-10-2022, 05:36 PM
RE: Undoc'd Feature? - Albert Chan - 07-10-2022, 05:57 PM
RE: Undoc'd Feature? - Wes Loewer - 07-10-2022, 07:38 PM
RE: Undoc'd Feature? - ijabbott - 07-11-2022, 07:49 PM
RE: Undoc'd Feature? - RPNerd - 07-12-2022, 11:03 AM
RE: Undoc'd Feature? - ijabbott - 07-13-2022, 09:34 PM
RE: Undoc'd Feature? - Wes Loewer - 07-12-2022, 01:49 PM
RE: Undoc'd Feature? - ijabbott - 07-13-2022 10:12 PM
RE: Undoc'd Feature? - toml_12953 - 07-13-2022, 10:50 PM
RE: Undoc'd Feature? - jte - 07-31-2022, 01:29 AM
RE: Undoc'd Feature? - Wes Loewer - 07-31-2022, 10:13 AM
RE: Undoc'd Feature? - OlidaBel - 07-04-2022, 09:11 AM
RE: Undoc'd Feature? - toml_12953 - 07-04-2022, 09:36 AM
RE: Undoc'd Feature? - ctrclckws - 07-13-2022, 12:44 PM
RE: Undoc'd Feature? - Wes Loewer - 07-13-2022, 08:01 PM



User(s) browsing this thread: 1 Guest(s)