aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Foley <pefoley2@pefoley.com>2016-03-19 13:45:56 -0400
committerCorinna Vinschen <corinna@vinschen.de>2016-03-20 12:31:42 +0100
commit5bc753c5a2708173c77f0162d644b31707b049a0 (patch)
treebb14cc99d58fcbcfad3a6df7e2835bf15f763528
parent0611132f045ee705ab8f85d0679aeacde0720f33 (diff)
downloadnewlib-5bc753c5a2708173c77f0162d644b31707b049a0.zip
newlib-5bc753c5a2708173c77f0162d644b31707b049a0.tar.gz
newlib-5bc753c5a2708173c77f0162d644b31707b049a0.tar.bz2
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 <pefoley2@pefoley.com>
-rw-r--r--winsup/cygwin/pinfo.cc3
1 files changed, 1 insertions, 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;