https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=5bc753c5a2708173c77f0162d644b31707b049a0

commit 5bc753c5a2708173c77f0162d644b31707b049a0
Author: Peter Foley <pefol...@pefoley.com>
Date:   Sat Mar 19 13:45:56 2016 -0400

    Fix strict aliasing
    
    Fix a strict aliasing error detected by gcc 6.0+
    
    winsup/cygwin/ChangeLog
    * pinfo.cc (winpids::enum_process): Fix strict aliasing.
    
    Signed-off-by: Peter Foley <pefol...@pefoley.com>

Diff:
---
 winsup/cygwin/pinfo.cc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index 23861e5..d4b2afb 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -1391,14 +1391,13 @@ winpids::enum_processes (bool winpid)
        }
 
       PSYSTEM_PROCESS_INFORMATION px = procs;
-      char *&pxc = (char *&)px;
       while (1)
        {
          if (px->UniqueProcessId)
            add (nelem, true, (DWORD) (uintptr_t) px->UniqueProcessId);
          if (!px->NextEntryOffset)
            break;
-         pxc += px->NextEntryOffset;
+          px = (PSYSTEM_PROCESS_INFORMATION) ((char *) px + 
px->NextEntryOffset);
        }
     }
   return nelem;

Reply via email to