diff options
author | Daniel Malea <daniel.malea@intel.com> | 2013-06-03 20:45:54 +0000 |
---|---|---|
committer | Daniel Malea <daniel.malea@intel.com> | 2013-06-03 20:45:54 +0000 |
commit | f051dbce73cd3657aa808fa2045b8bf674f606e7 (patch) | |
tree | 78c803aab2351ba41f1802a0e3a95b97acb98738 /lldb/source/Expression/IRForTarget.cpp | |
parent | c82f27af2ade152ec28082e1e510f048ec957d3b (diff) | |
download | bcm5719-llvm-f051dbce73cd3657aa808fa2045b8bf674f606e7.tar.gz bcm5719-llvm-f051dbce73cd3657aa808fa2045b8bf674f606e7.zip |
Fix crash (in optimized builds) due to invalid metadata operand
- ConstantDataArray is not a valid MDNode operand
- encode function-name strings in metadata by wrapping in an MDString instead
- should resolve reported by http://llvm-jenkins.debian.net/job/llvm-toolchain-quantal-binaries/architecture=amd64,distribution=quantal/173/
llvm-svn: 183153
Diffstat (limited to 'lldb/source/Expression/IRForTarget.cpp')
-rw-r--r-- | lldb/source/Expression/IRForTarget.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp index 778c6c0b183..65ff324b843 100644 --- a/lldb/source/Expression/IRForTarget.cpp +++ b/lldb/source/Expression/IRForTarget.cpp @@ -337,12 +337,10 @@ IRForTarget::RegisterFunctionMetadata(LLVMContext &context, if (Instruction *user_inst = dyn_cast<Instruction>(user)) { - Constant *name_array = ConstantDataArray::getString(context, StringRef(name)); - - ArrayRef<Value *> md_values(name_array); - - MDNode *metadata = MDNode::get(context, md_values); - + MDString* md_name = MDString::get(context, StringRef(name)); + + MDNode *metadata = MDNode::get(context, md_name); + user_inst->setMetadata("lldb.call.realName", metadata); } else |