aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitReader.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-03-02 21:43:54 +0000
committerTed Kremenek <kremenek@apple.com>2010-03-02 21:43:54 +0000
commit5d2bb1b9b34339a20985445d11f4123595988866 (patch)
tree756a029888ee5941333b55ad7a131cf40cb68bde /llvm/lib/Bitcode/Reader/BitReader.cpp
parentc3c1b10243c7aca2345fdb97468182b582b50450 (diff)
downloadllvm-5d2bb1b9b34339a20985445d11f4123595988866.zip
llvm-5d2bb1b9b34339a20985445d11f4123595988866.tar.gz
llvm-5d2bb1b9b34339a20985445d11f4123595988866.tar.bz2
[CFG]
After discussion with Zhongxing, don't force the initializer of DeclStmts to be block-level expressions. This led to some interesting fallout: [UninitializedValues] Always visit the initializer of DeclStmts (do not assume they are block-level expressions). [BasicStore] With initializers of DeclStmts no longer block-level expressions, this causes self-referencing initializers (e.g. 'int x = x') to no longer cause the initialized variable to be live before the DeclStmt. While this is correct, it caused BasicStore::RemoveDeadBindings() to prune off the values of these variables from the initial store (where they are set to uninitialized). The fix is to back-port some (and only some) of the lazy-binding logic from RegionStore to BasicStore. Now the default values of local variables are determined lazily as opposed to explicitly initialized. llvm-svn: 97591
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitReader.cpp')
0 files changed, 0 insertions, 0 deletions