[C++ PATCH] template specializations

https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01844.html
	* decl.c (duplicate_decls): Assert a template newdecl has no
	specializations.

From-SVN: r271713
This commit is contained in:
Nathan Sidwell 2019-05-28 17:04:12 +00:00 committed by Nathan Sidwell
parent de1644122d
commit a01d3b0481
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2019-05-28 Nathan Sidwell <nathan@acm.org>
* decl.c (duplicate_decls): Assert a template newdecl has no
specializations.
2019-05-28 Marek Polacek <polacek@redhat.com>
PR c++/90548 - ICE with generic lambda and empty pack.

View File

@ -2025,9 +2025,10 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
tree old_result = DECL_TEMPLATE_RESULT (olddecl);
tree new_result = DECL_TEMPLATE_RESULT (newdecl);
TREE_TYPE (olddecl) = TREE_TYPE (old_result);
DECL_TEMPLATE_SPECIALIZATIONS (olddecl)
= chainon (DECL_TEMPLATE_SPECIALIZATIONS (olddecl),
DECL_TEMPLATE_SPECIALIZATIONS (newdecl));
/* The new decl should not already have gathered any
specializations. */
gcc_assert (!DECL_TEMPLATE_SPECIALIZATIONS (newdecl));
DECL_ATTRIBUTES (old_result)
= (*targetm.merge_decl_attributes) (old_result, new_result);