mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-07 20:10:53 +08:00
[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:
parent
de1644122d
commit
a01d3b0481
@ -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.
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user