On 02/06/2018 08:53 AM, Joseph Myers wrote: > The files in libgcc/soft-fp must be verbatim copies of the master sources > in glibc. So you can't make any local changes to them, and if you think > changes are needed you need to patch things upstream in glibc first, with > a proper extended explanation of why the fix is needed and why it is safe > and the appropriate design for the fix. There's nothing at all in this > patch submission to explain that change.
It is a bug/typo in gcc/libgcc/soft-fp/quad.h when _FP_W_TYPE_SIZE is 64 (for example, on aarch64) . It looks like a code after line 202 was never used. % cat -n libgcc/soft-fp/quad.h ... 201 202 #else /* not _FP_W_TYPE_SIZE < 64 */ 203 union _FP_UNION_Q 204 { 205 TFtype flt /* __attribute__ ((mode (TF))) */ ; 206 struct *_FP_STRUCT_LAYOUT* 207 { 208 _FP_W_TYPE a, b; 209 } longs; 210 struct *_FP_STRUCT_LAYOUT* 211 { 212 # if __BYTE_ORDER == __BIG_ENDIAN 213 unsigned sign : 1; 214 unsigned exp : _FP_EXPBITS_Q; 215 _FP_W_TYPE frac1 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0) - _FP_W_TYPE_SIZE; 216 _FP_W_TYPE frac0 : _FP_W_TYPE_SIZE; 217 # else 218 _FP_W_TYPE frac0 : _FP_W_TYPE_SIZE; 219 _FP_W_TYPE frac1 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0) - _FP_W_TYPE_SIZE; 220 unsigned exp : _FP_EXPBITS_Q; 221 unsigned sign : 1; 222 # endif 223 } bits; 224 }; We see 'struct _FP_STRUCT_LAYOUT' is declared twice (in lines 206 and 210) inside union _FP_UNION_Q. Compiler reports warning. -Vladimir P.S.: gcc/libgcc/soft-fp/ and glibc/soft-fp/ are not synchronized now. For example: % diff gcc/libgcc/soft-fp/quad.h glibc/soft-fp/ 3c3 < Copyright (C) 1997-2016 Free Software Foundation, Inc. --- > Copyright (C) 1997-2018 Free Software Foundation, Inc. 96c96 < } bits __attribute__ ((packed)); --- > } bits;