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 20:37, Sebastian Huber wrote: > ----- Am 7. Nov 2017 um 17:39 schrieb Wilco Dijkstra Wilco.Dijkstra@arm.com: > > > Craig wrote: > > > >> All of this might be moot due to pure2 appearing to not be valid for the general > >> __locale_ctype_ptr case. (Even if it would be safe for the specific test cases > >> being discussed.) > >> Would you please comment on those concerns? > >> (https://sourceware.org/ml/newlib/2017/msg01055.html in case it did not make it > >> to you originally.) > > > > I don't understand your concern. This is how ctype works, GLIBC uses the same > > attribute. > > You inline the ctype lookup but (for various reasons) may want to hide the ctype > > pointer > > behind an expensive function call. The call must be marked in such a way that it > > can be CSEd > > and lifted out of loops. If you didn't want this to happen there would be no > > point in providing > > complex headers with inline functions for ctype. > > 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? _locale is NULL by default, as set by _REENT_INIT. If you want to set it to &__global_locale, you have to make sure reent's are initialized correctly. You also have to change _uselocale_r which relies on _locale being NULL to denote using the global locale. You also have to include the definition of `struct __locale_t' into all affected headers, here especially ctype.h. 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] |