summaryrefslogtreecommitdiffstats
path: root/docs/analyzer
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-08-27 18:39:22 +0000
committerJordan Rose <jordan_rose@apple.com>2012-08-27 18:39:22 +0000
commit6fe4dfbc9e5a7018763b1d898876d9b2b8ec3425 (patch)
tree48a65c1db02d4f70d7b0b3c4a24a614cd40836a6 /docs/analyzer
parent7103d2debd3a9856142be953fbf0ccf76f177247 (diff)
[analyzer] Don't inline constructors for objects allocated with operator new.
Because the CXXNewExpr appears after the CXXConstructExpr in the CFG, we don't actually have the correct region to construct into at the time we decide whether or not to inline. The long-term fix (discussed in PR12014) might be to introduce a new CFG node (CFGAllocator) that appears before the constructor. Tracking the short-term fix in <rdar://problem/12180598>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162689 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/analyzer')
-rw-r--r--docs/analyzer/IPA.txt3
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/analyzer/IPA.txt b/docs/analyzer/IPA.txt
index 5c722c7a0e..071727f055 100644
--- a/docs/analyzer/IPA.txt
+++ b/docs/analyzer/IPA.txt
@@ -103,7 +103,8 @@ some cases, however, where the analyzer chooses not to inline:
See "C++ Caveats" below.
- In C++, ExprEngine does not inline custom implementations of operator 'new'
- or operator 'delete'. See "C++ Caveats" below.
+ or operator 'delete', nor does it inline the constructors and destructors
+ associated with these. See "C++ Caveats" below.
- Calls resulting in "dynamic dispatch" are specially handled. See more below.