aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-if-conv.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2020-03-24 18:25:17 -0400
committerJason Merrill <jason@redhat.com>2020-03-24 18:25:18 -0400
commitfddfd3ce555965864b6116cf541f6355d2057d3d (patch)
tree59426fff8e2a75642580e04b299ca9fd727e783f /gcc/tree-if-conv.c
parent5c1617418432466f3f91d282d356bdec91e9dbd2 (diff)
downloadgcc-fddfd3ce555965864b6116cf541f6355d2057d3d.zip
gcc-fddfd3ce555965864b6116cf541f6355d2057d3d.tar.gz
gcc-fddfd3ce555965864b6116cf541f6355d2057d3d.tar.bz2
c++: Improve handling of ill-formed constraints [PR94186].
It would have been trivial to make the error for non-bool constraint in satisfy_atom unconditional, but that didn't give context for the error or printing with the dependent form and template arguments. So I changed a couple of places so that, when a hard error is encountered during quiet substitution/satisfaction, we go through again noisily; this builds up the necessary context. The similar change to tsubst_nested_requirement does not build up the necessary context; rather than try to fix that now I changed get_constraint_error_location to give up and use input_location if there's no CONSTR_CONTEXT. In the case of concepts-pr67697.C, we still have a good source location because the NESTED_REQ has a correct EXPR_LOCATION, but this patch doesn't improve context printing for this case as it does for the above. gcc/cp/ChangeLog 2020-03-24 Jason Merrill <jason@redhat.com> PR c++/94186 * constraint.cc (constraint_satisfaction_value): Repeat noisily on error. (tsubst_nested_requirement): Likewise. (get_constraint_error_location): Allow missing context. (diagnose_atomic_constraint): Diagnose non-bool constraint here. (satisfy_atom): Not here. Only diagnose non-constant when noisy.
Diffstat (limited to 'gcc/tree-if-conv.c')
0 files changed, 0 insertions, 0 deletions