Today i updated my server to gcc 4.9.2 - We needed to update the release of the OS as it was no longer supported, and this is the version of gcc that we were upgraded to….
Now im getting various warnings in the code, and i HATE having warnings on compile.
olc.c: In function room_damage_edit: olc.c:1273:23: warning: variable pRoom set but not used [-Wunused-but-set-variable] ROOM_DAMAGE_DATA *pRoom; ^
Is anyone able to assist in the fixing of this? i have tried numerous things. And nothing is working.. i understand the meaning of the warnings… the variable is unused but being set, but in this particular function pRoom is needed for OLC reasons…
Well, each new version of a compiler highlights more "suspect" code than the previous one did.
A compiler is like any other piece of software. It has bugs. It is inefficient. And it has a set of features. When you see new warnings show up, that's typically because the people writing the compiler added a new feature.
Very simple compilers (and ones early in their development cycle) concentrate on bugs and efficiency, making a straight-forward translation from source code to assembly language (or directly to object code) with no real analysis being done. As the compiler gets mature, the developers naturally try to analyze the source code (and resulting object code) to spot places they can optimize or improve results. That same analysis often results in spotting patterns of input in the source code that lead to inefficient or buggy results.
In this particular case, they've found a variable which you set but never directly used. This usually means either you later created a pointer to it and then passed that pointer in for use, rather than just using the address of the original variable…. OR… you cut/pasted it from elsewhere and removed whatever code used to make use of it. In the first case, you can just pass the address directly and avoid keeping an extra pointer hanging around. In the second case, it's just wasted space that has to be allocated by the compiler and then never used.
I've had cases where compiler warnings resulted in me finding subtle bugs in perfectly valid code, but invalid logic.