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 #ifndef PDFIUM_THIRD_PARTY_BASE_LOGGING_H_
6 #define PDFIUM_THIRD_PARTY_BASE_LOGGING_H_
7 
8 #include <assert.h>
9 #include <stdlib.h>
10 
11 #ifndef _WIN32
12 #define NULL_DEREF_IF_POSSIBLE \
13   *(reinterpret_cast<volatile char*>(NULL) + 42) = 0x42;
14 #else
15 #define NULL_DEREF_IF_POSSIBLE
16 #endif
17 
18 #define CHECK(condition)   \
19   if (!(condition)) {      \
20     abort();               \
21     NULL_DEREF_IF_POSSIBLE \
22   }
23 
24 #define NOTREACHED() assert(false)
25 
26 #endif  // PDFIUM_THIRD_PARTY_BASE_LOGGING_H_
27