| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _SPARC_BUG_H | 
|  | 2 | #define _SPARC_BUG_H | 
|  | 3 |  | 
| Matt Mackall | c8538a7 | 2005-05-01 08:59:01 -0700 | [diff] [blame] | 4 | #ifdef CONFIG_BUG | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 5 | /* Only use the inline asm until a gcc release that can handle __builtin_trap | 
|  | 6 | * -rob 2003-06-25 | 
|  | 7 | * | 
|  | 8 | * gcc-3.3.1 and later will be OK -DaveM | 
|  | 9 | */ | 
|  | 10 | #if (__GNUC__ > 3) || \ | 
|  | 11 | (__GNUC__ == 3 && __GNUC_MINOR__ > 3) || \ | 
|  | 12 | (__GNUC__ == 3 && __GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ >= 4) | 
|  | 13 | #define __bug_trap()		__builtin_trap() | 
|  | 14 | #else | 
|  | 15 | #define __bug_trap()					\ | 
|  | 16 | __asm__ __volatile__ ("t 0x5\n\t" : : ) | 
|  | 17 | #endif | 
|  | 18 |  | 
|  | 19 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 
|  | 20 | extern void do_BUG(const char *file, int line); | 
|  | 21 | #define BUG() do {					\ | 
|  | 22 | do_BUG(__FILE__, __LINE__);			\ | 
|  | 23 | __bug_trap();				\ | 
|  | 24 | } while (0) | 
|  | 25 | #else | 
|  | 26 | #define BUG()		__bug_trap() | 
|  | 27 | #endif | 
|  | 28 |  | 
|  | 29 | #define HAVE_ARCH_BUG | 
| Matt Mackall | c8538a7 | 2005-05-01 08:59:01 -0700 | [diff] [blame] | 30 | #endif | 
|  | 31 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 32 | #include <asm-generic/bug.h> | 
|  | 33 |  | 
|  | 34 | #endif |