This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] nptl: Add compiler barrier in nptl/tst-pthread-getattr


On Jul 30 2019, Florian Weimer <fweimer@redhat.com> wrote:

> * Andreas Schwab:
>
>> On Jul 29 2019, Florian Weimer <fweimer@redhat.com> wrote:
>>
>>> * Carlos O'Donell:
>>>
>>>>> tst-pthread-getattr.c: In function ‘allocate_and_test’:
>>>>> tst-pthread-getattr.c:54:10: error: function returns address of local variable [-Werror=return-local-addr]
>>>>>     54 |   return mem;
>>>>>        |          ^~~
>>>>> In file included from ../include/alloca.h:3,
>>>>>                   from tst-pthread-getattr.c:26:
>>>>> ../stdlib/alloca.h:35:23: note: declared here
>>>>>     35 | # define alloca(size) __builtin_alloca (size)
>>>>>        |                       ^~~~~~~~~~~~~~~~~~~~~~~
>>>>> tst-pthread-getattr.c:51:9: note: in expansion of macro ‘alloca’
>>>>>     51 |   mem = alloca ((size_t) (mem - target));
>>>>>        |         ^~~~~~
>>>>>
>>>>> The address itself is used in a check in the caller, so using
>>>>> uintptr_t instead is reasonable.
>>>>
>>>> Any reason why we wouldn't move the test into the function?
>>>
>>> I think printf might fault because of its own stack usage (which can
>>> easily exceed half a page in some cases).
>>
>> Then return only the value of the same-page check and print it in the
>> parent.
>
> Sorry, what do you mean?

If you don't want to print it in allocate_and_test, print it in main.

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]