summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/pt.c5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/spec33.C2
4 files changed, 16 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 166d0c1c573..e846ca0b4f3 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * pt.c (check_explicit_specialization): Clone constructors and
+ destructors.
+
2001-01-23 Nathan Sidwell <nathan@codesourcery.com>
* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 184edf846f9..0bed46ec854 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -1688,6 +1688,11 @@ check_explicit_specialization (declarator, decl, template_count, flags)
It's just the name of an instantiation. But, it's not
a request for an instantiation, either. */
SET_DECL_IMPLICIT_INSTANTIATION (decl);
+ else if (DECL_CONSTRUCTOR_P (decl) || DECL_DESTRUCTOR_P (decl))
+ /* This is indeed a specialization. In case of constructors
+ and destructors, we need in-charge and not-in-charge
+ versions in V3 ABI. */
+ clone_function_decl (decl, /*update_method_vec_p=*/0);
/* Register this specialization so that we can find it
again. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6a963b4a0f8..a97e893c90f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * g++.old-deja/g++.pt/spec33.C: Change from "Build don't link" to
+ "Build don't run".
+
2001-01-23 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.c-torture/execute/20010123-1.c: New test.
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec33.C b/gcc/testsuite/g++.old-deja/g++.pt/spec33.C
index a458c1dc417..c7959587926 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/spec33.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/spec33.C
@@ -1,4 +1,4 @@
-// Build don't link:
+// Build don't run:
// Origin: James McKelvey <mckelvey@fafnir.com>
class A