This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2] ftell: seek to end only when there are unflushed bytes (BZ #17647)
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Cc: "Carlos O'Donell" <carlos at redhat dot com>
- Date: Fri, 05 Dec 2014 16:02:09 -0200
- Subject: Re: [PATCH v2] ftell: seek to end only when there are unflushed bytes (BZ #17647)
- Authentication-results: sourceware.org; auth=none
- References: <20141125155404 dot GO12197 at spoyarek dot pnq dot redhat dot com> <547FC7C7 dot 4030000 at redhat dot com> <54805EAD dot 3000605 at linux dot vnet dot ibm dot com> <54808488 dot 1050602 at redhat dot com> <54809D11 dot 5040406 at linux dot vnet dot ibm dot com> <54819F98 dot 5080102 at linux dot vnet dot ibm dot com> <87d27yoyjv dot fsf at igel dot home> <5481DEBD dot 8060507 at linux dot vnet dot ibm dot com> <87388uowbk dot fsf at igel dot home>
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.