From: Simon Wright <simon@pogner.demon.co.uk>
Subject: Re: Not intended for use in medical,
Date: 1997/05/03
Date: 1997-05-03T00:00:00+00:00 [thread overview]
Message-ID: <x7vohassedl.fsf@pogner.demon.co.uk> (raw)
In-Reply-To: 5k5ifi$8db@bcrkh13.bnr.ca
kaz@vision.crest.nt.com (Kaz Kylheku) writes:
> int foo(int x, int y)
>
> {
> return ((x < y) && x++) && ((x < y) && x++);
> }
[...]
> /*
> * GCC seems to illegaly optimize foo() by factoring the (x < y)
> * as a common subexpression ignoring the x++ side effect, e.g:
> *
> * return ((x < y) && x++) && x++;
> *
> * A more complex version of this expression has caused a serious
> * failure in some of my code.
> */
[...]
> I readily discovered this problem when my program was behaving oddly, and
> a thorough code inspection failed to turn up any error in the source.
Hmm. I believe that writing eg
a[i] = ++i;
invokes undefined behaviour (is the pre- or post- value of i used for
the index operation?).
While inspecting your program, I would be fairly sure of the meaning
you intended but quite unsure without checking the standard as to
whether it had entered the realm of the undefined. And I see that your
original code was _more_ complex! Crikey!
I would also wonder why the second ++ was there anyway, it has no
effect (unless of course x was a reference, but we're talking C here,
and then the effect of the code would be amazingly hard to understand)
--
Simon Wright Work Email: simon.j.wright@gecm.com
GEC-Marconi Radar & Defence Systems Voice: +44(0)1705-701778
Command & Information Systems Divsion FAX: +44(0)1705-701800
next prev parent reply other threads:[~1997-05-03 0:00 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-04-23 0:00 Not intended for use in medical, Robert C. Leif, Ph.D.
1997-04-24 0:00 ` J. Florio
1997-04-25 0:00 ` Kevin Cline
1997-04-25 0:00 ` Robert Dewar
1997-04-25 0:00 ` Ken Garlington
1997-04-28 0:00 ` John Apa
1997-04-28 0:00 ` John M. Mills
1997-04-30 0:00 ` Larry Kilgallen
1997-05-02 0:00 ` Nick Roberts
1997-04-28 0:00 ` Robert Dewar
1997-04-29 0:00 ` Kaz Kylheku
1997-04-30 0:00 ` John Apa
[not found] ` <3367CE1E.5ED1@die_spammer.dasd.honeywell.com>
1997-05-01 0:00 ` Kaz Kylheku
1997-05-03 0:00 ` Simon Wright [this message]
1997-05-04 0:00 ` Kaz Kylheku
1997-05-04 0:00 ` Robert Dewar
1997-05-04 0:00 ` Richard Kenner
1997-05-05 0:00 ` Kaz Kylheku
1997-05-06 0:00 ` Kaz Kylheku
1997-05-06 0:00 ` Robert A Duff
1997-05-07 0:00 ` Kaz Kylheku
1997-05-08 0:00 ` Robert A Duff
1997-05-07 0:00 ` Robert Dewar
1997-05-08 0:00 ` Robert A Duff
1997-05-09 0:00 ` Robert I. Eachus
1997-05-11 0:00 ` Robert Dewar
1997-05-11 0:00 ` Matthew Heaney
1997-05-12 0:00 ` Robert Dewar
1997-05-12 0:00 ` Matthew Heaney
1997-05-13 0:00 ` Jon S Anthony
1997-05-13 0:00 ` Matthew Heaney
1997-05-14 0:00 ` Robert Dewar
1997-05-14 0:00 ` Robert Dewar
1997-05-14 0:00 ` Robert Dewar
1997-05-15 0:00 ` W. Wesley Groleau (Wes)
1997-05-14 0:00 ` Nick Roberts
1997-05-14 0:00 ` Robert Dewar
1997-05-12 0:00 ` Robert I. Eachus
1997-05-13 0:00 ` Robert Dewar
1997-05-14 0:00 ` Nick Roberts
1997-05-14 0:00 ` Robert Dewar
[not found] ` <01bc6182$30e3a7c0$LocalHost@xhv46.dial.pipex.com>
1997-05-16 0:00 ` Robert Dewar
1997-05-16 0:00 ` Robert A Duff
1997-05-16 0:00 ` Robert I. Eachus
1997-05-18 0:00 ` Nick Roberts
1997-05-18 0:00 ` Matthew Heaney
1997-05-19 0:00 ` Robert A Duff
1997-05-19 0:00 ` Robert I. Eachus
1997-05-19 0:00 ` Matthew Heaney
1997-05-20 0:00 ` Nick Roberts
1997-05-20 0:00 ` Matthew Heaney
1997-05-21 0:00 ` Dale Stanbrough
1997-05-08 0:00 ` Kaz Kylheku
1997-05-08 0:00 ` Robert Dewar
1997-05-09 0:00 ` Kaz Kylheku
1997-05-12 0:00 ` W. Wesley Groleau (Wes)
1997-05-12 0:00 ` John G. Volan
1997-05-14 0:00 ` Nick Roberts
1997-05-14 0:00 ` Robert Dewar
1997-05-14 0:00 ` Jeff Carter
[not found] ` <dewar.863632434@merv>
1997-05-15 0:00 ` Kaz Kylheku
1997-05-18 0:00 ` Robert Dewar
1997-05-15 0:00 ` Kaz Kylheku
1997-05-08 0:00 ` John G. Volan
1997-05-10 0:00 ` Robert Dewar
1997-05-10 0:00 ` John G. Volan
1997-05-11 0:00 ` Robert Dewar
1997-05-11 0:00 ` John G. Volan
1997-05-11 0:00 ` Robert A Duff
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` Robert Dewar
1997-05-11 0:00 ` John G. Volan
1997-05-11 0:00 ` Robert Dewar
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` John G. Volan
1997-05-12 0:00 ` Robert Dewar
1997-05-17 0:00 ` Robert I. Eachus
[not found] ` <dewar.863877808@merv>
1997-05-17 0:00 ` Robert Dewar
1997-05-17 0:00 ` Jon S Anthony
1997-05-21 0:00 ` Syntax for tagged record types (was Re: Not intended for use in medical,) Ben Brosgol
1997-05-20 0:00 ` Matthew Heaney
1997-05-21 0:00 ` Jon S Anthony
1997-05-21 0:00 ` Matthew Heaney
1997-05-22 0:00 ` Robert I. Eachus
1997-05-25 0:00 ` Matthew Heaney
1997-05-28 0:00 ` Robert I. Eachus
1997-05-23 0:00 ` Jon S Anthony
1997-05-23 0:00 ` Simon Wright
1997-05-23 0:00 ` Matthew Heaney
1997-05-25 0:00 ` Jon S Anthony
1997-05-28 0:00 ` Syntax for tagged record types (was Re David Kristola
1997-05-21 0:00 ` Syntax for tagged record types and class types Mats Weber
1997-05-21 0:00 ` Matthew Heaney
1997-05-22 0:00 ` Mats Weber
1997-05-27 0:00 ` Tucker Taft
1997-05-30 0:00 ` Mats.Weber
1997-05-22 0:00 ` Samuel A. Mize
1997-05-22 0:00 ` Samuel A. Mize
1997-05-23 0:00 ` Mats Weber
[not found] ` <mheaney-ya023680002005972314260001@news.ni.net <mheaney-ya023680002105972302430001@news.ni.net>
1997-05-22 0:00 ` Syntax for tagged record types (was Re: Not intended for use in medical,) Robert A Duff
1997-05-22 0:00 ` John G. Volan
1997-05-23 0:00 ` Jon S Anthony
1997-05-23 0:00 ` Matthew Heaney
1997-05-23 0:00 ` Jon S Anthony
1997-05-23 0:00 ` Matthew Heaney
1997-05-25 0:00 ` Robert Dewar
1997-05-25 0:00 ` Jon S Anthony
1997-05-27 0:00 ` Ray Blaak
1997-05-23 0:00 ` John G. Volan
1997-05-24 0:00 ` Robert A Duff
1997-05-24 0:00 ` Matthew Heaney
1997-05-28 0:00 ` Robert I. Eachus
1997-05-25 0:00 ` Jon S Anthony
1997-05-12 0:00 ` Language Design Mistakes (was "not intended...") W. Wesley Groleau (Wes)
1997-05-13 0:00 ` Robert Dewar
1997-05-13 0:00 ` Robert A Duff
1997-05-14 0:00 ` Robert Dewar
1997-05-13 0:00 ` W. Wesley Groleau (Wes)
1997-05-04 0:00 ` Not intended for use in medical, Robert Dewar
1997-05-04 0:00 ` Richard Kenner
-- strict thread matches above, loose matches on Subject: below --
1997-04-25 0:00 Robert C. Leif, Ph.D.
1997-05-12 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-05-13 0:00 ` Robert Dewar
1997-05-14 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-05-14 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-05-14 0:00 tmoran
1997-05-19 0:00 Robert C. Leif, Ph.D.
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox