<?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 ConstructionContext.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>996b092c - [analyzer] Lambda capture non-POD type array</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#996b092c</link>
        <description>[analyzer] Lambda capture non-POD type arrayThis patch introduces a new `ConstructionContext` forlambda capture. This `ConstructionContext` allows theanalyzer to construct the captured object directly intoit&apos;s final region, and makes it possible to capturenon-POD arrays.Differential Revision: https://reviews.llvm.org/D129967

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Sun, 17 Jul 2022 17:04:45 +0000</pubDate>
        <dc:creator>isuckatcs &lt;65320245+isuckatcs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>2946cd70 - Update the file headers across all of the LLVM projects in the monorepo</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#2946cd70</link>
        <description>Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we&apos;re moving the headerentirely to discuss the new license. We checked this carefully with theFoundation&apos;s lawyer and we believe this is the correct approach.Essentially, all code in the project is now made available by the LLVMproject under our new license, so you will see that the license headersinclude that license only. Some of our contributors have contributedcode under our old license, and accordingly, we have retained a copy ofour old license notice in the top-level files in each project andrepository.llvm-svn: 351636

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Sat, 19 Jan 2019 08:50:56 +0000</pubDate>
        <dc:creator>Chandler Carruth &lt;chandlerc@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1f8cb3a6 - [CFG] [analyzer] NFC: Enumerate construction context layer kinds.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#1f8cb3a6</link>
        <description>[CFG] [analyzer] NFC: Enumerate construction context layer kinds.This is a refactoring patch; no functional change intended.The common part of ConstructionContextLayer and ConstructedObjectKey isfactored out into a new structure, ConstructionContextItem.Various sub-kinds of ConstructionContextItem are enumerated in order toprovide richer information about construction contexts.Differential Revision: https://reviews.llvm.org/D49210.llvm-svn: 338439

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Tue, 31 Jul 2018 21:12:42 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>a657a32c - [CFG] [analyzer] Implement function argument construction contexts.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#a657a32c</link>
        <description>[CFG] [analyzer] Implement function argument construction contexts.In r330377 and r338425 we have already identified what constitutes functionargument constructors and added stubs in order to prevent confusing themwith other temporary object constructors.Now we implement a ConstructionContext sub-class to carry all the necessaryinformation about the construction site, namely call expression and argumentindex.On the analyzer side, the patch interacts with the recently implementedpre-C++17 copy elision support in an interesting manner. If on the CFG side wedidn&apos;t find a construction context for the elidable constructor, we buildthe CFG as if the elidable constructor is not elided, and the non-elidedconstructor within it is a simple temporary. But the same problem may occurin the analyzer: if the elidable constructor has a construction context butthe analyzer doesn&apos;t implement such context yet, the analyzer should alsotry to skip copy elision and still inline the non-elided temporary constructor.This was implemented by adding a &quot;roll back&quot; mechanism: when elision fails,roll back the changes and proceed as if it&apos;s a simple temporary. The approachis wonky, but i&apos;m fine with that as long as it&apos;s merely a defensive mechanismthat should eventually go away once all construction contexts become supported.Differential Revision: https://reviews.llvm.org/D48681.llvm-svn: 338436

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Tue, 31 Jul 2018 20:45:53 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>bd880fe1 - [CFG] [analyzer] Add stubs for constructor and message argument constructors.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#bd880fe1</link>
        <description>[CFG] [analyzer] Add stubs for constructor and message argument constructors.CFG now correctly identifies construction context for temporaries constructedfor the purpose of passing into a function as an argument.Such context is still not fully implemented because the information it providesis not rich enough: it doens&apos;t contain information about argument index.It will be addresssed later.This patch is an extension of r330377 to C++ construct-expressions andObjective-C message expressions which aren&apos;t call-expressions but requiresimilar handling. C++ new-expressions with placement arguments still remain tobe handled.Differential Revision: https://reviews.llvm.org/D49826llvm-svn: 338425

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Tue, 31 Jul 2018 19:39:37 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d18639bd - [CFG] [analyzer] Simplify lifetime-extended temporary construction contexts.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#d18639bd</link>
        <description>[CFG] [analyzer] Simplify lifetime-extended temporary construction contexts.When a temporary object is materialized and through that obtain lifetime thatis longer than the duration of the full-expression, it does not require atemporary object destructor; it will be destroyed in a different manner.Therefore it&apos;s not necessary to include CXXBindTemporaryExpr into theconstruction context for such temporary in the CFG only to make clientsthrow it away.Differential Revision: https://reviews.llvm.org/D47667llvm-svn: 335798

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Thu, 28 Jun 2018 00:18:52 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>ff267df0 - [CFG] [analyzer] Add construction contexts that explain pre-C++17 copy elision.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#ff267df0</link>
        <description>[CFG] [analyzer] Add construction contexts that explain pre-C++17 copy elision.Before C++17 copy elision was optional, even if the elidable copy/moveconstructor had arbitrary side effects. The elidable constructor is presentin the AST, but marked as elidable.In these cases CFG now contains additional information that allows its clientsto figure out if a temporary object is only being constructed so that to passit to an elidable constructor. If so, it includes a reference to the elidableconstructor&apos;s construction context, so that the client could elide theelidable constructor and construct the object directly at its final destination.Differential Revision: https://reviews.llvm.org/D47616llvm-svn: 335795

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Thu, 28 Jun 2018 00:04:54 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>87f6c24f - Fix -Wunused-variable warnings after r330377.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#87f6c24f</link>
        <description>Fix -Wunused-variable warnings after r330377.llvm-svn: 330408

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Fri, 20 Apr 2018 09:47:03 +0000</pubDate>
        <dc:creator>Andrea Di Biagio &lt;Andrea_DiBiagio@sn.scee.net&gt;</dc:creator>
    </item>
<item>
        <title>72da02fc - [CFG] [analyzer] Don&apos;t treat argument constructors as temporary constructors.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#72da02fc</link>
        <description>[CFG] [analyzer] Don&apos;t treat argument constructors as temporary constructors.Function argument constructors (that are used for passing objects into functionsby value) are completely unlike temporary object constructors, but we weretreating them as such because they are also wrapped into a CXXBindTemporaryExpr.This patch adds a partial construction context layer for call argument values,but doesn&apos;t proceed to transform it into an actual construction context yet.This is tells the clients that we aren&apos;t supporting these constructors yet.Differential Revision: https://reviews.llvm.org/D45650llvm-svn: 330377

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Thu, 19 Apr 2018 23:09:22 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>6a5cd5e1 - [CFG] [analyzer] Work around a disappearing CXXBindTemporaryExpr.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#6a5cd5e1</link>
        <description>[CFG] [analyzer] Work around a disappearing CXXBindTemporaryExpr.Sometimes template instantiation causes CXXBindTemporaryExpr to be missing inits usual spot. In CFG, temporary destructors work by relying onCXXBindTemporaryExprs, so they won&apos;t work in this case.Avoid the crash and notify the clients that we&apos;ve encountered an unsupported ASTby failing to provide the ill-formed construction context for the temporary.Differential Revision: https://reviews.llvm.org/D44955llvm-svn: 328895

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Fri, 30 Mar 2018 19:25:39 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>922455fe - [CFG] [analyzer] Add C++17-specific ctor-initializer construction contexts.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#922455fe</link>
        <description>[CFG] [analyzer] Add C++17-specific ctor-initializer construction contexts.CXXCtorInitializer-based constructors are also affected by the C++17 mandatorycopy elision, like variable constructors and return value constructors.Extend r328248 to support those.Differential Revision: https://reviews.llvm.org/D44763llvm-svn: 328255

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Thu, 22 Mar 2018 22:02:38 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2c2344e3 - [CFG] [analyzer] NFC: Move construction context allocation into a helper method.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#2c2344e3</link>
        <description>[CFG] [analyzer] NFC: Move construction context allocation into a helper method.Improve readability of ConstructionContext::createFromLayers().Differential Revision: https://reviews.llvm.org/D44725llvm-svn: 328249

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Thu, 22 Mar 2018 21:40:24 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>317291e3 - [CFG] [analyzer] Add C++17-specific variable and return construction contexts.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#317291e3</link>
        <description>[CFG] [analyzer] Add C++17-specific variable and return construction contexts.In C++17 copy elision is mandatory for variable and return value constructors(as long as it doesn&apos;t involve type conversion) which results in AST that doesnot contain elidable constructors in their usual places. In order to provideconstruction contexts in this scenario we need to cover more AST patterns.This patch makes the CFG prepared for these scenarios by:- Fork VariableConstructionContext and ReturnedValueConstructionContext into  two different sub-classes (each) one of which indicates the C++17 case and  contains a reference to an extra CXXBindTemporaryExpr.- Allow CFGCXXRecordTypedCall element to accept VariableConstructionContext and  ReturnedValueConstructionContext as its context.Differential Revision: https://reviews.llvm.org/D44597llvm-svn: 328248

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Thu, 22 Mar 2018 21:37:39 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>13f9664d - [CFG] [analyzer] Add construction context for implicit constructor conversions.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#13f9664d</link>
        <description>[CFG] [analyzer] Add construction context for implicit constructor conversions.Implicit constructor conversions such as A a = B() are represented bysurrounding the constructor for B() with an ImplicitCastExpr ofCK_ConstructorConversion kind, similarly to how explicit constructor conversionsare surrounded by a CXXFunctionalCastExpr. Support this syntax pattern whenextracting the construction context for the implicit constructor thatperforms the conversion.Differential Revision: https://reviews.llvm.org/D44051llvm-svn: 327096

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Fri, 09 Mar 2018 01:39:59 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4068481b - [CFG] NFC: Refactor ConstructionContext into a finite set of cases.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp#4068481b</link>
        <description>[CFG] NFC: Refactor ConstructionContext into a finite set of cases.ConstructionContext is moved into a separate translation unit and is separatedinto multiple classes. The &quot;old&quot; &quot;raw&quot; ConstructionContext is renamed intoConstructionContextLayer - which corresponds to the idea of building the contextgradually layer-by-layer, but it isn&apos;t easy to use in the clients. OnceCXXConstructExpr is reached, layers that we&apos;ve gathered so far are transformedinto the actual, &quot;new-style&quot; &quot;flat&quot; ConstructionContext, which is put into theCFGConstructor element and has no layers whatsoever (until it actually needsthem, eg. aggregate initialization). The new-style ConstructionContext isinstead presented as a variety of sub-classes that enumerate different ways ofconstructing an object in C++. There are 5 of these supported for now,which is around a half of what needs to be supported.The layer-by-layer buildup process is still a little bit weird, but it hidesall the weirdness in one place, that sounds like a good thing.Differential Revision: https://reviews.llvm.org/D43533llvm-svn: 326238

            List of files:
            /llvm-project-15.0.7/clang/lib/Analysis/ConstructionContext.cpp</description>
        <pubDate>Tue, 27 Feb 2018 20:03:35 +0000</pubDate>
        <dc:creator>Artem Dergachev &lt;artem.dergachev@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
