Просмотр исходного кода

assert: mark SDL_ExitProcess as SDL_NORETURN again.

Put in a hack to (hopefully) make MingW happy.

Fixes Bugzilla #4100.
Ryan C. Gordon 5 лет назад
Родитель
Сommit
f5a347853d
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      src/SDL_assert.c

+ 4 - 2
src/SDL_assert.c

@@ -123,14 +123,16 @@ static void SDL_GenerateAssertionReport(void)
 #if defined(__WATCOMC__)
 #pragma aux SDL_ExitProcess aborts;
 #endif
-static void SDL_ExitProcess(int exitcode)
+static SDL_NORETURN void SDL_ExitProcess(int exitcode)
 {
 #ifdef __WIN32__
     /* "if you do not know the state of all threads in your process, it is
        better to call TerminateProcess than ExitProcess"
        https://msdn.microsoft.com/en-us/library/windows/desktop/ms682658(v=vs.85).aspx */
     TerminateProcess(GetCurrentProcess(), exitcode);
-
+    /* MingW doesn't have TerminateProcess marked as noreturn, so add an
+       ExitProcess here that will never be reached but make MingW happy. */
+    ExitProcess(exitcode);
 #elif defined(__EMSCRIPTEN__)
     emscripten_cancel_main_loop();  /* this should "kill" the app. */
     emscripten_force_exit(exitcode);  /* this should "kill" the app. */