Lines Matching defs:Func
25 InterpFrame::InterpFrame(InterpState &S, const Function *Func,
27 : Caller(Caller), S(S), Depth(Caller ? Caller->Depth + 1 : 0), Func(Func),
30 if (!Func)
33 unsigned FrameSize = Func->getFrameSize();
38 for (auto &Scope : Func->scopes()) {
48 InterpFrame::InterpFrame(InterpState &S, const Function *Func, CodePtr RetPC,
50 : InterpFrame(S, Func, S.Current, RetPC, Func->getArgSize() + VarArgSize) {
57 if (Func->hasRVO())
60 if (Func->hasThisPointer()) {
61 if (Func->hasRVO())
75 if (Func) {
76 for (auto &Scope : Func->scopes()) {
87 for (auto &Local : Func->getScope(Idx).locals()) {
93 for (PrimType Ty : Func->args_reverse())
178 Off += Func->hasRVO() ? primSize(PT_Ptr) : 0;
179 Off += Func->hasThisPointer() ? primSize(PT_Ptr) : 0;
201 if (!Caller->Func) {
206 return S.getRange(Caller->Func, RetPC - sizeof(uintptr_t));
210 if (!Func)
212 return Func->getDecl();
216 assert(Offset < Func->getFrameSize() && "Invalid local offset.");
226 const auto &Desc = Func->getParamDescriptor(Off);
243 if (Func && (!Func->hasBody() || Func->getDecl()->isImplicit()) && Caller)
246 return S.getSource(Func, PC);
250 if (Func && (!Func->hasBody() || Func->getDecl()->isImplicit()) && Caller)
253 return S.getExpr(Func, PC);
257 if (Func && (!Func->hasBody() || Func->getDecl()->isImplicit()) && Caller)
260 return S.getLocation(Func, PC);
264 if (Func && (!Func->hasBody() || Func->getDecl()->isImplicit()) && Caller)
267 return S.getRange(Func, PC);