[v2] ftell: seek to end only when there are unflushed bytes (BZ #17647)
Commit Message
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
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.
@@ -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);