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_.