/
githubmirror
/
libmicrohttpd
Обзор
Документация
Войти
/
githubmirror
/
libmicrohttpd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/microhttpd/mhd_panic.h
82 строки
2 KB
Evgeny Grin (Karlson2k)
Removed strings with filenames from binary when built without messages
19 фев 2024, 19:54
Не верифицирован
19 фев 2024, 19:54
2e0b075
Код
Авторство
О чём код?
/* This file is part of libmicrohttpd Copyright (C) 2007-2018 Daniel Pittman and Christian Grothoff Copyright (C) 2014-2022 Evgeny Grin (Karlson2k) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** * @file microhttpd/mhd_panic.h * @brief Declaration and macros for MHD_panic() * @author Daniel Pittman * @author Christian Grothoff * @author Karlson2k (Evgeny Grin) */ #ifndef MHD_PANIC_H #define MHD_PANIC_H 1 #include "mhd_options.h" #ifdef MHD_PANIC /* Override any possible defined MHD_PANIC macro with proper one */ #undef MHD_PANIC #endif /* MHD_PANIC */ /* If we have Clang or gcc >= 4.5, use __builtin_unreachable() */ #if defined(__clang__) || (defined(__GNUC__) && __GNUC__ > 4) || \ (defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ >= 5) #define BUILTIN_NOT_REACHED __builtin_unreachable () #elif defined(_MSC_FULL_VER) #define BUILTIN_NOT_REACHED __assume (0) #else #define BUILTIN_NOT_REACHED #endif /* The MHD_PanicCallback type, but without main header. */ /** * Handler for fatal errors. */ extern void (*mhd_panic) (void *cls, const char *file, unsigned int line, const char *reason); /** * Closure argument for "mhd_panic". */ extern void *mhd_panic_cls; #ifdef HAVE_MESSAGES /** * Trigger 'panic' action based on fatal errors. * * @param msg error message (const char *) */ #define MHD_PANIC(msg) do { mhd_panic (mhd_panic_cls, __FILE__, __LINE__, msg); \ BUILTIN_NOT_REACHED; } while (0) #else /** * Trigger 'panic' action based on fatal errors. * * @param msg error message (const char *) */ #define MHD_PANIC(msg) do { mhd_panic (mhd_panic_cls, NULL, __LINE__, NULL); \ BUILTIN_NOT_REACHED; } while (0) #endif #endif /* MHD_PANIC_H */