|  | #ifndef _SPARC_BUG_H | 
|  | #define _SPARC_BUG_H | 
|  |  | 
|  | #ifdef CONFIG_BUG | 
|  | /* Only use the inline asm until a gcc release that can handle __builtin_trap | 
|  | * -rob 2003-06-25 | 
|  | * | 
|  | * gcc-3.3.1 and later will be OK -DaveM | 
|  | */ | 
|  | #if (__GNUC__ > 3) || \ | 
|  | (__GNUC__ == 3 && __GNUC_MINOR__ > 3) || \ | 
|  | (__GNUC__ == 3 && __GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ >= 4) | 
|  | #define __bug_trap()		__builtin_trap() | 
|  | #else | 
|  | #define __bug_trap()					\ | 
|  | __asm__ __volatile__ ("t 0x5\n\t" : : ) | 
|  | #endif | 
|  |  | 
|  | #ifdef CONFIG_DEBUG_BUGVERBOSE | 
|  | extern void do_BUG(const char *file, int line); | 
|  | #define BUG() do {					\ | 
|  | do_BUG(__FILE__, __LINE__);			\ | 
|  | __bug_trap();				\ | 
|  | } while (0) | 
|  | #else | 
|  | #define BUG()		__bug_trap() | 
|  | #endif | 
|  |  | 
|  | #define HAVE_ARCH_BUG | 
|  | #endif | 
|  |  | 
|  | #include <asm-generic/bug.h> | 
|  |  | 
|  | #endif |