Changes

Summary

  1. [AMDGPU][OpenMP] Emit textual IR for -emit-llvm -S (details)
  2. Add test for substitutability of variable templates in closure type (details)
  3. Clean up handling of constrained parameters in lambdas. (details)
  4. PR50306: When instantiating a generic lambda with a constrained 'auto', (details)
  5. Handle unexpanded packs appearing in type-constraints. (details)
Commit 10c779d2065f7e216660f1687244269afcee13b1 by Pushpinder.Singh
[AMDGPU][OpenMP] Emit textual IR for -emit-llvm -S

Previously clang would print a binary blob into the bundled file
for amdgcn. With this patch, it will instead print textual IR as
expected.

Reviewed By: JonChesterfield, ronlieb

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

Change-Id: I10c0127ab7357787769fdf9a2edd4b3071e790a1
The file was modifiedclang/test/Driver/amdgpu-openmp-toolchain.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 4c88cfb1dc79227be78f8dade966934384914e5e by richard
Add test for substitutability of variable templates in closure type
mangling.
The file was modifiedclang/test/CodeGenCXX/mangle-lambdas.cpp
Commit e0acfed7ed5173b437868f75fc394084487e390a by richard
Clean up handling of constrained parameters in lambdas.

No functionality change intended.
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/lib/AST/TypePrinter.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
Commit 2f9d8b08ea658b612065cbf7d4b0fbd7f28bb36a by richard
PR50306: When instantiating a generic lambda with a constrained 'auto',
properly track that it has constraints.

Previously an instantiation of a constrained generic lambda would behave
as if unconstrained because we incorrectly cached a "has no constraints"
value that we computed before the constraints from 'auto' parameters
were attached.
The file was modifiedclang/test/SemaTemplate/concepts.cpp
The file was modifiedclang/lib/AST/DeclTemplate.cpp
Commit e1aa528d3aaf5fcf9c50d1e34b39dbde1e63801d by richard
Handle unexpanded packs appearing in type-constraints.

For a type-constraint in a lambda signature, this makes the lambda
contain an unexpanded pack; for requirements in a requires-expressions
it makes the requires-expression contain an unexpanded pack; otherwise
it's invalid.
The file was modifiedclang/include/clang/AST/DeclTemplate.h
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/AST/DeclTemplate.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/test/SemaTemplate/concepts.cpp
The file was modifiedclang/lib/AST/Type.cpp