c++ - How to raise warning if return value is disregarded? -


i'd see places in code (c++) disregard return value of function. how can - gcc or static code analysis tool?

bad code example:

int f(int z) {     return z + (z*2) + z/3 + z*z + 23; }   int main() {   int = 7;   f(i); ///// <<----- here disregard return value    return 1; } 

please note that:

  • it should work if function , use in different files
  • free static check tool

you want gcc's warn_unused_result attribute:

#define warn_unused __attribute__((warn_unused_result))  int warn_unused f(int z) {     return z + (z*2) + z/3 + z*z + 23; }  int main() {   int = 7;   f(i); ///// <<----- here disregard return value   return 1; } 

trying compile code produces:

$ gcc test.c test.c: in function `main': test.c:16: warning: ignoring return value of `f', declared attribute warn_unused_result 

you can see in use in linux kernel; have __must_check macro same thing; looks need gcc 3.4 or greater work. find macro used in kernel header files:

unsigned long __must_check copy_to_user(void __user *to,                                         const void *from, unsigned long n); 

Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -

javascript - Ajax jqXHR.status==0 fix error -