[cfe-commits] r162688 - /cfe/trunk/docs/analyzer/IPA.txt

Jordan Rose jordan_rose at apple.com
Mon Aug 27 11:39:16 PDT 2012


Author: jrose
Date: Mon Aug 27 13:39:16 2012
New Revision: 162688

URL: http://llvm.org/viewvc/llvm-project?rev=162688&view=rev
Log:
[analyzer] Update inlining design notes for r162681.

Modified:
    cfe/trunk/docs/analyzer/IPA.txt

Modified: cfe/trunk/docs/analyzer/IPA.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/analyzer/IPA.txt?rev=162688&r1=162687&r2=162688&view=diff
==============================================================================
--- cfe/trunk/docs/analyzer/IPA.txt (original)
+++ cfe/trunk/docs/analyzer/IPA.txt Mon Aug 27 13:39:16 2012
@@ -98,12 +98,13 @@
 - In C++, constructors are not inlined unless the destructor call will be
   processed by the ExprEngine. Thus, if the CFG was built without nodes for
   implicit destructors, or if the destructors for the given object are not
-  represented in the CFG, the constructor will not be inlined. See "C++ Caveats"
-  below.
-
-- In C++, ExprEngine does not inline custom implementations of operator 'new'.
+  represented in the CFG, the constructor will not be inlined. (As an exception,
+  constructors for objects with trivial constructors can still be inlined.)
   See "C++ Caveats" below.
 
+- In C++, ExprEngine does not inline custom implementations of operator 'new'
+  or operator 'delete'. See "C++ Caveats" below.
+
 - Calls resulting in "dynamic dispatch" are specially handled.  See more below.
 
 - The FunctionSummaries map stores additional information about declarations,
@@ -263,7 +264,8 @@
 
 - Temporaries are poorly modeled right now because we're not confident in the
   placement of their destructors in the CFG. We currently won't inline their
-  constructors, and don't process their destructors at all.
+  constructors unless the destructor is trivial, and don't process their
+  destructors at all, not even to invalidate the region.
 
 - 'new' is poorly modeled due to some nasty CFG/design issues.  This is tracked
   in PR12014.  'delete' is not modeled at all.





More information about the cfe-commits mailing list