diff options
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
| -rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index fc65199a0f15..727487b46054 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -1552,9 +1552,11 @@ private: // BreakContinueStack - This keeps track of where break and continue // statements should jump to. struct BreakContinue { - BreakContinue(JumpDest Break, JumpDest Continue) - : BreakBlock(Break), ContinueBlock(Continue) {} + BreakContinue(const Stmt &LoopOrSwitch, JumpDest Break, JumpDest Continue) + : LoopOrSwitch(&LoopOrSwitch), BreakBlock(Break), + ContinueBlock(Continue) {} + const Stmt *LoopOrSwitch; JumpDest BreakBlock; JumpDest ContinueBlock; }; @@ -2979,10 +2981,8 @@ public: /// hasVolatileMember - returns true if aggregate type has a volatile /// member. bool hasVolatileMember(QualType T) { - if (const RecordType *RT = T->getAs<RecordType>()) { - const RecordDecl *RD = RT->getOriginalDecl()->getDefinitionOrSelf(); + if (const auto *RD = T->getAsRecordDecl()) return RD->hasVolatileMember(); - } return false; } @@ -3608,6 +3608,8 @@ public: void EmitCaseStmtRange(const CaseStmt &S, ArrayRef<const Attr *> Attrs); void EmitAsmStmt(const AsmStmt &S); + const BreakContinue *GetDestForLoopControlStmt(const LoopControlStmt &S); + void EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S); void EmitObjCAtTryStmt(const ObjCAtTryStmt &S); void EmitObjCAtThrowStmt(const ObjCAtThrowStmt &S); @@ -3692,8 +3694,9 @@ public: llvm::Function *EmitCapturedStmt(const CapturedStmt &S, CapturedRegionKind K); llvm::Function *GenerateCapturedStmtFunction(const CapturedStmt &S); Address GenerateCapturedStmtArgument(const CapturedStmt &S); - llvm::Function *GenerateOpenMPCapturedStmtFunction(const CapturedStmt &S, - SourceLocation Loc); + llvm::Function * + GenerateOpenMPCapturedStmtFunction(const CapturedStmt &S, + const OMPExecutableDirective &D); void GenerateOpenMPCapturedVars(const CapturedStmt &S, SmallVectorImpl<llvm::Value *> &CapturedVars); void emitOMPSimpleStore(LValue LVal, RValue RVal, QualType RValTy, @@ -5280,7 +5283,8 @@ public: EmitCheck(ArrayRef<std::pair<llvm::Value *, SanitizerKind::SanitizerOrdinal>> Checked, SanitizerHandler Check, ArrayRef<llvm::Constant *> StaticArgs, - ArrayRef<llvm::Value *> DynamicArgs); + ArrayRef<llvm::Value *> DynamicArgs, + const TrapReason *TR = nullptr); /// Emit a slow path cross-DSO CFI check which calls __cfi_slowpath /// if Cond if false. @@ -5296,7 +5300,7 @@ public: /// Create a basic block that will call the trap intrinsic, and emit a /// conditional branch to it, for the -ftrapv checks. void EmitTrapCheck(llvm::Value *Checked, SanitizerHandler CheckHandlerID, - bool NoMerge = false); + bool NoMerge = false, const TrapReason *TR = nullptr); /// Emit a call to trap or debugtrap and attach function attribute /// "trap-func-name" if specified. |
