From 4200a7231e1ad67dc5476b7b6ab9ea015ccaa65d Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 11 Aug 2016 11:43:12 -0400 Subject: PR c++/73456 - ICE with constrained parameter pack. * logic.cc (non_atomic_constraint_p): Handle EXPR_PACK_EXPANSION. From-SVN: r239376 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/logic.cc | 3 +++ 2 files changed, 8 insertions(+) (limited to 'gcc/cp') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 647b3e6..04d6aa0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2016-08-11 Jason Merrill + + PR c++/73456 + * logic.cc (non_atomic_constraint_p): Handle EXPR_PACK_EXPANSION. + 2016-08-10 Jason Merrill Implement C++17 constexpr if. diff --git a/gcc/cp/logic.cc b/gcc/cp/logic.cc index dda98df..b86e740 100644 --- a/gcc/cp/logic.cc +++ b/gcc/cp/logic.cc @@ -305,6 +305,9 @@ non_atomic_constraint_p (tree t) case ICONV_CONSTR: case DEDUCT_CONSTR: case EXCEPT_CONSTR: + /* A pack expansion isn't atomic, but it can't decompose to prove an + atom, so it shouldn't cause analyze_atom to return undecided. */ + case EXPR_PACK_EXPANSION: return false; case CHECK_CONSTR: case PARM_CONSTR: -- cgit v1.1