diff options
author | Jason Merrill <jason@redhat.com> | 2020-05-15 14:06:48 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-05-15 14:06:57 -0400 |
commit | cda6396a1b6e6bba2a3b0847931567c3458f2184 (patch) | |
tree | 0886bfbae0e65f66cf1fa84dae41a69a1e0a11d1 /gcc/cp/decl2.c | |
parent | 4c1a5d8b71e29b71e0bc1004480c12c5fc427cb7 (diff) | |
download | gcc-cda6396a1b6e6bba2a3b0847931567c3458f2184.zip gcc-cda6396a1b6e6bba2a3b0847931567c3458f2184.tar.gz gcc-cda6396a1b6e6bba2a3b0847931567c3458f2184.tar.bz2 |
PR c++/93286 - ICE with __is_constructible and variadic template.
My GCC 10 patch for 93286 fixed the missing piece in tsubst's handling of
lists vs. that in tsubst_copy_and_build, but it would be better to share the
code between them.
gcc/cp/ChangeLog
2020-05-15 Jason Merrill <jason@redhat.com>
PR c++/93286 - ICE with __is_constructible and variadic template.
* pt.c (tsubst_tree_list): New.
(tsubst, tsubst_copy_and_build): Use it.
* decl2.c (is_late_template_attribute): Handle error_mark_node args.
Diffstat (limited to 'gcc/cp/decl2.c')
-rw-r--r-- | gcc/cp/decl2.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 4767d53..449c86c 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -1173,6 +1173,9 @@ is_late_template_attribute (tree attr, tree decl) && is_attribute_p ("omp declare simd", name)) return true; + if (args == error_mark_node) + return false; + /* An attribute pack is clearly dependent. */ if (args && PACK_EXPANSION_P (args)) return true; |