diff options
author | Nico Weber <thakis@chromium.org> | 2018-01-31 11:38:18 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@chromium.org> | 2018-01-31 16:39:12 +0000 |
commit | fd99ff473cc5ea247e24651abc91255cff388aa2 (patch) | |
tree | 65efc83cfebc38c4127c54198ba022b53d570f9d /src | |
parent | Do not use non-standard stdext::checked_array_iterator with libc++. (diff) | |
download | breakpad-fd99ff473cc5ea247e24651abc91255cff388aa2.tar.xz |
Make breakpad build with -Wimplicit-fallthrough (on linux)
Fixes a bug where MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST
would unintentionally get two reason strings appended.
Bug: 177475
Change-Id: I4957268328a242c7c75bbff8add98e9a48ba83ad
Reviewed-on: https://chromium-review.googlesource.com/895705
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/processor/minidump.cc | 19 | ||||
-rw-r--r-- | src/processor/minidump_processor.cc | 1 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc index 5defe41d..f62f74c2 100644 --- a/src/processor/minidump.cc +++ b/src/processor/minidump.cc @@ -61,6 +61,22 @@ #include "processor/basic_code_modules.h" #include "processor/logging.h" +// All intentional fallthroughs in breakpad are in this file, so define +// this macro locally. +// If you ever move this to a .h file, make sure it's defined in a +// private header file: clang suggests the first macro expanding to +// [[clang::fallthrough]] in its diagnostics, so if BP_FALLTHROUGH +// is visible in code depending on breakpad, clang would suggest +// BP_FALLTHROUGH for code depending on breakpad, instead of the +// client code's own fallthrough macro. +// TODO(thakis): Once everyone uses C++17, use its [[fallthrough]] instead. +#if defined(__clang__) +#define BP_FALLTHROUGH [[clang::fallthrough]] +#else +#define BP_FALLTHROUGH +#endif + + namespace google_breakpad { @@ -1969,6 +1985,7 @@ string MinidumpModule::code_identifier() const { break; } // Otherwise fall through to the case below. + BP_FALLTHROUGH; } case MD_OS_MAC_OS_X: @@ -5199,7 +5216,7 @@ bool Minidump::Read() { stream_type << ", but can only deal with one"; return false; } - // Fall through to default + BP_FALLTHROUGH; } default: { diff --git a/src/processor/minidump_processor.cc b/src/processor/minidump_processor.cc index c522adff..f2360e62 100644 --- a/src/processor/minidump_processor.cc +++ b/src/processor/minidump_processor.cc @@ -893,6 +893,7 @@ string MinidumpProcessor::GetCrashReason(Minidump *dump, uint64_t *address) { break; case MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST: reason.append("EXC_PPC_ALTIVECASSIST"); + break; default: reason.append(flags_string); BPLOG(INFO) << "Unknown exception reason " << reason; |