I_love_Hoang_Yen's blog

By I_love_Hoang_Yen, history, 8 years ago, In English

So if you have been coding C++ for a long time, you see people discover bugs in g++ every now and then, for example: this, that, here and there.

In this comment regarding IOI, andreyv said "On IOI they will most likely use the Linux distribution's default GCC, which was tested to build the numerous distribution's packages" and we should not worry about it.

But g++ is also widely used in ACM regionals, which is setup by some hosting university.

So, I have few questions:

  1. Is there any way that we can avoid compiler issues when writing code? e.g. Avoid some specific/strange coding pattern? Pray to god?
  2. How likely do you think that this can actually happen in a contest and affect someone?
  3. Do you know / have been involved in preparing ACM contests & know if people carefully select compiler version?
  • Vote: I like it
  • +28
  • Vote: I do not like it

»
8 years ago, # |
Rev. 3   Vote: I like it +76 Vote: I do not like it

The fourth thread you linked to wasn't a compiler bug.

  1. No.
  2. The probability is negligible. Looking at the number of submissions and the number of bugs detected, the odds are most likely smaller than one in a million.
  3. No, not really. Usually the organizers either reuse a setup they have already used and tested previously, or they simply take the most recent stable version from their distro. Both are good enough in that they make the chance of random competition-affecting bugs a bit lower.

Honestly, there are enough other, more important things to worry about when preparing for a contest. Just ignore this one and pretend that it doesn't happen. You'll be fine.

  • »
    »
    8 years ago, # ^ |
      Vote: I like it -12 Vote: I do not like it

    About 1. One option is not to use -O2 on online judges, but use -O1 or -O0. Also it reduces gap between performance of C++ and Java.

»
8 years ago, # |
  Vote: I like it +11 Vote: I do not like it

Here's one thing you should hope doesn't happen and has better chances of happening than hitting a compiler bug: your computer shuts down in the middle of the contest (possible bonus: all unsubmitted code, lost forever). I think something similar happened to someone during last CERC.