]> granicus.if.org Git - clang/commit
[analyzer] Warn when passing pointers to const but uninitialized memory.
authorJordan Rose <jordan_rose@apple.com>
Thu, 13 Mar 2014 17:55:39 +0000 (17:55 +0000)
committerJordan Rose <jordan_rose@apple.com>
Thu, 13 Mar 2014 17:55:39 +0000 (17:55 +0000)
commit601e611a9a41d6adf625d3868d8976bec9a3a478
treeb7276276b4c3ad30811449ffe128f53a0ef5905d
parente9e159fc47866e29a4790021d67b99f540d0f42c
[analyzer] Warn when passing pointers to const but uninitialized memory.

Passing a pointer to an uninitialized memory buffer is normally okay,
but if the function is declared to take a pointer-to-const then it's
very unlikely it will be modifying the buffer. In this case the analyzer
should warn that there will likely be a read of uninitialized memory.

This doesn't check all elements of an array, only the first one.
It also doesn't yet check Objective-C methods, only C functions and
C++ methods.

This is controlled by a new check: alpha.core.CallAndMessageUnInitRefArg.

Patch by Per Viberg!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203822 91177308-0d34-0410-b5e6-96231b3b80d8
lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
lib/StaticAnalyzer/Checkers/Checkers.td
test/Analysis/uninit-const.c [new file with mode: 0644]
test/Analysis/uninit-const.cpp [new file with mode: 0644]