aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/SmallPtrSet.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-08-14 17:39:48 +0000
committerTed Kremenek <kremenek@apple.com>2007-08-14 17:39:48 +0000
commite68f1aad65f88369b03e6e7fe0c3f57bb70ebb5a (patch)
treeb8a3b32e1fd5ac4b361392bbbb085c7bc3e39219 /llvm/lib/Support/SmallPtrSet.cpp
parent367260c0df4dc90e9f3403f67a40c6eb869310ae (diff)
downloadllvm-e68f1aad65f88369b03e6e7fe0c3f57bb70ebb5a.zip
llvm-e68f1aad65f88369b03e6e7fe0c3f57bb70ebb5a.tar.gz
llvm-e68f1aad65f88369b03e6e7fe0c3f57bb70ebb5a.tar.bz2
Added support for additional format string checking for the printf
family of functions. Previous functionality only included checking to see if the format string was a string literal. Now we check parse the format string (if it is a literal) and perform the following checks: (1) Warn if: number conversions (e.g. "%d") != number data arguments. (2) Warn about missing format strings (e.g., "printf()"). (3) Warn if the format string is not a string literal. (4) Warn about the use se of '%n' conversion. This conversion is discouraged for security reasons. (5) Warn about malformed conversions. For example '%;', '%v'; these are not valid. (6) Warn about empty format strings; e.g. printf(""). Although these can be optimized away by the compiler, they can be indicative of broken programmer logic. We may need to add additional support to see when such cases occur within macro expansion to avoid false positives. (7) Warn if the string literal is wide; e.g. L"%d". (8) Warn if we detect a '\0' character WITHIN the format string. Test cases are included. llvm-svn: 41076
Diffstat (limited to 'llvm/lib/Support/SmallPtrSet.cpp')
0 files changed, 0 insertions, 0 deletions