summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/GRSimpleVals.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-31 15:02:58 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-31 15:02:58 +0000
commitf646774f32dc2aaeb38eb7aa104ad839aff24ac7 (patch)
tree2c3fe51bf12e05581f697e7034b712c701e75ee7 /clang/lib/Analysis/GRSimpleVals.cpp
parenteb1242a083e12c4cce126dbeee19ad214ac6dbe3 (diff)
downloadbcm5719-llvm-f646774f32dc2aaeb38eb7aa104ad839aff24ac7.tar.gz
bcm5719-llvm-f646774f32dc2aaeb38eb7aa104ad839aff24ac7.zip
Added path-sensitive check for return statements that return the address
of a stack variable. This is the path-sensitive version of a check that is already done during semantic analysis. llvm-svn: 48980
Diffstat (limited to 'clang/lib/Analysis/GRSimpleVals.cpp')
-rw-r--r--clang/lib/Analysis/GRSimpleVals.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Analysis/GRSimpleVals.cpp b/clang/lib/Analysis/GRSimpleVals.cpp
index 94cedc03529..697d256119d 100644
--- a/clang/lib/Analysis/GRSimpleVals.cpp
+++ b/clang/lib/Analysis/GRSimpleVals.cpp
@@ -166,6 +166,11 @@ unsigned RunGRSimpleVals(CFG& cfg, Decl& CD, ASTContext& Ctx,
CheckerState->undef_receivers_begin(),
CheckerState->undef_receivers_end(),
"Receiver in message expression is an uninitialized value.");
+
+ EmitWarning(Diag, SrcMgr,
+ CheckerState->ret_stackaddr_begin(),
+ CheckerState->ret_stackaddr_end(),
+ "Address of stack-allocated variable returned.");
FoundationCheck.get()->ReportResults(Diag);
#ifndef NDEBUG
OpenPOWER on IntegriCloud