Files
linux/arch/cris/include/arch-v32/arch/bug.h
Rabin Vincent 98a725a57a CRISv32: add unreachable() to BUG()
Add an unreachable() in the BUG() implementations, to get rid of
several warnings similar to the one below:

 kernel/sched/core.c: In function 'pick_next_task':
 kernel/sched/core.c:2690:1: warning: control reaches end of non-void function [-Wreturn-type]

Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Jesper Nilsson <jespern@axis.com>
2015-09-05 00:33:24 +02:00

41 lines
969 B
C

#ifndef __ASM_CRISv32_ARCH_BUG_H
#define __ASM_CRISv32_ARCH_BUG_H
#include <linux/stringify.h>
#ifdef CONFIG_BUG
#ifdef CONFIG_DEBUG_BUGVERBOSE
/*
* The penalty for the in-band code path will be the size of break 14.
* All other stuff is done out-of-band with exception handlers.
*/
#define BUG() \
do { \
__asm__ __volatile__ ("0: break 14\n\t" \
".section .fixup,\"ax\"\n" \
"1:\n\t" \
"move.d %0, $r10\n\t" \
"move.d %1, $r11\n\t" \
"jump do_BUG\n\t" \
"nop\n\t" \
".previous\n\t" \
".section __ex_table,\"a\"\n\t" \
".dword 0b, 1b\n\t" \
".previous\n\t" \
: : "ri" (__FILE__), "i" (__LINE__)); \
unreachable(); \
} while (0)
#else
#define BUG() \
do { \
__asm__ __volatile__ ("break 14\n\t"); \
unreachable(); \
} while (0)
#endif
#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
#endif