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
- Date: Mon, 08 Dec 2014 10:54:02 -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> <5481F321 dot 1080907 at linux dot vnet dot ibm dot com> <87vblqnd1r dot fsf at igel dot home>
On 05-12-2014 16:53, Andreas Schwab wrote:
> 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.
>
Right, this is what I pushed:
diff --git a/libio/tst-ftell-active-handler.c b/libio/tst-ftell-active-handler.c
index 44a4fac..6151554 100644
--- a/libio/tst-ftell-active-handler.c
+++ b/libio/tst-ftell-active-handler.c
@@ -84,7 +84,6 @@ static const char *char_data = "abcdef";
static const wchar_t *wide_data = L"abcdef";
static size_t data_len;
static size_t file_len;
-static size_t char_len;
typedef int (*fputs_func_t) (const void *data, FILE *fp);
typedef void *(*fgets_func_t) (void *ws, int n, FILE *fp);
@@ -365,7 +364,7 @@ do_ftell_test (const char *filename)
reading. */
if (test_modes[i].fd_mode != O_WRONLY)
{
- char tmpbuf[data_len * char_len];
+ wchar_t tmpbuf[data_len];
rewind (fp);
@@ -657,7 +656,6 @@ do_test (void)
fgets_func = (fgets_func_t) fgets;
data = char_data;
data_len = strlen (char_data);
- char_len = sizeof (char);
ret |= do_one_test (filename);
/* Truncate the file before repeating the tests in wide mode. */
@@ -680,7 +678,6 @@ do_test (void)
fgets_func = (fgets_func_t) fgetws;
data = wide_data;
data_len = wcslen (wide_data);
- char_len = sizeof (wchar_t);
ret |= do_one_test (filename);
return ret;