1 diff -Naur gdtoa.0/arithchk.c gdtoa.1/arithchk.c
2 --- gdtoa.0/arithchk.c 2016-02-18 20:37:07.000000000 +0000
3 +++ gdtoa.1/arithchk.c 2018-01-25 20:47:16.000000000 +0000
9 + } __attribute__((__may_alias__)) u;
18 + } __attribute__((__may_alias__)) u;
27 + } __attribute__((__may_alias__)) u;
30 /* Cray1 = 4617762693716115456 -- without overflow on non-Crays */
31 diff -Naur gdtoa.0/gdtoaimp.h gdtoa.1/gdtoaimp.h
32 --- gdtoa.0/gdtoaimp.h 2016-02-19 18:37:41.000000000 +0000
33 +++ gdtoa.1/gdtoaimp.h 2018-01-25 20:47:16.000000000 +0000
35 Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined.
38 -typedef union { double d; ULong L[2]; } U;
39 +typedef union { double d; ULong L[2]; } __attribute__((__may_alias__)) U;
42 #define word0(x) (x)->L[1]
43 diff -Naur gdtoa.0/qnan.c gdtoa.1/qnan.c
44 --- gdtoa.0/qnan.c 2016-02-19 04:23:34.000000000 +0000
45 +++ gdtoa.1/qnan.c 2018-01-25 20:47:16.000000000 +0000
51 + } __attribute__((__may_alias__)) U;
55 diff -Naur gdtoa.0/strtodnrp.c gdtoa.1/strtodnrp.c
56 --- gdtoa.0/strtodnrp.c 2016-02-19 04:38:18.000000000 +0000
57 +++ gdtoa.1/strtodnrp.c 2018-01-25 20:47:16.000000000 +0000
62 - union { ULong L[2]; double d; } u;
63 + union { ULong L[2]; double d; } __attribute__((__may_alias__)) u;
65 k = strtodg(s, sp, &fpi, &exp, bits);
66 switch(k & STRTOG_Retmask) {
67 diff -Naur gdtoa.0/strtof.c gdtoa.1/strtof.c
68 --- gdtoa.0/strtof.c 2016-02-19 05:05:40.000000000 +0000
69 +++ gdtoa.1/strtof.c 2018-01-25 20:47:16.000000000 +0000
74 - union { ULong L[1]; float f; } u;
75 + union { ULong L[1]; float f; } __attribute__((__may_alias__)) u;
76 #ifdef Honor_FLT_ROUNDS
77 #include "gdtoa_fltrnds.h"
79 diff -Naur gdtoa.0/strtopdd.c gdtoa.1/strtopdd.c
80 --- gdtoa.0/strtopdd.c 2016-02-19 04:40:59.000000000 +0000
81 +++ gdtoa.1/strtopdd.c 2018-01-25 20:47:16.000000000 +0000
87 + } __attribute__((__may_alias__)) U;
89 #ifdef Honor_FLT_ROUNDS
90 #include "gdtoa_fltrnds.h"