re PR c++/88395 (ICE: Segmentation fault signal terminated program cc1plus, with...
authorAndrew Sutton <asutton@lock3software.com>
Wed, 27 Nov 2019 15:09:22 +0000 (15:09 +0000)
committerAndrew Sutton <asutton@gcc.gnu.org>
Wed, 27 Nov 2019 15:09:22 +0000 (15:09 +0000)
commit72479e324313e8a68a534527f79e741f9a7df6fa
treef46a1aaf67d858bb4a7c009120886384a823e531
parent864233f1114c27478bdcbbaedc46bb82d2987b95
re PR c++/88395 (ICE: Segmentation fault signal terminated program cc1plus, with -std=c++2a -fconcepts)

2019-11-27  Andrew Sutton  <asutton@lock3software.com>

PR c++/88395
Prevent recursive satisfaction by adding requests to the instantiation
stack.

gcc/cp/
* constraint.cc (satisfy_declaration_constraints): Push tinst levels
around satisfaction.

gcc/testsuite/
* g++.dg/cpp2a/concepts-pr88395.C: New.
* g++.dg/cpp2a/concepts-recursive-sat1.C: New.
* g++.dg/cpp2a/concepts-recursive-sat2.C: New.
* g++.dg/cpp2a/concepts-recursive-sat3.C: New.

From-SVN: r278773
gcc/cp/ChangeLog
gcc/cp/constraint.cc
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp2a/concepts-pr88395.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat3.C [new file with mode: 0644]