aboutsummaryrefslogtreecommitdiff
path: root/libio/libio.h
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-11-03 11:39:56 +0100
committerFlorian Weimer <fweimer@redhat.com>2019-11-03 18:10:20 +0100
commit96ab757f9cd22bc880e0fcbe65a012c3726a9b87 (patch)
tree30667e677247bfdb1f91d3af9581cbb78b923bc6 /libio/libio.h
parent7591046cb1bf663525ed73229ab1ec03eb756326 (diff)
downloadglibc-fw/bug25097.tar.xz
glibc-fw/bug25097.zip
Redefine _IO_iconv_t to store a single gconv step pointer [BZ #25097]fw/bug25097
libio can only deal with gconv conversions which consist of a single step. Not using __gconv_info simplifies the data structures somewhat. This eliminates a new GCC 10 warning about subscribing an inner zero-length array. Tested on x86_64-linux-gnu with mainline GCC. Built with build-many-glibcs.py, also with mainline GCC. Due to GCC PR 92039, there are failures left on 32-bit architectures with float128 support. Change-Id: I8b4c489b619a53154712ff32e1b6f13bb92d4203
Diffstat (limited to 'libio/libio.h')
-rw-r--r--libio/libio.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/libio/libio.h b/libio/libio.h
index bed324e57d..3be2fe81f6 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -48,14 +48,10 @@
#include <bits/types/wint_t.h>
#include <gconv.h>
-typedef union
+typedef struct
{
- struct __gconv_info __cd;
- struct
- {
- struct __gconv_info __cd;
- struct __gconv_step_data __data;
- } __combined;
+ struct __gconv_step *step;
+ struct __gconv_step_data step_data;
} _IO_iconv_t;
#include <shlib-compat.h>