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.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| abbrev1.C | Loading commit data... | |
| abbrev2.C | Loading commit data... | |
| abbrev3.C | Loading commit data... | |
| attrib1.C | Loading commit data... | |
| auto1.C | Loading commit data... | |
| auto3.C | Loading commit data... | |
| auto4.C | Loading commit data... | |
| class-deduction1.C | Loading commit data... | |
| class5.C | Loading commit data... | |
| class6.C | Loading commit data... | |
| debug1.C | Loading commit data... | |
| decl-diagnose.C | Loading commit data... | |
| deduction-constraint1.C | Loading commit data... | |
| diagnostic1.C | Loading commit data... | |
| diagnostic2.C | Loading commit data... | |
| diagnostic3.C | Loading commit data... | |
| diagnostic4.C | Loading commit data... | |
| diagnostic6.C | Loading commit data... | |
| dr1430.C | Loading commit data... | |
| equiv.C | Loading commit data... | |
| equiv2.C | Loading commit data... | |
| expression.C | Loading commit data... | |
| expression2.C | Loading commit data... | |
| expression3.C | Loading commit data... | |
| fn-concept1.C | Loading commit data... | |
| fn-concept2.C | Loading commit data... | |
| fn-concept3.C | Loading commit data... | |
| fn-generic-member-ool.C | Loading commit data... | |
| fn1.C | Loading commit data... | |
| fn10.C | Loading commit data... | |
| fn2.C | Loading commit data... | |
| fn3.C | Loading commit data... | |
| fn4.C | Loading commit data... | |
| fn5.C | Loading commit data... | |
| fn6.C | Loading commit data... | |
| fn7.C | Loading commit data... | |
| fn8.C | Loading commit data... | |
| fn9.C | Loading commit data... | |
| generic-fn-err.C | Loading commit data... | |
| generic-fn.C | Loading commit data... | |
| inherit-ctor1.C | Loading commit data... | |
| inherit-ctor3.C | Loading commit data... | |
| intro1.C | Loading commit data... | |
| intro2.C | Loading commit data... | |
| intro3.C | Loading commit data... | |
| intro4.C | Loading commit data... | |
| intro5.C | Loading commit data... | |
| intro6.C | Loading commit data... | |
| intro7.C | Loading commit data... | |
| locations1.C | Loading commit data... | |
| no-bool1.C | Loading commit data... | |
| partial-concept-id1.C | Loading commit data... | |
| partial-concept-id2.C | Loading commit data... | |
| partial-spec5.C | Loading commit data... | |
| placeholder2.C | Loading commit data... | |
| placeholder3.C | Loading commit data... | |
| placeholder4.C | Loading commit data... | |
| placeholder5.C | Loading commit data... | |
| placeholder6.C | Loading commit data... | |
| pr65634.C | Loading commit data... | |
| pr65636.C | Loading commit data... | |
| pr65681.C | Loading commit data... | |
| pr65848.C | Loading commit data... | |
| pr67249.C | Loading commit data... | |
| pr67544.C | Loading commit data... | |
| pr67595.C | Loading commit data... | |
| pr67655.C | Loading commit data... | |
| pr67656.C | Loading commit data... | |
| pr68434.C | Loading commit data... | |
| pr71127.C | Loading commit data... | |
| pr71128.C | Loading commit data... | |
| pr71131.C | Loading commit data... | |
| pr71385.C | Loading commit data... | |
| pr84330.C | Loading commit data... | |
| pr84423-1.C | Loading commit data... | |
| pr84423-2.C | Loading commit data... | |
| pr84661.C | Loading commit data... | |
| pr85065.C | Loading commit data... | |
| pr87768.C | Loading commit data... | |
| pr89036.C | Loading commit data... | |
| pr91073-1.C | Loading commit data... | |
| pr91073-2.C | Loading commit data... | |
| pr92804-1.C | Loading commit data... | |
| pr92804-2.C | Loading commit data... | |
| pr93729.C | Loading commit data... | |
| pr93933.C | Loading commit data... | |
| template-parm11.C | Loading commit data... | |
| template-parm12.C | Loading commit data... | |
| template-parm2.C | Loading commit data... | |
| template-parm3.C | Loading commit data... | |
| template-parm4.C | Loading commit data... | |
| template-template-parm1.C | Loading commit data... | |
| var-concept1.C | Loading commit data... | |
| var-concept2.C | Loading commit data... | |
| var-concept3.C | Loading commit data... | |
| var-concept4.C | Loading commit data... | |
| var-concept5.C | Loading commit data... | |
| var-concept6.C | Loading commit data... | |
| var-concept7.C | Loading commit data... | |
| var-templ1.C | Loading commit data... | |
| var-templ2.C | Loading commit data... | |
| var-templ3.C | Loading commit data... | |
| variadic1.C | Loading commit data... | |
| variadic2.C | Loading commit data... | |
| variadic3.C | Loading commit data... | |
| variadic4.C | Loading commit data... |