]> granicus.if.org Git - clang/commit
[analyzer] pr36458: Fix retrieved value cast for symbolic void pointers.
authorArtem Dergachev <artem.dergachev@gmail.com>
Fri, 4 May 2018 22:11:12 +0000 (22:11 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Fri, 4 May 2018 22:11:12 +0000 (22:11 +0000)
commitf5e89b280d0aca5a2e62752f54d9f58e45ac4e7d
tree6f7410636850fd54fdaeb02570b44642156d5a0e
parent4f25981ffcf9b1af9a4eb7580d9e2d56fbe2c9bf
[analyzer] pr36458: Fix retrieved value cast for symbolic void pointers.

C allows us to write any bytes into any memory region. When loading weird bytes
from memory regions of known types, the analyzer is required to make sure that
the loaded value makes sense by casting it to an appropriate type.

Fix such cast for loading values that represent void pointers from non-void
pointer type places.

Differential Revision: https://reviews.llvm.org/D46415

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@331562 91177308-0d34-0410-b5e6-96231b3b80d8
lib/StaticAnalyzer/Core/Store.cpp
test/Analysis/casts.c