diff options
author | Janis Johnson <janis187@us.ibm.com> | 2008-10-27 16:45:40 +0000 |
---|---|---|
committer | Janis Johnson <janis@gcc.gnu.org> | 2008-10-27 16:45:40 +0000 |
commit | 4a44abab56d863c6916cde14e67b78422a7a3f0a (patch) | |
tree | 130ea634c2b45eddb3c5bd4abf6babb041bd851a /libdecnumber/decQuad.h | |
parent | cb1ca6ac11d48dc88a44579ed631c3d9d8a3402c (diff) | |
download | gcc-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.h | 6 |
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; /* ---------------------------------------------------------------- */ |