- Use __builtin_trap for old GCC, too.
authorDmitry Gorbachev <gorbachev@reactos.org>
Sun, 24 Jan 2010 15:18:50 +0000 (15:18 +0000)
committerDmitry Gorbachev <gorbachev@reactos.org>
Sun, 24 Jan 2010 15:18:50 +0000 (15:18 +0000)
- KiEoiHelper, KiDispatchExceptionFromTrapFrame: mark noreturn.
- Return DECLSPEC_NORETURNs.

svn path=/trunk/; revision=45232

reactos/ntoskrnl/include/internal/i386/ke.h
reactos/ntoskrnl/include/internal/ke.h
reactos/ntoskrnl/include/internal/trap_x.h
reactos/ntoskrnl/ke/i386/exp.c
reactos/ntoskrnl/ke/i386/traphdlr.c

index 1dfcff9..c6abac3 100644 (file)
@@ -397,6 +397,7 @@ Ki386HandleOpcodeV86(
 
 VOID
 FASTCALL
+DECLSPEC_NORETURN
 KiEoiHelper(
     IN PKTRAP_FRAME TrapFrame
 );
@@ -415,6 +416,7 @@ KiExitV86Mode(
 
 VOID
 NTAPI
+DECLSPEC_NORETURN
 KiDispatchExceptionFromTrapFrame(
     IN NTSTATUS Code,
     IN ULONG_PTR Address,
@@ -548,7 +550,7 @@ Ke386SanitizeDr(IN PVOID DrAddress,
 //
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiDispatchException0Args(IN NTSTATUS Code,
                          IN ULONG_PTR Address,
                          IN PKTRAP_FRAME TrapFrame)
@@ -562,7 +564,7 @@ KiDispatchException0Args(IN NTSTATUS Code,
 //
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiDispatchException1Args(IN NTSTATUS Code,
                          IN ULONG_PTR Address,
                          IN ULONG P1,
@@ -577,7 +579,7 @@ KiDispatchException1Args(IN NTSTATUS Code,
 //
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiDispatchException2Args(IN NTSTATUS Code,
                          IN ULONG_PTR Address,
                          IN ULONG P1,
index a59f967..6945819 100644 (file)
@@ -1114,7 +1114,7 @@ KiIdleLoop(
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemFatalException(
     IN ULONG ExceptionCode,
     IN PKTRAP_FRAME TrapFrame
index 8c8b675..3672fca 100644 (file)
@@ -9,12 +9,14 @@
 #define _TRAP_X_
 
 //
-// Unreachable code hint for GCC 4.5.x, 4.4.x, and MSVC
+// Unreachable code hint for GCC 4.5.x, older GCC versions, and MSVC
 //
+#ifdef __GNUC__
 #if __GNUC__ * 100 + __GNUC_MINOR__ >= 405
 #define UNREACHABLE __builtin_unreachable()
-#elif __GNUC__ * 100 + __GNUC_MINOR__ >= 404
+#else
 #define UNREACHABLE __builtin_trap()
+#endif
 #elif _MSC_VER
 #define UNREACHABLE __assume(0)
 #else
@@ -188,7 +190,7 @@ KiUserTrap(IN PKTRAP_FRAME TrapFrame)
 //
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemCallReturn(IN PKTRAP_FRAME TrapFrame)
 {
     /* Restore nonvolatiles, EAX, and do a "jump" back to the kernel caller */
@@ -219,7 +221,7 @@ KiSystemCallReturn(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemCallTrapReturn(IN PKTRAP_FRAME TrapFrame)
 {
     /* Regular interrupt exit, but we only restore EAX as a volatile */
@@ -248,7 +250,7 @@ KiSystemCallTrapReturn(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemCallSysExitReturn(IN PKTRAP_FRAME TrapFrame)
 {
     /* Restore nonvolatiles, EAX, and do a SYSEXIT back to the user caller */
@@ -281,7 +283,7 @@ KiSystemCallSysExitReturn(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrapReturn(IN PKTRAP_FRAME TrapFrame)
 {
     /* Regular interrupt exit */
@@ -314,7 +316,7 @@ KiTrapReturn(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiEditedTrapReturn(IN PKTRAP_FRAME TrapFrame)
 {
     /* Regular interrupt exit */
@@ -351,7 +353,7 @@ KiEditedTrapReturn(IN PKTRAP_FRAME TrapFrame)
 //
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiExitTrap(IN PKTRAP_FRAME TrapFrame,
            IN UCHAR Skip)
 {
index ed6fb12..284ff19 100644 (file)
@@ -1107,7 +1107,7 @@ Handled:
 
 VOID
 NTAPI
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code,
                                  IN ULONG_PTR Address,
                                  IN ULONG ParameterCount,
@@ -1146,7 +1146,7 @@ KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code,
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemFatalException(IN ULONG ExceptionCode,
                        IN PKTRAP_FRAME TrapFrame)
 {
index 51d5457..96176df 100644 (file)
@@ -58,7 +58,7 @@ KiVdmTrap(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
 {
     /* Disable interrupts until we return */
@@ -73,7 +73,7 @@ KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiServiceExit(IN PKTRAP_FRAME TrapFrame,
               IN NTSTATUS Status)
 {
@@ -92,7 +92,7 @@ KiServiceExit(IN PKTRAP_FRAME TrapFrame,
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiServiceExit2(IN PKTRAP_FRAME TrapFrame)
 {
     /* Disable interrupts until we return */
@@ -109,7 +109,7 @@ KiServiceExit2(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiDebugHandler(IN PKTRAP_FRAME TrapFrame,
                IN ULONG Parameter1,
                IN ULONG Parameter2,
@@ -133,7 +133,7 @@ KiDebugHandler(IN PKTRAP_FRAME TrapFrame,
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
              IN PKTHREAD Thread,
              IN PFX_SAVE_AREA SaveArea)
@@ -290,7 +290,7 @@ KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap00Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -310,7 +310,7 @@ KiTrap00Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap01Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -330,7 +330,7 @@ KiTrap01Handler(IN PKTRAP_FRAME TrapFrame)
 }
 
 VOID
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap02(VOID)
 {
     PKTSS Tss, NmiTss;
@@ -477,7 +477,7 @@ KiTrap02(VOID)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap03Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -489,7 +489,7 @@ KiTrap03Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap04Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -509,7 +509,7 @@ KiTrap04Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap05Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -532,7 +532,7 @@ KiTrap05Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap06Handler(IN PKTRAP_FRAME TrapFrame)
 {
     PUCHAR Instruction;
@@ -578,7 +578,7 @@ KiTrap06Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap07Handler(IN PKTRAP_FRAME TrapFrame)
 {
     PKTHREAD Thread, NpxThread;
@@ -688,7 +688,7 @@ KiTrap07Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap08Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* FIXME: Not handled */
@@ -697,7 +697,7 @@ KiTrap08Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap09Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -710,7 +710,7 @@ KiTrap09Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -725,7 +725,7 @@ KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -738,7 +738,7 @@ KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -751,7 +751,7 @@ KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame,
                 IN ULONG EFlags)
 {
@@ -1036,7 +1036,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame,
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
 {
     PKTHREAD Thread;
@@ -1159,7 +1159,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -1172,7 +1172,7 @@ KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap10Handler(IN PKTRAP_FRAME TrapFrame)
 {
     PKTHREAD Thread;
@@ -1200,7 +1200,7 @@ KiTrap10Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap11Handler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -1213,7 +1213,7 @@ KiTrap11Handler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiTrap13Handler(IN PKTRAP_FRAME TrapFrame)
 {
     PKTHREAD Thread;
@@ -1316,7 +1316,7 @@ KiCallbackReturnHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -1333,7 +1333,7 @@ KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame)
 {
     /* Save trap frame */
@@ -1348,7 +1348,7 @@ KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame)
 
 VOID
 FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemCall(IN ULONG SystemCallNumber,
              IN PVOID Arguments)
 {
@@ -1439,7 +1439,7 @@ ExitCall:
 
 VOID
 FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemCallHandler(IN PKTRAP_FRAME TrapFrame,
                     IN ULONG ServiceNumber,
                     IN PVOID Arguments,
@@ -1481,7 +1481,7 @@ KiSystemCallHandler(IN PKTRAP_FRAME TrapFrame,
 
 VOID
 __attribute__((regparm(3)))
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiFastCallEntryHandler(IN ULONG ServiceNumber,
                        IN PVOID Arguments,
                        IN PKTRAP_FRAME TrapFrame)
@@ -1515,7 +1515,7 @@ KiFastCallEntryHandler(IN ULONG ServiceNumber,
 
 VOID
 __attribute__((regparm(3)))
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
 KiSystemServiceHandler(IN ULONG ServiceNumber,
                        IN PVOID Arguments,
                        IN PKTRAP_FRAME TrapFrame)