diff mbox

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

Message ID 5481F321.1080907@linux.vnet.ibm.com
State New
Headers show

Commit Message

Adhemerval Zanella Dec. 5, 2014, 6:02 p.m. UTC
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:

PS: thanks Carlos for the clarification.

Comments

Andreas Schwab Dec. 5, 2014, 6:53 p.m. UTC | #1
Adhemerval Zanella <azanella@linux.vnet.ibm.com> writes:

> 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))));

Or just use wchar_t instead.

Andreas.
diff mbox

Patch

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);