balazske added a comment.

I wanted to implement the rules described here:
https://wiki.sei.cmu.edu/confluence/display/c/ERR33-C.+Detect+and+handle+standard+library+errors
This lists the functions to check so this knowledge has to be built into the 
checker and there are examples of this in other checkers (stream or memory or 
string functions for example). The functions have different kinds conditions on 
the return value in case of error. It is not sufficient to simply check that 
the return value is assigned to something or used because it may be used 
without check for error. So I tried to do something that can find if exactly a 
check for the error condition was made. (Still it is not perfect because the 
value can be used before the error checking.)
The cast to `void` is the special way to avoid the warning, in every other case 
the return value has to be checked for error or there is an exception that 
should be documented (if the function "can not fail" or the error does not 
matter). This may be too much warnings for a normal project but acceptable if 
extra safe code is needed. If we want to have that clang SA can (at least 
partially) check for that rule "ERR33-C" this (or similar) check is needed.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71510/new/

https://reviews.llvm.org/D71510



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to