This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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] | |
On Nov 7 21:29, Wilco Dijkstra wrote:
> Sebastian Huber wrote:
>
> > Why don't we make
> >
> > const char *
> > __locale_ctype_ptr (void)
> > {
> > return __get_current_locale ()->ctype_ptr;
> > }
> >
> > inline?
> >
> > Why do we need the condition in:
> >
> > _ELIDABLE_INLINE struct __locale_t *
> > __get_current_locale (void)
> > {
> > return _REENT->_locale ?: __get_global_locale ();
> > }
> >
> > Can't we set _REENT->_locale to &__global_locale instead of NULL?
> >
> > Systems using __getreent() would probably benefit from a __pure2 attribute.
>
> Absolutely there is no reason not to inline all this. GLIBC has to maintain
> a consistent ABI because of dynamic linking but that's not relevant to newlib.
> So for single-threaded we could do:
>
> #define _REENT &_impure_data
No, the __getreent is supposed to hide the actual implementation.
Targets can easily redefine __getreent to be an inline function or
macro, just as they need it, there's no reason to change this.
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
Attachment:
signature.asc
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |