blob: d0a4f5b29a5635973571a9638900251379c56a41 [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// Copyright (c) 2012 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 PPAPI_CPP_LOGGING_H_
6#define PPAPI_CPP_LOGGING_H_
7
8/// @file
9/// This file defines two macro asserts.
10
11#include <cassert>
12
13/// This macro asserts that 'a' evaluates to true. In debug mode, this macro
14/// will crash the program if the assertion evaluates to false. It (typically)
15/// has no effect in release mode.
16#define PP_DCHECK(a) assert(a)
17
18/// This macro asserts false in debug builds. It's used in code paths that you
19/// don't expect to execute.
20///
21/// <strong>Example:</strong>
22///
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +010023/// @code
Torne (Richard Coles)58218062012-11-14 11:43:16 +000024/// if (!pointer) {
25/// // Pointer wasn't valid! This shouldn't happen.
26/// PP_NOTREACHED();
27/// return;
28/// }
29/// // Do stuff to the pointer, since you know it's valid.
30/// pointer->DoSomething();
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +010031/// @endcode
Torne (Richard Coles)58218062012-11-14 11:43:16 +000032#define PP_NOTREACHED() assert(false)
33
34#endif // PPAPI_CPP_LOGGING_H_