mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2026-08-18 06:55:34 +03:00
Import chromium-64.0.3282.140
This commit is contained in:
37
base/check_example.cc
Normal file
37
base/check_example.cc
Normal file
@@ -0,0 +1,37 @@
|
||||
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// 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. 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);
|
||||
}
|
||||
|
||||
int main(int argc, const char* argv[]) {
|
||||
DoCheck(argc > 1);
|
||||
DoCheckEq(argc, 1);
|
||||
DoBlinkReleaseAssert(argc > 1);
|
||||
}
|
||||
Reference in New Issue
Block a user