public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
* [committed] libstdc++: Remove redundant explicit instantiations
@ 2021-06-28 15:25 Jonathan Wakely
  0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2021-06-28 15:25 UTC (permalink / raw)
  To: libstdc++, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 435 bytes --]

These function templates are explicitly specialized for char and wchar_t
streambufs, so the explicit instantiations do nothing. Remove them, to
avoid confusion.

libstdc++-v3/ChangeLog:

	* include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
	explicit instantiation declarations.
	* src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
	explicit instantiation definitions.

Tested powerpc64le-linux. Committed to trunk.


[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 2566 bytes --]

commit 084635aa80daa45403aebd86712b2c61779c4173
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Jun 28 15:16:08 2021

    libstdc++: Remove redundant explicit instantiations
    
    These function templates are explicitly specialized for char and wchar_t
    streambufs, so the explicit instantiations do nothing. Remove them, to
    avoid confusion.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
            explicit instantiation declarations.
            * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
            explicit instantiation definitions.

diff --git a/libstdc++-v3/include/bits/streambuf.tcc b/libstdc++-v3/include/bits/streambuf.tcc
index cbcfb0c790e..22464c4401c 100644
--- a/libstdc++-v3/include/bits/streambuf.tcc
+++ b/libstdc++-v3/include/bits/streambuf.tcc
@@ -147,25 +147,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // which are defined via explicit instantiations elsewhere.
 #if _GLIBCXX_EXTERN_TEMPLATE
   extern template class basic_streambuf<char>;
+
   extern template
     streamsize
     __copy_streambufs(basic_streambuf<char>*,
 		      basic_streambuf<char>*);
-  extern template
-    streamsize
-    __copy_streambufs_eof(basic_streambuf<char>*,
-			  basic_streambuf<char>*, bool&);
 
 #ifdef _GLIBCXX_USE_WCHAR_T
   extern template class basic_streambuf<wchar_t>;
+
   extern template
     streamsize
     __copy_streambufs(basic_streambuf<wchar_t>*,
 		      basic_streambuf<wchar_t>*);
-  extern template
-    streamsize
-    __copy_streambufs_eof(basic_streambuf<wchar_t>*,
-			  basic_streambuf<wchar_t>*, bool&);
 #endif
 #endif
 
diff --git a/libstdc++-v3/src/c++11/streambuf-inst.cc b/libstdc++-v3/src/c++11/streambuf-inst.cc
index 497f54e193f..c2c2ee9a688 100644
--- a/libstdc++-v3/src/c++11/streambuf-inst.cc
+++ b/libstdc++-v3/src/c++11/streambuf-inst.cc
@@ -40,11 +40,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     streamsize
     __copy_streambufs(basic_streambuf<char>*, basic_streambuf<char>*);
 
-  template
-    streamsize
-    __copy_streambufs_eof(basic_streambuf<char>*,
-			  basic_streambuf<char>*, bool&);
-
 #ifdef _GLIBCXX_USE_WCHAR_T
   // wstreambuf
   template class basic_streambuf<wchar_t>;
@@ -52,11 +47,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template
     streamsize
     __copy_streambufs(basic_streambuf<wchar_t>*, basic_streambuf<wchar_t>*);
-
-  template
-    streamsize
-    __copy_streambufs_eof(basic_streambuf<wchar_t>*,
-			  basic_streambuf<wchar_t>*, bool&);
 #endif
 
 _GLIBCXX_END_NAMESPACE_VERSION

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-06-28 15:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-28 15:25 [committed] libstdc++: Remove redundant explicit instantiations Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).