DeclarationName Name, Expr** Args,
unsigned NumArgs, DeclContext *Ctx,
bool AllowMissing, FunctionDecl *&Operator) {
- // FIXME: Change to use LookupQualifiedName!
- DeclContext::lookup_iterator Alloc, AllocEnd;
- llvm::tie(Alloc, AllocEnd) = Ctx->lookup(Name);
- if (Alloc == AllocEnd) {
+ LookupResult R = LookupQualifiedName(Ctx, Name, LookupOrdinaryName);
+ if (!R) {
if (AllowMissing)
return false;
return Diag(StartLoc, diag::err_ovl_no_viable_function_in_call)
}
OverloadCandidateSet Candidates;
- for (; Alloc != AllocEnd; ++Alloc) {
+ for (LookupResult::iterator Alloc = R.begin(), AllocEnd = R.end();
+ Alloc != AllocEnd; ++Alloc) {
// Even member operator new/delete are implicitly treated as
// static, so don't use AddMemberCandidate.
if (FunctionDecl *Fn = dyn_cast<FunctionDecl>(*Alloc)) {
ia4 *pai = new (int[3][4]);
pi = ::new int;
U *pu = new (ps) U;
- // FIXME: Inherited functions are not looked up currently.
- //V *pv = new (ps) V;
+ V *pv = new (ps) V;
pi = new (S(1.0f, 2)) int;
delete x;
}
-class X6 {
+class X5 {
public:
void Destroy() const { delete this; }
};