rsmith added inline comments. ================ Comment at: include/clang/AST/DeclTemplate.h:836 @@ -835,2 +835,3 @@ + bool IsConcept : 1; protected: ---------------- This might make more sense on `TemplateDecl`, since we also want this flag for `VarTemplateDecl`s. In any case, please use some existing spare bit for this rather than making all `FunctionTemplateDecl`s 8 bytes larger by putting it here.
================ Comment at: include/clang/AST/DeclTemplate.h:986 @@ +985,3 @@ + bool isConcept() const { return IsConcept; } + void setConcept(bool IC) { IsConcept = IC; } + ---------------- Do we need a setter for this? (Can it change after the decl is constructed?) ================ Comment at: lib/Sema/SemaDecl.cpp:7681 @@ +7680,3 @@ + Diag(D.getDeclSpec().getConceptSpecLoc(), + diag::err_concept_specified_specialization) << 1; + } ---------------- Yes, I think that's a reasonable way forward. You can change either `TemplatedDecl` or `TemplateParams` into a `PointerIntPair` to avoid making `TemplateDecl` larger. ================ Comment at: lib/Sema/SemaTemplate.cpp:7672-7674 @@ +7671,5 @@ + // applied only to the definition of a function template or variable template, + // declared in namespace scope. A concept definition refers to either a + // function concept and its definition or a variable concept and its + // initializer. + if (D.getDeclSpec().isConceptSpecified()) { ---------------- I don't think we need to quote the second sentence here. ================ Comment at: lib/Sema/SemaTemplate.cpp:7677 @@ +7676,3 @@ + Diag(D.getDeclSpec().getConceptSpecLoc(), + diag:: err_concept_specified_specialization) << 0; + return true; ---------------- No space after `::` http://reviews.llvm.org/D13357 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits