diff options
Diffstat (limited to 'meta/packages/gcc/gcc-4.5.0/307-locale_facets.patch')
| -rw-r--r-- | meta/packages/gcc/gcc-4.5.0/307-locale_facets.patch | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.5.0/307-locale_facets.patch b/meta/packages/gcc/gcc-4.5.0/307-locale_facets.patch new file mode 100644 index 0000000000..774fcfa2ca --- /dev/null +++ b/meta/packages/gcc/gcc-4.5.0/307-locale_facets.patch | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | This patch fixes a bug into ostream::operator<<(double) due to the wrong size | ||
| 2 | passed into the __convert_from_v method. The wrong size is then passed to | ||
| 3 | std::snprintf function, that, on uClibc, doens't handle sized 0 buffer. | ||
| 4 | |||
| 5 | Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com> | ||
| 6 | |||
| 7 | Index: gcc-4.3.1/libstdc++-v3/include/bits/locale_facets.tcc | ||
| 8 | =================================================================== | ||
| 9 | --- gcc-4.3.1.orig/libstdc++-v3/include/bits/locale_facets.tcc 2007-11-26 17:59:41.000000000 -0800 | ||
| 10 | +++ gcc-4.3.1/libstdc++-v3/include/bits/locale_facets.tcc 2008-08-16 02:14:48.000000000 -0700 | ||
| 11 | @@ -1004,7 +1004,7 @@ | ||
| 12 | const int __cs_size = __fixed ? __max_exp + __prec + 4 | ||
| 13 | : __max_digits * 2 + __prec; | ||
| 14 | char* __cs = static_cast<char*>(__builtin_alloca(__cs_size)); | ||
| 15 | - __len = std::__convert_from_v(_S_get_c_locale(), __cs, 0, __fbuf, | ||
| 16 | + __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, __fbuf, | ||
| 17 | __prec, __v); | ||
| 18 | #endif | ||
| 19 | |||
