diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-23 12:47:24 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-23 12:47:24 +0000 |
commit | 954885ed054c86fa3a946f35c7925e447d572ed3 (patch) | |
tree | 1a569fd48a34a3e468b6fe1fcacbc60c724d1626 /libstdc++ | |
parent | 663878d1af0342efc69e6c2fc43c75cadf832524 (diff) | |
download | gcc-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++/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++/cinst.cc | 1 | ||||
-rw-r--r-- | libstdc++/sinst.cc | 5 |
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; |