summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2012-10-12 17:34:26 +0000
committerJim Ingham <jingham@apple.com>2012-10-12 17:34:26 +0000
commit28eb57114d05dd100d9b4a56e0a00be85cd09e3b (patch)
tree61467023c9112981c8ff375d429b244c7b95c475 /lldb/source/Expression
parente87f41f43e5d5dafa5794a1f78c849a774ea989a (diff)
downloadbcm5719-llvm-28eb57114d05dd100d9b4a56e0a00be85cd09e3b.tar.gz
bcm5719-llvm-28eb57114d05dd100d9b4a56e0a00be85cd09e3b.zip
Bunch of cleanups for warnings found by the llvm static analyzer.
llvm-svn: 165808
Diffstat (limited to 'lldb/source/Expression')
-rw-r--r--lldb/source/Expression/ClangExpressionDeclMap.cpp12
-rw-r--r--lldb/source/Expression/ClangExpressionParser.cpp1
-rw-r--r--lldb/source/Expression/ClangUserExpression.cpp2
-rw-r--r--lldb/source/Expression/IRForTarget.cpp18
4 files changed, 21 insertions, 12 deletions
diff --git a/lldb/source/Expression/ClangExpressionDeclMap.cpp b/lldb/source/Expression/ClangExpressionDeclMap.cpp
index 5166300083d..5a575bd8303 100644
--- a/lldb/source/Expression/ClangExpressionDeclMap.cpp
+++ b/lldb/source/Expression/ClangExpressionDeclMap.cpp
@@ -117,12 +117,14 @@ ClangExpressionDeclMap::DidParse()
++entity_index)
{
ClangExpressionVariableSP var_sp(m_found_entities.GetVariableAtIndex(entity_index));
- if (var_sp &&
- var_sp->m_parser_vars.get() &&
- var_sp->m_parser_vars->m_lldb_value)
+ if (var_sp)
+ {
+ if (var_sp->m_parser_vars.get() &&
+ var_sp->m_parser_vars->m_lldb_value)
delete var_sp->m_parser_vars->m_lldb_value;
- var_sp->DisableParserVars();
+ var_sp->DisableParserVars();
+ }
}
for (size_t pvar_index = 0, num_pvars = m_parser_vars->m_persistent_vars->GetSize();
@@ -2706,7 +2708,7 @@ ClangExpressionDeclMap::FindExternalVisibleDecls (NameSearchContext &context,
append,
sc_list);
}
- else if (!namespace_decl)
+ else if (target && !namespace_decl)
{
const bool include_symbols = true;
diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp
index 1bf791bfc08..3d82b125d35 100644
--- a/lldb/source/Expression/ClangExpressionParser.cpp
+++ b/lldb/source/Expression/ClangExpressionParser.cpp
@@ -755,6 +755,7 @@ ClangExpressionParser::DisassembleFunction (Stream &stream, ExecutionContext &ex
{
ret.SetErrorToGenericError();
ret.SetErrorString("Couldn't find the target");
+ return ret;
}
lldb::DataBufferSP buffer_sp(new DataBufferHeap(func_range.second, 0));
diff --git a/lldb/source/Expression/ClangUserExpression.cpp b/lldb/source/Expression/ClangUserExpression.cpp
index 877c8d7cabc..c037d0238f9 100644
--- a/lldb/source/Expression/ClangUserExpression.cpp
+++ b/lldb/source/Expression/ClangUserExpression.cpp
@@ -552,7 +552,7 @@ ClangUserExpression::Execute (Stream &error_stream,
if (m_jit_start_addr != LLDB_INVALID_ADDRESS)
{
- lldb::addr_t struct_address;
+ lldb::addr_t struct_address = LLDB_INVALID_ADDRESS;
lldb::addr_t object_ptr = 0;
lldb::addr_t cmd_ptr = 0;
diff --git a/lldb/source/Expression/IRForTarget.cpp b/lldb/source/Expression/IRForTarget.cpp
index 02b901d469c..e0342c995ce 100644
--- a/lldb/source/Expression/IRForTarget.cpp
+++ b/lldb/source/Expression/IRForTarget.cpp
@@ -78,11 +78,14 @@ static std::string
PrintValue(const Value *value, bool truncate = false)
{
std::string s;
- raw_string_ostream rso(s);
- value->print(rso);
- rso.flush();
- if (truncate)
- s.resize(s.length() - 1);
+ if (value)
+ {
+ raw_string_ostream rso(s);
+ value->print(rso);
+ rso.flush();
+ if (truncate)
+ s.resize(s.length() - 1);
+ }
return s;
}
@@ -238,7 +241,7 @@ IRForTarget::GetFunctionAddress (llvm::Function *fun,
// Check for an alternate mangling for "std::basic_string<char>"
// that is part of the itanium C++ name mangling scheme
const char *name_cstr = name.GetCString();
- if (strncmp(name_cstr, "_ZNKSbIcE", strlen("_ZNKSbIcE")) == 0)
+ if (name_cstr && strncmp(name_cstr, "_ZNKSbIcE", strlen("_ZNKSbIcE")) == 0)
{
std::string alternate_mangling("_ZNKSs");
alternate_mangling.append (name_cstr + strlen("_ZNKSbIcE"));
@@ -492,6 +495,9 @@ IRForTarget::MaybeSetCastResult (lldb_private::TypeFromParser type)
}
}
+ if (!original_load)
+ return;
+
Value *loaded_value = original_load->getPointerOperand();
GlobalVariable *loaded_global = dyn_cast<GlobalVariable>(loaded_value);
OpenPOWER on IntegriCloud