summaryrefslogtreecommitdiff
path: root/libstdc++
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-23 12:47:24 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-23 12:47:24 +0000
commit954885ed054c86fa3a946f35c7925e447d572ed3 (patch)
tree1a569fd48a34a3e468b6fe1fcacbc60c724d1626 /libstdc++
parent663878d1af0342efc69e6c2fc43c75cadf832524 (diff)
downloadgcc-954885ed054c86fa3a946f35c7925e447d572ed3.tar.gz
* iomanip.h: Use __extension__ for `extern' explicit template
instantiations. * sinst.cc: Don't explicitly instantiation string_char_traits<char>. * cinst.cc: Likewiwse, for complex<float>, complex<double>, complex<long double>. * extend.texi: Remove description of extension to explicit instantiation that is now endorsed by standard C++. * decl2.c (grok_array_decl): Add comment. (mark_used): Don't instantiate an explicit instantiation. * friend.c (make_friend_class): Remove bogus comment. Fix check for partial specializations. * pt.c (check_explicit_specialization): Don't SET_DECL_EXPLICIT_INSTANTIATION here. (mark_decl_instantiated): Or here. (do_decl_instantiation): Do it here, instead. Add checks for duplicate explicit instantiations, etc. Tidy. (do_type_instantiation): Likewise. (instantiate_decl): Improve comments. Complain about explicit instantiations where no definition is available. * cp-tree.h (ansi_null_node): Remove. * call.c (build_over_call): Warn about converting NULL to an arithmetic type. * cvt.c (build_expr_type_conversion): Likewise. Use null_ptr_cst_p instead of expanding it inline. * decl.c (ansi_null_node): Remove. (init_decl_processing): Make null_node always have integral type. * except.c (build_throw): Warn about converting NULL to an arithmetic type. * lex.c (init_parse): Remove handling of ansi_null_node. * pt.c (type_unification_real): Don't convert NULL to void* type. * typeck.c (build_binary_op_nodefault): Fix NULL warnings. (convert_for_assignment): Warn about converting NULL to an arithmetic type. (convert_for_initialization): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21915 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++')
-rw-r--r--libstdc++/ChangeLog6
-rw-r--r--libstdc++/cinst.cc1
-rw-r--r--libstdc++/sinst.cc5
3 files changed, 10 insertions, 2 deletions
diff --git a/libstdc++/ChangeLog b/libstdc++/ChangeLog
index c9570fefbcf..2cb0d0a9255 100644
--- a/libstdc++/ChangeLog
+++ b/libstdc++/ChangeLog
@@ -1,3 +1,9 @@
+1998-08-23 Mark Mitchell <mark@markmitchell.com>
+
+ * sinst.cc: Don't explicitly instantiation string_char_traits<char>.
+ * cinst.cc: Likewiwse, for complex<float>, complex<double>,
+ complex<long double>.
+
1998-08-17 Mark Mitchell <mark@markmitchell.com>
* stdexcept: Put things in the std namespace, if appropriate.
diff --git a/libstdc++/cinst.cc b/libstdc++/cinst.cc
index 010f3cad5e6..983e8a9caa7 100644
--- a/libstdc++/cinst.cc
+++ b/libstdc++/cinst.cc
@@ -32,7 +32,6 @@ typedef complex<f> c;
typedef const c& ccr;
#ifdef MAIN
-template class complex<f>;
template c& __doapl (c*, ccr);
template c& __doaml (c*, ccr);
template c& __doami (c*, ccr);
diff --git a/libstdc++/sinst.cc b/libstdc++/sinst.cc
index 79c31a36933..0b3617ece62 100644
--- a/libstdc++/sinst.cc
+++ b/libstdc++/sinst.cc
@@ -42,8 +42,11 @@ typedef char c;
typedef wchar_t c;
#endif
-#ifdef TRAITS
+#if defined(TRAITS) && !defined(C)
template class string_char_traits <c>;
+#else
+/* string_char_traits<char> is already explicitly specialized in
+ std/straits.h. */
#endif
typedef basic_string <c> s;