diff options
| author | Alexis Hunt <alercah@gmail.com> | 2011-05-01 07:04:31 +0000 |
|---|---|---|
| committer | Alexis Hunt <alercah@gmail.com> | 2011-05-01 07:04:31 +0000 |
| commit | 61bc17378432d86b27bc7b565195f111aedab965 (patch) | |
| tree | 1dec24380de83c8767d505a7c4416c730e09446c /clang/lib/CodeGen/CodeGenFunction.h | |
| parent | 8e172c60542d18dc72f901374053f04e247c1d68 (diff) | |
| download | llvm-61bc17378432d86b27bc7b565195f111aedab965.zip llvm-61bc17378432d86b27bc7b565195f111aedab965.tar.gz llvm-61bc17378432d86b27bc7b565195f111aedab965.tar.bz2 | |
Fully implement delegating constructors!
As far as I know, this implementation is complete but might be missing a
few optimizations. Exceptions and virtual bases are handled correctly.
Because I'm an optimist, the web page has appropriately been updated. If
I'm wrong, feel free to downgrade its support categories.
llvm-svn: 130642
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
| -rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 913b5df..169c576 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -1496,6 +1496,12 @@ public: void EmitDelegateCXXConstructorCall(const CXXConstructorDecl *Ctor, CXXCtorType CtorType, const FunctionArgList &Args); + // It's important not to confuse this and the previous function. Delegating + // constructors are the C++0x feature. The constructor delegate optimization + // is used to reduce duplication in the base and complete consturctors where + // they are substantially the same. + void EmitDelegatingCXXConstructorCall(const CXXConstructorDecl *Ctor, + const FunctionArgList &Args); void EmitCXXConstructorCall(const CXXConstructorDecl *D, CXXCtorType Type, bool ForVirtualBase, llvm::Value *This, CallExpr::const_arg_iterator ArgBeg, |
