[all-commits] [llvm/llvm-project] 57f70e: [Concepts] Fix ConceptSpecializationExpr profiling...

Saar Raz via All-commits all-commits at lists.llvm.org
Thu Jan 23 17:09:15 PST 2020


  Branch: refs/heads/release/10.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 57f70e387e362d988937b6627461d781ecf09e50
      https://github.com/llvm/llvm-project/commit/57f70e387e362d988937b6627461d781ecf09e50
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/AST/StmtProfile.cpp

  Log Message:
  -----------
  [Concepts] Fix ConceptSpecializationExpr profiling crash

ConceptSpecializationExprs (CSEs) were being created with nullptr
TemplateArgsAsWritten during TemplateTemplateParmDecl canonicalization, and
we were relying on them during profiling which caused sporadic crashes
in test/CXX/.../temp.arg.template/p3-2a.cpp introduced in D44352.

Change profiling of CSEs to instead rely on the actual converted template
arguments and concept named.

(cherry picked from commit 8a3446746098ba29348bb8f85357dd0b466a6d6e)


  Commit: ab514b91196345ba4c61026e4997871e85ddd97d
      https://github.com/llvm/llvm-project/commit/ab514b91196345ba4c61026e4997871e85ddd97d
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/ParsedTemplate.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseExprCXX.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Parse/ParseTentative.cpp
    M clang/lib/Parse/Parser.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/CXX/temp/temp.res/temp.dep/temp.dep.constexpr/p2.cpp
    M clang/test/Parser/cxx-decl.cpp
    M clang/test/SemaTemplate/ms-delayed-default-template-args.cpp
    M clang/test/SemaTemplate/rdar9173693.cpp

  Log Message:
  -----------
  Remove redundant CXXScopeSpec from TemplateIdAnnotation.

A TemplateIdAnnotation represents only a template-id, not a
nested-name-specifier plus a template-id. Don't make a redundant copy of
the CXXScopeSpec and store it on the template-id annotation.

This slightly improves error recovery by more properly handling the case
where we would form an invalid CXXScopeSpec while parsing a typename
specifier, instead of accidentally putting the token stream into a
broken "annot_template_id with a scope specifier, but with no preceding
annot_cxxscope token" state.

(cherry picked from commit a42fd84cff265b7e9faa3fe42885ee171393e4db)


  Commit: c96ef5118857ff938aa6d304ccf7c0f9b81bc5ba
      https://github.com/llvm/llvm-project/commit/c96ef5118857ff938aa6d304ccf7c0f9b81bc5ba
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/include/clang/AST/ASTConcept.h
    M clang/include/clang/AST/DeclCXX.h
    M clang/include/clang/AST/ExprCXX.h
    A clang/include/clang/AST/ExprConcepts.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/AST/StmtVisitor.h
    M clang/include/clang/Basic/DeclNodes.td
    M clang/include/clang/Basic/DiagnosticParseKinds.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/DeclSpec.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaConcept.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/CMakeLists.txt
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprCXX.cpp
    M clang/lib/AST/ExprClassification.cpp
    A clang/lib/AST/ExprConcepts.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/Stmt.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseExprCXX.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaLookup.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTCommon.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.req/equivalence.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.req/p3.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.req/requires-expr.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp
    A clang/test/PCH/cxx2a-requires-expr.cpp
    A clang/test/Parser/cxx2a-concepts-requires-expr.cpp
    A clang/test/SemaTemplate/instantiate-requires-expr.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp

  Log Message:
  -----------
  [Concepts] Requires Expressions

Implement support for C++2a requires-expressions.

Re-commit after compilation failure on some platforms due to alignment issues with PointerIntPair.

Differential Revision: https://reviews.llvm.org/D50360

(cherry picked from commit a0f50d731639350c7a79f140f026c27a18215531)


  Commit: fe039ecc2d7467ee02a30a9b32d99256e468a671
      https://github.com/llvm/llvm-project/commit/fe039ecc2d7467ee02a30a9b32d99256e468a671
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/Parse/ParseDecl.cpp

  Log Message:
  -----------
  [Concepts] Fix name-type conflict compilation issues

D50360 caused some platforms to not compile due to a parameter with the name of a type.

Rename the parameter.

(cherry picked from commit e68c1e00eba4ae64d38e62eebebd581e3d3d6bd4)


  Commit: b597c9e46cb5993edbb872586022dd9ca36cfd8d
      https://github.com/llvm/llvm-project/commit/b597c9e46cb5993edbb872586022dd9ca36cfd8d
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang-tools-extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp

  Log Message:
  -----------
  [clang-tidy] Fix check for generic lambda invented template parameters

clang-tidy previously relied on there being no identifier for a TemplateTypeParmDecl for checking
whether 'decltype(x)' should be inserted, instead of checking whether or not it is implicit.

D65042 added new names for invented generic lambda template parameters, rendering that check incorrect.

(cherry picked from commit 5fdad8e3f803adce501ca25118f325184e54018d)


  Commit: 62709e7e49aacfc591c5f4e05be8216a0111c159
      https://github.com/llvm/llvm-project/commit/62709e7e49aacfc591c5f4e05be8216a0111c159
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/include/clang/AST/ASTConcept.h
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Driver/CC1Options.td
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/TemplateDeduction.h
    M clang/lib/AST/ASTConcept.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaConcept.cpp
    A clang/test/SemaTemplate/cxx2a-constraint-caching.cpp

  Log Message:
  -----------
  [Concepts] Constraint Satisfaction Caching

Add a simple cache for constraint satisfaction results. Whether or not this simple caching
would be permitted in final C++2a is currently being discussed but it is required for
acceptable performance so we use it in the meantime, with the possibility of adding some
cache invalidation mechanisms later.

Differential Revision: https://reviews.llvm.org/D72552

(cherry picked from commit b933d37cd3774e5431b35e82187eebb59b1ff59e)


  Commit: 897b83842c0c53b1a11d3c3dd81c299fcb106139
      https://github.com/llvm/llvm-project/commit/897b83842c0c53b1a11d3c3dd81c299fcb106139
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/AST/ASTConcept.cpp

  Log Message:
  -----------
  [Concepts] Fix circular AST->Sema dependency in ASTConcept.cpp

Remove inappropriate Sema include in ASTConcept.cpp introduced by D72552 for the finer-grained includes actually needed.

(cherry picked from commit bb9b964072eb42a09e76fe148b36eefcfff077b2)


  Commit: 8ca4a61753985b65e2f76c75416ea47126b2b011
      https://github.com/llvm/llvm-project/commit/8ca4a61753985b65e2f76c75416ea47126b2b011
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/Parse/ParseTemplate.cpp

  Log Message:
  -----------
  [Concepts] Fix incorrect recovery in TryAnnotateTypeConstraint

TryAnnotateTypeConstraint would not put the scope specifier back into the token stream when faced
with a non-concept name after a scope specifier.

(cherry picked from commit de51559fa68049da73b696a4e89468154b12852a)


  Commit: 51a0e9fd6ae58c1b61fbbea1adf7d97371b7fe1c
      https://github.com/llvm/llvm-project/commit/51a0e9fd6ae58c1b61fbbea1adf7d97371b7fe1c
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/SemaTemplate/instantiate-requires-clause.cpp

  Log Message:
  -----------
  [Concepts] Fix bug when referencing function parameters in instantiated function template requires clause

Fixes bug #44613 - incorrect instantiated parameters were being added when checking instantiated function constraints

(cherry picked from commit c2a250e1c43c05925fe040dc9624403af7879453)


  Commit: dd5820699b75849332c930d77beeb24417316b43
      https://github.com/llvm/llvm-project/commit/dd5820699b75849332c930d77beeb24417316b43
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/AST/DeclTemplate.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp

  Log Message:
  -----------
  [Concepts] Profile TypeConstraints in ProfileTemplateParameterList

Profile TypeConstraints in ProfileTemplateParameterList so we can distinguish
between partial specializations which differ in their TemplateParameterList
type constraints.

Recommit, now profiling the IDC so that we can deal with situations where the
TemplateArgsAsWritten are nullptr (happens when canonicalizing type constraints).

(cherry picked from commit 62c221b5090c2e1d3ca408bcab6f69c4d9e175b7)


  Commit: 6a8cd9fc81e86916c1d8d55f52e3c7d5ccdb598a
      https://github.com/llvm/llvm-project/commit/6a8cd9fc81e86916c1d8d55f52e3c7d5ccdb598a
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/include/clang/AST/DeclTemplate.h
    M clang/include/clang/AST/PropertiesBase.td
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/TemplateBase.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/AST/TypeLoc.h
    M clang/include/clang/AST/TypeProperties.td
    M clang/include/clang/Basic/DiagnosticParseKinds.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Sema/DeclSpec.h
    M clang/include/clang/Sema/Scope.h
    M clang/include/clang/Sema/ScopeInfo.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/ASTStructuralEquivalence.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/ODRHash.cpp
    M clang/lib/AST/TemplateBase.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypeLoc.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Parse/ParseCXXInlineMethods.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Parse/ParseTentative.cpp
    M clang/lib/Parse/Parser.cpp
    M clang/lib/Sema/DeclSpec.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/AST/ast-dump-record-definition-data-json.cpp
    A clang/test/CXX/dcl/dcl.fct/p17.cpp
    A clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp
    M clang/test/CXX/temp/temp.param/p10-2a.cpp
    A clang/test/Parser/cxx2a-placeholder-type-constraint.cpp
    M clang/test/SemaCXX/cxx1y-generic-lambdas.cpp
    M clang/test/SemaTemplate/ms-delayed-default-template-args.cpp

  Log Message:
  -----------
  [Concepts] Placeholder constraints and abbreviated templates

This patch implements P1141R2 "Yet another approach for constrained declarations".

General strategy for this patch was:

- Expand AutoType to include optional type-constraint, reflecting the wording and easing the integration of constraints.
- Replace autos in parameter type specifiers with invented parameters in GetTypeSpecTypeForDeclarator, using the same logic
  previously used for generic lambdas, now unified with abbreviated templates, by:
  - Tracking the template parameter lists in the Declarator object
  - Tracking the template parameter depth before parsing function declarators (at which point we can match template
    parameters against scope specifiers to know if we have an explicit template parameter list to append invented parameters
    to or not).
- When encountering an AutoType in a parameter context we check a stack of InventedTemplateParameterInfo structures that
  contain the info required to create and accumulate invented template parameters (fields that were already present in
  LambdaScopeInfo, which now inherits from this class and is looked up when an auto is encountered in a lambda context).

Resubmit after fixing MSAN failures caused by incomplete initialization of AutoTypeLocs in TypeSpecLocFiller.

Differential Revision: https://reviews.llvm.org/D65042

(cherry picked from commit b481f028144ca91c15d1db3649ce14f174259e7e)


  Commit: a9b2cf6c625ab15e3cef00350c855e7cd319cf83
      https://github.com/llvm/llvm-project/commit/a9b2cf6c625ab15e3cef00350c855e7cd319cf83
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/SemaTemplate/instantiate-requires-clause.cpp

  Log Message:
  -----------
  [Concepts] Add ExpressionEvaluationContexts to instantiation of constraints

Proper ExpressionEvaluationContext were not being entered when instantiating constraint
expressions, which caused assertion failures in certain cases, including bug #44614.

(cherry picked from commit 4d33a8dfcf67e970ea4d150d514b27de02e79aee)


  Commit: 29f14c1df25992db8c908e441c69e1fd4d4e4010
      https://github.com/llvm/llvm-project/commit/29f14c1df25992db8c908e441c69e1fd4d4e4010
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp

  Log Message:
  -----------
  [Concepts] Implement P1616R1 - Using unconstrained template template parameters with constrained templates

Summary: Allow unconstrained template template parameters to accept constrainted templates as arguments.

Reviewers: rsmith

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D73155

(cherry picked from commit d42d5eb8ea77b3a3a502a60ba3f053fb81a897f3)


  Commit: 2ec65e229314d468006998eaef7074b86ef7482d
      https://github.com/llvm/llvm-project/commit/2ec65e229314d468006998eaef7074b86ef7482d
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Driver/CC1Options.td
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/Basic/IdentifierTable.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CXX/class.derived/class.virtual/p6.cpp
    M clang/test/CXX/class/class.compare/class.spaceship/p2.cpp
    M clang/test/CXX/dcl/dcl.decl/p3.cpp
    M clang/test/CXX/dcl/dcl.fct/p17.cpp
    M clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.id/mixed-constraints.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.id/p4.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/equivalence.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/p3.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/requires-expr.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp
    M clang/test/CXX/over/over.match/over.match.best/p1-2a.cpp
    M clang/test/CXX/over/over.match/over.match.viable/p3.cpp
    M clang/test/CXX/over/over.over/p4-2a.cpp
    M clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.constr/function-templates.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.constr/non-function-templates.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.decl/class-template-decl.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.decl/p3.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.order/class-template-partial-specializations.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.order/function-templates.cpp
    M clang/test/CXX/temp/temp.constr/temp.constr.order/var-template-partial-specializations.cpp
    M clang/test/CXX/temp/temp.explicit/p8.cpp
    M clang/test/CXX/temp/temp.param/p10-2a.cpp
    M clang/test/CodeGenCXX/mangle-concept.cpp
    M clang/test/Lexer/cxx-features.cpp
    M clang/test/Lexer/keywords_test.cpp
    M clang/test/PCH/cxx2a-requires-expr.cpp
    M clang/test/Parser/cxx-concept-declaration.cpp
    M clang/test/Parser/cxx-concepts-ambig-constraint-expr.cpp
    M clang/test/Parser/cxx-concepts-requires-clause.cpp
    M clang/test/Parser/cxx2a-concept-declaration.cpp
    M clang/test/Parser/cxx2a-concepts-requires-expr.cpp
    M clang/test/Parser/cxx2a-constrained-template-param-with-partial-id.cpp
    M clang/test/Parser/cxx2a-constrained-template-param.cpp
    M clang/test/Parser/cxx2a-placeholder-type-constraint.cpp
    M clang/test/SemaTemplate/cxx2a-constraint-caching.cpp
    M clang/test/SemaTemplate/instantiate-expanded-type-constraint.cpp
    M clang/test/SemaTemplate/instantiate-requires-clause.cpp
    M clang/test/SemaTemplate/instantiate-requires-expr.cpp

  Log Message:
  -----------
  [Concepts] Deprecate -fconcepts-ts, enable Concepts under -std=c++2a

Now with concepts support merged and mostly complete, we do not need -fconcepts-ts
(which was also misleading as we were not implementing the TS) and can enable
concepts features under C++2a. A warning will be generated if users still attempt
to use -fconcepts-ts.

(cherry picked from commit 67c608a9695496cfc9d3fdf9d0b12b554ac6b4df)


  Commit: 9f37a46d143b5cc481eed225a193cbfbddc2eade
      https://github.com/llvm/llvm-project/commit/9f37a46d143b5cc481eed225a193cbfbddc2eade
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
    A clang/test/SemaTemplate/cxx2a-constraint-exprs.cpp

  Log Message:
  -----------
  [Concepts] Make constraint expressions unevaluated until satisfaction checking

As per P1980R0, constraint expressions are unevaluated operands, and their constituent atomic
constraints only become constant evaluated during satisfaction checking.

Change the evaluation context during parsing and instantiation of constraints to unevaluated.

(cherry picked from commit 73eaf62463b4a29adf4194685af12d1a5d172987)


  Commit: 32a23c22825b9a596eaf5459b633e868365cff91
      https://github.com/llvm/llvm-project/commit/32a23c22825b9a596eaf5459b633e868365cff91
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [Concepts] Add Concepts to ReleaseNotes.rst

Concepts support has been ported to the 10.x release.

Add information about the feature to the release notes.


  Commit: 901a7890c0e65060511c43d55fc347a1a5cb54ff
      https://github.com/llvm/llvm-project/commit/901a7890c0e65060511c43d55fc347a1a5cb54ff
  Author: Saar Raz <saar at raz.email>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [Concepts] Update cxx_status.html with Concepts support status

Concepts will be available with Clang 10 - update cxx_status.html to reflect
the papers that have been implemented.

(cherry picked from commit f394d22fa82df03eaf72bf1876e2d63bbe6cd00f)


Compare: https://github.com/llvm/llvm-project/compare/bfaba51f07d1...901a7890c0e6


More information about the All-commits mailing list