summaryrefslogtreecommitdiff
path: root/NOTES.txt
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2012-03-30 04:25:03 +0000
committerJohn McCall <rjmccall@apple.com>2012-03-30 04:25:03 +0000
commit56ea377bc58a3a821da917599ed26c6b37b9727c (patch)
tree8906d81a5e2a3bd7d923f2abb8a6660bdf3ee300 /NOTES.txt
parent3754f9656ab6a4648e5264d891ad5fb2f94f2a1a (diff)
downloadclang-56ea377bc58a3a821da917599ed26c6b37b9727c.tar.gz
Add a note about a missing optimization in the case of virtual
inheritance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153722 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'NOTES.txt')
-rw-r--r--NOTES.txt11
1 files changed, 11 insertions, 0 deletions
diff --git a/NOTES.txt b/NOTES.txt
index 9f7ed4b959..ca46d1cae4 100644
--- a/NOTES.txt
+++ b/NOTES.txt
@@ -101,3 +101,14 @@ only if the non-reachability is not due to macro or template
metaprogramming.
//===---------------------------------------------------------------------===//
+
+We can still apply a modified version of the constructor/destructor
+delegation optimization in cases of virtual inheritance where:
+ - there is no function-try-block,
+ - the constructor signature is not variadic, and
+ - the parameter variables can safely be copied and repassed
+ to the base constructor because either
+ - they have not had their addresses taken by the vbase initializers or
+ - they were passed indirectly.
+
+//===---------------------------------------------------------------------===//