]> granicus.if.org Git - clang/commit
Added preliminary support for CompoundLiterals in the static analyzer:
authorTed Kremenek <kremenek@apple.com>
Mon, 27 Oct 2008 21:54:31 +0000 (21:54 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 27 Oct 2008 21:54:31 +0000 (21:54 +0000)
commit4f09027385466f1f4c382c80ca77157e2aef97d9
treed27a15491869214b0619dda1cbcbf277e2e13135
parent664a2187c7ac47e95ab2c72d4ba7e805e966b430
Added preliminary support for CompoundLiterals in the static analyzer:

- GRExprEngine::VisitCompoundLiteral...
   (1) visits the initializer list (generating ExplodedNodes)
   (2) creates a CompoundMemRegion for the literal
   (3) creates a new state with the bound literal values using
       GRStateManager::BindCompoundLiteral

- GRStateManager::BindCompoundLiteral simply calls
  StoreManager::BindCompoundLiteral to get a new store and returns a persistent
  GRState with that store.

- BasicStore::BindCompoundLiteral simply returns the same store, as it
  doesn't handle field sensitivity

- RegionStore::BindCompoundLiteral currently fires an assert (pending discussion
  of how to best implement mappings for CompoundLiteralRegion).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58277 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Analysis/PathSensitive/GRExprEngine.h
include/clang/Analysis/PathSensitive/GRState.h
include/clang/Analysis/PathSensitive/Store.h
lib/Analysis/BasicStore.cpp
lib/Analysis/GRExprEngine.cpp
lib/Analysis/GRState.cpp
lib/Analysis/RegionStore.cpp