Peter Miehle
Peter Miehle

Reputation: 6070

warning switch for condition function as a variable

I have errornously forgotten to put the parameter List after the call to a function, and the gcc did not intercept (because he believes it is a TRUTH-value). Is there a gcc warning/error switch, which helps me to locate those places? example:

short function(short arg);

main() {
  if (function) { // I wanted to write function(arg)
    //do something
  }
}

The Version of the gcc I am using is 3.2.1.

Upvotes: 2

Views: 46

Answers (2)

Fumu 7
Fumu 7

Reputation: 1091

Use "-Wall" option with gcc. This option force gcc to show all kinds of warnings at compilation.

You may get following warning when you compile your code by 'gcc -Wall' command.

`function' undeclared (first use in this function)

Upvotes: 2

javidcf
javidcf

Reputation: 59711

Looking at the GCC man page, it seems that what you need is -Waddress.

   -Waddress
       Warn about suspicious uses of memory addresses. These include using the address of a function in a conditional
       expression, such as "void func(void); if (func)", and comparisons against the memory address of a string literal, such as
       "if (x == "abc")".  Such uses typically indicate a programmer error: the address of a function always evaluates to true,
       so their use in a conditional usually indicate that the programmer forgot the parentheses in a function call; and
       comparisons against string literals result in unspecified behavior and are not portable in C, so they usually indicate
       that the programmer intended to use "strcmp".  This warning is enabled by -Wall.

As stated there, you can enable this flag with -Wall too.

Upvotes: 3

Related Questions