Commit 2419d26724efd804b747be5cfbf1c3332f2a8c9b

Sam Lantinga 2018-03-02T22:53:25

Progress fixing bug 4100 - errors and warnings after changeset 11917 Ozkan Sezer 2018-03-02 20:02:37 UTC http://hg.libsdl.org/SDL/rev/d702b0c54e52 resulted in an error and two warnings when compiled with mingw. 1. Error from SDL_windowstaskdialog.h: In file included from src/video/windows/SDL_windowsmessagebox.c:29:0: src/video/windows/SDL_windowstaskdialog.h:23:54: error: expected ')' before 'HWND' This is fixed by removing unnecessary annotations: 2. Warning from SDL_assert.c: src/SDL_assert.c: In function 'SDL_ExitProcess': src/SDL_assert.c:138:1: warning: 'noreturn' function does return Indeed ExitProcess() is prototyped with DECLSPEC_NORETURN, but TerminateProcess() is not. This can be rectified by adding an exit() call in there. Do NOTE, however, that requires building with a libc: 3. Warning from SDL_windowsmessagebox.c: src/video/windows/SDL_windowsmessagebox.c: In function 'WIN_ShowMessageBox': src/video/windows/SDL_windowsmessagebox.c:513:9: warning: 'nCancelButton' may be used uninitialized in this function My lazy solution was manually initializing nCancelButton to 0.

diff --git a/src/SDL_assert.c b/src/SDL_assert.c
index bee07a9..355637d 100644
--- a/src/SDL_assert.c
+++ b/src/SDL_assert.c
@@ -120,13 +120,13 @@ static void SDL_GenerateAssertionReport(void)
 }
 
 
-static SDL_NORETURN void SDL_ExitProcess(int exitcode)
+static 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);
+    /* "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);
 
 #elif defined(__EMSCRIPTEN__)
     emscripten_cancel_main_loop();  /* this should "kill" the app. */
@@ -138,7 +138,7 @@ static SDL_NORETURN void SDL_ExitProcess(int exitcode)
 }
 
 
-static SDL_NORETURN void SDL_AbortAssertion(void)
+static void SDL_AbortAssertion(void)
 {
     SDL_Quit();
     SDL_ExitProcess(42);
diff --git a/src/video/windows/SDL_windowsmessagebox.c b/src/video/windows/SDL_windowsmessagebox.c
index ce6813f..a81f9cf 100644
--- a/src/video/windows/SDL_windowsmessagebox.c
+++ b/src/video/windows/SDL_windowsmessagebox.c
@@ -560,6 +560,7 @@ WIN_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
     TaskConfig.cButtons = messageboxdata->numbuttons;
     pButtons = SDL_malloc(sizeof (TASKDIALOG_BUTTON) * messageboxdata->numbuttons);
     TaskConfig.nDefaultButton = 0;
+    nCancelButton = 0;
     for (i = 0; i < messageboxdata->numbuttons; i++)
     {
         pButton = &pButtons[messageboxdata->numbuttons-1-i];
diff --git a/src/video/windows/SDL_windowstaskdialog.h b/src/video/windows/SDL_windowstaskdialog.h
index 2d999b7..549ab26 100644
--- a/src/video/windows/SDL_windowstaskdialog.h
+++ b/src/video/windows/SDL_windowstaskdialog.h
@@ -20,7 +20,7 @@
 */
 #include <pshpack1.h>
 
-typedef HRESULT(CALLBACK *PFTASKDIALOGCALLBACK)(_In_ HWND hwnd, _In_ UINT msg, _In_ WPARAM wParam, _In_ LPARAM lParam, _In_ LONG_PTR lpRefData);
+typedef HRESULT(CALLBACK *PFTASKDIALOGCALLBACK)(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, LONG_PTR lpRefData);
 
 enum _TASKDIALOG_FLAGS
 {