2015-04-02 Andrew Sutton <andrew.n.sutton@gmail.com>
commit28aef784088ec2a604e6c9546fc351a95e23d31b
authorasutton <asutton@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Apr 2015 19:08:37 +0000 (2 19:08 +0000)
committerasutton <asutton@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Apr 2015 19:08:37 +0000 (2 19:08 +0000)
tree53710da541b270e01fad9f2473fbdc04267c7170
parent42a91245d33140a579bf1d3670b03a065093e185
2015-04-02  Andrew Sutton  <andrew.n.sutton@gmail.com>

Fixing constraint processing bugs.
* gcc/cp/constraint.cc (check_logical_expr): Use build_x_binary_op
so that the c-common doesn't try to fold requires-expressions.
* gcc/cp/constexpr.c (cxx_eval_constant_expression): The value
of a requires clause is true iff its constraints are satisfied.
This lets us check negated requires-expressions.
* gcc/testsuite/g++.dg/concepts/req4.C: Update diagnostics
* gcc/testsuite/g++.dg/concepts/req5.C: Update diagnostics
* gcc/testsuite/g++.dg/concepts/req11.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/c++-concepts@221845 138bc75d-0d04-0410-961f-82ee72b054a4
ChangeLog.concepts
gcc/cp/constexpr.c
gcc/cp/constraint.cc
gcc/testsuite/g++.dg/concepts/req11.C [new file with mode: 0644]
gcc/testsuite/g++.dg/concepts/req4.C
gcc/testsuite/g++.dg/concepts/req5.C