1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/logging.h" 6 #include "base/memory/ref_counted.h" 7 8 struct Foo : public base::RefCounted<Foo> { 9 int dummy; 10 }; 11 12 // Rewriting the logging macros is a bit tricky. The CHECK_OP macros actually 13 // wrap a function where the actual comparison happens. Make sure that the tool 14 // is correctly matching the AST nodes generated by the macros and generating 15 // the appropriate replacements. TestFunction()16void TestFunction() { 17 scoped_refptr<Foo> a; 18 Foo* b; 19 20 CHECK_EQ(a.get(), b); 21 CHECK_EQ(b, a.get()); 22 23 CHECK_NE(a.get(), b); 24 CHECK_NE(b, a.get()); 25 26 CHECK(a.get()); 27 CHECK(!a.get()); 28 } 29