summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2012-11-01 23:35:19 +0000
committerJason Molenda <jmolenda@apple.com>2012-11-01 23:35:19 +0000
commitcc57a383258d1f1d5ed7308268a0eda4d49aba61 (patch)
treee51846965e7e1a1e7777eb70c75cf7dc2ac5eb20
parent2508b9b8d3e291c3dd6414547c68ec2bdf35428f (diff)
downloadbcm5719-llvm-cc57a383258d1f1d5ed7308268a0eda4d49aba61.tar.gz
bcm5719-llvm-cc57a383258d1f1d5ed7308268a0eda4d49aba61.zip
Change DataExtractor::Dump() to use a series of if..else if
statements instead of a switch for the size of the floating point types; some architectures sizeof double and sizeof long double are the same and that's invalid in a switch. Fix the LLDB_DISABLE_PYTHON ifdef block in FormatManager::LoadObjCFormatters so it builds on arm again. llvm-svn: 167263
-rw-r--r--lldb/source/Core/DataExtractor.cpp22
-rw-r--r--lldb/source/Core/FormatManager.cpp3
2 files changed, 13 insertions, 12 deletions
diff --git a/lldb/source/Core/DataExtractor.cpp b/lldb/source/Core/DataExtractor.cpp
index d08679cd7da..d9255a408b6 100644
--- a/lldb/source/Core/DataExtractor.cpp
+++ b/lldb/source/Core/DataExtractor.cpp
@@ -1710,23 +1710,25 @@ DataExtractor::Dump (Stream *s,
case eFormatFloat:
{
std::ostringstream ss;
- switch (item_byte_size)
+ if (item_byte_size == sizeof(float))
{
- default:
- s->Printf("error: unsupported byte size (%u) for float format", item_byte_size);
- return offset;
- case sizeof(float):
ss.precision(std::numeric_limits<float>::digits10);
ss << GetFloat(&offset);
- break;
- case sizeof(double):
+ }
+ else if (item_byte_size == sizeof(double))
+ {
ss.precision(std::numeric_limits<double>::digits10);
ss << GetDouble(&offset);
- break;
- case sizeof(long double):
+ }
+ else if (item_byte_size == sizeof(long double))
+ {
ss.precision(std::numeric_limits<long double>::digits10);
ss << GetLongDouble(&offset);
- break;
+ }
+ else
+ {
+ s->Printf("error: unsupported byte size (%u) for float format", item_byte_size);
+ return offset;
}
ss.flush();
s->Printf("%s", ss.str().c_str());
diff --git a/lldb/source/Core/FormatManager.cpp b/lldb/source/Core/FormatManager.cpp
index e28c0d46e38..c93e94b1bbb 100644
--- a/lldb/source/Core/FormatManager.cpp
+++ b/lldb/source/Core/FormatManager.cpp
@@ -955,7 +955,7 @@ FormatManager::LoadObjCFormatters()
objc_category_sp->GetSummaryNavigator()->Add(ConstString("BOOL *"),
ObjC_BOOL_summary);
-
+#ifndef LLDB_DISABLE_PYTHON
// we need to skip pointers here since we are special casing a SEL* when retrieving its value
objc_flags.SetSkipPointers(true);
AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary", ConstString("SEL"), objc_flags);
@@ -963,7 +963,6 @@ FormatManager::LoadObjCFormatters()
AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary", ConstString("objc_selector"), objc_flags);
AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<true>, "SEL summary", ConstString("objc_selector *"), objc_flags);
-#ifndef LLDB_DISABLE_PYTHON
AddScriptSummary(objc_category_sp, "lldb.formatters.objc.Class.Class_Summary", ConstString("Class"), objc_flags);
#endif // LLDB_DISABLE_PYTHON
OpenPOWER on IntegriCloud