From 0851111417ad065a9513312dede39bcfa2491516 Mon Sep 17 00:00:00 2001 From: Kriang Lerdsuwanakij Date: Wed, 24 Jan 2001 07:06:07 +0000 Subject: [PATCH] pt.c (check_explicit_specialization): Clone constructors and destructors. * pt.c (check_explicit_specialization): Clone constructors and destructors. * g++.old-deja/g++.pt/spec33.C: Change from "Build don't link" to "Build don't run". From-SVN: r39229 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/pt.c | 5 +++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.old-deja/g++.pt/spec33.C | 2 +- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 166d0c1..e846ca0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-01-23 Kriang Lerdsuwanakij + + * pt.c (check_explicit_specialization): Clone constructors and + destructors. + 2001-01-23 Nathan Sidwell * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 184edf8..0bed46e 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 6a963b4..a97e893 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2001-01-23 Kriang Lerdsuwanakij + + * g++.old-deja/g++.pt/spec33.C: Change from "Build don't link" to + "Build don't run". + 2001-01-23 Franz Sirl * 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 a458c1d..c795958 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 class A -- 2.7.4