<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in concepts-PR54629.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>342e6497 - [Sema] Fix assertion failure when instantiating requires expression</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/SemaTemplate/concepts-PR54629.cpp#342e6497</link>
        <description>[Sema] Fix assertion failure when instantiating requires expressionFixes #54629.The crash is is caused by the double template instantiation.See the added test. Here is what happens:- Template arguments for the partial specialization get instantiated.- This causes instantitation into the corrensponding requires  expression.- `TemplateInsantiator` correctly handles instantiation of parameters  inside `RequiresExprBody` and instantiates the constraint expression  inside the `NestedRequirement`.- To build the substituted `NestedRequirement`, `TemplateInsantiator`  calls `Sema::BuildNestedRequirement` calls  `CheckConstraintSatisfaction`, which results in another template  instantiation (with empty template arguments). This seem to be an  implementation detail to handle constraint satisfaction and is not  required by the standard.- The recursive template instantiation tries to find the parameter  inside `RequiresExprBody` and fails with the corresponding assertion.Note that this only happens as both instantiations happen with the classpartial template specialization set as `Sema.CurContext`, which isconsidered a dependent `DeclContext`.To fix the assertion, avoid doing the recursive template instantiationand instead evaluate resulting expressions in-place.Reviewed By: erichkeaneDifferential Revision: https://reviews.llvm.org/D127487

            List of files:
            /llvm-project-15.0.7/clang/test/SemaTemplate/concepts-PR54629.cpp</description>
        <pubDate>Thu, 23 Jun 2022 13:52:16 +0000</pubDate>
        <dc:creator>Ilya Biryukov &lt;ibiryukov@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
