mirror of git://gcc.gnu.org/git/gcc.git
snprintf_lite.cc (__concat_size_t): Use unsigned long long conditionally.
2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com> * src/c++11/snprintf_lite.cc (__concat_size_t): Use unsigned long long conditionally. From-SVN: r202836
This commit is contained in:
parent
cefce76908
commit
dfff7c4692
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||||||
|
|
||||||
|
* src/c++11/snprintf_lite.cc (__concat_size_t): Use
|
||||||
|
unsigned long long conditionally.
|
||||||
|
|
||||||
2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com>
|
2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||||||
|
|
||||||
* src/c++11/snprintf_lite.cc (__concat_size_t): Use only
|
* src/c++11/snprintf_lite.cc (__concat_size_t): Use only
|
||||||
|
|
|
||||||
|
|
@ -69,11 +69,17 @@ namespace __gnu_cxx {
|
||||||
// Returns number of characters appended, or -1 if BUFSIZE is too small.
|
// Returns number of characters appended, or -1 if BUFSIZE is too small.
|
||||||
int __concat_size_t(char *__buf, size_t __bufsize, size_t __val)
|
int __concat_size_t(char *__buf, size_t __bufsize, size_t __val)
|
||||||
{
|
{
|
||||||
|
// __int_to_char is explicitly instantiated and available only for
|
||||||
|
// some, but not all, types. See locale-inst.cc.
|
||||||
|
#ifdef _GLIBCXX_USE_LONG_LONG
|
||||||
|
unsigned long long __val2 = __val;
|
||||||
|
#else
|
||||||
|
unsigned long __val2 = __val;
|
||||||
|
#endif
|
||||||
// Long enough for decimal representation.
|
// Long enough for decimal representation.
|
||||||
unsigned long long __val_ull = __val;
|
int __ilen = 3 * sizeof(__val2);
|
||||||
int __ilen = 3 * sizeof(__val_ull);
|
|
||||||
char *__cs = static_cast<char*>(__builtin_alloca(__ilen));
|
char *__cs = static_cast<char*>(__builtin_alloca(__ilen));
|
||||||
size_t __len = std::__int_to_char(__cs + __ilen, __val_ull,
|
size_t __len = std::__int_to_char(__cs + __ilen, __val2,
|
||||||
std::__num_base::_S_atoms_out,
|
std::__num_base::_S_atoms_out,
|
||||||
std::ios_base::dec, true);
|
std::ios_base::dec, true);
|
||||||
if (__bufsize < __len)
|
if (__bufsize < __len)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue