Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1659)

Unified Diff: base/check_example.cc

Issue 2559323007: Improve EAT_STREAM_PARAMETERS for Windows x86 (Closed)
Patch Set: back to ps7, extern ostream* Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | base/logging.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/check_example.cc
diff --git a/base/check_example.cc b/base/check_example.cc
index 4b3f4287dbf1455257dc067c4cda057d481e2e89..7b9d8e6a80e149cd065415d64c2b655e18d4f838 100644
--- a/base/check_example.cc
+++ b/base/check_example.cc
@@ -5,16 +5,27 @@
// This file is meant for analyzing the code generated by the CHECK
// macros in a small executable file that's easy to disassemble.
+#include "base/compiler_specific.h"
#include "base/logging.h"
// An official build shouldn't generate code to print out messages for
// the CHECK* macros, nor should it have the strings in the
-// executable.
+// executable. It is also important that the CHECK() function collapse to the
+// same implementation as RELEASE_ASSERT(), in particular on Windows x86.
+// Historically, the stream eating caused additional unnecessary instructions.
+// See https://crbug.com/672699.
+
+#define BLINK_RELEASE_ASSERT_EQUIVALENT(assertion) \
+ (UNLIKELY(!(assertion)) ? (IMMEDIATE_CRASH()) : (void)0)
void DoCheck(bool b) {
CHECK(b) << "DoCheck " << b;
}
+void DoBlinkReleaseAssert(bool b) {
+ BLINK_RELEASE_ASSERT_EQUIVALENT(b);
+}
+
void DoCheckEq(int x, int y) {
CHECK_EQ(x, y);
}
@@ -22,4 +33,5 @@ void DoCheckEq(int x, int y) {
int main(int argc, const char* argv[]) {
DoCheck(argc > 1);
DoCheckEq(argc, 1);
+ DoBlinkReleaseAssert(argc > 1);
}
« no previous file with comments | « no previous file | base/logging.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698