From 57d01e696f51a8761f0feb35e82f93f37f341b0f Mon Sep 17 00:00:00 2001
From: Paolo Carlini <pcarlini@suse.de>
Date: Wed, 22 Oct 2003 15:44:19 +0000
Subject: [PATCH] re PR libstdc++/12657 (Resolution of DR 292 (WP) still
 unimplemented)

2003-10-22  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/12657
	* include/bits/basic_ios.tcc (copyfmt(const basic_ios&)):
	Implement resolution of DR 292 (WP).
	* docs/html/ext/howto.html: Add entry for DR 292.

From-SVN: r72803
---
 libstdc++-v3/ChangeLog                  | 7 +++++++
 libstdc++-v3/docs/html/ext/howto.html   | 6 ++++++
 libstdc++-v3/include/bits/basic_ios.tcc | 5 +++++
 3 files changed, 18 insertions(+)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 3ac3f04ce385..7ee8180efe55 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2003-10-22  Paolo Carlini  <pcarlini@suse.de>
+
+	PR libstdc++/12657
+	* include/bits/basic_ios.tcc (copyfmt(const basic_ios&)):
+	Implement resolution of DR 292 (WP).
+	* docs/html/ext/howto.html: Add entry for DR 292.
+
 2003-10-21  Benjamin Kosnik  <bkoz@redhat.com>
 
 	* include/ext/mt_allocator.h: Change include to gthr.h.
diff --git a/libstdc++-v3/docs/html/ext/howto.html b/libstdc++-v3/docs/html/ext/howto.html
index 1c190a66613e..f9e7cb6e4d46 100644
--- a/libstdc++-v3/docs/html/ext/howto.html
+++ b/libstdc++-v3/docs/html/ext/howto.html
@@ -640,6 +640,12 @@
     <dd>Similar to 118.
     </dd>
 
+    <dt><a href="lwg-defects.html#292">292</a>:
+        <em>Effects of a.copyfmt (a)</em>
+    </dt>
+    <dd>If <code>(this == &amp;rhs)</code> do nothing.
+    </dd>
+
 <!--
     <dt><a href="lwg-defects.html#"></a>:
         <em></em>
diff --git a/libstdc++-v3/include/bits/basic_ios.tcc b/libstdc++-v3/include/bits/basic_ios.tcc
index 9df5f4880e34..541453afb319 100644
--- a/libstdc++-v3/include/bits/basic_ios.tcc
+++ b/libstdc++-v3/include/bits/basic_ios.tcc
@@ -60,6 +60,11 @@ namespace std
     basic_ios<_CharT, _Traits>&
     basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)
     {
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 292. effects of a.copyfmt (a)
+      if (this == &__rhs)
+	return *this;
+
       // Per 27.1.1, do not call imbue, yet must trash all caches
       // associated with imbue()
 
-- 
GitLab