>From: Alfons Adriaensen <[EMAIL PROTECTED]>
>
>I don't have your original message with the code at hand here, so
>this may be a false alarm. Did you think of making all pointers 
>into shared memory volatile? IIRC you are testing on a counter
>that is incremented by another process - such a small memory access
>could easily be optimised away.

And that was it!! What braindamaged compiler authors!
In the code

  k = -1;
  for (;;) {
    if (k != nums[1]) {
      k = nums[1];
      fprintf(stderr,"%i\n",k);
    }
    fprintf(stderr,"g");
  }

The whole if was apperently optimized away. The code printed only one
number and a lot of "g"s. Of the two choises (1) nums[1] is updated
elsewhere, (2) it is unnecessary code, coder just tries to be clever,
the compiler authors selected the latter.

Here is my suggestion to C standard: replace the "volatile"
with "goaheadandoptimizetheseawayiwerejustwastingmytimeincodingthese
theydonotmeananythingactually".

Instead of forcing legitimate coders to write volatile everywhere,
those fools who write unnecessary code should be forced to add
the proposed qualifier.

Juhana

Reply via email to