diff options
author | Mark Mitchell <mark@codesourcery.com> | 2006-05-02 15:59:50 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2006-05-02 15:59:50 +0000 |
commit | 7137605e8f429829d7bd9350f94c6c9691aa186f (patch) | |
tree | 8a8cf2fbbce2ce7e3e9f80eb8c80ad42a8e58c79 /gcc/cp/method.c | |
parent | 263bb8fb8603df086463cca38be38bdaedee08d2 (diff) | |
download | gcc-7137605e8f429829d7bd9350f94c6c9691aa186f.zip gcc-7137605e8f429829d7bd9350f94c6c9691aa186f.tar.gz gcc-7137605e8f429829d7bd9350f94c6c9691aa186f.tar.bz2 |
re PR c++/27309 (ICE on invalid constructor definition)
PR c++/27309
* class.c (add_method): Call grok_special_member_properties.
* decl.c (grokdeclarator): Don't call it here.
(copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
constructor.
(start_method): Don't call grok_special_member_properties.
* method.c (implicitly_declare_fn): Likewise.
* pt.c (instantiate_class_template): Likewise.
* decl2.c (grokfield): Likewise.
PR c++/27309
* g++.dg/parser/ctor5.C: New test.
From-SVN: r113473
Diffstat (limited to 'gcc/cp/method.c')
-rw-r--r-- | gcc/cp/method.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 68ec8ab..ddf79bf 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -1083,7 +1083,6 @@ implicitly_declare_fn (special_function_kind kind, tree type, bool const_p) DECL_ARGUMENTS (fn) = this_parm; grokclassfn (type, fn, kind == sfk_destructor ? DTOR_FLAG : NO_SPECIAL); - grok_special_member_properties (fn); set_linkage_according_to_type (type, fn); rest_of_decl_compilation (fn, toplevel_bindings_p (), at_eof); DECL_IN_AGGR_P (fn) = 1; |