From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Mitchell To: Andreas Schwab Cc: law@cygnus.com, egcs@cygnus.com Subject: Re: libio bugs Date: Wed, 11 Feb 1998 11:23:00 -0000 Message-id: <199802111121.LAA12511@quickstep.stanford.edu> References: <26550.886365977@hurl.cygnus.com> <199802012255.WAA28117@quickstep.stanford.edu> <199802020725.HAA28844@quickstep.stanford.edu> <199802101232.MAA10968@quickstep.stanford.edu> X-SW-Source: 1998-02/msg00499.html Mark Mitchell writes: |>>>>>> "Andreas" == Andreas Schwab writes: |> uses of them in libio. Is that OK? Are there problems with |> link-compatibility, i.e., does naming the fields in struct printf_info |> make sure that they are initialized in some order different than the |> order that would be specified by the usual initialization syntax? (I |> note that the current initialization order is exactly the same as that |> in GLIBC 2.) The current development version of glibc 2 adds another bitfield before the last field in struct printf_info, it now looks like this (is_char is new): Well, my patch is in. So, somebody needs to modify the two uses of printf_info in iostream.cc to initialize the is_char flag appropriately, for those versions of glibc for which it should be initialized. Andreas, are you willing to do this? You've probably got a better understanding of how to test for the right versions of glibc and so forth. struct printf_info { int prec; /* Precision. */ int width; /* Width. */ wchar_t spec; /* Format letter. */ unsigned int is_long_double:1;/* L flag. */ unsigned int is_short:1; /* h flag. */ unsigned int is_long:1; /* l flag. */ unsigned int alt:1; /* # flag. */ unsigned int space:1; /* Space flag. */ unsigned int left:1; /* - flag. */ unsigned int showsign:1; /* + flag. */ unsigned int group:1; /* ' flag. */ unsigned int extra:1; /* For special use. */ unsigned int is_char:1; /* hh flag. */ wchar_t pad; /* Padding character. */ }; -- Mark Mitchell mmitchell@usa.net Stanford University http://www.stanford.edu