atexit bug?
J. Johnston
jjohnstn@redhat.com
Thu Sep 11 18:10:00 GMT 2003
A patch has been checked in. Thanks.
-- Jeff J.
Nick Clifton wrote:
> Hi Ben,
>
>
>>In libc/stdlib/exit.c (_DEFUN), I see:
>>
>> register struct _atexit *p;
>> register struct _on_exit_args * args;
>> register int n;
>> int i;
>>
>> p = &_GLOBAL_REENT->_atexit;
>>
>>I think this might have problems. When REENT_SMALL is defined,
>>_reent::_atexit (using C++ scoping notation) is a struct _atexit
>>member, whereas when it is not defined, it is a pointer to a struct
>>_atexit meaning that _GLOBAL_REENT->_atexit's type changes depending
>>on the state of REENT_SMALL.
>>
>>Is my understanding correct?
>
>
> I believe so. Presumably if we had code like this:
>
> #ifdef _REENT_SMALL
> p = &_GLOBAL_REENT->_atexit;
> #else
> p = _GLOBAL_REENT->_atexit;
> #endif
>
> Then the types would be correct ?
>
> Cheers
> Nick
>
>
More information about the Newlib
mailing list