1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #17574 from kfessel/p-fix-asserth

core/assert: avoid including panic.h with assert.h
This commit is contained in:
Karl Fessel 2022-02-15 11:57:55 +01:00 committed by GitHub
commit 726c461cb5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 40 additions and 29 deletions

View File

@ -20,6 +20,7 @@
#define PERIPH_CONF_H
#include "periph_cpu.h"
#include "kernel_defines.h"
#ifdef __cplusplus
extern "C" {

View File

@ -16,15 +16,17 @@
#include <stdio.h>
#include "assert.h"
#include "panic.h"
#ifdef DEBUG_ASSERT_VERBOSE
NORETURN void _assert_failure(const char *file, unsigned line)
__NORETURN void _assert_failure(const char *file, unsigned line)
{
printf("%s:%u => ", file, line); \
core_panic(PANIC_ASSERT_FAIL, assert_crash_message); \
printf("%s:%u => ", file, line);
core_panic(PANIC_ASSERT_FAIL, "FAILED ASSERTION.");
}
__NORETURN void _assert_panic(void)
{
core_panic(PANIC_ASSERT_FAIL, "FAILED ASSERTION.");
}
#else
typedef int dont_be_pedantic;
#endif
/** @} */

View File

@ -22,8 +22,6 @@
#ifndef ASSERT_H
#define ASSERT_H
#include "panic.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -51,9 +49,21 @@ extern "C" {
#endif
/**
* @brief the string that is passed to panic in case of a failing assertion
* @def __NORETURN
* @brief hidden (__) NORETURN definition
* @internal
*
* Duplicating the definitions of kernel_defines.h as these are unsuitable for
* system header files like the assert.h.
* kernel_defines.h would define symbols that are not reserved.
*/
extern const char assert_crash_message[];
#ifndef __NORETURN
#ifdef __GNUC__
#define __NORETURN __attribute__((noreturn))
#else /*__GNUC__*/
#define __NORETURN
#endif /*__GNUC__*/
#endif /*__NORETURN*/
#ifdef NDEBUG
#define assert(ignore)((void)0)
@ -68,8 +78,7 @@ extern const char assert_crash_message[];
* @param[in] file The file name of the file the assertion failed in
* @param[in] line The code line of @p file the assertion failed in
*/
NORETURN void _assert_failure(const char *file, unsigned line);
__NORETURN void _assert_failure(const char *file, unsigned line);
/**
* @brief abort the program if assertion is false
*
@ -103,10 +112,10 @@ NORETURN void _assert_failure(const char *file, unsigned line);
*/
#define assert(cond) ((cond) ? (void)0 : _assert_failure(RIOT_FILE_RELATIVE, \
__LINE__))
#else
#define assert(cond) ((cond) ? (void)0 : core_panic(PANIC_ASSERT_FAIL, \
assert_crash_message))
#endif
#else /* DEBUG_ASSERT_VERBOSE */
__NORETURN void _assert_panic(void);
#define assert(cond) ((cond) ? (void)0 : _assert_panic())
#endif /* DEBUG_ASSERT_VERBOSE */
#if !defined __cplusplus
#if __STDC_VERSION__ >= 201112L

View File

@ -21,10 +21,6 @@
* @author Kaspar Schleiser <kaspar@schleiser.de>
*/
#include <string.h>
#include <stdio.h>
#include "assert.h"
#include "kernel_defines.h"
#include "cpu.h"
#include "irq.h"
@ -43,8 +39,6 @@
#include "usb_board_reset.h"
#endif
const char assert_crash_message[] = "FAILED ASSERTION.";
/* flag preventing "recursive crash printing loop" */
static int crashed = 0;

View File

@ -39,6 +39,7 @@
#include "cpu.h"
#include "mutex.h"
#include "byteorder.h"
#include "panic.h"
#include "cpu_conf_stm32_common.h"

View File

@ -42,6 +42,7 @@
#include "irq.h"
#include "mutex.h"
#include "pm_layered.h"
#include "panic.h"
#include "periph/i2c.h"
#include "periph/gpio.h"

View File

@ -20,6 +20,7 @@
#include <assert.h>
#include <stdbool.h>
#include <stddef.h>
#include <inttypes.h>
#include <errno.h>

View File

@ -16,9 +16,7 @@
#include "assert.h"
#include "log.h"
#if IS_USED(MODULE_SAUL)
#include "saul_reg.h"
#endif
#include "sgp30.h"
#include "sgp30_params.h"
@ -28,7 +26,6 @@
*/
static sgp30_t sgp30_devs[SGP30_NUM];
#if IS_USED(MODULE_SAUL)
/**
* @brief Memory for the SAUL registry entries
*/
@ -41,7 +38,6 @@ static saul_reg_t saul_entries[SGP30_NUM * 2];
extern const saul_driver_t sgp30_saul_driver_eco2;
extern const saul_driver_t sgp30_saul_driver_tvoc;
/** @} */
#endif
void auto_init_sgp30(void)
{
@ -55,7 +51,6 @@ void auto_init_sgp30(void)
continue;
}
#if IS_USED(MODULE_SAUL)
/* eCO2 */
saul_entries[(i * 2)].dev = &(sgp30_devs[i]);
saul_entries[(i * 2)].name = sgp30_saul_info[i].name;
@ -69,6 +64,5 @@ void auto_init_sgp30(void)
/* register to saul */
saul_reg_add(&(saul_entries[(i * 2)]));
saul_reg_add(&(saul_entries[(i * 2) + 1]));
#endif
}
}

View File

@ -13,6 +13,7 @@
#include "fmt.h"
#include "net/nanocoap.h"
#include "hashes/sha256.h"
#include "kernel_defines.h"
/* internal value that can be read/written via CoAP */
static uint8_t internal_value = 0;

View File

@ -12,6 +12,7 @@
#include "net/nanocoap.h"
#include "suit/transport/coap.h"
#include "kernel_defines.h"
static ssize_t _riot_board_handler(coap_pkt_t *pkt, uint8_t *buf, size_t len, void *context)
{

View File

@ -31,6 +31,7 @@
ssize_t write(int fildes, const void *buf, size_t nbyte);
#endif
#include "kernel_defines.h"
#include "fmt.h"
static const char _hex_chars[16] = "0123456789ABCDEF";

View File

@ -21,6 +21,7 @@
#define NET_GNRC_IPV6_NIB_PL_H
#include <stdint.h>
#include <kernel_defines.h>
#if IS_USED(MODULE_EVTIMER)
#include "evtimer.h"

View File

@ -31,6 +31,7 @@
#include "net/ipv6/addr.h"
#include "timex.h"
#include <kernel_defines.h>
#ifdef __cplusplus
extern "C" {

View File

@ -39,6 +39,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/** @brief Version number */
#define UTLIST_VERSION 1.9.9
#include <stddef.h>
#include <assert.h>

View File

@ -25,6 +25,7 @@
#include "fmt.h"
#include "net/nanocoap.h"
#include "kernel_defines.h"
#define _MAX_PAYLOAD_LEN (16)

View File

@ -23,6 +23,7 @@
#include "assert.h"
#include "architecture.h"
#include "kernel_defines.h"
/* On all but 8bit architectures, at least one of the following should be
* misaligned */