Update no-inlining for a clang-cl world
With VC++ marking a function as non-optimized with MSVC_DISABLE_OPTIMIZE would
prevent it from being inlined, however with clang-cl that does not work,
leading to confusing crash stacks.
The fix is to use NOINLINE instead of MSVC_DISABLE_OPTIMIZE, which is
more explicit and specific anyway.
Bug: 873359
Change-Id: I374c15af002c1864abac1d9a26f20026cc941a07
Reviewed-on: https://chromium-review.googlesource.com/1179961
Reviewed-by: Avi Drissman <[email protected]>
Commit-Queue: David Bienvenu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#584531}
diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc
index f77d4a6..dd14f86a 100644
--- a/chrome/common/logging_chrome.cc
+++ b/chrome/common/logging_chrome.cc
@@ -94,14 +94,12 @@
// Assertion handler for logging errors that occur when dialogs are
// silenced. To record a new error, pass the log string associated
// with that error in the str parameter.
-MSVC_DISABLE_OPTIMIZE();
-void SilentRuntimeAssertHandler(const char* file,
- int line,
- const base::StringPiece message,
- const base::StringPiece stack_trace) {
+NOINLINE void SilentRuntimeAssertHandler(const char* file,
+ int line,
+ const base::StringPiece message,
+ const base::StringPiece stack_trace) {
base::debug::BreakDebugger();
}
-MSVC_ENABLE_OPTIMIZE();
// Suppresses error/assertion dialogs and enables the logging of
// those errors into silenced_errors_.