clang-1/lib/Analysis
Anna Zaks 0b3ade86a1 [analyzer] Run remove dead bindings right before leaving a function.
This is needed to ensure that we always report issues in the correct
function. For example, leaks are identified when we call remove dead
bindings. In order to make sure we report a callee's leak in the callee,
we have to run the operation in the callee's context.

This change required quite a bit of infrastructure work since:
 - We used to only run remove dead bindings before a given statement;
here we need to run it after the last statement in the function. For
this, we added additional Program Point and special mode in the
SymbolReaper to remove all symbols in context lower than the current
one.
 - The call exit operation turned into a sequence of nodes, which are
now guarded by CallExitBegin and CallExitEnd nodes for clarity and
convenience.

(Sorry for the long diff.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155244 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-20 21:59:08 +00:00
..
AnalysisDeclContext.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
CFG.cpp Implement DR1330 in C++11 mode, to support libstdc++4.7 which uses it. 2012-04-17 00:58:00 +00:00
CFGReachabilityAnalysis.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
CFGStmtMap.cpp Constify the result of CFGStmt::getStmt(). 2011-08-23 23:05:04 +00:00
CMakeLists.txt Remove the unused, unmaintained, incomplete 'Index' library. 2012-04-13 16:31:46 +00:00
CallGraph.cpp [analyzer] PCH deserialization optimization. 2012-04-12 22:36:48 +00:00
CocoaConventions.cpp Kill cocoa::deriveNamingConvention and cocoa::followsFundamentalRule. They are now just simple wrappers around method families, and method decls can cache method family lookups. Also, no one is using them right now. 2012-03-17 20:51:32 +00:00
Dominators.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
FormatString.cpp Support '%p' format specifier with block pointers. 2012-03-15 21:22:27 +00:00
FormatStringParsing.h Support the 'a' length modifier in scanf format strings as a C90 2011-12-15 10:25:47 +00:00
LiveVariables.cpp Enhance AnalysisDeclContext::getReferencedBlockVars() to understand PseudoObjExprs. It turns out 2011-12-22 01:30:46 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
PostOrderCFGView.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
PrintfFormatString.cpp Format string analysis: give 'q' its own enumerator. 2012-02-16 16:34:54 +00:00
ProgramPoint.cpp [analyzer] Run remove dead bindings right before leaving a function. 2012-04-20 21:59:08 +00:00
PseudoConstantAnalysis.cpp Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to 2012-03-10 09:33:50 +00:00
ReachableCode.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
ScanfFormatString.cpp Format string analysis: give 'q' its own enumerator. 2012-02-16 16:34:54 +00:00
ThreadSafety.cpp Refactor the thread safety analysis so that it is easier to do 2012-04-19 16:48:43 +00:00
UninitializedValues.cpp Move llvm/ADT/SaveAndRestore.h -> llvm/Support/SaveAndRestore.h. 2012-03-01 19:45:56 +00:00