Opened 15 years ago
Closed 13 years ago
#1 closed enhancement (fixed)
Compiler Warning & Information Messages
Reported by: | ydario | Owned by: | rlwalsh |
---|---|---|---|
Priority: | major | Milestone: | compiler switch |
Component: | odin | Version: | |
Severity: | medium | Keywords: | |
Cc: | rlwalsh |
Description
rwalsh: I consider *every* message that the compiler generates to be a problem. If nothing else, having thousands of "harmless" messages makes it nearly impossible to find and fix the few that are actually telling you something important.
Eliminating all these messages is unbelievably boring & time- consuming, but essential, IMHO. So far, I've eliminated nearly all messages when compiling these directories:
advapi32, crypt32, kernel32, ntdll, user32, and winmm
There are two info messages that can't be eliminated because of the odd way that debug printf()'s are turned off (i.e. "the condition is always TRUE" & "the condition is always FALSE"). For these, I'm just using sed to filter them from the output:
nmake 2>&1 | sed -u /EDC042[45]/D | tee build.log
Change History (6)
comment:1 by , 15 years ago
Owner: | changed from | to
---|
comment:2 by , 15 years ago
Cc: | added |
---|
comment:3 by , 15 years ago
Yikes! My formatting for the previous comment got all messed up. Here are the changesets again:
include 21352
src/advapi32 21353
src/crypt32 21354
src/kernel32 21355
src/user32 21356
src/NTDLL 21357
comment:4 by , 14 years ago
Milestone: | → compiler switch |
---|
comment:5 by , 13 years ago
Severity: | → medium |
---|
comment:6 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Since we moved to GCC, there are no warnings any longer (I fixed a lot of them during the compiler switch stage). Any future warnings are to be fixed in the source code.
Committed changes to these directories:
Most of these changes involved adding typecasts to assignments & arguments, including missing headers, and making statements like "if ((x = GetX()))" explicitly conditional, i.e. "if ((x = GetX()) != 0)". Doing so eliminated these messages:
VACPP 3.65
informational EDC0423: The comparison may be rewritten as 'unsigned == 0'. informational EDC0426: An assignment expression is used as a condition.
informational EDC3107: Assignment in logical expression. informational EDC3130: A constant is being used as a conditional expression.
informational EDC3378: "[name]" is defined on line [number] of "[filename]".
GCC 3.3.5