5 ms·
Good advice, but compilers often issue warnings like "x may be used uninitialized" even when it cannot happen.
by sfk 17y ago
Good advice, but compilers often issue warnings like "x may be used uninitialized" even when it cannot happen.
- torpor 17y agoErm, wut? Not really. If there is a warning, its there for a reason. Fix that.
- sfk 17y agoAs everyone who has written a C program of sufficient complexity knows, these warnings are not always correct. Google for "spurious warnings uninitialized", e.g: http://kerneltrap.org/node/6591 http://kerneltrap.org/node/6591 An unrelated example where gcc (and icc) emit needless warnings about integer types is this: int x = foo(); unsigned y = (x == 0); Don't get me wrong, I'm in favor of cranking up the warning levels, but there is a reason why not everything is included in -Wall (yes, "uninitialized" is included, I know).
- torpor 17y agoAs a professional C coder for 20+ years, with well over a million lines of code under my belt, I can tell you that anyone that is ignoring warnings because of a buggy compiler is using the wrong compiler and should fix that immediately. I work on SIL-4 rated systems for life-protection applications. Absolutely ZERO TOLERANCE for warnings is a requirement in this job, and every single time it has been addressed, the warning gave us a clue how to fix something. Whether it was the code that needed fixing, or the compiler - either way, the alert is there. Ignore at your own peril.