2008-01-25 Douglas Gregor <doug.gregor@gmail.com>
commitd9fe2c557295bb7636a1f08410ac95ec8e264864
authordgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jan 2008 20:14:11 +0000 (25 20:14 +0000)
committerdgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jan 2008 20:14:11 +0000 (25 20:14 +0000)
tree1d6797fddb9bd25f90f096c42e504d387b061f3d
parent8ce04f3b89ee16e5ca4b7e7c8d7123c52d857d3c
2008-01-25  Douglas Gregor  <doug.gregor@gmail.com>

* c-common.c (rid): RID_REQUIRES is now the last C++0x keyword.

2008-01-25  Douglas Gregor  <doug.gregor@gmail.com>

* cp/decl.c (tag_name): concept_type -> "concept"
(xref_tag): concepts are stored as RECORD_TYPE nodes.
* cp/pt.c (lookup_template_class): When creating a new type for a
concept, mark it as a concept-id.
* cp/concept.c (begin_concept_definition): New.
(check_refinement): New.
(xref_refinements): New.
(finish_concept_definition): New.
* cp/parser.c (cp_parser_declaration): Parse concepts.
(cp_parser_concept_definition): New.
(cp_parser_refinement_clause): New.
(cp_parser_refinement_specifier): New.
(cp_parser_concept_body): New, stub.
* cp/config-lang.in (gtfiles): Add cp/concept.c.
* cp/Make-lang.in (cp/concept.o): New, add to front end.
* cp/cp-tree.h (enum concept_kind): New.
(CLASSTYPE_USE_CONCEPT): New.
(CONCEPT_P): New.
(IMPLICIT_CONCEPT_P): New.
(EXPLICIT_CONCEPT_P): New.
(struct lang_type_class): Add use_concept field; update dummy
bits.
(enum tag_types): Add concept_type tag.
(begin_concept_definition): Declare.
(xref_refinements): Declare.
(finish_concept_definition): Declare.

2008-01-25  Douglas Gregor  <doug.gregor@gmail.com>

* testsuite/g++.dg/concepts/refine-errors1.C: New.
* testsuite/g++.dg/concepts/parse1.C: New.
* testsuite/g++.dg/concepts/parse2.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/cxx0x-concepts-branch@131834 138bc75d-0d04-0410-961f-82ee72b054a4
14 files changed:
gcc/ChangeLog.concepts
gcc/c-common.h
gcc/cp/ChangeLog.concepts
gcc/cp/Make-lang.in
gcc/cp/concept.c [new file with mode: 0644]
gcc/cp/config-lang.in
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/testsuite/ChangeLog.concepts [new file with mode: 0644]
gcc/testsuite/g++.dg/concepts/parse1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/concepts/parse2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/concepts/refine-errors1.C [new file with mode: 0644]