From 2e52ced18d9d59dcb4aa0ad559e5f65c427ef8d0 Mon Sep 17 00:00:00 2001
From: paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 18 Aug 2006 15:42:05 +0000
Subject: [PATCH] 2006-08-18  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28765
	* include/ext/rc_string_base.h (_M_clear): New.
	* include/ext/sso_string_base.h (_M_clear): Likewise.
	* include/ext/vstring.h (clear): Use it.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116240 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libstdc++-v3/ChangeLog                     | 7 +++++++
 libstdc++-v3/include/ext/rc_string_base.h  | 4 ++++
 libstdc++-v3/include/ext/sso_string_base.h | 4 ++++
 libstdc++-v3/include/ext/vstring.h         | 2 +-
 4 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a9556d7a9512..9d692ab132a8 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2006-08-18  Paolo Carlini  <pcarlini@suse.de>
+
+	PR libstdc++/28765
+	* include/ext/rc_string_base.h (_M_clear): New.
+	* include/ext/sso_string_base.h (_M_clear): Likewise.
+	* include/ext/vstring.h (clear): Use it.
+
 2006-08-15  Paolo Carlini  <pcarlini@suse.de>
 
 	* include/tr1/random (poisson_distribution<>::_M_initialize): Add.
diff --git a/libstdc++-v3/include/ext/rc_string_base.h b/libstdc++-v3/include/ext/rc_string_base.h
index eec6f2dcf0d1..1a896d827fee 100644
--- a/libstdc++-v3/include/ext/rc_string_base.h
+++ b/libstdc++-v3/include/ext/rc_string_base.h
@@ -338,6 +338,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
       void
       _M_erase(size_type __pos, size_type __n);
 
+      void
+      _M_clear()
+      { _M_erase(size_type(0), _M_length()); }
+
       bool
       _M_compare(const __rc_string_base&) const
       { return false; }
diff --git a/libstdc++-v3/include/ext/sso_string_base.h b/libstdc++-v3/include/ext/sso_string_base.h
index 1282eb6e53e9..30988260dd79 100644
--- a/libstdc++-v3/include/ext/sso_string_base.h
+++ b/libstdc++-v3/include/ext/sso_string_base.h
@@ -226,6 +226,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
       void
       _M_erase(size_type __pos, size_type __n);
 
+      void
+      _M_clear()
+      { _M_set_length(0); }
+
       bool
       _M_compare(const __sso_string_base&) const
       { return false; }
diff --git a/libstdc++-v3/include/ext/vstring.h b/libstdc++-v3/include/ext/vstring.h
index 5cd84b15a307..d858949db467 100644
--- a/libstdc++-v3/include/ext/vstring.h
+++ b/libstdc++-v3/include/ext/vstring.h
@@ -409,7 +409,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
        */
       void
       clear()
-      { this->_M_erase(size_type(0), this->size()); }
+      { this->_M_clear(); }
 
       /**
        *  Returns true if the %string is empty.  Equivalent to *this == "".
-- 
GitLab