aboutsummaryrefslogtreecommitdiff
path: root/libdecnumber/decQuad.h
diff options
context:
space:
mode:
authorJanis Johnson <janis187@us.ibm.com>2008-10-27 16:45:40 +0000
committerJanis Johnson <janis@gcc.gnu.org>2008-10-27 16:45:40 +0000
commit4a44abab56d863c6916cde14e67b78422a7a3f0a (patch)
tree130ea634c2b45eddb3c5bd4abf6babb041bd851a /libdecnumber/decQuad.h
parentcb1ca6ac11d48dc88a44579ed631c3d9d8a3402c (diff)
downloadgcc-4a44abab56d863c6916cde14e67b78422a7a3f0a.zip
gcc-4a44abab56d863c6916cde14e67b78422a7a3f0a.tar.gz
gcc-4a44abab56d863c6916cde14e67b78422a7a3f0a.tar.bz2
re PR other/37897 (decNumber functions break strict-aliasing rules)
PR other/37897 * decDouble.h (decDouble): Replace struct with union accessible by more types. * decSingle.h (decSingle): Ditto. * decQuad.h (decQuad): Ditto. * decNumberLocal.h (DFWORD, DFBYTE, DFWWORD): access decFloat via new members. * decBasic.c (decFloatCompareTotal): Avoid type-pun violation. (decNumberCompare): Ditto. From-SVN: r141386
Diffstat (limited to 'libdecnumber/decQuad.h')
-rw-r--r--libdecnumber/decQuad.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/libdecnumber/decQuad.h b/libdecnumber/decQuad.h
index 39f75d3..af9bc24 100644
--- a/libdecnumber/decQuad.h
+++ b/libdecnumber/decQuad.h
@@ -59,9 +59,11 @@
/* Required include */
#include "decContext.h"
- /* The decQuad decimal 128-bit type, accessible by bytes */
- typedef struct {
+ /* The decQuad decimal 128-bit type, accessible by various types */
+ typedef union {
uint8_t bytes[DECQUAD_Bytes]; /* fields: 1, 5, 12, 110 bits */
+ uint16_t shorts[DECQUAD_Bytes/2];
+ uint32_t words[DECQUAD_Bytes/4];
} decQuad;
/* ---------------------------------------------------------------- */