15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is meant for analyzing the code generated by the CHECK
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// macros in a small executable file that's easy to disassemble.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// An official build shouldn't generate code to print out messages for
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the CHECK* macros, nor should it have the strings in the
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// executable.
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DoCheck(bool b) {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHECK(b) << "DoCheck " << b;
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DoCheckEq(int x, int y) {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHECK_EQ(x, y);
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main(int argc, const char* argv[]) {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DoCheck(argc > 1);
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DoCheckEq(argc, 1);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
26