Module Name: src
Committed By: christos
Date: Mon Dec 31 18:47:42 UTC 2012
Modified Files:
src/external/bsd/pcc/dist/pcc/arch/amd64: local.c
Log Message:
avoid strict aliasing problems
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.4 -r1.2 src/external/bsd/pcc/dist/pcc/arch/amd64/local.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/bsd/pcc/dist/pcc/arch/amd64/local.c
diff -u src/external/bsd/pcc/dist/pcc/arch/amd64/local.c:1.1.1.4 src/external/bsd/pcc/dist/pcc/arch/amd64/local.c:1.2
--- src/external/bsd/pcc/dist/pcc/arch/amd64/local.c:1.1.1.4 Mon Mar 26 10:26:17 2012
+++ src/external/bsd/pcc/dist/pcc/arch/amd64/local.c Mon Dec 31 13:47:41 2012
@@ -1,5 +1,5 @@
/* Id: local.c,v 1.66 2012/03/23 17:03:09 ragge Exp */
-/* $NetBSD: local.c,v 1.1.1.4 2012/03/26 14:26:17 plunky Exp $ */
+/* $NetBSD: local.c,v 1.2 2012/12/31 18:47:41 christos Exp $ */
/*
* Copyright (c) 2008 Michael Shalayeff
* Copyright (c) 2003 Anders Magnusson ([email protected]).
@@ -540,10 +540,12 @@ myp2tree(NODE *p)
#ifdef mach_amd64
{
- /* Do not loose negative zeros */
- long long *llp = (long long *)(&p->n_dcon);
- short *ssp = (short *)&llp[1];
- if (*llp == 0 && *ssp == 0)
+ /* Do not lose negative zeros */
+ long long ll[2];
+ short ss;
+ memcpy(ll, &p->n_dcon, sizeof(ll));
+ memcpy(&ss, &ll[1], sizeof(ss));
+ if (ll[0] == 0 && ss == 0)
return;
}
#else