[Bug c++/94808] [ICE] [Regression] Segfault during diagnostics from concept check failure
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Apr 29 02:08:55 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94808
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppalka@gcc.gnu.org>:
https://gcc.gnu.org/g:43439d5e8424f3a746003ef8953e1cdc120fbbd7
commit r10-8024-g43439d5e8424f3a746003ef8953e1cdc120fbbd7
Author: Patrick Palka <ppalka@redhat.com>
Date: Tue Apr 28 21:45:54 2020 -0400
c++: Parameter pack in requires parameter list [PR94808]
When printing the substituted parameter list of a requires-expression as
part of the "in requirements with ..." context line during concepts
diagnostics, we weren't considering that substitution into a parameter
pack can yield zero or multiple parameters.
This patch changes the way we print the parameter list of a
requires-expression in print_requires_expression_info. We now print the
dependent form of the parameter list (along with its template parameter
mapping) instead of printing its substituted form. Besides being an
improvement in its own, this also sidesteps the substitution issue in the
PR altogether.
gcc/cp/ChangeLog:
PR c++/94808
* error.c (print_requires_expression_info): Print the dependent
form of the parameter list with its template parameter mapping,
rather than printing the substituted form.
gcc/testsuite/ChangeLog:
PR c++/94808
* g++.dg/concepts/diagnostic12.C: New test.
* g++.dg/concepts/diagnostic5.C: Adjust dg-message.
More information about the Gcc-bugs
mailing list