[analyzer] Fix FP warnings when binding a temporary to a local static variable
authorPavel Labath <labath@google.com>
Fri, 26 Jul 2013 11:50:42 +0000 (11:50 +0000)
committerPavel Labath <labath@google.com>
Fri, 26 Jul 2013 11:50:42 +0000 (11:50 +0000)
commitcf878bbe65b9f4b4b5ca96f5f6f33f8ff31349d6
treef00c5294fa6452b542d3d8caf1f33ade145f5183
parent240d480c5f6ae6cbfe40bfb40d83164008a99b09
[analyzer] Fix FP warnings when binding a temporary to a local static variable

Summary:
When binding a temporary object to a static local variable, the analyzer would
complain about a dangling reference even though the temporary's lifetime should
be extended past the end of the function. This commit tries to detect these
cases and construct them in a global memory region instead of a local one.

Reviewers: jordan_rose

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1133

llvm-svn: 187196
clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/lib/StaticAnalyzer/Core/MemRegion.cpp
clang/test/Analysis/stack-addr-ps.cpp
clang/test/Analysis/temporaries.cpp