From 8ac2677fbb42c0cee603a154f258e2072a45970c Mon Sep 17 00:00:00 2001
From: Benjamin Kosnik <bkoz@redhat.com>
Date: Fri, 23 Feb 2001 19:22:04 +0000
Subject: [PATCH] codecvt.h: Use __builtin_alloca.

2001-02-23  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/codecvt.h: Use __builtin_alloca.
	* include/bits/ostream.tcc: Same.
	* include/bits/fstream.tcc: Same.

From-SVN: r40007
---
 libstdc++-v3/ChangeLog                |  6 ++++++
 libstdc++-v3/include/bits/codecvt.h   |  2 +-
 libstdc++-v3/include/bits/fstream.tcc |  6 +++---
 libstdc++-v3/include/bits/ostream.tcc | 12 ++++++------
 4 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1cf576ef3913..3cdc574f74e7 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2001-02-23  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* include/bits/codecvt.h: Use __builtin_alloca.
+	* include/bits/ostream.tcc: Same.
+	* include/bits/fstream.tcc: Same.
+
 2001-02-23  Alexandre Oliva <aoliva@redhat.com>
 
 	* mknumeric_limits (CC): Use VAR=${VAR=...} form.
diff --git a/libstdc++-v3/include/bits/codecvt.h b/libstdc++-v3/include/bits/codecvt.h
index 17aabb3895a3..71b5b84ff988 100644
--- a/libstdc++-v3/include/bits/codecvt.h
+++ b/libstdc++-v3/include/bits/codecvt.h
@@ -419,7 +419,7 @@
 	  if (__int_bom)
 	    {	  
 	      size_t __size = __from_end - __from;
-	      intern_type* __cfixed = static_cast<intern_type*>(alloca(sizeof(intern_type) * (__size + 1)));
+	      intern_type* __cfixed = static_cast<intern_type*>(__builtin_alloca(sizeof(intern_type) * (__size + 1)));
 	      __cfixed[0] = static_cast<intern_type>(__int_bom);
 	      char_traits<intern_type>::copy(__cfixed + 1, __from, __size);
 	      __cfrom = reinterpret_cast<char*>(__cfixed);
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index 76b820ab9de4..07e1f61cc9fb 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -262,7 +262,7 @@ namespace std
 	      // Part one: (Re)fill external buf (_M_file->_IO_*) from
 	      // external byte sequence (whatever physical byte sink or
 	      // FILE actually is.)
-	      char_type* __conv_buf = static_cast<char_type*>(alloca(sizeof(char_type) * _M_buf_size));
+	      char_type* __conv_buf = static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * _M_buf_size));
 	      streamsize __size = _M_file->xsgetn(__conv_buf, _M_buf_size);
 	      
 	      // Part two: (Re)fill internal buf contents from external buf.
@@ -436,7 +436,7 @@ namespace std
 	  // stack. Convert internal buffer plus __c (ie,
 	  // "pending sequence") to temporary conversion buffer.
 	  int __plen = _M_out_end - _M_out_beg;
-	  char_type* __pbuf = static_cast<char_type*>(alloca(sizeof(char_type) * __plen + 1));
+	  char_type* __pbuf = static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __plen + 1));
 	  traits_type::copy(__pbuf, this->pbase(), __plen);
 	  if (!__testeof)
 	    {
@@ -445,7 +445,7 @@ namespace std
 	    }
 
 	  char_type* __pend;
-	  char* __conv_buf = static_cast<char*>(alloca(__plen));
+	  char* __conv_buf = static_cast<char*>(__builtin_alloca(__plen));
 	  char* __conv_end;
 	  _M_state_beg = _M_state_cur;
 
diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc
index 6464f5bad37d..98de13a65654 100644
--- a/libstdc++-v3/include/bits/ostream.tcc
+++ b/libstdc++-v3/include/bits/ostream.tcc
@@ -417,7 +417,7 @@ namespace std {
       typedef typename traits_type::int_type int_type;
       
       int_type __plen = static_cast<size_t>(__newlen - __oldlen); 
-      char_type* __pads = static_cast<char_type*>(alloca(sizeof(char_type) * __plen));
+      char_type* __pads = static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __plen));
       traits_type::assign(__pads, __plen, __ios.fill()); 
 
       char_type* __beg;
@@ -496,7 +496,7 @@ namespace std {
 	{
 	  try {
 	    streamsize __w = __out.width();
-	    _CharT* __pads = static_cast<_CharT*>(alloca(sizeof(_CharT) * __w));
+	    _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
 	    __pads[0] = __c;
 	    streamsize __len = 1;
 	    if (__w > __len)
@@ -529,7 +529,7 @@ namespace std {
 	{
 	  try {
 	    streamsize __w = __out.width();
-	    char* __pads = static_cast<char*>(alloca(__w + 1));
+	    char* __pads = static_cast<char*>(__builtin_alloca(__w + 1));
 	    __pads[0] = __c;
 	    streamsize __len = 1;
 	    if (__w > __len)
@@ -596,7 +596,7 @@ namespace std {
       if (__cerb)
 	{
 	  size_t __clen = __ctraits_type::length(__s);
-	  _CharT* __ws = static_cast<_CharT*>(alloca(sizeof(_CharT) * (__clen + 1)));
+	  _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1)));
 	  for (size_t  __i = 0; __i <= __clen; ++__i)
 	    __ws[__i] = __out.widen(__s[__i]);
 	  _CharT* __str = __ws;
@@ -604,7 +604,7 @@ namespace std {
 	  try {
 	    streamsize __len = static_cast<streamsize>(__clen);
 	    streamsize __w = __out.width();
-	    _CharT* __pads = static_cast<_CharT*>(alloca(sizeof(_CharT) * __w));
+	    _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
 
 	    if (__w > __len)
 	      {
@@ -637,7 +637,7 @@ namespace std {
 	{
 	  try {
 	    streamsize __w = __out.width();
-	    char* __pads = static_cast<char*>(alloca(__w));
+	    char* __pads = static_cast<char*>(__builtin_alloca(__w));
 	    streamsize __len = static_cast<streamsize>(_Traits::length(__s));
 	    if (__w > __len)
 	      {
-- 
GitLab