Lines Matching refs:virtual

95   virtual bool requiresArrayCookie(const CXXDeleteExpr *E, QualType eltType);
96 virtual bool requiresArrayCookie(const CXXNewExpr *E);
102 virtual bool isThisCompleteObject(GlobalDecl GD) const = 0;
104 virtual bool constructorsAndDestructorsReturnThis() const { in constructorsAndDestructorsReturnThis()
110 virtual ~CGCXXABI();
123 virtual bool HasThisReturn(GlobalDecl GD) const { in HasThisReturn()
131 virtual bool hasMostDerivedReturn(GlobalDecl GD) const { return false; } in hasMostDerivedReturn()
133 virtual bool useSinitAndSterm() const { return false; } in useSinitAndSterm()
143 virtual bool canCallMismatchedFunctionType() const { return true; } in canCallMismatchedFunctionType()
147 virtual bool classifyReturnType(CGFunctionInfo &FI) const = 0;
165 virtual RecordArgABI getRecordArgABI(const CXXRecordDecl *RD) const = 0;
169 virtual bool isSRetParameterAfterThis() const { return false; } in isSRetParameterAfterThis()
173 virtual bool
180 virtual llvm::Type *
186 virtual CGCallee EmitLoadOfMemberFunctionPointer(
192 virtual llvm::Value *
199 virtual llvm::Value *EmitMemberPointerConversion(CodeGenFunction &CGF,
205 virtual llvm::Constant *EmitMemberPointerConversion(const CastExpr *E,
210 virtual bool isZeroInitializable(const MemberPointerType *MPT);
213 virtual bool isMemberPointerConvertible(const MemberPointerType *MPT) const { in isMemberPointerConvertible()
218 virtual llvm::Constant *EmitNullMemberPointer(const MemberPointerType *MPT);
221 virtual llvm::Constant *EmitMemberFunctionPointer(const CXXMethodDecl *MD);
224 virtual llvm::Constant *EmitMemberDataPointer(const MemberPointerType *MPT,
228 virtual llvm::Constant *EmitMemberPointer(const APValue &MP, QualType MPT);
231 virtual llvm::Value *
239 virtual llvm::Value *
253 virtual void emitVirtualObjectDelete(CodeGenFunction &CGF,
257 virtual void emitRethrow(CodeGenFunction &CGF, bool isNoReturn) = 0;
258 virtual void emitThrow(CodeGenFunction &CGF, const CXXThrowExpr *E) = 0;
259 virtual llvm::GlobalVariable *getThrowInfo(QualType T) { return nullptr; } in getThrowInfo()
264 virtual bool canSpeculativelyEmitVTable(const CXXRecordDecl *RD) const = 0;
266 virtual void emitBeginCatch(CodeGenFunction &CGF, const CXXCatchStmt *C) = 0;
268 virtual llvm::CallInst *
272 virtual llvm::Constant *getAddrOfRTTIDescriptor(QualType Ty) = 0;
273 virtual CatchTypeInfo
275 virtual CatchTypeInfo getCatchAllTypeInfo();
277 virtual bool shouldTypeidBeNullChecked(QualType SrcRecordTy) = 0;
278 virtual void EmitBadTypeidCall(CodeGenFunction &CGF) = 0;
279 virtual llvm::Value *EmitTypeid(CodeGenFunction &CGF, QualType SrcRecordTy,
283 virtual bool shouldDynamicCastCallBeNullChecked(bool SrcIsPtr,
285 virtual bool shouldEmitExactDynamicCast(QualType DestRecordTy) = 0;
287 virtual llvm::Value *emitDynamicCastCall(CodeGenFunction &CGF, Address Value,
293 virtual llvm::Value *emitDynamicCastToVoid(CodeGenFunction &CGF,
299 virtual llvm::Value *emitExactDynamicCast(CodeGenFunction &CGF, Address Value,
306 virtual bool EmitBadCastCall(CodeGenFunction &CGF) = 0;
308 virtual llvm::Value *GetVirtualBaseClassOffset(CodeGenFunction &CGF,
313 virtual llvm::BasicBlock *EmitCtorCompleteObjectHandler(CodeGenFunction &CGF,
318 virtual void
323 virtual void EmitCXXConstructors(const CXXConstructorDecl *D) = 0;
362 virtual AddedStructorArgCounts
369 virtual bool useThunkForDtorVariant(const CXXDestructorDecl *Dtor,
372 virtual void setCXXDestructorDLLStorage(llvm::GlobalValue *GV,
376 virtual llvm::GlobalValue::LinkageTypes
381 virtual void EmitCXXDestructors(const CXXDestructorDecl *D) = 0;
387 virtual const CXXRecordDecl *getThisArgumentTypeForMethod(GlobalDecl GD) { in getThisArgumentTypeForMethod()
394 virtual Address
410 virtual void addImplicitStructorParams(CodeGenFunction &CGF, QualType &ResTy,
415 virtual CharUnits getVirtualFunctionPrologueThisAdjustment(GlobalDecl GD) { in getVirtualFunctionPrologueThisAdjustment()
420 virtual void EmitInstanceFunctionProlog(CodeGenFunction &CGF) = 0;
422 virtual AddedStructorArgs
438 virtual llvm::Value *
444 virtual void EmitDestructorCall(CodeGenFunction &CGF,
450 virtual void emitVTableDefinitions(CodeGenVTables &CGVT,
454 virtual bool
459 virtual bool doStructorsInitializeVPtrs(const CXXRecordDecl *VTableClass) = 0;
462 virtual llvm::Constant *
468 virtual llvm::Value *
475 virtual llvm::GlobalVariable *getAddrOfVTable(const CXXRecordDecl *RD,
479 virtual CGCallee getVirtualFunctionPointer(CodeGenFunction &CGF,
488 virtual llvm::Value *EmitVirtualDestructorCall(CodeGenFunction &CGF,
494 virtual void adjustCallArgsForDestructorThunk(CodeGenFunction &CGF, in adjustCallArgsForDestructorThunk()
501 virtual void emitVirtualInheritanceTables(const CXXRecordDecl *RD) = 0;
503 virtual bool exportThunk() = 0;
504 virtual void setThunkLinkage(llvm::Function *Thunk, bool ForVTable,
507 virtual llvm::Value *
512 virtual llvm::Value *
517 virtual void EmitReturnFromThunk(CodeGenFunction &CGF,
520 virtual size_t getSrcArgforCopyCtor(const CXXConstructorDecl *,
524 virtual std::vector<CharUnits> getVBPtrOffsets(const CXXRecordDecl *RD);
527 virtual StringRef GetPureVirtualCallName() = 0;
530 virtual StringRef GetDeletedVirtualCallName() = 0;
543 virtual CharUnits GetArrayCookieSize(const CXXNewExpr *expr);
554 virtual Address InitializeArrayCookie(CodeGenFunction &CGF,
573 virtual void ReadArrayCookie(CodeGenFunction &CGF, Address Ptr,
579 virtual bool NeedsVTTParameter(GlobalDecl GD);
585 virtual CharUnits getArrayCookieSizeImpl(QualType elementType);
596 virtual llvm::Value *readArrayCookieImpl(CodeGenFunction &IGF, Address ptr,
611 virtual void EmitGuardedInit(CodeGenFunction &CGF, const VarDecl &D,
620 virtual void registerGlobalDtor(CodeGenFunction &CGF, const VarDecl &D,
635 virtual void EmitThreadLocalInitFuncs(
642 virtual bool usesThreadWrapperFunction(const VarDecl *VD) const = 0;
647 virtual LValue EmitThreadLocalVarDeclLValue(CodeGenFunction &CGF,
653 virtual void emitCXXStructor(GlobalDecl GD) = 0;
658 virtual std::pair<llvm::Value *, const CXXRecordDecl *>