зеркало из https://github.com/microsoft/clang.git
Allow function calls to dereferenced member pointers of
pointer-to-function type. Fixes <rdar://problem/9065289>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127739 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
c9977d09a2
Коммит
eed5ddc255
|
@ -4574,9 +4574,6 @@ Sema::ActOnCallExpr(Scope *S, Expr *Fn, SourceLocation LParenLoc,
|
|||
|
||||
return MaybeBindToTemporary(TheCall);
|
||||
}
|
||||
return ExprError(Diag(Fn->getLocStart(),
|
||||
diag::err_typecheck_call_not_function)
|
||||
<< Fn->getType() << Fn->getSourceRange());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,3 +34,18 @@ void test0() {
|
|||
Test0 mytest;
|
||||
mytest.test();
|
||||
}
|
||||
|
||||
namespace rdar9065289 {
|
||||
typedef void (*FuncPtr)();
|
||||
struct X0 { };
|
||||
|
||||
struct X1
|
||||
{
|
||||
X0* x0;
|
||||
FuncPtr X0::*fptr;
|
||||
};
|
||||
|
||||
void f(X1 p) {
|
||||
(p.x0->*(p.fptr))();
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче