[PATCH v2] ftell: seek to end only when there are unflushed bytes (BZ #17647)

Adhemerval Zanella azanella@linux.vnet.ibm.com
Fri Dec 5 18:02:00 GMT 2014


On 05-12-2014 15:11, Andreas Schwab wrote:
> Adhemerval Zanella <azanella@linux.vnet.ibm.com> writes:
>
>> On 05-12-2014 14:23, Andreas Schwab wrote:
>>> Adhemerval Zanella <azanella@linux.vnet.ibm.com> writes:
>>>
>>>> @@ -364,11 +365,11 @@ do_ftell_test (const char *filename)
>>>>              reading.  */
>>>>           if (test_modes[i].fd_mode != O_WRONLY)
>>>>             {
>>>> -             char tmpbuf[data_len];
>>>> +             char tmpbuf[data_len * char_len];
>>> tmpbuf may not be aligned for wchar_t.
>> But I can't see why this won't allocate enough space for further operations. 
> Where did I say that?
>
>> Care to explain?
> Alignment and size are separate properties of an object.
>
> Andreas.
>
I see now my mistake. What about:

diff --git a/libio/tst-ftell-active-handler.c b/libio/tst-ftell-active-handler.c
index 44a4fac..0bd9d01 100644
--- a/libio/tst-ftell-active-handler.c
+++ b/libio/tst-ftell-active-handler.c
@@ -365,7 +365,8 @@ do_ftell_test (const char *filename)
             reading.  */
          if (test_modes[i].fd_mode != O_WRONLY)
            {
-             char tmpbuf[data_len * char_len];
+             char tmpbuf[data_len * char_len]
+               __attribute__ ((__aligned__ (__alignof__ (wchar_t))));
 
              rewind (fp);

PS: thanks Carlos for the clarification.



More information about the Libc-alpha mailing list