r199581 - in /branches/c++-concepts: ChangeLog....
asutton@gcc.gnu.org
asutton@gcc.gnu.org
Sat Jun 1 14:35:00 GMT 2013
Author: asutton
Date: Sat Jun 1 14:35:48 2013
New Revision: 199581
URL: http://gcc.gnu.org/viewcvs?rev=199581&root=gcc&view=rev
Log:
2013-06-01 Andrew Sutton <andrew.n.sutton@gmail.com>
* gcc/system.h (cstdlib): Include <cstdlib> to avoid poisoned
declaration errors.
* gcc/c-family/common.c (c_common_r): Added __is_same_as intrinsic,
removed previous, unused intrinsics.
* gcc/c-family/common.h (rid): Added RID_IS_SAME_AS.
* gcc/cp/parser.c (take): New.
(cp_requires_clause): New.
(cp_requires_clause_opt): New.
(cp_rule): New.
(cp_parser_optional_if_token): New.
(cp_parser_optional_if_not_token): New.
(cp_parser_optional_if_keyword): New.
(cp_parser_decl_specifier_seq): Parse 'concept' as a declspec.
(cp_parser_type_parameter): Parse constrained template template parms.
(cp_parser_member_specification_opt): Parse member constraints after
the declaration, not before.
(cp_parser_template_declaration_after_exp): Rewrote parsing for
template requirements
(cp_parser_late_parsing_for_member): Re-push the current template
requirements when late-parsing member definitions.
* gcc/cp/decl.c (check_concept_fn): New.
(grokfndecl): Semantics for concept declspec.
(grokdeclarator): Semantics for concept declspec.
(xref_tag_1): Update to new interface.
* gcc/cp/constraint.cc (make_constraints): New.
* gcc/cp/cp-objcp-common.c (cp_tree_size): Add case for constraint_info.
* gcc/cp/cp-tree.h (require): New.
(tree_template_info): Add a field for constraint info.
(tree_constraint_info): New.
(constraint_info_p): New.
(template_info_p): New.
(CI_SPELLING): New.
(CI_REQUIREMENTS): New.
(CI_ASSUMPTIONS): New.
(TI_CONSTRAINT): New.
(TI_SPELLING): New.
(TI_REQUIREMENTS): New.
(TI_ASSUMPTIONS): New.
(DECL_TEMPLATE_CONSTRAINT): New.
(CLASSTYPE_TEMPLATE_CONSTRAINT): New.
(ENUM_TEMPLATE_CONSTRAINT): New.
(TEMPLATE_TEMPLATE_PARM_TEMPLATE_CONSTRAINT): New.
(TYPE_TEMPLATE_CONSTRAINT): New.
(cp_tree_node_structure_enum): Added entry for constraint info.
(lang_tree_node): Added entry for constraint info.
(lang_decl_base): Added bit for concept declarations.
(DECL_DECLARED_CONCEPT_P): New.
(cp_decl_spec): Added ds_concept declaration specifier.
* gcc/cp/Make-lang.in (logic.o): New target.
* gcc/cp/semantics.c (finish_template_requirements): Rewrite.
* gcc/cp/logic.cc: New
* gcc/cp-tree.def (CONSTRAINT_INFO): New node.
* gcc/cp/pt.c (current_template_args): Make non-static.
(redeclare_class_template): Take constraints as a 3rd argument
Added:
branches/c++-concepts/gcc/cp/logic.cc
Modified:
branches/c++-concepts/ChangeLog.concepts
branches/c++-concepts/gcc/c-family/c-common.c
branches/c++-concepts/gcc/c-family/c-common.h
branches/c++-concepts/gcc/cp/Make-lang.in
branches/c++-concepts/gcc/cp/constraint.cc
branches/c++-concepts/gcc/cp/cp-objcp-common.c
branches/c++-concepts/gcc/cp/cp-tree.def
branches/c++-concepts/gcc/cp/cp-tree.h
branches/c++-concepts/gcc/cp/decl.c
branches/c++-concepts/gcc/cp/parser.c
branches/c++-concepts/gcc/cp/pt.c
branches/c++-concepts/gcc/cp/semantics.c
branches/c++-concepts/gcc/system.h
More information about the Gcc-cvs
mailing list