changes introduced.

all file: add __attribute__ ((regparm (x))) explicitly in function definition.
environ.cc fix findenv_func that were not prefixed __stdcall
exception.h add body to prevent compilation error with -DDEBUG_EXCEPTION


fhandler_floppy.cc
hookapi.cc
syscalls.cc
in6.h
passwd.cc

merged with [PATCHes] Misc aliasing fixes for building DLL with gcc-4.5.0
Index: winsup/cygwin/environ.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/environ.cc,v
retrieving revision 1.183
diff -u -r1.183 environ.cc
--- winsup/cygwin/environ.cc    18 May 2010 14:30:50 -0000      1.183
+++ winsup/cygwin/environ.cc    9 Feb 2011 13:47:57 -0000
@@ -156,7 +156,7 @@
   to the beginning of the environment variable name.  *in_posix is any
   known posix value for the environment variable. Returns a pointer to
   the appropriate conversion structure.  */
-win_env * __stdcall
+win_env * __stdcall __attribute__ ((regparm (3)))
 getwinenv (const char *env, const char *in_posix, win_env *temp)
 {
   if (!conv_start_chars[(unsigned char)*env])
@@ -219,7 +219,7 @@
   free (src);
   MALLOC_CHECK;
 }
-
+typedef char* (__stdcall *pfnenv)(const char*,int*);
 /* Returns pointer to value associated with name, if any, else NULL.
   Sets offset to be the offset of the name/value combination in the
   environment array, for use by setenv(3) and unsetenv(3).
@@ -253,7 +253,7 @@
 
 /* Primitive getenv before the environment is built.  */
 
-static char __stdcall *
+static char* __stdcall
 getearly (const char * name, int *)
 {
   char *ret;
@@ -275,7 +275,7 @@
   return NULL;
 }
 
-static char * (*findenv_func)(const char *, int *) = (char * (*)(const char *, 
int *)) getearly;
+static pfnenv findenv_func = &getearly;
 
 /* Returns ptr to value associated with name, if any, else NULL.  */
 
@@ -830,7 +830,7 @@
   FreeEnvironmentStringsW (rawenv);
 
 out:
-  findenv_func = (char * (*)(const char*, int*)) my_findenv;
+  findenv_func = my_findenv;
   __cygwin_environ = envp;
   update_envptrs ();
   if (envp_passed_in)
@@ -856,7 +856,7 @@
   return strcmp (*p, *q);
 }
 
-char * __stdcall
+char * __stdcall __attribute__ ((regparm (3)))
 getwinenveq (const char *name, size_t namelen, int x)
 {
   WCHAR name0[namelen - 1];
@@ -956,7 +956,7 @@
    filled with null terminated strings, terminated by double null characters.
    Converts environment variables noted in conv_envvars into win32 form
    prior to placing them in the string.  */
-char ** __stdcall
+char ** __stdcall __attribute__ ((regparm (3)))
 build_env (const char * const *envp, PWCHAR &envblock, int &envc,
           bool no_envblock)
 {
Index: winsup/cygwin/exception.h
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/exception.h,v
retrieving revision 1.3
diff -u -r1.3 exception.h
--- winsup/cygwin/exception.h   1 Mar 2010 06:39:47 -0000       1.3
+++ winsup/cygwin/exception.h   9 Feb 2011 13:47:57 -0000
@@ -20,8 +20,8 @@
   static int handle (EXCEPTION_RECORD *, exception_list *, CONTEXT *, void *);
 public:
 #ifdef DEBUG_EXCEPTION
-  exception ();
-  ~exception ();
+  exception (){};
+  ~exception (){};
 #else
   exception () __attribute__ ((always_inline))
   {
Index: winsup/cygwin/fhandler_floppy.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_floppy.cc,v
retrieving revision 1.57
diff -u -r1.57 fhandler_floppy.cc
--- winsup/cygwin/fhandler_floppy.cc    12 Jan 2011 09:16:51 -0000      1.57
+++ winsup/cygwin/fhandler_floppy.cc    9 Feb 2011 13:47:58 -0000
@@ -57,7 +57,8 @@
        __seterrno ();
       else
        {
-         di = &((DISK_GEOMETRY_EX *) dbuf)->Geometry;
+         DISK_GEOMETRY_EX *dgx = (DISK_GEOMETRY_EX *) dbuf;
+         di = &dgx->Geometry;
          if (!DeviceIoControl (get_handle (),
                                IOCTL_DISK_GET_PARTITION_INFO_EX, NULL, 0,
                                pbuf, 256, &bytes_read, NULL))
Index: winsup/cygwin/hookapi.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/hookapi.cc,v
retrieving revision 1.19
diff -u -r1.19 hookapi.cc
--- winsup/cygwin/hookapi.cc    11 Sep 2008 04:34:23 -0000      1.19
+++ winsup/cygwin/hookapi.cc    9 Feb 2011 13:47:59 -0000
@@ -252,7 +252,7 @@
   fh.origfn = NULL;
   fh.hookfn = fn;
   char *buf = (char *) alloca (strlen (name) + sizeof ("_64"));
-  int i;
+  int i = -1;
   // Iterate through each import descriptor, and redirect if appropriate
   for (PIMAGE_IMPORT_DESCRIPTOR pd = pdfirst; pd->FirstThunk; pd++)
     {
Index: winsup/cygwin/syscalls.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/syscalls.cc,v
retrieving revision 1.573
diff -u -r1.573 syscalls.cc
--- winsup/cygwin/syscalls.cc   31 Jan 2011 13:58:59 -0000      1.573
+++ winsup/cygwin/syscalls.cc   9 Feb 2011 13:48:01 -0000
@@ -1569,7 +1569,7 @@
 }
 
 /* Cygwin internal */
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 stat_worker (path_conv &pc, struct __stat64 *buf)
 {
   int res = -1;
@@ -3765,8 +3765,12 @@
     status = UuidCreate (&Uuid);
   if (status == RPC_S_OK)
     {
-      data[4] = *(unsigned *)&Uuid.Data4[2];
-      data[5] = *(unsigned short *)&Uuid.Data4[6];
+      unsigned d4;
+      unsigned short d5;
+      memcpy (&d4, &Uuid.Data4[2], sizeof (unsigned));
+      memcpy (&d5, &Uuid.Data4[6], sizeof (unsigned short));
+      data[4] = d4;
+      data[5] = d5;
       // Unfortunately Windows will sometimes pick a virtual Ethernet card
       // e.g. VMWare Virtual Ethernet Adaptor
       debug_printf ("MAC address of first Ethernet card: 
%02x:%02x:%02x:%02x:%02x:%02x",
Index: winsup/cygwin/include/cygwin/in6.h
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/include/cygwin/in6.h,v
retrieving revision 1.6
diff -u -r1.6 in6.h
--- winsup/cygwin/include/cygwin/in6.h  18 Jan 2007 10:25:40 -0000      1.6
+++ winsup/cygwin/include/cygwin/in6.h  9 Feb 2011 13:48:01 -0000
@@ -16,10 +16,7 @@
 #define INET6_ADDRSTRLEN 46
 
 #define IN6_ARE_ADDR_EQUAL(a, b) \
-       (((const uint32_t *)(a))[0] == ((const uint32_t *)(b))[0] \
-        && ((const uint32_t *)(a))[1] == ((const uint32_t *)(b))[1] \
-        && ((const uint32_t *)(a))[2] == ((const uint32_t *)(b))[2] \
-        && ((const uint32_t *)(a))[3] == ((const uint32_t *)(b))[3])
+       (!memcmp ((a), (b), 4 * sizeof (uint32_t)))
 
 #define IN6_IS_ADDR_UNSPECIFIED(addr) \
        (((const uint32_t *)(addr))[0] == 0 \
Index: winsup/cygwin/passwd.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/passwd.cc,v
retrieving revision 1.86
diff -u -r1.86 passwd.cc
--- winsup/cygwin/passwd.cc     28 Sep 2010 14:49:31 -0000      1.86
+++ winsup/cygwin/passwd.cc     9 Feb 2011 13:48:00 -0000
@@ -98,11 +98,14 @@
     {
       endptr = strchr (sid_string + 2, 0) - 1;
       for (int i = 0; i < pr.curr_lines; i++)
-       if ((pw = passwd_buf + i)->pw_dir > pw->pw_gecos + 8)
-         for (ptr1 = endptr, ptr2 = pw->pw_dir - 2;
-              *ptr1 == *ptr2; ptr2--)
+       {
+         pw = passwd_buf + i;
+         if (pw->pw_dir > pw->pw_gecos + 8)
+           for (ptr1 = endptr, ptr2 = pw->pw_dir - 2;
+             *ptr1 == *ptr2; ptr2--)
            if (!*--ptr1)
              return pw;
+       }
     }
   return NULL;
 }      
Index: winsup/cygwin/cygheap.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/cygheap.cc,v
retrieving revision 1.155
diff -u -r1.155 cygheap.cc
--- winsup/cygwin/cygheap.cc    31 May 2010 18:52:02 -0000      1.155
+++ winsup/cygwin/cygheap.cc    9 Feb 2011 13:47:57 -0000
@@ -178,10 +178,10 @@
 
 /* Copyright (C) 1997, 2000 DJ Delorie */
 
-static void *_cmalloc (unsigned size) __attribute ((regparm(1)));
-static void *__stdcall _crealloc (void *ptr, unsigned size) __attribute 
((regparm(2)));
+static void *__stdcall _cmalloc (unsigned size) __attribute__ ((regparm(1)));
+static void *__stdcall _crealloc (void *ptr, unsigned size) __attribute__ 
((regparm(2)));
 
-static void *__stdcall
+static void *__stdcall __attribute__ ((regparm(1)))
 _cmalloc (unsigned size)
 {
   _cmalloc_entry *rvc;
@@ -215,7 +215,7 @@
   return rvc->data;
 }
 
-static void __stdcall
+static void __stdcall __attribute__((regparm(1)))
 _cfree (void *ptr)
 {
   cygheap_protect.acquire ();
@@ -226,7 +226,7 @@
   cygheap_protect.release ();
 }
 
-static void *__stdcall
+static void *__stdcall __attribute__ ((regparm(2)))
 _crealloc (void *ptr, unsigned size)
 {
   void *newptr;
@@ -295,7 +295,7 @@
   return cmalloc (x, n, "cmalloc");
 }
 
-inline static void *
+inline static void * __stdcall __attribute__ ((regparm(2)))
 crealloc (void *s, DWORD n, const char *fn)
 {
   MALLOC_CHECK;
@@ -309,19 +309,19 @@
   return creturn (t, c, n, fn);
 }
 
-extern "C" void *__stdcall
+extern "C" void *__stdcall __attribute__ ((regparm(2)))
 crealloc (void *s, DWORD n)
 {
   return crealloc (s, n, NULL);
 }
 
-extern "C" void *__stdcall
+extern "C" void *__stdcall __attribute__ ((regparm(2)))
 crealloc_abort (void *s, DWORD n)
 {
   return crealloc (s, n, "crealloc");
 }
 
-extern "C" void __stdcall
+extern "C" void __stdcall __attribute__ ((regparm(1)))
 cfree (void *s)
 {
   assert (!inheap (s));
@@ -329,7 +329,7 @@
   MALLOC_CHECK;
 }
 
-extern "C" void __stdcall
+extern "C" void __stdcall  __attribute__ ((regparm(2)))
 cfree_and_set (char *&s, char *what)
 {
   if (s && s != almost_null)
@@ -349,19 +349,19 @@
   return creturn (x, c, n, fn);
 }
 
-extern "C" void *__stdcall
+extern "C" void *__stdcall  __attribute__ ((regparm(3)))
 ccalloc (cygheap_types x, DWORD n, DWORD size)
 {
   return ccalloc (x, n, size, NULL);
 }
 
-extern "C" void *__stdcall
+extern "C" void *__stdcall  __attribute__ ((regparm(3)))
 ccalloc_abort (cygheap_types x, DWORD n, DWORD size)
 {
   return ccalloc (x, n, size, "ccalloc");
 }
 
-extern "C" PWCHAR __stdcall
+extern "C" PWCHAR __stdcall __attribute__ ((regparm(1)))
 cwcsdup (const PWCHAR s)
 {
   MALLOC_CHECK;
@@ -373,7 +373,7 @@
   return p;
 }
 
-extern "C" PWCHAR __stdcall
+extern "C" PWCHAR __stdcall __attribute__ ((regparm(1)))
 cwcsdup1 (const PWCHAR s)
 {
   MALLOC_CHECK;
@@ -385,7 +385,7 @@
   return p;
 }
 
-extern "C" char *__stdcall
+extern "C" char *__stdcall __attribute__ ((regparm(1)))
 cstrdup (const char *s)
 {
   MALLOC_CHECK;
@@ -397,7 +397,7 @@
   return p;
 }
 
-extern "C" char *__stdcall
+extern "C" char *__stdcall __attribute__ ((regparm(1)))
 cstrdup1 (const char *s)
 {
   MALLOC_CHECK;
Index: winsup/cygwin/dcrt0.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/dcrt0.cc,v
retrieving revision 1.390
diff -u -r1.390 dcrt0.cc
--- winsup/cygwin/dcrt0.cc      26 Dec 2010 21:11:37 -0000      1.390
+++ winsup/cygwin/dcrt0.cc      9 Feb 2011 13:47:57 -0000
@@ -1034,7 +1034,7 @@
   sig_dispatch_pending (true);
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (1), noreturn))
 do_exit (int status)
 {
   syscall_printf ("do_exit (%d), exit_state %d", status, exit_state);
@@ -1198,7 +1198,7 @@
 }
 
 #ifdef DEBUGGING
-void __stdcall
+void __stdcall __attribute__((regparm (1)))
 cygbench (const char *s)
 {
   if (GetEnvironmentVariableA ("CYGWIN_BENCH", NULL, 0))
Index: winsup/cygwin/debug.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/debug.cc,v
retrieving revision 1.63
diff -u -r1.63 debug.cc
--- winsup/cygwin/debug.cc      5 Aug 2009 04:44:27 -0000       1.63
+++ winsup/cygwin/debug.cc      9 Feb 2011 13:47:57 -0000
@@ -103,7 +103,7 @@
   return NULL;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 modify_handle (const char *func, int ln, HANDLE h, const char *name, bool inh)
 {
   lock_debug here;
@@ -119,7 +119,7 @@
 }
 
 /* Add a handle to the linked list of known handles. */
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 add_handle (const char *func, int ln, HANDLE h, const char *name, bool inh)
 {
   handle_list *hl;
@@ -213,7 +213,7 @@
 
 /* Close a known handle.  Complain if !force and closing a known handle or
    if the name of the handle being closed does not match the registered name. 
*/
-bool __stdcall
+bool __stdcall __attribute__ ((regparm (3)))
 close_handle (const char *func, int ln, HANDLE h, const char *name, bool force)
 {
   bool ret;
Index: winsup/cygwin/errno.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/errno.cc,v
retrieving revision 1.75
diff -u -r1.75 errno.cc
--- winsup/cygwin/errno.cc      19 Jan 2011 09:15:17 -0000      1.75
+++ winsup/cygwin/errno.cc      9 Feb 2011 13:47:57 -0000
@@ -301,7 +301,7 @@
 int NO_COPY_INIT _sys_nerr = sizeof (_sys_errlist) / sizeof (_sys_errlist[0]);
 };
 
-int __stdcall
+int __stdcall __attribute__ ((regparm(2)))
 geterrno_from_win_error (DWORD code, int deferrno)
 {
   for (int i = 0; errmap[i].w != 0; ++i)
@@ -318,7 +318,7 @@
 
 /* seterrno_from_win_error: Given a Windows error code, set errno
    as appropriate. */
-void __stdcall
+void __stdcall __attribute__ ((regparm(3)))
 seterrno_from_win_error (const char *file, int line, DWORD code)
 {
   syscall_printf ("%s:%d windows error %d", file, line, code);
@@ -327,7 +327,7 @@
 
 /* seterrno_from_nt_status: Given a NT status code, set errno
    as appropriate. */
-void __stdcall
+void __stdcall __attribute__ ((regparm(3)))
 seterrno_from_nt_status (const char *file, int line, NTSTATUS status)
 {
   DWORD code = RtlNtStatusToDosError (status);
@@ -338,7 +338,7 @@
 }
 
 /* seterrno: Set `errno' based on GetLastError (). */
-void __stdcall
+void __stdcall __attribute__ ((regparm(2)))
 seterrno (const char *file, int line)
 {
   seterrno_from_win_error (file, line, GetLastError ());
Index: winsup/cygwin/exceptions.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/exceptions.cc,v
retrieving revision 1.351
diff -u -r1.351 exceptions.cc
--- winsup/cygwin/exceptions.cc 24 Oct 2010 15:26:05 -0000      1.351
+++ winsup/cygwin/exceptions.cc 9 Feb 2011 13:47:57 -0000
@@ -450,7 +453,7 @@
 
 extern "C" DWORD __stdcall RtlUnwind (void *, void *, void *, DWORD);
 static void __stdcall rtl_unwind (exception_list *, PEXCEPTION_RECORD) 
__attribute__ ((noinline, regparm (3)));
-void __stdcall
+void __stdcall __attribute__ ((noinline, regparm (3)))
 rtl_unwind (exception_list *frame, PEXCEPTION_RECORD e)
 {
   __asm__ ("\n\
@@ -797,7 +800,7 @@
   return interrupted;
 }
 
-void __stdcall
+void __stdcall __attribute__((regparm(3)))
 _cygtls::interrupt_setup (int sig, void *handler, struct sigaction& siga)
 {
   push ((__stack_t) sigdelayed);
@@ -1154,7 +1157,7 @@
   mask_sync.release ();
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (1)))
 sigpacket::process ()
 {
   DWORD continue_now;
Index: winsup/cygwin/fhandler.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler.cc,v
retrieving revision 1.373
diff -u -r1.373 fhandler.cc
--- winsup/cygwin/fhandler.cc   1 Feb 2011 08:46:48 -0000       1.373
+++ winsup/cygwin/fhandler.cc   9 Feb 2011 13:47:57 -0000
@@ -644,7 +644,7 @@
    an \n.  If last char is an \r, look ahead one more char, if \n then
    modify \r, if not, remember char.
 */
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_base::read (void *in_ptr, size_t& len)
 {
   char *ptr = (char *) in_ptr;
@@ -1006,14 +1006,14 @@
   return res;
 }
 
-ssize_t __stdcall
+ssize_t __stdcall __attribute__ ((regparm (3)))
 fhandler_base::pread (void *, size_t, _off64_t)
 {
   set_errno (ESPIPE);
   return -1;
 }
 
-ssize_t __stdcall
+ssize_t __stdcall __attribute__ ((regparm (3)))
 fhandler_base::pwrite (void *, size_t, _off64_t)
 {
   set_errno (ESPIPE);
@@ -1078,7 +1078,7 @@
   return -1;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_base::fstat (struct __stat64 *buf)
 {
   debug_printf ("here");
@@ -1121,7 +1121,7 @@
   return 0;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_base::fstatvfs (struct statvfs *sfs)
 {
   /* If we hit this base implementation, it's some device in /dev.
@@ -1794,7 +1794,7 @@
   return res;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_base_overlapped::read_overlapped (void *ptr, size_t& len)
 {
   DWORD nbytes;
Index: winsup/cygwin/fhandler_clipboard.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_clipboard.cc,v
retrieving revision 1.44
diff -u -r1.44 fhandler_clipboard.cc
--- winsup/cygwin/fhandler_clipboard.cc 24 Jul 2009 20:54:33 -0000      1.44
+++ winsup/cygwin/fhandler_clipboard.cc 9 Feb 2011 13:47:57 -0000
@@ -180,7 +180,7 @@
     }
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_dev_clipboard::read (void *ptr, size_t& len)
 {
   HGLOBAL hglb;
Index: winsup/cygwin/fhandler_console.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_console.cc,v
retrieving revision 1.222
diff -u -r1.222 fhandler_console.cc
--- winsup/cygwin/fhandler_console.cc   7 Feb 2011 11:18:19 -0000       1.222
+++ winsup/cygwin/fhandler_console.cc   9 Feb 2011 13:47:58 -0000
@@ -249,7 +249,7 @@
                 || dev_state->use_mouse >= 3));
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_console::read (void *pv, size_t& buflen)
 {
   HANDLE h = get_io_handle ();
Index: winsup/cygwin/fhandler_disk_file.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_disk_file.cc,v
retrieving revision 1.348
diff -u -r1.348 fhandler_disk_file.cc
--- winsup/cygwin/fhandler_disk_file.cc 26 Jan 2011 10:55:13 -0000      1.348
+++ winsup/cygwin/fhandler_disk_file.cc 9 Feb 2011 13:47:58 -0000
@@ -290,7 +290,7 @@
    This returns the content of a struct fattr3 as defined in RFC 1813.
    The content is the NFS equivalent of struct stat. so there's not much
    to do here except for copying. */
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_base::fstat_by_nfs_ea (struct __stat64 *buf)
 {
   fattr3 *nfs_attr = pc.nfsattr ();
@@ -330,7 +330,7 @@
   return 0;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_base::fstat_by_handle (struct __stat64 *buf)
 {
   /* Don't use FileAllInformation info class.  It returns a pathname rather
@@ -389,7 +389,7 @@
   return fstat_helper (buf, fsi.NumberOfLinks);
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_base::fstat_by_name (struct __stat64 *buf)
 {
   NTSTATUS status;
@@ -434,7 +434,7 @@
   return fstat_helper (buf, 1);
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_base::fstat_fs (struct __stat64 *buf)
 {
   int res = -1;
@@ -478,7 +478,7 @@
   return res;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (3)))
 fhandler_base::fstat_helper (struct __stat64 *buf,
                             DWORD nNumberOfLinks)
 {
@@ -667,13 +667,13 @@
   return 0;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_disk_file::fstat (struct __stat64 *buf)
 {
   return fstat_fs (buf);
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_disk_file::fstatvfs (struct statvfs *sfs)
 {
   int ret = -1, opened = 0;
@@ -765,7 +765,7 @@
   return ret;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (1)))
 fhandler_disk_file::fchmod (mode_t mode)
 {
   extern int chmod_device (path_conv& pc, mode_t mode);
@@ -873,7 +873,7 @@
   return res;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_disk_file::fchown (__uid32_t uid, __gid32_t gid)
 {
   int oret = 0;
@@ -940,7 +940,7 @@
   return res;
 }
 
-int _stdcall
+int _stdcall __attribute__ ((regparm (3)))
 fhandler_disk_file::facl (int cmd, int nentries, __aclent32_t *aclbufp)
 {
   int res = -1;
@@ -1412,7 +1412,7 @@
   return res;
 }
 
-ssize_t __stdcall
+ssize_t __stdcall __attribute__ ((regparm (3)))
 fhandler_disk_file::pread (void *buf, size_t count, _off64_t offset)
 {
   ssize_t res;
@@ -1432,7 +1432,7 @@
   return res;
 }
 
-ssize_t __stdcall
+ssize_t __stdcall __attribute__ ((regparm (3)))
 fhandler_disk_file::pwrite (void *buf, size_t count, _off64_t offset)
 {
   int res;
@@ -1710,7 +1710,7 @@
   return res;
 }
 
-__ino64_t __stdcall
+__ino64_t __stdcall __attribute__ ((regparm (2)))
 readdir_get_ino (const char *path, bool dot_dot)
 {
   char *fname;
Index: winsup/cygwin/fhandler_dsp.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_dsp.cc,v
retrieving revision 1.52
diff -u -r1.52 fhandler_dsp.cc
--- winsup/cygwin/fhandler_dsp.cc       24 Jul 2009 20:54:33 -0000      1.52
+++ winsup/cygwin/fhandler_dsp.cc       9 Feb 2011 13:47:58 -0000
@@ -1040,7 +1040,7 @@
   return len;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_dev_dsp::read (void *ptr, size_t& len)
 {
   debug_printf ("ptr=%08x len=%d", ptr, len);
Index: winsup/cygwin/fhandler_fifo.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_fifo.cc,v
retrieving revision 1.43
diff -u -r1.43 fhandler_fifo.cc
--- winsup/cygwin/fhandler_fifo.cc      6 Apr 2010 15:09:44 -0000       1.43
+++ winsup/cygwin/fhandler_fifo.cc      9 Feb 2011 13:47:58 -0000
@@ -281,7 +281,7 @@
   return wait (true) ? write_overlapped (ptr, len) : -1;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_fifo::fstatvfs (struct statvfs *sfs)
 {
   fhandler_disk_file fh (pc);
Index: winsup/cygwin/fhandler_mailslot.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_mailslot.cc,v
retrieving revision 1.12
diff -u -r1.12 fhandler_mailslot.cc
--- winsup/cygwin/fhandler_mailslot.cc  14 Jan 2010 18:46:01 -0000      1.12
+++ winsup/cygwin/fhandler_mailslot.cc  9 Feb 2011 13:47:58 -0000
@@ -25,7 +25,7 @@
 {
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_mailslot::fstat (struct __stat64 *buf)
 {
   debug_printf ("here");
Index: winsup/cygwin/fhandler_mem.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_mem.cc,v
retrieving revision 1.56
diff -u -r1.56 fhandler_mem.cc
--- winsup/cygwin/fhandler_mem.cc       14 Jan 2010 18:46:01 -0000      1.56
+++ winsup/cygwin/fhandler_mem.cc       9 Feb 2011 13:47:58 -0000
@@ -162,7 +162,7 @@
   return ulen;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_dev_mem::read (void *ptr, size_t& ulen)
 {
   if (!ulen || pos >= mem_size)
Index: winsup/cygwin/fhandler_procsys.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_procsys.cc,v
retrieving revision 1.4
diff -u -r1.4 fhandler_procsys.cc
--- winsup/cygwin/fhandler_procsys.cc   2 Oct 2010 08:44:08 -0000       1.4
+++ winsup/cygwin/fhandler_procsys.cc   9 Feb 2011 13:47:58 -0000
@@ -315,7 +315,7 @@
   return fhandler_virtual::closedir (dir);
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_procsys::read (void *ptr, size_t& len)
 {
   NTSTATUS status;
Index: winsup/cygwin/fhandler_random.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_random.cc,v
retrieving revision 1.40
diff -u -r1.40 fhandler_random.cc
--- winsup/cygwin/fhandler_random.cc    30 Oct 2009 10:53:54 -0000      1.40
+++ winsup/cygwin/fhandler_random.cc    9 Feb 2011 13:47:58 -0000
@@ -111,7 +111,7 @@
   return len;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_dev_random::read (void *ptr, size_t& len)
 {
   if (!len)
Index: winsup/cygwin/fhandler_raw.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_raw.cc,v
retrieving revision 1.70
diff -u -r1.70 fhandler_raw.cc
--- winsup/cygwin/fhandler_raw.cc       3 Jan 2009 05:12:20 -0000       1.70
+++ winsup/cygwin/fhandler_raw.cc       9 Feb 2011 13:47:58 -0000
@@ -32,7 +32,7 @@
     delete [] devbuf;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_dev_raw::fstat (struct __stat64 *buf)
 {
   debug_printf ("here");
Index: winsup/cygwin/fhandler_socket.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_socket.cc,v
retrieving revision 1.266
diff -u -r1.266 fhandler_socket.cc
--- winsup/cygwin/fhandler_socket.cc    31 Jan 2011 08:53:57 -0000      1.266
+++ winsup/cygwin/fhandler_socket.cc    9 Feb 2011 13:47:59 -0000
@@ -783,7 +783,7 @@
   return -1;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_socket::fstat (struct __stat64 *buf)
 {
   int res;
@@ -810,7 +810,7 @@
   return res;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_socket::fstatvfs (struct statvfs *sfs)
 {
   if (get_device () == FH_UNIX)
Index: winsup/cygwin/fhandler_tty.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_tty.cc,v
retrieving revision 1.216
diff -u -r1.216 fhandler_tty.cc
--- winsup/cygwin/fhandler_tty.cc       29 Nov 2010 20:51:38 -0000      1.216
+++ winsup/cygwin/fhandler_tty.cc       9 Feb 2011 13:47:59 -0000
@@ -790,7 +790,7 @@
   return towrite;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_tty_slave::read (void *ptr, size_t& len)
 {
   int totalread = 0;
@@ -1183,7 +1183,7 @@
   return retval;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_tty_slave::fstat (struct __stat64 *st)
 {
   fhandler_base::fstat (st);
@@ -1289,7 +1289,7 @@
   close_maybe (inuse);
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (1)))
 fhandler_tty_slave::fchmod (mode_t mode)
 {
   int ret = -1;
@@ -1315,7 +1315,7 @@
   return ret;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_tty_slave::fchown (__uid32_t uid, __gid32_t gid)
 {
   int ret = -1;
@@ -1496,7 +1496,7 @@
   return i;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_pty_master::read (void *ptr, size_t& len)
 {
   len = (size_t) process_slave_output ((char *) ptr, len, pktmode);
Index: winsup/cygwin/fhandler_virtual.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_virtual.cc,v
retrieving revision 1.53
diff -u -r1.53 fhandler_virtual.cc
--- winsup/cygwin/fhandler_virtual.cc   6 Sep 2010 09:47:01 -0000       1.53
+++ winsup/cygwin/fhandler_virtual.cc   9 Feb 2011 13:47:59 -0000
@@ -181,7 +181,7 @@
   return 0;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_virtual::read (void *ptr, size_t& len)
 {
   if (len == 0)
@@ -266,7 +266,7 @@
   return res;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_virtual::fstatvfs (struct statvfs *sfs)
 {
   /* Virtual file system.  Just return an empty buffer with a few values
Index: winsup/cygwin/fhandler_windows.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_windows.cc,v
retrieving revision 1.30
diff -u -r1.30 fhandler_windows.cc
--- winsup/cygwin/fhandler_windows.cc   24 Jul 2009 20:54:33 -0000      1.30
+++ winsup/cygwin/fhandler_windows.cc   9 Feb 2011 13:47:59 -0000
@@ -79,7 +79,7 @@
     return SendMessage (ptr->hwnd, ptr->message, ptr->wParam, ptr->lParam);
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_windows::read (void *buf, size_t& len)
 {
   MSG *ptr = (MSG *) buf;
Index: winsup/cygwin/fhandler_zero.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_zero.cc,v
retrieving revision 1.31
diff -u -r1.31 fhandler_zero.cc
--- winsup/cygwin/fhandler_zero.cc      24 Jul 2009 20:54:33 -0000      1.31
+++ winsup/cygwin/fhandler_zero.cc      9 Feb 2011 13:47:59 -0000
@@ -41,7 +41,7 @@
   return len;
 }
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (3)))
 fhandler_dev_zero::read (void *ptr, size_t& len)
 {
   memset (ptr, 0, len);
Index: winsup/cygwin/miscfuncs.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/miscfuncs.cc,v
retrieving revision 1.58
diff -u -r1.58 miscfuncs.cc
--- winsup/cygwin/miscfuncs.cc  12 Mar 2010 23:13:47 -0000      1.58
+++ winsup/cygwin/miscfuncs.cc  9 Feb 2011 13:47:59 -0000
@@ -169,7 +169,7 @@
   return string;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 check_invalid_virtual_addr (const void *s, unsigned sz)
 {
   MEMORY_BASIC_INFORMATION mbuf;
Index: winsup/cygwin/ntea.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/ntea.cc,v
retrieving revision 1.23
diff -u -r1.23 ntea.cc
--- winsup/cygwin/ntea.cc       12 Jan 2010 10:14:59 -0000      1.23
+++ winsup/cygwin/ntea.cc       9 Feb 2011 13:47:59 -0000
@@ -29,7 +29,7 @@
 #define NEXT_FEA(p) ((PFILE_FULL_EA_INFORMATION) (p->NextEntryOffset \
                     ? (char *) p + p->NextEntryOffset : NULL))
 
-ssize_t __stdcall
+ssize_t __stdcall __attribute__ ((regparm (3)))
 read_ea (HANDLE hdl, path_conv &pc, const char *name, char *value, size_t size)
 {
   OBJECT_ATTRIBUTES attr;
@@ -197,7 +197,7 @@
   return ret;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (3)))
 write_ea (HANDLE hdl, path_conv &pc, const char *name, const char *value,
          size_t size, int flags)
 {
Index: winsup/cygwin/path.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/path.cc,v
retrieving revision 1.622
diff -u -r1.622 path.cc
--- winsup/cygwin/path.cc       2 Feb 2011 09:59:10 -0000       1.622
+++ winsup/cygwin/path.cc       9 Feb 2011 13:48:00 -0000
@@ -351,7 +351,7 @@
 static void __stdcall mkrelpath (char *dst, bool caseinsensitive)
   __attribute__ ((regparm (2)));
 
-static void __stdcall
+static void __stdcall __attribute__ ((regparm (2)))
 mkrelpath (char *path, bool caseinsensitive)
 {
   tmp_pathbuf tp;
@@ -1306,7 +1306,7 @@
 /* nofinalslash: Remove trailing / and \ from SRC (except for the
    first one).  It is ok for src == dst.  */
 
-void __stdcall
+void __stdcall __attribute__ ((regparm (2)))
 nofinalslash (const char *src, char *dst)
 {
   int len = strlen (src);
@@ -2774,7 +2774,7 @@
    done during the opendir call and the hash or the filename within
    the directory.  FIXME: Not bullet-proof. */
 /* Cygwin internal */
-__ino64_t __stdcall
+__ino64_t __stdcall __attribute__ ((regparm (2)))
 hash_path_name (__ino64_t hash, PUNICODE_STRING name)
 {
   if (name->Length == 0)
@@ -2788,7 +2788,7 @@
   return hash;
 }
 
-__ino64_t __stdcall
+__ino64_t __stdcall __attribute__ ((regparm (2)))
 hash_path_name (__ino64_t hash, PCWSTR name)
 {
   UNICODE_STRING uname;
@@ -2796,7 +2796,7 @@
   return hash_path_name (hash, &uname);
 }
 
-__ino64_t __stdcall
+__ino64_t __stdcall __attribute__ ((regparm (2)))
 hash_path_name (__ino64_t hash, const char *name)
 {
   UNICODE_STRING uname;
Index: winsup/cygwin/pinfo.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/pinfo.cc,v
retrieving revision 1.266
diff -u -r1.266 pinfo.cc
--- winsup/cygwin/pinfo.cc      12 Dec 2010 05:48:29 -0000      1.266
+++ winsup/cygwin/pinfo.cc      9 Feb 2011 13:48:00 -0000
@@ -424,7 +424,7 @@
 
 /* Test to determine if a process really exists and is processing signals.
  */
-bool __stdcall
+bool __stdcall __attribute__ ((regparm (1)))
 _pinfo::exists ()
 {
   return this && !(process_state & PID_EXITED);
Index: winsup/cygwin/pipe.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/pipe.cc,v
retrieving revision 1.125
diff -u -r1.125 pipe.cc
--- winsup/cygwin/pipe.cc       14 Aug 2010 11:16:09 -0000      1.125
+++ winsup/cygwin/pipe.cc       9 Feb 2011 13:48:00 -0000
@@ -366,7 +366,7 @@
   return 0;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 fhandler_pipe::fstatvfs (struct statvfs *sfs)
 {
   set_errno (EBADF);
Index: winsup/cygwin/sec_helper.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/sec_helper.cc,v
retrieving revision 1.88
diff -u -r1.88 sec_helper.cc
--- winsup/cygwin/sec_helper.cc 17 Apr 2010 15:51:09 -0000      1.88
+++ winsup/cygwin/sec_helper.cc 9 Feb 2011 13:48:00 -0000
@@ -519,7 +519,7 @@
   return true;
 }
 
-PSECURITY_ATTRIBUTES __stdcall
+PSECURITY_ATTRIBUTES __stdcall __attribute__ ((regparm (3)))
 __sec_user (PVOID sa_buf, PSID sid1, PSID sid2, DWORD access2, BOOL inherit)
 {
   PSECURITY_ATTRIBUTES psa = (PSECURITY_ATTRIBUTES) sa_buf;
Index: winsup/cygwin/signal.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/signal.cc,v
retrieving revision 1.91
diff -u -r1.91 signal.cc
--- winsup/cygwin/signal.cc     20 Sep 2010 22:28:57 -0000      1.91
+++ winsup/cygwin/signal.cc     9 Feb 2011 13:48:00 -0000
@@ -177,7 +177,7 @@
   return handle_sigprocmask (how, set, oldset, _my_tls.sigmask);
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (3)))
 handle_sigprocmask (int how, const sigset_t *set, sigset_t *oldset, sigset_t& 
opmask)
 {
   /* check that how is in right range */
@@ -218,7 +218,7 @@
   return 0;
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 _pinfo::kill (siginfo_t& si)
 {
   sig_dispatch_pending ();
Index: winsup/cygwin/sigproc.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/sigproc.cc,v
retrieving revision 1.331
diff -u -r1.331 sigproc.cc
--- winsup/cygwin/sigproc.cc    12 Sep 2010 19:13:09 -0000      1.331
+++ winsup/cygwin/sigproc.cc    9 Feb 2011 13:48:01 -0000
@@ -168,7 +168,7 @@
   return false;
 }
 
-bool __stdcall
+bool __stdcall __attribute__ ((regparm (1)))
 pid_exists (pid_t pid)
 {
   return pinfo (pid)->exists ();
@@ -186,7 +186,7 @@
 
 /* Handle all subprocess requests
  */
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 proc_subproc (DWORD what, DWORD val)
 {
   int rc = 1;
@@ -390,7 +390,7 @@
 }
 
 /* Clear pending signal */
-void __stdcall
+void __stdcall __attribute__ ((regparm (1)))
 sig_clear (int target_sig)
 {
   if (&_my_tls != _sig_tls)
@@ -486,7 +486,7 @@
     }
 }
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (2)))
 sig_send (_pinfo *p, int sig)
 {
   if (sig == __SIGHOLD)
@@ -518,7 +518,7 @@
    If pinfo *p == NULL, send to the current process.
    If sending to this process, wait for notification that a signal has
    completed before returning.  */
-int __stdcall
+int __stdcall __attribute__ ((regparm (3)))
 sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls)
 {
   int rc = 1;
@@ -940,7 +940,7 @@
 /* Check the state of all of our children to see if any are stopped or
  * terminated.
  */
-static int __stdcall
+static int __stdcall __attribute__ ((regparm (1)))
 checkstate (waitq *parent_w)
 {
   int potential_match = 0;
Index: winsup/cygwin/spawn.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/spawn.cc,v
retrieving revision 1.299
diff -u -r1.299 spawn.cc
--- winsup/cygwin/spawn.cc      20 Jan 2011 11:09:21 -0000      1.299
+++ winsup/cygwin/spawn.cc      9 Feb 2011 13:48:01 -0000
@@ -101,7 +101,7 @@
    of name is placed in buf and returned.  Otherwise the contents of buf
    is undefined and NULL is returned.  */
 
-const char * __stdcall
+const char * __stdcall __attribute__ ((regparm (3)))
 find_exec (const char *name, path_conv& buf, const char *mywinenv,
           unsigned opt, const char **known_suffix)
 {
Index: winsup/cygwin/strfuncs.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/strfuncs.cc,v
retrieving revision 1.45
diff -u -r1.45 strfuncs.cc
--- winsup/cygwin/strfuncs.cc   19 Jan 2011 09:41:54 -0000      1.45
+++ winsup/cygwin/strfuncs.cc   9 Feb 2011 13:48:01 -0000
@@ -395,7 +395,7 @@
    - The functions always create 0-terminated results, no matter what.
      If the result is truncated due to buffer size, it's a bug in Cygwin
      and the buffer in the calling function should be raised. */
-size_t __stdcall
+size_t __stdcall __attribute__ ((regparm (3)))
 sys_cp_wcstombs (wctomb_p f_wctomb, const char *charset, char *dst, size_t len,
                 const wchar_t *src, size_t nwc)
 {
@@ -481,7 +481,7 @@
   return n;
 }
 
-size_t __stdcall
+size_t __stdcall __attribute__ ((regparm (3)))
 sys_wcstombs (char *dst, size_t len, const wchar_t * src, size_t nwc)
 {
   return sys_cp_wcstombs (cygheap->locale.wctomb, cygheap->locale.charset,
@@ -498,7 +498,7 @@
    Note that this code is shared by cygserver (which requires it via
    __small_vsprintf) and so when built there plain calloc is the
    only choice.  */
-size_t __stdcall
+size_t __stdcall __attribute__ ((regparm (3)))
 sys_wcstombs_alloc (char **dst_p, int type, const wchar_t *src, size_t nwc)
 {
   size_t ret;
@@ -524,7 +524,7 @@
    conversion.  This is so that fhandler_console can switch to an alternate
    charset, which is the charset returned by GetConsoleCP ().  Most of the
    time this is used for box and line drawing characters. */
-size_t __stdcall
+size_t __stdcall __attribute__ ((regparm (3)))
 sys_cp_mbstowcs (mbtowc_p f_mbtowc, const char *charset, wchar_t *dst,
                 size_t dlen, const char *src, size_t nms)
 {
@@ -633,7 +633,7 @@
   return count;
 }
 
-size_t __stdcall
+size_t __stdcall __attribute__ ((regparm (3)))
 sys_mbstowcs (wchar_t * dst, size_t dlen, const char *src, size_t nms)
 {
   return sys_cp_mbstowcs (cygheap->locale.mbtowc, cygheap->locale.charset,
@@ -641,7 +641,7 @@
 }
 
 /* Same as sys_wcstombs_alloc, just backwards. */
-size_t __stdcall
+size_t __stdcall __attribute__ ((regparm (3)))
 sys_mbstowcs_alloc (wchar_t **dst_p, int type, const char *src, size_t nms)
 {
   size_t ret;
Index: winsup/cygwin/window.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/window.cc,v
retrieving revision 1.39
diff -u -r1.39 window.cc
--- winsup/cygwin/window.cc     1 Sep 2010 18:24:11 -0000       1.39
+++ winsup/cygwin/window.cc     9 Feb 2011 13:48:01 -0000
@@ -25,7 +25,7 @@
 
 muto NO_COPY wininfo::_lock;
 
-int __stdcall
+int __stdcall __attribute__ ((regparm (3)))
 wininfo::process (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
 #ifndef NOSTRACE
@@ -49,14 +49,14 @@
     }
 }
 
-static LRESULT CALLBACK
+static LRESULT CALLBACK __attribute__ ((regparm (3)))
 process_window_events (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
   return winmsg.process (hwnd, uMsg, wParam, lParam);
 }
 
 /* Handle windows events.  Inherits ownership of the wininfo lock */
-DWORD WINAPI
+DWORD WINAPI __attribute__ ((regparm (1)))
 wininfo::winthread ()
 {
   MSG msg;
--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to