libstdc++: Reuse double overload of __convert_to_v if possible
For targets where double and long double have the same representation we can reuse the same __convert_to_v code for both types. This will slightly reduce the size of the compiled code in the library. libstdc++-v3/ChangeLog: * config/locale/generic/c_locale.cc (__convert_to_v): Reuse double overload for long double if possible.
This commit is contained in:
parent
74c019b50b
commit
aad83d61d2
1 changed files with 6 additions and 0 deletions
|
@ -187,6 +187,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
__convert_to_v(const char* __s, long double& __v,
|
||||
ios_base::iostate& __err, const __c_locale&) throw()
|
||||
{
|
||||
#if __DBL_MANT_DIG__ == __LDBL_MANT_DIG__
|
||||
double __d;
|
||||
__convert_to_v(__s, __d, __err, __c_locale);
|
||||
__v = __d;
|
||||
#else
|
||||
// Assumes __s formatted for "C" locale.
|
||||
const char* __sav = __set_C_locale();
|
||||
if (!__sav)
|
||||
|
@ -233,6 +238,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
|
||||
setlocale(LC_ALL, __sav);
|
||||
delete [] __sav;
|
||||
#endif // __DBL_MANT_DIG__ == __LDBL_MANT_DIG__
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Add table
Reference in a new issue