diff options
author | Jeffrey Yasskin <jyasskin@google.com> | 2011-08-26 00:41:31 +0000 |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@google.com> | 2011-08-26 00:41:31 +0000 |
commit | 782f63ecd124f9384f988dc7e0cf4ae1540c15f6 (patch) | |
tree | 8aa780ecf69dc68dedfb5ad1b2a171ea2ba9c164 /lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp | |
parent | 1b9060553221720152e12981109549e0a1d8e3a1 (diff) |
Handle CXXTempObjectRegion in StackAddrEscapeChecker.
Also convert stack-addr-ps.cpp to use the analyzer instead of just Sema, now
that it doesn't crash, and extract the stack-block test into another file since
it errors, and that prevents the analyzer from running.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138613 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp')
-rw-r--r-- | lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp b/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp index b004aa9c64..c63603ae69 100644 --- a/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp @@ -76,6 +76,11 @@ SourceRange StackAddrEscapeChecker::GenName(raw_ostream &os, << VR->getString() << '\''; range = VR->getDecl()->getSourceRange(); } + else if (const CXXTempObjectRegion *TOR = dyn_cast<CXXTempObjectRegion>(R)) { + os << "stack memory associated with temporary object of type '" + << TOR->getValueType().getAsString() << '\''; + range = TOR->getExpr()->getSourceRange(); + } else { assert(false && "Invalid region in ReturnStackAddressChecker."); } |