aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2012-11-09 11:14:48 -0500
committerJason Merrill <jason@gcc.gnu.org>2012-11-09 11:14:48 -0500
commit2a28e76a78ec4f3bb1219c4ba5795f86dccb43cd (patch)
tree9cb2e5549cdc7ec2b712fab0a2599a56a5e67135
parent7dbb85a7932149aa5bac38fd77424b15c0248990 (diff)
downloadgcc-2a28e76a78ec4f3bb1219c4ba5795f86dccb43cd.zip
gcc-2a28e76a78ec4f3bb1219c4ba5795f86dccb43cd.tar.gz
gcc-2a28e76a78ec4f3bb1219c4ba5795f86dccb43cd.tar.bz2
re PR c++/54859 (constexpr in template alias rejected as non-constant)
PR c++/54859 * pt.c (check_instantiated_arg): Don't complain about dependent args. From-SVN: r193368
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/pt.c2
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alias-decl-25.C10
4 files changed, 18 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4d6d954..59167be 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
2012-11-09 Jason Merrill <jason@redhat.com>
+ PR c++/54859
+ * pt.c (check_instantiated_arg): Don't complain about dependent args.
+
* tree.c (cxx_attribute_table): Add abi_tag attribute.
(check_abi_tag_redeclaration, handle_abi_tag_attribute): New.
* class.c (find_abi_tags_r, check_abi_tags): New.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 1ff1c73..50d12b0 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -14362,6 +14362,8 @@ tsubst_copy_and_build (tree t,
static bool
check_instantiated_arg (tree tmpl, tree t, tsubst_flags_t complain)
{
+ if (dependent_template_arg_p (t))
+ return false;
if (ARGUMENT_PACK_P (t))
{
tree vec = ARGUMENT_PACK_ARGS (t);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 608e017..e888313 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2012-11-09 Jason Merrill <jason@redhat.com>
+ PR c++/54859
+ * g++.dg/cpp0x/alias-decl-25.C: New.
+
* g++.dg/abi/abi-tag1.C: New.
* g++.dg/abi/abi-tag2.C: New.
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-25.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-25.C
new file mode 100644
index 0000000..e72bd35
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-25.C
@@ -0,0 +1,10 @@
+// PR c++/54859
+// { dg-options -std=c++11 }
+
+template<unsigned N>
+ using Num = int;
+
+template<typename... Types>
+ using Count = Num<sizeof...(Types)>;
+
+Count<int, char, void> i;