diff options
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 18 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGCall.cpp | 8 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 10 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGDecl.cpp | 8 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 13 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGExprAgg.cpp | 2 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGExprComplex.cpp | 2 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGExprConstant.cpp | 4 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGExprScalar.cpp | 12 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGObjCGNU.cpp | 2 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGObjCMac.cpp | 2 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGObjCRuntime.h | 3 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGRTTI.cpp | 10 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGStmt.cpp | 6 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGVTables.cpp | 14 | ||||
-rw-r--r-- | clang/lib/CodeGen/CodeGenAction.cpp | 2 | ||||
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 2 | ||||
-rw-r--r-- | clang/lib/CodeGen/CodeGenTypes.cpp | 2 | ||||
-rw-r--r-- | clang/lib/CodeGen/TargetInfo.cpp | 8 |
19 files changed, 65 insertions, 63 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index bdf30881127..8972b2f43d3 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -152,7 +152,7 @@ static Value *EmitFAbs(CodeGenFunction &CGF, Value *V, QualType ValTy) { StringRef FnName; switch (ValTyP->getKind()) { - default: assert(0 && "Isn't a scalar fp type!"); + default: llvm_unreachable("Isn't a scalar fp type!"); case BuiltinType::Float: FnName = "fabsf"; break; case BuiltinType::Double: FnName = "fabs"; break; case BuiltinType::LongDouble: FnName = "fabsl"; break; @@ -396,7 +396,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, Value *RHS = EmitScalarExpr(E->getArg(1)); switch (BuiltinID) { - default: assert(0 && "Unknown ordered comparison"); + default: llvm_unreachable("Unknown ordered comparison"); case Builtin::BI__builtin_isgreater: LHS = Builder.CreateFCmpOGT(LHS, RHS, "cmp"); break; @@ -775,7 +775,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, case Builtin::BI__sync_lock_test_and_set: case Builtin::BI__sync_lock_release: case Builtin::BI__sync_swap: - assert(0 && "Shouldn't make it through sema"); + llvm_unreachable("Shouldn't make it through sema"); case Builtin::BI__sync_fetch_and_add_1: case Builtin::BI__sync_fetch_and_add_2: case Builtin::BI__sync_fetch_and_add_4: @@ -1541,7 +1541,7 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID, case ARM::BI__builtin_neon_vld4_dup_v: Int = Intrinsic::arm_neon_vld2; break; - default: assert(0 && "unknown vld_dup intrinsic?"); + default: llvm_unreachable("unknown vld_dup intrinsic?"); } Function *F = CGM.getIntrinsic(Int, Ty); Value *Align = GetPointeeAlignment(*this, E->getArg(1)); @@ -1560,7 +1560,7 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID, case ARM::BI__builtin_neon_vld4_dup_v: Int = Intrinsic::arm_neon_vld2lane; break; - default: assert(0 && "unknown vld_dup intrinsic?"); + default: llvm_unreachable("unknown vld_dup intrinsic?"); } Function *F = CGM.getIntrinsic(Int, Ty); llvm::StructType *STy = cast<llvm::StructType>(F->getReturnType()); @@ -2013,7 +2013,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID, Intrinsic::ID ID = Intrinsic::not_intrinsic; switch (BuiltinID) { - default: assert(0 && "Unsupported shift intrinsic!"); + default: llvm_unreachable("Unsupported shift intrinsic!"); case X86::BI__builtin_ia32_pslldi128: name = "pslldi"; ID = Intrinsic::x86_sse2_psll_d; @@ -2073,7 +2073,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID, Intrinsic::ID ID = Intrinsic::not_intrinsic; switch (BuiltinID) { - default: assert(0 && "Unsupported shift intrinsic!"); + default: llvm_unreachable("Unsupported shift intrinsic!"); case X86::BI__builtin_ia32_pslldi: name = "pslldi"; ID = Intrinsic::x86_mmx_psll_d; @@ -2398,7 +2398,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID, Ops.pop_back(); switch (BuiltinID) { - default: assert(0 && "Unsupported ld/lvsl/lvsr intrinsic!"); + default: llvm_unreachable("Unsupported ld/lvsl/lvsr intrinsic!"); case PPC::BI__builtin_altivec_lvx: ID = Intrinsic::ppc_altivec_lvx; break; @@ -2437,7 +2437,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID, Ops.pop_back(); switch (BuiltinID) { - default: assert(0 && "Unsupported st intrinsic!"); + default: llvm_unreachable("Unsupported st intrinsic!"); case PPC::BI__builtin_altivec_stvx: ID = Intrinsic::ppc_altivec_stvx; break; diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp index 6e295430933..c246c3cb359 100644 --- a/clang/lib/CodeGen/CGCall.cpp +++ b/clang/lib/CodeGen/CGCall.cpp @@ -783,7 +783,7 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI, break; case ABIArgInfo::Expand: - assert(0 && "Invalid ABI kind for return argument"); + llvm_unreachable("Invalid ABI kind for return argument"); } if (RetAttrs) @@ -1243,7 +1243,7 @@ void CodeGenFunction::EmitFunctionEpilog(const CGFunctionInfo &FI) { break; case ABIArgInfo::Expand: - assert(0 && "Invalid ABI kind for return argument"); + llvm_unreachable("Invalid ABI kind for return argument"); } llvm::Instruction *Ret = RV ? Builder.CreateRet(RV) : Builder.CreateRetVoid(); @@ -1860,10 +1860,10 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, } case ABIArgInfo::Expand: - assert(0 && "Invalid ABI kind for return argument"); + llvm_unreachable("Invalid ABI kind for return argument"); } - assert(0 && "Unhandled ABIArgInfo::Kind"); + llvm_unreachable("Unhandled ABIArgInfo::Kind"); return RValue::get(0); } diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index 89e14bafd0b..04bf996acde 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -290,16 +290,16 @@ llvm::DIType CGDebugInfo::CreateType(const BuiltinType *BT) { const char *BTName = NULL; switch (BT->getKind()) { case BuiltinType::Dependent: - assert(0 && "Unexpected builtin type Dependent"); + llvm_unreachable("Unexpected builtin type Dependent"); return llvm::DIType(); case BuiltinType::Overload: - assert(0 && "Unexpected builtin type Overload"); + llvm_unreachable("Unexpected builtin type Overload"); return llvm::DIType(); case BuiltinType::BoundMember: - assert(0 && "Unexpected builtin type BoundMember"); + llvm_unreachable("Unexpected builtin type BoundMember"); return llvm::DIType(); case BuiltinType::UnknownAny: - assert(0 && "Unexpected builtin type UnknownAny"); + llvm_unreachable("Unexpected builtin type UnknownAny"); return llvm::DIType(); case BuiltinType::NullPtr: return DBuilder. @@ -1543,7 +1543,7 @@ llvm::DIType CGDebugInfo::CreateTypeNode(QualType Ty, #define NON_CANONICAL_TYPE(Class, Base) #define DEPENDENT_TYPE(Class, Base) case Type::Class: #include "clang/AST/TypeNodes.def" - assert(false && "Dependent types cannot show up in debug information"); + llvm_unreachable("Dependent types cannot show up in debug information"); case Type::ExtVector: case Type::Vector: diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp index 46f3f6b1778..b43ef4e5db5 100644 --- a/clang/lib/CodeGen/CGDecl.cpp +++ b/clang/lib/CodeGen/CGDecl.cpp @@ -72,7 +72,7 @@ void CodeGenFunction::EmitDecl(const Decl &D) { case Decl::FriendTemplate: case Decl::Block: case Decl::ClassScopeFunctionSpecialization: - assert(0 && "Declaration should not be in declstmts!"); + llvm_unreachable("Declaration should not be in declstmts!"); case Decl::Function: // void X(); case Decl::Record: // struct/union/class X; case Decl::Enum: // enum X; @@ -136,7 +136,7 @@ void CodeGenFunction::EmitVarDecl(const VarDecl &D) { return CGM.getOpenCLRuntime().EmitWorkGroupLocalVarDecl(*this, D); } - assert(0 && "Unknown storage class"); + llvm_unreachable("Unknown storage class"); } static std::string GetStaticDeclName(CodeGenFunction &CGF, const VarDecl &D, @@ -158,14 +158,14 @@ static std::string GetStaticDeclName(CodeGenFunction &CGF, const VarDecl &D, ContextName = Name.getString(); } else - assert(0 && "Unknown context for block static var decl"); + llvm_unreachable("Unknown context for block static var decl"); } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(CGF.CurFuncDecl)) { StringRef Name = CGM.getMangledName(FD); ContextName = Name.str(); } else if (isa<ObjCMethodDecl>(CGF.CurFuncDecl)) ContextName = CGF.CurFn->getName(); else - assert(0 && "Unknown context for static var decl"); + llvm_unreachable("Unknown context for static var decl"); return ContextName + Separator + D.getNameAsString(); } diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 62be62b79ed..f3996c9659d 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -474,7 +474,8 @@ CodeGenFunction::EmitReferenceBindingToExpr(const Expr *E, else { switch (ObjCARCReferenceLifetimeType.getObjCLifetime()) { case Qualifiers::OCL_None: - assert(0 && "Not a reference temporary that needs to be deallocated"); + llvm_unreachable( + "Not a reference temporary that needs to be deallocated"); case Qualifiers::OCL_ExplicitNone: case Qualifiers::OCL_Autoreleasing: // Nothing to do. @@ -1196,7 +1197,7 @@ void CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(RValue Src, Vec = Builder.CreateShuffleVector(Vec, ExtSrcVal, MaskV, "tmp"); } else { // We should never shorten the vector - assert(0 && "unexpected shorten vector length"); + llvm_unreachable("unexpected shorten vector length"); } } else { // If the Src is a scalar (not a vector) it must be updating one element. @@ -1387,7 +1388,7 @@ LValue CodeGenFunction::EmitDeclRefLValue(const DeclRefExpr *E) { if (const FunctionDecl *fn = dyn_cast<FunctionDecl>(ND)) return EmitFunctionDeclLValue(*this, E, fn); - assert(false && "Unhandled DeclRefExpr"); + llvm_unreachable("Unhandled DeclRefExpr"); // an invalid LValue, but the assert will // ensure that this point is never reached. @@ -1407,7 +1408,7 @@ LValue CodeGenFunction::EmitUnaryOpLValue(const UnaryOperator *E) { QualType ExprTy = getContext().getCanonicalType(E->getSubExpr()->getType()); switch (E->getOpcode()) { - default: assert(0 && "Unknown unary operator lvalue!"); + default: llvm_unreachable("Unknown unary operator lvalue!"); case UO_Deref: { QualType T = E->getSubExpr()->getType()->getPointeeType(); assert(!T.isNull() && "CodeGenFunction::EmitUnaryOpLValue: Illegal type"); @@ -1483,7 +1484,7 @@ LValue CodeGenFunction::EmitPredefinedLValue(const PredefinedExpr *E) { std::string GlobalVarName; switch (Type) { - default: assert(0 && "Invalid type"); + default: llvm_unreachable("Invalid type"); case PredefinedExpr::Func: GlobalVarName = "__func__."; break; @@ -1793,7 +1794,7 @@ LValue CodeGenFunction::EmitMemberExpr(const MemberExpr *E) { if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) return EmitFunctionDeclLValue(*this, E, FD); - assert(false && "Unhandled member declaration!"); + llvm_unreachable("Unhandled member declaration!"); return LValue(); } diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp index 856378b34f0..c321faffcfd 100644 --- a/clang/lib/CodeGen/CGExprAgg.cpp +++ b/clang/lib/CodeGen/CGExprAgg.cpp @@ -318,7 +318,7 @@ void AggExprEmitter::VisitCastExpr(CastExpr *E) { case CK_DerivedToBase: case CK_BaseToDerived: case CK_UncheckedDerivedToBase: { - assert(0 && "cannot perform hierarchy conversion in EmitAggExpr: " + llvm_unreachable("cannot perform hierarchy conversion in EmitAggExpr: " "should have been unpacked before we got here"); break; } diff --git a/clang/lib/CodeGen/CGExprComplex.cpp b/clang/lib/CodeGen/CGExprComplex.cpp index a92a7ad33e8..13c96d4fae5 100644 --- a/clang/lib/CodeGen/CGExprComplex.cpp +++ b/clang/lib/CodeGen/CGExprComplex.cpp @@ -103,7 +103,7 @@ public: ComplexPairTy VisitStmt(Stmt *S) { S->dump(CGF.getContext().getSourceManager()); - assert(0 && "Stmt can't have complex result type!"); + llvm_unreachable("Stmt can't have complex result type!"); return ComplexPairTy(); } ComplexPairTy VisitExpr(Expr *S); diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index d7dfa253ada..2de13a4090d 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -780,7 +780,7 @@ public: if (ILE->getType()->isVectorType()) return 0; - assert(0 && "Unable to handle InitListExpr"); + llvm_unreachable("Unable to handle InitListExpr"); // Get rid of control reaches end of void function warning. // Not reached. return 0; @@ -966,7 +966,7 @@ llvm::Constant *CodeGenModule::EmitConstantExpr(const Expr *E, if (Success && !Result.HasSideEffects) { switch (Result.Val.getKind()) { case APValue::Uninitialized: - assert(0 && "Constant expressions should be initialized."); + llvm_unreachable("Constant expressions should be initialized."); return 0; case APValue::LValue: { llvm::Type *DestTy = getTypes().ConvertTypeForMem(DestType); diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index 01acd42a063..90e12327156 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -153,7 +153,7 @@ public: Value *VisitStmt(Stmt *S) { S->dump(CGF.getContext().getSourceManager()); - assert(0 && "Stmt can't have complex result type!"); + llvm_unreachable("Stmt can't have complex result type!"); return 0; } Value *VisitExpr(Expr *S); @@ -1266,7 +1266,7 @@ EmitAddConsiderOverflowBehavior(const UnaryOperator *E, return EmitOverflowCheckedBinOp(BinOp); break; } - assert(false && "Unknown SignedOverflowBehaviorTy"); + llvm_unreachable("Unknown SignedOverflowBehaviorTy"); return 0; } @@ -1780,7 +1780,7 @@ Value *ScalarExprEmitter::EmitOverflowCheckedBinOp(const BinOpInfo &Ops) { IID = llvm::Intrinsic::smul_with_overflow; break; default: - assert(false && "Unsupported operation for overflow detection"); + llvm_unreachable("Unsupported operation for overflow detection"); IID = 0; } OpID <<= 1; @@ -2076,7 +2076,7 @@ enum IntrinsicType { VCMPEQ, VCMPGT }; static llvm::Intrinsic::ID GetIntrinsic(IntrinsicType IT, BuiltinType::Kind ElemKind) { switch (ElemKind) { - default: assert(0 && "unexpected element type"); + default: llvm_unreachable("unexpected element type"); case BuiltinType::Char_U: case BuiltinType::UChar: return (IT == VCMPEQ) ? llvm::Intrinsic::ppc_altivec_vcmpequb_p : @@ -2146,7 +2146,7 @@ Value *ScalarExprEmitter::EmitCompare(const BinaryOperator *E,unsigned UICmpOpc, BuiltinType::Kind ElementKind = BTy->getKind(); switch(E->getOpcode()) { - default: assert(0 && "is not a comparison operation"); + default: llvm_unreachable("is not a comparison operation"); case BO_EQ: CR6 = CR6_LT; ID = GetIntrinsic(VCMPEQ, ElementKind); @@ -2755,7 +2755,7 @@ LValue CodeGenFunction::EmitCompoundAssignmentLValue( case BO_LOr: case BO_Assign: case BO_Comma: - assert(false && "Not valid compound assignment operators"); + llvm_unreachable("Not valid compound assignment operators"); break; } diff --git a/clang/lib/CodeGen/CGObjCGNU.cpp b/clang/lib/CodeGen/CGObjCGNU.cpp index b7855c85a2b..bdc11d2ce7c 100644 --- a/clang/lib/CodeGen/CGObjCGNU.cpp +++ b/clang/lib/CodeGen/CGObjCGNU.cpp @@ -2333,7 +2333,7 @@ void CGObjCGNU::EmitObjCGlobalAssign(CodeGenFunction &CGF, B.CreateCall2(GlobalAssignFn, src, dst); else // FIXME. Add threadloca assign API - assert(false && "EmitObjCGlobalAssign - Threal Local API NYI"); + llvm_unreachable("EmitObjCGlobalAssign - Threal Local API NYI"); } void CGObjCGNU::EmitObjCIvarAssign(CodeGenFunction &CGF, diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index 665b7f97c24..be574b3efeb 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -1060,7 +1060,7 @@ public: /// GetClassGlobal - Return the global variable for the Objective-C /// class of the given name. virtual llvm::GlobalVariable *GetClassGlobal(const std::string &Name) { - assert(false && "CGObjCMac::GetClassGlobal"); + llvm_unreachable("CGObjCMac::GetClassGlobal"); return 0; } }; diff --git a/clang/lib/CodeGen/CGObjCRuntime.h b/clang/lib/CodeGen/CGObjCRuntime.h index 7accc70c962..4fa47a740aa 100644 --- a/clang/lib/CodeGen/CGObjCRuntime.h +++ b/clang/lib/CodeGen/CGObjCRuntime.h @@ -208,8 +208,7 @@ public: virtual llvm::Value *EmitNSAutoreleasePoolClassRef(CGBuilderTy &Builder) { - assert(false &&"autoreleasepool unsupported in this ABI"); - return 0; + llvm_unreachable("autoreleasepool unsupported in this ABI"); } /// EnumerationMutationFunction - Return the function that's called by the diff --git a/clang/lib/CodeGen/CGRTTI.cpp b/clang/lib/CodeGen/CGRTTI.cpp index 2e3d966ab44..1ce69d60932 100644 --- a/clang/lib/CodeGen/CGRTTI.cpp +++ b/clang/lib/CodeGen/CGRTTI.cpp @@ -203,7 +203,7 @@ static bool TypeInfoIsInStandardLibrary(const BuiltinType *Ty) { case BuiltinType::ObjCId: case BuiltinType::ObjCClass: case BuiltinType::ObjCSel: - assert(false && "FIXME: Objective-C types are unsupported!"); + llvm_unreachable("FIXME: Objective-C types are unsupported!"); } // Silent gcc. @@ -393,11 +393,11 @@ void RTTIBuilder::BuildVTablePointer(const Type *Ty) { #define NON_CANONICAL_TYPE(Class, Base) case Type::Class: #define DEPENDENT_TYPE(Class, Base) case Type::Class: #include "clang/AST/TypeNodes.def" - assert(false && "Non-canonical and dependent types shouldn't get here"); + llvm_unreachable("Non-canonical and dependent types shouldn't get here"); case Type::LValueReference: case Type::RValueReference: - assert(false && "References shouldn't get here"); + llvm_unreachable("References shouldn't get here"); case Type::Builtin: // GCC treats vector and complex types as fundamental types. @@ -590,7 +590,7 @@ llvm::Constant *RTTIBuilder::BuildTypeInfo(QualType Ty, bool Force) { #define NON_CANONICAL_TYPE(Class, Base) case Type::Class: #define DEPENDENT_TYPE(Class, Base) case Type::Class: #include "clang/AST/TypeNodes.def" - assert(false && "Non-canonical and dependent types shouldn't get here"); + llvm_unreachable("Non-canonical and dependent types shouldn't get here"); // GCC treats vector types as fundamental types. case Type::Builtin: @@ -604,7 +604,7 @@ llvm::Constant *RTTIBuilder::BuildTypeInfo(QualType Ty, bool Force) { case Type::LValueReference: case Type::RValueReference: - assert(false && "References shouldn't get here"); + llvm_unreachable("References shouldn't get here"); case Type::ConstantArray: case Type::IncompleteArray: diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp index 461a173f53d..3f986bd1cd6 100644 --- a/clang/lib/CodeGen/CGStmt.cpp +++ b/clang/lib/CodeGen/CGStmt.cpp @@ -137,10 +137,12 @@ void CodeGenFunction::EmitStmt(const Stmt *S) { EmitObjCAtTryStmt(cast<ObjCAtTryStmt>(*S)); break; case Stmt::ObjCAtCatchStmtClass: - assert(0 && "@catch statements should be handled by EmitObjCAtTryStmt"); + llvm_unreachable( + "@catch statements should be handled by EmitObjCAtTryStmt"); break; case Stmt::ObjCAtFinallyStmtClass: - assert(0 && "@finally statements should be handled by EmitObjCAtTryStmt"); + llvm_unreachable( + "@finally statements should be handled by EmitObjCAtTryStmt"); break; case Stmt::ObjCAtThrowStmtClass: EmitObjCAtThrowStmt(cast<ObjCAtThrowStmt>(*S)); diff --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp index 4743d579375..1a210faa33f 100644 --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -263,7 +263,7 @@ static BaseOffset ComputeBaseOffset(ASTContext &Context, if (!const_cast<CXXRecordDecl *>(DerivedRD)-> isDerivedFrom(const_cast<CXXRecordDecl *>(BaseRD), Paths)) { - assert(false && "Class must be derived from the passed in base class!"); + llvm_unreachable("Class must be derived from the passed in base class!"); return BaseOffset(); } @@ -303,7 +303,7 @@ ComputeReturnAdjustmentBaseOffset(ASTContext &Context, CanBaseReturnType = CanBaseReturnType->getAs<PointerType>()->getPointeeType(); } else { - assert(false && "Unexpected return type!"); + llvm_unreachable("Unexpected return type!"); } // We need to compare unqualified types here; consider @@ -700,7 +700,7 @@ CharUnits VCallOffsetMap::getVCallOffsetOffset(const CXXMethodDecl *MD) { return Offsets[I].second; } - assert(false && "Should always find a vcall offset offset!"); + llvm_unreachable("Should always find a vcall offset offset!"); return CharUnits::Zero(); } @@ -1361,7 +1361,7 @@ VTableBuilder::ComputeThisAdjustmentBaseOffset(BaseSubobject Base, if (!const_cast<CXXRecordDecl *>(DerivedRD)-> isDerivedFrom(const_cast<CXXRecordDecl *>(BaseRD), Paths)) { - assert(false && "Class must be derived from the passed in base class!"); + llvm_unreachable("Class must be derived from the passed in base class!"); return BaseOffset(); } @@ -1553,7 +1553,7 @@ VTableBuilder::IsOverriderUsed(const CXXMethodDecl *Overrider, } if (!PrimaryBases.insert(PrimaryBase)) - assert(false && "Found a duplicate primary base!"); + llvm_unreachable("Found a duplicate primary base!"); RD = PrimaryBase; } @@ -1627,7 +1627,7 @@ VTableBuilder::AddMethods(BaseSubobject Base, CharUnits BaseOffsetInLayoutClass, FirstBaseOffsetInLayoutClass, PrimaryBases); if (!PrimaryBases.insert(PrimaryBase)) - assert(false && "Found a duplicate primary base!"); + llvm_unreachable("Found a duplicate primary base!"); } // Now go through all virtual member functions and add them. @@ -2316,7 +2316,7 @@ CollectPrimaryBases(const CXXRecordDecl *RD, ASTContext &Context, CollectPrimaryBases(PrimaryBase, Context, PrimaryBases); if (!PrimaryBases.insert(PrimaryBase)) - assert(false && "Found a duplicate primary base!"); + llvm_unreachable("Found a duplicate primary base!"); } void CodeGenVTables::ComputeMethodVTableIndices(const CXXRecordDecl *RD) { diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp index 54d3cb643fa..3251b767425 100644 --- a/clang/lib/CodeGen/CodeGenAction.cpp +++ b/clang/lib/CodeGen/CodeGenAction.cpp @@ -275,7 +275,7 @@ static raw_ostream *GetOutputStream(CompilerInstance &CI, return CI.createDefaultOutputFile(true, InFile, "o"); } - assert(0 && "Invalid action!"); + llvm_unreachable("Invalid action!"); return 0; } diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 1943a744c98..e4633f9a749 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -850,7 +850,7 @@ void CodeGenModule::EmitGlobalDefinition(GlobalDecl GD) { if (const VarDecl *VD = dyn_cast<VarDecl>(D)) return EmitGlobalVarDefinition(VD); - assert(0 && "Invalid argument to EmitGlobalDefinition()"); + llvm_unreachable("Invalid argument to EmitGlobalDefinition()"); } /// GetOrCreateLLVMFunction - If the specified mangled name is not in the diff --git a/clang/lib/CodeGen/CodeGenTypes.cpp b/clang/lib/CodeGen/CodeGenTypes.cpp index c96a7f3a515..8742f5999b9 100644 --- a/clang/lib/CodeGen/CodeGenTypes.cpp +++ b/clang/lib/CodeGen/CodeGenTypes.cpp @@ -273,7 +273,7 @@ static llvm::Type *getTypeForFormat(llvm::LLVMContext &VMContext, return llvm::Type::getPPC_FP128Ty(VMContext); if (&format == &llvm::APFloat::x87DoubleExtended) return llvm::Type::getX86_FP80Ty(VMContext); - assert(0 && "Unknown float format!"); + llvm_unreachable("Unknown float format!"); return 0; } diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index bad8a1d928a..02e6a3be38c 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -1706,7 +1706,7 @@ classifyReturnType(QualType RetTy) const { case SSEUp: case X87Up: - assert(0 && "Invalid classification for lo word."); + llvm_unreachable("Invalid classification for lo word."); // AMD64-ABI 3.2.3p4: Rule 2. Types of class memory are returned via // hidden argument. @@ -1760,7 +1760,7 @@ classifyReturnType(QualType RetTy) const { // never occur as a hi class. case Memory: case X87: - assert(0 && "Invalid classification for hi word."); + llvm_unreachable("Invalid classification for hi word."); case ComplexX87: // Previously handled. case NoClass: @@ -1848,7 +1848,7 @@ ABIArgInfo X86_64ABIInfo::classifyArgumentType(QualType Ty, unsigned &neededInt, case SSEUp: case X87Up: - assert(0 && "Invalid classification for lo word."); + llvm_unreachable("Invalid classification for lo word."); // AMD64-ABI 3.2.3p3: Rule 2. If the class is INTEGER, the next // available register of the sequence %rdi, %rsi, %rdx, %rcx, %r8 @@ -1892,7 +1892,7 @@ ABIArgInfo X86_64ABIInfo::classifyArgumentType(QualType Ty, unsigned &neededInt, case Memory: case X87: case ComplexX87: - assert(0 && "Invalid classification for hi word."); + llvm_unreachable("Invalid classification for hi word."); break; case NoClass: break; |