swift
verify.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_VERIFY_H
7 #define SWIFT_MISC_VERIFY_H
8 
9 #include "misc/swiftmiscexport.h"
10 
11 namespace swift::misc::private_ns
12 {
14  inline void noop() {}
15 
17  SWIFT_MISC_EXPORT SWIFT_NO_INLINE void failedVerify(const char *condition, const char *filename, int line,
18  const char *context, const char *message, bool audit);
19 } // namespace swift::misc::private_ns
20 
22 
26 #define SWIFT_VERIFY_X(COND, WHERE, WHAT) \
27  ((COND) ? swift::misc::private_ns::noop() : \
28  swift::misc::private_ns::failedVerify(#COND, __FILE__, __LINE__, WHERE, WHAT, false))
29 #define SWIFT_VERIFY(COND) SWIFT_VERIFY_X(COND, nullptr, nullptr)
31 
33 
38 #define SWIFT_AUDIT_X(COND, WHERE, WHAT) \
39  ((COND) ? swift::misc::private_ns::noop() : \
40  swift::misc::private_ns::failedVerify(#COND, __FILE__, __LINE__, WHERE, WHAT, true))
41 #define SWIFT_AUDIT(COND) SWIFT_AUDIT_X(COND, nullptr, nullptr)
43 
44 #endif // SWIFT_MISC_VERIFY_H
#define SWIFT_NO_INLINE
Prevent function inlining.
#define SWIFT_MISC_EXPORT
Export a class or function from the library.