// Copyright (c) 2014 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. #ifndef THIRD_PARTY_BASE_LOGGING_H_ #define THIRD_PARTY_BASE_LOGGING_H_ #include #include #ifndef _WIN32 #define NULL_DEREF_IF_POSSIBLE __builtin_unreachable() #else #define NULL_DEREF_IF_POSSIBLE __assume(0) #endif #define CHECK(condition) \ if (!(condition)) { \ abort(); \ NULL_DEREF_IF_POSSIBLE;\ } // TODO(palmer): These are quick hacks to import PartitionAlloc with minimum // hassle. Look into pulling in the real DCHECK definition. It might be more // than we need, or have more dependencies than we want. In the meantime, this // is safe, at the cost of some performance. #define DCHECK CHECK #define DCHECK_EQ(x, y) CHECK((x) == (y)) #define DCHECK_IS_ON() true // TODO(palmer): Also a quick hack. IMMEDIATE_CRASH used to be simple in // Chromium base/, but it got way more complicated and has lots of base/ // dependencies now. Sad! #define IMMEDIATE_CRASH() abort(); #define NOTREACHED() assert(false) #endif // THIRD_PARTY_BASE_LOGGING_H_