Adding initial support for the semantic analysis of template
requirements. This patch adds features for reducing requires clauses
into logical formulas comprised only of atomic propositions and
logical connectives.

The next patch will add inlining for constraint predicates.

I had hoped to add the file as constraint.cc, but the build system in
this version doesn't seem to have to build support for .cc files (kept
getting "no such file: cp/constraint.o", but adding the file as .c
worked just fine.


2013-03-11  Andrew Sutton  <andrew.n.sut...@gmail.com>
        * gcc/cp/Make-lang.in: Add constraint.c
        * gcc/cp/constraint.c: New
        (conjoin_requirements): New
        (disjoin_requirements): New
        (requirement_reduction): New class
        (reduce_requirements): New
        * gcc/cp/cp-tree.h (reduce_requrements): New
        (conjoin_requirements): New
        (disjoin_requirements): New
        * gcc/cp/cp-tree.h (finish_template_template_parm) Comments.
        * gcc/cp/semantics.c (finish_template_requirements) Start
        working with requirements.

Attachment: reqs-sem.patch
Description: Binary data

Reply via email to