Post Reply 
Summation on HP 42S
09-29-2018, 09:33 PM
Post: #50
RE: Summation on HP 42S
(09-29-2018 09:10 PM)ijabbott Wrote:  Curiously, replacing `i += i;` with `i <<= 1` in the code I posted doesn't make the GCC optimizer (at least for GCC 7 and 8) generate an infinite loop like the original version. In fact it doesn't generate a loop or any variables at all for function `f`; it just returns the value 31. I don't know why it ends up behaving differently for this minor variant of the code, since both versions exhibit undefined behaviour, but technically it can do whatever it likes here and it wouldn't be considered an optimizer bug.

I think this and other examples illustrate one thing very vividly: beware, beware, beware when upgrading compilers, especially when dealing with legacy projects!

One pet peeve of mine is how an increasing number of compilers is complaining about certain assignments of signed to unsigned chars, or vice versa, mostly in array initializers. The code is perfectly legal, standards-compliant C++, but at some point, g++ and other compilers started issuing warnings about it. I ignored the warnings, since modifying the code to make them go away would be a big pain, but eventually, people started reporting build *failures* -- because apparently the latest thing is to treat all warnings as errors by default.

Lesson learned: when upgrading compilers, find out what you need to add to your compiler flags in order to make it treat the code like it was meant to be, and that may very well include -O0 and -Wno-error, among others...
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Summation on HP 42S - lrdheat - 09-23-2018, 06:14 PM
RE: Summation on HP 42S - Didier Lachieze - 09-23-2018, 06:28 PM
RE: Summation on HP 42S - lrdheat - 09-23-2018, 06:41 PM
RE: Summation on HP 42S - lrdheat - 09-23-2018, 06:51 PM
RE: Summation on HP 42S - ijabbott - 09-23-2018, 07:40 PM
RE: Summation on HP 42S - burkhard - 09-25-2018, 12:58 PM
RE: Summation on HP 42S - John Keith - 09-25-2018, 04:15 PM
RE: Summation on HP 42S - Thomas Klemm - 09-23-2018, 08:29 PM
RE: Summation on HP 42S - lrdheat - 09-23-2018, 09:25 PM
RE: Summation on HP 42S - Didier Lachieze - 09-23-2018, 10:03 PM
RE: Summation on HP 42S - lrdheat - 09-23-2018, 10:02 PM
RE: Summation on HP 42S - lrdheat - 09-23-2018, 10:37 PM
RE: Summation on HP 42S - Thomas Klemm - 09-24-2018, 12:56 AM
RE: Summation on HP 42S - Albert Chan - 09-24-2018, 11:56 AM
RE: Summation on HP 42S - Thomas Klemm - 09-24-2018, 01:17 AM
RE: Summation on HP 42S - Thomas Klemm - 09-24-2018, 01:52 PM
RE: Summation on HP 42S - Albert Chan - 09-24-2018, 04:20 PM
RE: Summation on HP 42S - pier4r - 09-24-2018, 01:55 PM
RE: Summation on HP 42S - Frido Bohn - 09-25-2018, 01:59 PM
RE: Summation on HP 42S - Dieter - 09-25-2018, 04:47 PM
RE: Summation on HP 42S - Frido Bohn - 09-26-2018, 10:10 AM
RE: Summation on HP 42S - Albert Chan - 09-26-2018, 03:13 PM
RE: Summation on HP 42S - Albert Chan - 09-25-2018, 05:28 PM
RE: Summation on HP 42S - lrdheat - 09-25-2018, 05:17 PM
RE: Summation on HP 42S - lrdheat - 09-25-2018, 05:28 PM
RE: Summation on HP 42S - Albert Chan - 09-25-2018, 07:17 PM
RE: Summation on HP 42S - Valentin Albillo - 09-25-2018, 08:01 PM
RE: Summation on HP 42S - Albert Chan - 09-25-2018, 08:59 PM
RE: Summation on HP 42S - Albert Chan - 09-26-2018, 01:23 PM
RE: Summation on HP 42S - pier4r - 09-26-2018, 04:09 PM
RE: Summation on HP 42S - Thomas Klemm - 09-27-2018, 03:47 AM
RE: Summation on HP 42S - Ángel Martin - 09-27-2018, 05:27 AM
RE: Summation on HP 42S - pier4r - 09-27-2018, 10:37 PM
RE: Summation on HP 42S - Thomas Okken - 09-28-2018, 12:33 AM
RE: Summation on HP 42S - pier4r - 09-28-2018, 01:40 PM
RE: Summation on HP 42S - ijabbott - 09-28-2018, 11:20 PM
RE: Summation on HP 42S - Albert Chan - 09-29-2018, 12:51 AM
RE: Summation on HP 42S - Valentin Albillo - 09-29-2018, 01:15 AM
RE: Summation on HP 42S - Thomas Okken - 09-29-2018, 01:24 AM
RE: Summation on HP 42S - ijabbott - 09-29-2018, 11:58 AM
RE: Summation on HP 42S - Albert Chan - 09-29-2018, 12:49 PM
RE: Summation on HP 42S - Thomas Okken - 09-29-2018, 01:50 PM
RE: Summation on HP 42S - ijabbott - 09-29-2018, 04:06 PM
RE: Summation on HP 42S - Thomas Okken - 09-29-2018, 06:15 PM
RE: Summation on HP 42S - ijabbott - 09-29-2018, 09:10 PM
RE: Summation on HP 42S - Thomas Okken - 09-29-2018 09:33 PM
RE: Summation on HP 42S - Albert Chan - 09-30-2018, 03:03 PM
RE: Summation on HP 42S - ijabbott - 09-30-2018, 05:28 PM
RE: Summation on HP 42S - brickviking - 10-01-2018, 08:40 AM
RE: Summation on HP 42S - pier4r - 09-29-2018, 05:59 PM
RE: Summation on HP 42S - Thomas Okken - 09-29-2018, 08:59 PM



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