Fix compile errors arising from compiling breakpad with clang.
These compile errors occur when building the check target with:
CXX=clang++-3.8
CXXFLAGS="-Werror -Wconstant-conversion -g -O2 -std=c++11"
src/processor/stackwalker_mips.cc:60:9: error: comparison of constant
18446744073709551615 with expression of type 'bool' is always false
[Werror,-Wtautological-constant-out-of-range-compare]
> 0xffffffffffffffff) {
^ ~~~~~~~~~~~~~~~~~~
src/processor/stackwalker_mips.cc:68:66: error: comparison of constant
4294967295 with expression of type 'bool' is always false
[-Werror,-Wtautological-constant-out-of-range-compare]
if ((memory_ && memory_->GetBase() + memory_->GetSize() - 1) > 0xffffffff) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
Change-Id: I29eed8f4a67b9feeb274aa1fc6c79a019135e8d6
Reviewed-on: https://chromium-review.googlesource.com/438445
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/src/processor/stackwalker_mips.cc b/src/processor/stackwalker_mips.cc
index f636850..a3df84c 100644
--- a/src/processor/stackwalker_mips.cc
+++ b/src/processor/stackwalker_mips.cc
@@ -55,22 +55,23 @@
StackFrameSymbolizer* resolver_helper)
: Stackwalker(system_info, memory, modules, resolver_helper),
context_(context) {
- if (context_->context_flags & MD_CONTEXT_MIPS64 ) {
- if ((memory_ && memory_->GetBase() + memory_->GetSize() - 1)
- > 0xffffffffffffffff) {
- BPLOG(ERROR) << "Memory out of range for stackwalking mips64: "
- << HexString(memory_->GetBase())
- << "+"
- << HexString(memory_->GetSize());
- memory_ = NULL;
- }
- } else {
- if ((memory_ && memory_->GetBase() + memory_->GetSize() - 1) > 0xffffffff) {
- BPLOG(ERROR) << "Memory out of range for stackwalking mips32: "
- << HexString(memory_->GetBase())
- << "+"
- << HexString(memory_->GetSize());
- memory_ = NULL;
+ if (memory_) {
+ if (context_->context_flags & MD_CONTEXT_MIPS64 ) {
+ if (0xffffffffffffffff - memory_->GetBase() < memory_->GetSize() - 1) {
+ BPLOG(ERROR) << "Memory out of range for stackwalking mips64: "
+ << HexString(memory_->GetBase())
+ << "+"
+ << HexString(memory_->GetSize());
+ memory_ = NULL;
+ }
+ } else {
+ if (0xffffffff - memory_->GetBase() < memory_->GetSize() - 1) {
+ BPLOG(ERROR) << "Memory out of range for stackwalking mips32: "
+ << HexString(memory_->GetBase())
+ << "+"
+ << HexString(memory_->GetSize());
+ memory_ = NULL;
+ }
}
}
}