Path: blob/main/plugins/python/pyhelpers_cpychecker.h
1532 views
/*1* SPDX-License-Identifier: ISC2*3* Copyright (c) 2019 Robert Manner <[email protected]>4*5* Permission to use, copy, modify, and distribute this software for any6* purpose with or without fee is hereby granted, provided that the above7* copyright notice and this permission notice appear in all copies.8*9* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES10* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF11* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR12* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES13* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN14* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF15* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.16*/1718#ifndef SUDO_PLUGIN_PYHELPERS_CPYCHECKER_H19#define SUDO_PLUGIN_PYHELPERS_CPYCHECKER_H2021/* Helper macros for cpychecker */2223#if defined(WITH_CPYCHECKER_RETURNS_BORROWED_REF_ATTRIBUTE)24#define CPYCHECKER_RETURNS_BORROWED_REF \25__attribute__((cpychecker_returns_borrowed_ref))26#else27#define CPYCHECKER_RETURNS_BORROWED_REF28#endif2930#ifdef WITH_CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION_ATTRIBUTE31#define CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION \32__attribute__ ((cpychecker_negative_result_sets_exception))33#else34#define CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION35#endif3637#if defined(WITH_CPYCHECKER_STEALS_REFERENCE_TO_ARG_ATTRIBUTE)38#define CPYCHECKER_STEALS_REFERENCE_TO_ARG(n) \39__attribute__((cpychecker_steals_reference_to_arg(n)))40#else41#define CPYCHECKER_STEALS_REFERENCE_TO_ARG(n)42#endif4344#endif // SUDO_PLUGIN_PYHELPERS_CPYCHECKER_H454647