summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/pcpu.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-07-30 00:04:58 +0000
committerpeter <peter@FreeBSD.org>2003-07-30 00:04:58 +0000
commitbb7a9f03222f700b969603ab14e8b1949512c04f (patch)
tree752ae7a72471f106d875e5f6c0fe65ea98451d64 /sys/i386/include/pcpu.h
parent70398bc9a3eb38d1fcf6e2577d76a1593b268f90 (diff)
downloadFreeBSD-src-bb7a9f03222f700b969603ab14e8b1949512c04f.zip
FreeBSD-src-bb7a9f03222f700b969603ab14e8b1949512c04f.tar.gz
Detour via (void *) to defeat gcc's strict-aliasing warnings when using
-O2 or -Os (such as 'make release'). This commit brought to you by the warning: dereferencing type-punned pointer will break strict-aliasing rules
Diffstat (limited to 'sys/i386/include/pcpu.h')
-rw-r--r--sys/i386/include/pcpu.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/i386/include/pcpu.h b/sys/i386/include/pcpu.h
index 799eefb..a7b5c22 100644
--- a/sys/i386/include/pcpu.h
+++ b/sys/i386/include/pcpu.h
@@ -100,19 +100,19 @@ extern struct pcpu *pcpup;
__asm __volatile("movb %%fs:%1,%0" \
: "=r" (__b) \
: "m" (*(u_char *)(__pcpu_offset(name)))); \
- __result = *(__pcpu_type(name) *)&__b; \
+ __result = *(__pcpu_type(name) *)(void *)&__b; \
} else if (sizeof(__result) == 2) { \
u_short __w; \
__asm __volatile("movw %%fs:%1,%0" \
: "=r" (__w) \
: "m" (*(u_short *)(__pcpu_offset(name)))); \
- __result = *(__pcpu_type(name) *)&__w; \
+ __result = *(__pcpu_type(name) *)(void *)&__w; \
} else if (sizeof(__result) == 4) { \
u_int __i; \
__asm __volatile("movl %%fs:%1,%0" \
: "=r" (__i) \
: "m" (*(u_int *)(__pcpu_offset(name)))); \
- __result = *(__pcpu_type(name) *)&__i; \
+ __result = *(__pcpu_type(name) *)(void *)&__i; \
} else { \
__result = *__PCPU_PTR(name); \
} \
OpenPOWER on IntegriCloud