diff options
| author | Sean Callanan <scallanan@apple.com> | 2011-01-21 22:30:25 +0000 |
|---|---|---|
| committer | Sean Callanan <scallanan@apple.com> | 2011-01-21 22:30:25 +0000 |
| commit | f694a5573623996b400a74eaa0cdd94e44b33ea5 (patch) | |
| tree | c5182a8d8bf271c26c69c5da980cbf9276d30dc1 /lldb/source/Expression/IRForTarget.cpp | |
| parent | 8f3432c91698113e6eca52c01d37bdfd117edd0d (diff) | |
| download | bcm5719-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.cpp | 18 |
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; |

