[PATCH v1 2/2] rtems-exeinfo.cpp: Fix division by zero errors
Ryan Long
ryan.long at oarcorp.com
Tue Jun 29 17:06:12 UTC 2021
CID 1503008: Division or modulo by zero
CID 1503015: Division or modulo by zero
Closes #4416
---
linkers/rtems-exeinfo.cpp | 20 ++++++++++++++++----
tester/covoar/ReportsBase.cc | 2 +-
2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/linkers/rtems-exeinfo.cpp b/linkers/rtems-exeinfo.cpp
index 1e6d4b4..ec51597 100644
--- a/linkers/rtems-exeinfo.cpp
+++ b/linkers/rtems-exeinfo.cpp
@@ -755,6 +755,8 @@ namespace rld
size_t total = 0;
size_t total_size = 0;
size_t inlined_size = 0;
+ double percentage;
+ double percentage_size;
dwarf::functions funcs_inlined;
dwarf::functions funcs_not_inlined;
func_counts counts;
@@ -798,14 +800,24 @@ namespace rld
}
}
+ if ( total == 0 ) {
+ percentage = 0;
+ } else {
+ percentage = ( funcs_inlined.size() * 100 ) / total;
+ }
+
+ if ( total_size == 0 ) {
+ percentage_size = 0;
+ } else {
+ percentage_size = ( inlined_size * 100 ) / total_size;
+ }
+
std::cout << "inlined funcs : " << funcs_inlined.size () << std::endl
<< " total funcs : " << total << std::endl
- << " % inline funcs : " << (funcs_inlined.size () * 100) / total << '%'
- << std::endl
+ << " % inline funcs : " << percentage << '%' << std::endl
<< " total size : " << total_size << std::endl
<< " inline size : " << inlined_size << std::endl
- << " % inline size : " << (inlined_size * 100) / total_size << '%'
- << std::endl;
+ << " % inline size : " << percentage_size << '%' << std::endl;
auto count_compare = [](func_count const & a, func_count const & b) {
return a.size != b.size? a.size < b.size : a.count > b.count;
diff --git a/tester/covoar/ReportsBase.cc b/tester/covoar/ReportsBase.cc
index 31dc429..b54f550 100644
--- a/tester/covoar/ReportsBase.cc
+++ b/tester/covoar/ReportsBase.cc
@@ -482,7 +482,7 @@ void ReportsBase::WriteSummaryReport(
}
}
- if (totalBytes == 0) {
+ if ( totalBytes == 0 ) {
percentage = 0;
} else {
percentage = (double) notExecuted;
--
1.8.3.1
More information about the devel
mailing list