diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-08-21 18:42:58 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-08-21 18:42:58 +0000 |
commit | 5ed5ae476e5c7d26acf6ee1ccbcaa6b0487ceb1f (patch) | |
tree | c8e79b405689c3e354f65300e250c5ddb64665ad /clang/lib/AST/DeclCXX.cpp | |
parent | cb7444342b54411155d28f601bc6606c4969bc3f (diff) | |
download | bcm5719-llvm-5ed5ae476e5c7d26acf6ee1ccbcaa6b0487ceb1f.tar.gz bcm5719-llvm-5ed5ae476e5c7d26acf6ee1ccbcaa6b0487ceb1f.zip |
Introduce support for constructor templates, which can now be declared
and will participate in overload resolution. Unify the instantiation
of CXXMethodDecls and CXXConstructorDecls, which had already gotten
out-of-sync.
llvm-svn: 79658
Diffstat (limited to 'clang/lib/AST/DeclCXX.cpp')
-rw-r--r-- | clang/lib/AST/DeclCXX.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp index b126a09fc44..5c0bbec1ff0 100644 --- a/clang/lib/AST/DeclCXX.cpp +++ b/clang/lib/AST/DeclCXX.cpp @@ -712,6 +712,18 @@ OverloadedFunctionDecl::Create(ASTContext &C, DeclContext *DC, return new (C) OverloadedFunctionDecl(DC, N); } +OverloadIterator::OverloadIterator(NamedDecl *ND) : D(0) { + if (!ND) + return; + + if (isa<FunctionDecl>(ND) || isa<FunctionTemplateDecl>(ND)) + D = ND; + else if (OverloadedFunctionDecl *Ovl = dyn_cast<OverloadedFunctionDecl>(ND)) { + D = ND; + Iter = Ovl->function_begin(); + } +} + void OverloadedFunctionDecl::addOverload(AnyFunctionDecl F) { Functions.push_back(F); this->setLocation(F.get()->getLocation()); |