--- adaint.c.c++	2013-02-02 18:52:49 +0900
+++ adaint.c	2013-02-02 19:12:29 +0900
@@ -2059,7 +2059,7 @@ __gnat_set_OWNER_ACL
     return;
 
   BuildExplicitAccessWithName
-    (&ea, username, AccessPermissions, AccessMode, NO_INHERITANCE);
+    (&ea, username, AccessPermissions, (ACCESS_MODE)AccessMode, NO_INHERITANCE);
 
   if (AccessMode == SET_ACCESS)
     {
@@ -2544,9 +2544,9 @@ add_handle (HANDLE h, int pid)
     {
       plist_max_length += 1000;
       HANDLES_LIST =
-        xrealloc (HANDLES_LIST, sizeof (HANDLE) * plist_max_length);
+        (HANDLE *)xrealloc (HANDLES_LIST, sizeof (HANDLE) * plist_max_length);
       PID_LIST =
-        xrealloc (PID_LIST, sizeof (int) * plist_max_length);
+        (int *)xrealloc (PID_LIST, sizeof (int) * plist_max_length);
     }
 
   HANDLES_LIST[plist_length] = h;
@@ -2935,7 +2935,7 @@ __gnat_locate_exec_on_path (char *exec_n
 
   #define EXPAND_BUFFER_SIZE 32767
 
-  wapath_val = alloca (EXPAND_BUFFER_SIZE);
+  wapath_val = (TCHAR *)alloca (EXPAND_BUFFER_SIZE);
 
   wapath_val [0] = '.';
   wapath_val [1] = ';';
@@ -2945,7 +2945,7 @@ __gnat_locate_exec_on_path (char *exec_n
 
   if (!res) wapath_val [0] = _T('\0');
 
-  apath_val = alloca (EXPAND_BUFFER_SIZE);
+  apath_val = (char *)alloca (EXPAND_BUFFER_SIZE);
 
   WS2SC (apath_val, wapath_val, EXPAND_BUFFER_SIZE);
   return __gnat_locate_exec (exec_name, apath_val);
--- initialize.c.c++	2013-02-02 19:15:50 +0900
+++ initialize.c	2013-02-02 19:20:21 +0900
@@ -88,14 +88,14 @@ append_arg (int *index, LPWSTR dir, LPWS
     {
       /* no dir prefix */
       dirlen = 0;
-      fullvalue = xmalloc ((vallen + 1) * sizeof(TCHAR));
+      fullvalue = (LPWSTR)xmalloc ((vallen + 1) * sizeof(TCHAR));
     }
   else
     {
       /* Add dir first */
       dirlen = _tcslen (dir);
 
-      fullvalue = xmalloc ((dirlen + vallen + 1) * sizeof(TCHAR));
+      fullvalue = (LPWSTR)xmalloc ((dirlen + vallen + 1) * sizeof(TCHAR));
       _tcscpy (fullvalue, dir);
     }
 
@@ -203,7 +203,7 @@ __gnat_initialize (void *eh ATTRIBUTE_UN
 		     if (ldir != NULL)
 		       {
 			 int n = ldir - wargv[k] + 1;
-			 dir = xmalloc ((n + 1) * sizeof (TCHAR));
+			 dir = (LPWSTR)xmalloc ((n + 1) * sizeof (TCHAR));
 			 _tcsncpy (dir, wargv[k], n);
 			 dir[n] = _T('\0');
 		       }
--- seh_init.c.c++	2013-02-02 19:40:51 +0900
+++ seh_init.c	2013-02-02 19:45:29 +0900
@@ -90,7 +90,7 @@ __gnat_SEH_error_handler (struct _EXCEPT
       */
       if ((ExceptionRecord->ExceptionInformation[1] & 3) != 0
 	  || IsBadCodePtr
-	  ((void *)(ExceptionRecord->ExceptionInformation[1] + 4096)))
+	  ((FARPROC)(ExceptionRecord->ExceptionInformation[1] + 4096)))
 	{
 	  exception = &program_error;
 	  msg = "EXCEPTION_ACCESS_VIOLATION";
@@ -193,7 +193,7 @@ __gnat_SEH_error_handler (struct _EXCEPT
 #endif
 
   Raise_From_Signal_Handler (exception, msg);
-  return 0; /* This is never reached, avoid compiler warning  */
+  return (EXCEPTION_DISPOSITION)0; /* This is never reached, avoid compiler warning  */
 }
 
 #if defined (_WIN64)
--- tracebak.c.c++	2013-02-02 20:20:41 +0900
+++ tracebak.c	2013-02-02 20:50:09 +0900
@@ -326,7 +326,7 @@ struct layout
 
 #if defined (__WIN32)
 #include <windows.h>
-#define IS_BAD_PTR(ptr) (IsBadCodePtr((void *)ptr))
+#define IS_BAD_PTR(ptr) (IsBadCodePtr((FARPROC)ptr))
 #elif defined (sun)
 #define IS_BAD_PTR(ptr) ((unsigned long)ptr == -1UL)
 #else
