Kokkos Core Kernels Package
Version of the Day
Loading...
Searching...
No Matches
core
src
Kokkos_Assert.hpp
1
//@HEADER
2
// ************************************************************************
3
//
4
// Kokkos v. 4.0
5
// Copyright (2022) National Technology & Engineering
6
// Solutions of Sandia, LLC (NTESS).
7
//
8
// Under the terms of Contract DE-NA0003525 with NTESS,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
12
// See https://kokkos.org/LICENSE for license information.
13
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
14
//
15
//@HEADER
16
17
#ifndef KOKKOS_ASSERT_HPP
18
#define KOKKOS_ASSERT_HPP
19
20
#include <Kokkos_Macros.hpp>
21
#include <Kokkos_Abort.hpp>
22
23
#if !defined(NDEBUG) || defined(KOKKOS_ENFORCE_CONTRACTS) || \
24
defined(KOKKOS_ENABLE_DEBUG)
25
#define KOKKOS_EXPECTS(...) \
26
{ \
27
if (!bool(__VA_ARGS__)) { \
28
::Kokkos::abort( \
29
"Kokkos contract violation:\n " \
30
" Expected precondition `" #__VA_ARGS__ \
31
"` evaluated false.\n" \
32
"Error at " KOKKOS_IMPL_TOSTRING(__FILE__) ":" KOKKOS_IMPL_TOSTRING( \
33
__LINE__) " \n"); \
34
} \
35
}
36
#define KOKKOS_ENSURES(...) \
37
{ \
38
if (!bool(__VA_ARGS__)) { \
39
::Kokkos::abort( \
40
"Kokkos contract violation:\n " \
41
" Ensured postcondition `" #__VA_ARGS__ \
42
"` evaluated false.\n" \
43
"Error at " KOKKOS_IMPL_TOSTRING(__FILE__) ":" KOKKOS_IMPL_TOSTRING( \
44
__LINE__) " \n"); \
45
} \
46
}
47
#define KOKKOS_ASSERT(...) \
48
{ \
49
if (!bool(__VA_ARGS__)) { \
50
::Kokkos::abort( \
51
"Kokkos contract violation:\n " \
52
" Asserted condition `" #__VA_ARGS__ \
53
"` evaluated false.\n" \
54
"Error at " KOKKOS_IMPL_TOSTRING(__FILE__) ":" KOKKOS_IMPL_TOSTRING( \
55
__LINE__) " \n"); \
56
} \
57
}
58
#else
// not debug mode
59
#define KOKKOS_EXPECTS(...)
60
#define KOKKOS_ENSURES(...)
61
#ifndef KOKKOS_ASSERT
62
#define KOKKOS_ASSERT(...)
63
#endif
// ifndef KOKKOS_ASSERT
64
#endif
// end debug mode ifdefs
65
66
#endif
/* #ifndef KOKKOS_ASSERT_HPP */
Generated by
1.9.8