summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/IRForTarget.cpp
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2011-01-21 22:30:25 +0000
committerSean Callanan <scallanan@apple.com>2011-01-21 22:30:25 +0000
commitf694a5573623996b400a74eaa0cdd94e44b33ea5 (patch)
treec5182a8d8bf271c26c69c5da980cbf9276d30dc1 /lldb/source/Expression/IRForTarget.cpp
parent8f3432c91698113e6eca52c01d37bdfd117edd0d (diff)
downloadbcm5719-llvm-f694a5573623996b400a74eaa0cdd94e44b33ea5.tar.gz
bcm5719-llvm-f694a5573623996b400a74eaa0cdd94e44b33ea5.zip
Added a safeguard to ensure that the user does not create variables that override persistent result variables.
llvm-svn: 124001
Diffstat (limited to 'lldb/source/Expression/IRForTarget.cpp')
-rw-r--r--lldb/source/Expression/IRForTarget.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp
index bdcb225aecb..bf4d7aea446 100644
--- a/lldb/source/Expression/IRForTarget.cpp
+++ b/lldb/source/Expression/IRForTarget.cpp
@@ -901,9 +901,23 @@ IRForTarget::RewritePersistentAllocs(llvm::Module &llvm_module, llvm::BasicBlock
Instruction &inst = *ii;
if (AllocaInst *alloc = dyn_cast<AllocaInst>(&inst))
- if (alloc->getName().startswith("$") &&
- !alloc->getName().startswith("$__lldb"))
+ {
+ llvm::StringRef alloc_name = alloc->getName();
+
+ if (alloc_name.startswith("$") &&
+ !alloc_name.startswith("$__lldb"))
+ {
+ if (alloc_name.find_first_of("0123456789") == 1)
+ {
+ if (log)
+ log->Printf("Rejecting a numeric persistent variable.");
+
+ return false;
+ }
+
pvar_allocs.push_back(alloc);
+ }
+ }
}
InstrIterator iter;
OpenPOWER on IntegriCloud