diff options
Diffstat (limited to 'lib/AST')
-rw-r--r-- | lib/AST/APValue.cpp | 4 | ||||
-rw-r--r-- | lib/AST/ASTContext.cpp | 32 | ||||
-rw-r--r-- | lib/AST/ASTDiagnostic.cpp | 2 | ||||
-rw-r--r-- | lib/AST/ASTImporter.cpp | 2 | ||||
-rw-r--r-- | lib/AST/Decl.cpp | 4 | ||||
-rw-r--r-- | lib/AST/DeclBase.cpp | 10 | ||||
-rw-r--r-- | lib/AST/DeclCXX.cpp | 6 | ||||
-rw-r--r-- | lib/AST/DeclObjC.cpp | 4 | ||||
-rw-r--r-- | lib/AST/DeclPrinter.cpp | 4 | ||||
-rw-r--r-- | lib/AST/DeclarationName.cpp | 12 | ||||
-rw-r--r-- | lib/AST/Expr.cpp | 8 | ||||
-rw-r--r-- | lib/AST/ExprConstant.cpp | 6 | ||||
-rw-r--r-- | lib/AST/ItaniumMangle.cpp | 6 | ||||
-rw-r--r-- | lib/AST/MicrosoftMangle.cpp | 77 | ||||
-rw-r--r-- | lib/AST/StmtDumper.cpp | 4 | ||||
-rw-r--r-- | lib/AST/StmtPrinter.cpp | 6 | ||||
-rw-r--r-- | lib/AST/TemplateBase.cpp | 4 |
17 files changed, 96 insertions, 95 deletions
diff --git a/lib/AST/APValue.cpp b/lib/AST/APValue.cpp index 27d9234d76..7a74c97048 100644 --- a/lib/AST/APValue.cpp +++ b/lib/AST/APValue.cpp @@ -93,7 +93,7 @@ static double GetApproxValue(const llvm::APFloat &F) { void APValue::print(raw_ostream &OS) const { switch (getKind()) { - default: assert(0 && "Unknown APValue kind!"); + default: llvm_unreachable("Unknown APValue kind!"); case Uninitialized: OS << "Uninitialized"; return; @@ -123,7 +123,7 @@ void APValue::print(raw_ostream &OS) const { static void WriteShortAPValueToStream(raw_ostream& Out, const APValue& V) { switch (V.getKind()) { - default: assert(0 && "Unknown APValue kind!"); + default: llvm_unreachable("Unknown APValue kind!"); case APValue::Uninitialized: Out << "Uninitialized"; break; diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 50a3942cc1..de77cb66cf 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -682,7 +682,7 @@ const llvm::fltSemantics &ASTContext::getFloatTypeSemantics(QualType T) const { const BuiltinType *BT = T->getAs<BuiltinType>(); assert(BT && "Not a floating point type!"); switch (BT->getKind()) { - default: assert(0 && "Not a floating point type!"); + default: llvm_unreachable("Not a floating point type!"); case BuiltinType::Float: return Target->getFloatFormat(); case BuiltinType::Double: return Target->getDoubleFormat(); case BuiltinType::LongDouble: return Target->getLongDoubleFormat(); @@ -849,7 +849,7 @@ ASTContext::getTypeInfo(const Type *T) const { case Type::Builtin: switch (cast<BuiltinType>(T)->getKind()) { - default: assert(0 && "Unknown builtin type!"); + default: llvm_unreachable("Unknown builtin type!"); case BuiltinType::Void: // GCC extension: alignof(void) = 8 bits. Width = 0; @@ -3218,7 +3218,7 @@ ASTContext::getCanonicalTemplateArgument(const TemplateArgument &Arg) const { } // Silence GCC warning - assert(false && "Unhandled template argument kind"); + llvm_unreachable("Unhandled template argument kind"); return TemplateArgument(); } @@ -3432,7 +3432,7 @@ static FloatingRank getFloatingRank(QualType T) { assert(T->getAs<BuiltinType>() && "getFloatingRank(): not a floating type"); switch (T->getAs<BuiltinType>()->getKind()) { - default: assert(0 && "getFloatingRank(): not a floating type"); + default: llvm_unreachable("getFloatingRank(): not a floating type"); case BuiltinType::Float: return FloatRank; case BuiltinType::Double: return DoubleRank; case BuiltinType::LongDouble: return LongDoubleRank; @@ -3448,7 +3448,7 @@ QualType ASTContext::getFloatingTypeOfSizeWithinDomain(QualType Size, FloatingRank EltRank = getFloatingRank(Size); if (Domain->isComplexType()) { switch (EltRank) { - default: assert(0 && "getFloatingRank(): illegal value for rank"); + default: llvm_unreachable("getFloatingRank(): illegal value for rank"); case FloatRank: return FloatComplexTy; case DoubleRank: return DoubleComplexTy; case LongDoubleRank: return LongDoubleComplexTy; @@ -3457,7 +3457,7 @@ QualType ASTContext::getFloatingTypeOfSizeWithinDomain(QualType Size, assert(Domain->isRealFloatingType() && "Unknown domain!"); switch (EltRank) { - default: assert(0 && "getFloatingRank(): illegal value for rank"); + default: llvm_unreachable("getFloatingRank(): illegal value for rank"); case FloatRank: return FloatTy; case DoubleRank: return DoubleTy; case LongDoubleRank: return LongDoubleTy; @@ -3498,7 +3498,7 @@ unsigned ASTContext::getIntegerRank(const Type *T) const { T = getFromTargetType(Target->getChar32Type()).getTypePtr(); switch (cast<BuiltinType>(T)->getKind()) { - default: assert(0 && "getIntegerRank(): not a built-in integer"); + default: llvm_unreachable("getIntegerRank(): not a built-in integer"); case BuiltinType::Bool: return 1 + (getIntWidth(BoolTy) << 3); case BuiltinType::Char_S: @@ -4177,7 +4177,7 @@ void ASTContext::getObjCEncodingForType(QualType T, std::string& S, static char ObjCEncodingForPrimitiveKind(const ASTContext *C, QualType T) { switch (T->getAs<BuiltinType>()->getKind()) { - default: assert(0 && "Unhandled builtin type kind"); + default: llvm_unreachable("Unhandled builtin type kind"); case BuiltinType::Void: return 'v'; case BuiltinType::Bool: return 'B'; case BuiltinType::Char_U: @@ -4536,7 +4536,7 @@ void ASTContext::getObjCEncodingForTypeImpl(QualType T, std::string& S, return; } - assert(0 && "@encode for type not implemented!"); + llvm_unreachable("@encode for type not implemented!"); } void ASTContext::getObjCEncodingForStructureImpl(RecordDecl *RDecl, @@ -4918,7 +4918,7 @@ CanQualType ASTContext::getFromTargetType(unsigned Type) const { case TargetInfo::UnsignedLongLong: return UnsignedLongLongTy; } - assert(false && "Unhandled TargetInfo::IntType value"); + llvm_unreachable("Unhandled TargetInfo::IntType value"); return CanQualType(); } @@ -5748,13 +5748,13 @@ QualType ASTContext::mergeTypes(QualType LHS, QualType RHS, #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"); return QualType(); case Type::LValueReference: case Type::RValueReference: case Type::MemberPointer: - assert(false && "C++ should never be in mergeTypes"); + llvm_unreachable("C++ should never be in mergeTypes"); return QualType(); case Type::ObjCInterface: @@ -5762,7 +5762,7 @@ QualType ASTContext::mergeTypes(QualType LHS, QualType RHS, case Type::VariableArray: case Type::FunctionProto: case Type::ExtVector: - assert(false && "Types are eliminated above"); + llvm_unreachable("Types are eliminated above"); return QualType(); case Type::Pointer: @@ -6014,7 +6014,7 @@ QualType ASTContext::getCorrespondingUnsignedType(QualType T) { case BuiltinType::Int128: return UnsignedInt128Ty; default: - assert(0 && "Unexpected signed integer type"); + llvm_unreachable("Unexpected signed integer type"); return QualType(); } } @@ -6072,7 +6072,7 @@ static QualType DecodeTypeFromStr(const char *&Str, const ASTContext &Context, // Read the base type. switch (*Str++) { - default: assert(0 && "Unknown builtin type letter!"); + default: llvm_unreachable("Unknown builtin type letter!"); case 'v': assert(HowLong == 0 && !Signed && !Unsigned && "Bad modifiers used with 'v'!"); @@ -6475,7 +6475,7 @@ MangleContext *ASTContext::createMangleContext() { case CXXABI_Microsoft: return createMicrosoftMangleContext(*this, getDiagnostics()); } - assert(0 && "Unsupported ABI"); + llvm_unreachable("Unsupported ABI"); return 0; } diff --git a/lib/AST/ASTDiagnostic.cpp b/lib/AST/ASTDiagnostic.cpp index e6de54c907..f9100c0110 100644 --- a/lib/AST/ASTDiagnostic.cpp +++ b/lib/AST/ASTDiagnostic.cpp @@ -235,7 +235,7 @@ void clang::FormatASTNodeDiagnosticArgument( bool NeedQuotes = true; switch (Kind) { - default: assert(0 && "unknown ArgumentKind"); + default: llvm_unreachable("unknown ArgumentKind"); case Diagnostic::ak_qualtype: { assert(ModLen == 0 && ArgLen == 0 && "Invalid modifier for QualType argument"); diff --git a/lib/AST/ASTImporter.cpp b/lib/AST/ASTImporter.cpp index c791ba1a58..55610cbc63 100644 --- a/lib/AST/ASTImporter.cpp +++ b/lib/AST/ASTImporter.cpp @@ -1803,7 +1803,7 @@ ASTNodeImporter::ImportDeclarationNameLoc(const DeclarationNameInfo &From, To.setNamedTypeInfo(Importer.Import(FromTInfo)); return; } - assert(0 && "Unknown name kind."); + llvm_unreachable("Unknown name kind."); } } diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 57f9995fce..2fdb9654b0 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -1890,7 +1890,7 @@ FunctionDecl::TemplatedKind FunctionDecl::getTemplatedKind() const { <DependentFunctionTemplateSpecializationInfo*>()) return TK_DependentFunctionTemplateSpecialization; - assert(false && "Did we miss a TemplateOrSpecialization type?"); + llvm_unreachable("Did we miss a TemplateOrSpecialization type?"); return TK_NonTemplate; } @@ -2114,7 +2114,7 @@ FunctionDecl::setTemplateSpecializationKind(TemplateSpecializationKind TSK, MSInfo->getPointOfInstantiation().isInvalid()) MSInfo->setPointOfInstantiation(PointOfInstantiation); } else - assert(false && "Function cannot have a template specialization kind"); + llvm_unreachable("Function cannot have a template specialization kind"); } SourceLocation FunctionDecl::getPointOfInstantiation() const { diff --git a/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp index 68cf82edc4..d1f8b1c7fd 100644 --- a/lib/AST/DeclBase.cpp +++ b/lib/AST/DeclBase.cpp @@ -43,7 +43,7 @@ static bool StatSwitch = false; const char *Decl::getDeclKindName() const { switch (DeclKind) { - default: assert(0 && "Declaration not in DeclNodes.inc!"); + default: llvm_unreachable("Declaration not in DeclNodes.inc!"); #define DECL(DERIVED, BASE) case DERIVED: return #DERIVED; #define ABSTRACT_DECL(DECL) #include "clang/AST/DeclNodes.inc" @@ -62,7 +62,7 @@ void Decl::setInvalidDecl(bool Invalid) { const char *DeclContext::getDeclKindName() const { switch (DeclKind) { - default: assert(0 && "Declaration context not in DeclNodes.inc!"); + default: llvm_unreachable("Declaration context not in DeclNodes.inc!"); #define DECL(DERIVED, BASE) case Decl::DERIVED: return #DERIVED; #define ABSTRACT_DECL(DECL) #include "clang/AST/DeclNodes.inc" @@ -100,7 +100,7 @@ void Decl::PrintStats() { void Decl::add(Kind k) { switch (k) { - default: assert(0 && "Declaration not in DeclNodes.inc!"); + default: llvm_unreachable("Declaration not in DeclNodes.inc!"); #define DECL(DERIVED, BASE) case DERIVED: ++n##DERIVED##s; break; #define ABSTRACT_DECL(DECL) #include "clang/AST/DeclNodes.inc" @@ -571,7 +571,7 @@ Decl *Decl::castFromDeclContext (const DeclContext *D) { if (DK >= first##NAME && DK <= last##NAME) \ return static_cast<NAME##Decl*>(const_cast<DeclContext*>(D)); #include "clang/AST/DeclNodes.inc" - assert(false && "a decl that inherits DeclContext isn't handled"); + llvm_unreachable("a decl that inherits DeclContext isn't handled"); return 0; } } @@ -591,7 +591,7 @@ DeclContext *Decl::castToDeclContext(const Decl *D) { if (DK >= first##NAME && DK <= last##NAME) \ return static_cast<NAME##Decl*>(const_cast<Decl*>(D)); #include "clang/AST/DeclNodes.inc" - assert(false && "a decl that inherits DeclContext isn't handled"); + llvm_unreachable("a decl that inherits DeclContext isn't handled"); return 0; } } diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp index 89051152d7..b9af8e3a1f 100644 --- a/lib/AST/DeclCXX.cpp +++ b/lib/AST/DeclCXX.cpp @@ -671,7 +671,7 @@ NotASpecialMember:; case AS_private: data().HasPrivateFields = true; break; case AS_protected: data().HasProtectedFields = true; break; case AS_public: data().HasPublicFields = true; break; - case AS_none: assert(0 && "Invalid access specifier"); + case AS_none: llvm_unreachable("Invalid access specifier"); }; if ((data().HasPrivateFields + data().HasProtectedFields + data().HasPublicFields) > 1) @@ -1053,7 +1053,7 @@ CXXRecordDecl::setTemplateSpecializationKind(TemplateSpecializationKind TSK) { return; } - assert(false && "Not a class template or member class specialization"); + llvm_unreachable("Not a class template or member class specialization"); } CXXDestructorDecl *CXXRecordDecl::getDestructor() const { @@ -1693,7 +1693,7 @@ static const char *getAccessName(AccessSpecifier AS) { switch (AS) { default: case AS_none: - assert(0 && "Invalid access specifier!"); + llvm_unreachable("Invalid access specifier!"); return 0; case AS_public: return "public"; diff --git a/lib/AST/DeclObjC.cpp b/lib/AST/DeclObjC.cpp index 45e34811ea..68177de70d 100644 --- a/lib/AST/DeclObjC.cpp +++ b/lib/AST/DeclObjC.cpp @@ -549,7 +549,7 @@ ObjCInterfaceDecl *ObjCMethodDecl::getClassInterface() { return IMD->getClassInterface(); assert(!isa<ObjCProtocolDecl>(getDeclContext()) && "It's a protocol method"); - assert(false && "unknown method context"); + llvm_unreachable("unknown method context"); return 0; } @@ -781,7 +781,7 @@ const ObjCInterfaceDecl *ObjCIvarDecl::getContainingInterface() const { default: case ObjCCategoryImpl: case ObjCProtocol: - assert(0 && "invalid ivar container!"); + llvm_unreachable("invalid ivar container!"); return 0; // Ivars can only appear in class extension categories. diff --git a/lib/AST/DeclPrinter.cpp b/lib/AST/DeclPrinter.cpp index 866153db11..a17e14053c 100644 --- a/lib/AST/DeclPrinter.cpp +++ b/lib/AST/DeclPrinter.cpp @@ -114,7 +114,7 @@ static QualType GetBaseType(QualType T) { else if (const VectorType *VTy = BaseType->getAs<VectorType>()) BaseType = VTy->getElementType(); else - assert(0 && "Unknown declarator!"); + llvm_unreachable("Unknown declarator!"); } return BaseType; } @@ -192,7 +192,7 @@ void DeclPrinter::ProcessDeclGroup(SmallVectorImpl<Decl*>& Decls) { void DeclPrinter::Print(AccessSpecifier AS) { switch(AS) { - case AS_none: assert(0 && "No access specifier!"); break; + case AS_none: llvm_unreachable("No access specifier!"); break; case AS_public: Out << "public"; break; case AS_protected: Out << "protected"; break; case AS_private: Out << "private"; break; diff --git a/lib/AST/DeclarationName.cpp b/lib/AST/DeclarationName.cpp index a3ba94195f..84d4ca94c3 100644 --- a/lib/AST/DeclarationName.cpp +++ b/lib/AST/DeclarationName.cpp @@ -193,7 +193,7 @@ DeclarationName::NameKind DeclarationName::getNameKind() const { } // Can't actually get here. - assert(0 && "This should be unreachable!"); + llvm_unreachable("This should be unreachable!"); return Identifier; } @@ -276,7 +276,7 @@ void DeclarationName::printName(raw_ostream &OS) const { return; } - assert(false && "Unexpected declaration name kind"); + llvm_unreachable("Unexpected declaration name kind"); } QualType DeclarationName::getCXXNameType() const { @@ -338,7 +338,7 @@ void *DeclarationName::getFETokenInfoAsVoid() const { return getCXXLiteralIdentifier()->getFETokenInfo<void>(); default: - assert(false && "Declaration name has no FETokenInfo"); + llvm_unreachable("Declaration name has no FETokenInfo"); } return 0; } @@ -364,7 +364,7 @@ void DeclarationName::setFETokenInfo(void *T) { break; default: - assert(false && "Declaration name has no FETokenInfo"); + llvm_unreachable("Declaration name has no FETokenInfo"); } } @@ -588,7 +588,7 @@ void DeclarationNameInfo::printName(raw_ostream &OS) const { Name.printName(OS); return; } - assert(false && "Unexpected declaration name kind"); + llvm_unreachable("Unexpected declaration name kind"); } SourceLocation DeclarationNameInfo::getEndLoc() const { @@ -621,6 +621,6 @@ SourceLocation DeclarationNameInfo::getEndLoc() const { case DeclarationName::CXXUsingDirective: return NameLoc; } - assert(false && "Unexpected declaration name kind"); + llvm_unreachable("Unexpected declaration name kind"); return SourceLocation(); } diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp index 374c1a03a7..a358693a52 100644 --- a/lib/AST/Expr.cpp +++ b/lib/AST/Expr.cpp @@ -595,7 +595,7 @@ getLocationOfByte(unsigned ByteNo, const SourceManager &SM, /// corresponds to, e.g. "sizeof" or "[pre]++". const char *UnaryOperator::getOpcodeStr(Opcode Op) { switch (Op) { - default: assert(0 && "Unknown unary operator"); + default: llvm_unreachable("Unknown unary operator"); case UO_PostInc: return "++"; case UO_PostDec: return "--"; case UO_PreInc: return "++"; @@ -615,7 +615,7 @@ const char *UnaryOperator::getOpcodeStr(Opcode Op) { UnaryOperatorKind UnaryOperator::getOverloadedOpcode(OverloadedOperatorKind OO, bool Postfix) { switch (OO) { - default: assert(false && "No unary operator for overloaded function"); + default: llvm_unreachable("No unary operator for overloaded function"); case OO_PlusPlus: return Postfix ? UO_PostInc : UO_PreInc; case OO_MinusMinus: return Postfix ? UO_PostDec : UO_PreDec; case OO_Amp: return UO_AddrOf; @@ -1289,7 +1289,7 @@ const char *BinaryOperator::getOpcodeStr(Opcode Op) { BinaryOperatorKind BinaryOperator::getOverloadedOpcode(OverloadedOperatorKind OO) { switch (OO) { - default: assert(false && "Not an overloadable binary operator"); + default: llvm_unreachable("Not an overloadable binary operator"); case OO_Plus: return BO_Add; case OO_Minus: return BO_Sub; case OO_Star: return BO_Mul; @@ -2495,7 +2495,7 @@ Expr::isNullPointerConstant(ASTContext &Ctx, if (isValueDependent()) { switch (NPC) { case NPC_NeverValueDependent: - assert(false && "Unexpected value dependent expression!"); + llvm_unreachable("Unexpected value dependent expression!"); // If the unthinkable happens, fall through to the safest alternative. case NPC_ValueDependentIsNull: diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index 97786053be..2d4b07021c 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -388,7 +388,7 @@ public: ExprEvaluatorBase(EvalInfo &Info) : Info(Info) {} RetTy VisitStmt(const Stmt *) { - assert(0 && "Expression evaluator should not be called on stmts"); + llvm_unreachable("Expression evaluator should not be called on stmts"); return DerivedError(0); } RetTy VisitExpr(const Expr *E) { @@ -1218,7 +1218,7 @@ static int EvaluateBuiltinClassifyType(const CallExpr *E) { else if (ArgTy->isUnionType()) return union_type_class; else // FIXME: offset_type_class, method_type_class, & lang_type_class? - assert(0 && "CallExpr::isBuiltinClassifyType(): unimplemented type"); + llvm_unreachable("CallExpr::isBuiltinClassifyType(): unimplemented type"); return -1; } @@ -1427,7 +1427,7 @@ bool IntExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) { switch (E->getOpcode()) { default: - assert(0 && "Invalid binary operator!"); + llvm_unreachable("Invalid binary operator!"); case BO_LT: return Success(CR == APFloat::cmpLessThan, E); case BO_GT: diff --git a/lib/AST/ItaniumMangle.cpp b/lib/AST/ItaniumMangle.cpp index 296bad535c..ab6ec4e6a1 100644 --- a/lib/AST/ItaniumMangle.cpp +++ b/lib/AST/ItaniumMangle.cpp @@ -1069,7 +1069,7 @@ void CXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, case DeclarationName::ObjCZeroArgSelector: case DeclarationName::ObjCOneArgSelector: case DeclarationName::ObjCMultiArgSelector: - assert(false && "Can't mangle Objective-C selector names here!"); + llvm_unreachable("Can't mangle Objective-C selector names here!"); break; case DeclarationName::CXXConstructorName: @@ -1124,7 +1124,7 @@ void CXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, break; case DeclarationName::CXXUsingDirective: - assert(false && "Can't mangle a using directive name!"); + llvm_unreachable("Can't mangle a using directive name!"); break; } } @@ -1512,7 +1512,7 @@ CXXNameMangler::mangleOperatorName(OverloadedOperatorKind OO, unsigned Arity) { case OO_None: case NUM_OVERLOADED_OPERATORS: - assert(false && "Not an overloaded operator"); + llvm_unreachable("Not an overloaded operator"); break; } } diff --git a/lib/AST/MicrosoftMangle.cpp b/lib/AST/MicrosoftMangle.cpp index 14a1d6662d..fd90883bdf 100644 --- a/lib/AST/MicrosoftMangle.cpp +++ b/lib/AST/MicrosoftMangle.cpp @@ -332,15 +332,15 @@ MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, case DeclarationName::ObjCZeroArgSelector: case DeclarationName::ObjCOneArgSelector: case DeclarationName::ObjCMultiArgSelector: - assert(false && "Can't mangle Objective-C selector names here!"); + llvm_unreachable("Can't mangle Objective-C selector names here!"); break; case DeclarationName::CXXConstructorName: - assert(false && "Can't mangle constructors yet!"); + llvm_unreachable("Can't mangle constructors yet!"); break; case DeclarationName::CXXDestructorName: - assert(false && "Can't mangle destructors yet!"); + llvm_unreachable("Can't mangle destructors yet!"); break; case DeclarationName::CXXConversionFunctionName: @@ -355,11 +355,11 @@ MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, case DeclarationName::CXXLiteralOperatorName: // FIXME: Was this added in VS2010? Does MS even know how to mangle this? - assert(false && "Don't know how to mangle literal operators yet!"); + llvm_unreachable("Don't know how to mangle literal operators yet!"); break; case DeclarationName::CXXUsingDirective: - assert(false && "Can't mangle a using directive name!"); + llvm_unreachable("Can't mangle a using directive name!"); break; } } @@ -513,12 +513,12 @@ void MicrosoftCXXNameMangler::mangleOperatorName(OverloadedOperatorKind OO) { case OO_Array_Delete: Out << "?_V"; break; case OO_Conditional: - assert(false && "Don't know how to mangle ?:"); + llvm_unreachable("Don't know how to mangle ?:"); break; case OO_None: case NUM_OVERLOADED_OPERATORS: - assert(false && "Not an overloaded operator"); + llvm_unreachable("Not an overloaded operator"); break; } } @@ -712,7 +712,7 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T) { case BuiltinType::Dependent: case BuiltinType::UnknownAny: case BuiltinType::BoundMember: - assert(false && + llvm_unreachable( "Overloaded and dependent types shouldn't get to name mangling"); break; case BuiltinType::ObjCId: Out << "PAUobjc_object@@"; break; @@ -722,7 +722,7 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T) { case BuiltinType::Char16: case BuiltinType::Char32: case BuiltinType::NullPtr: - assert(false && "Don't know how to mangle this type"); + llvm_unreachable("Don't know how to mangle this type"); break; } } @@ -869,7 +869,7 @@ void MicrosoftCXXNameMangler::mangleCallingConvention(const FunctionType *T, CC = IsInstMethod ? getASTContext().getDefaultMethodCallConv() : CC_C; switch (CC) { default: - assert(0 && "Unsupported CC for mangling"); + llvm_unreachable("Unsupported CC for mangling"); case CC_Default: case CC_C: Out << 'A'; break; case CC_X86Pascal: Out << 'C'; break; @@ -890,7 +890,7 @@ void MicrosoftCXXNameMangler::mangleThrowSpecification( } void MicrosoftCXXNameMangler::mangleType(const UnresolvedUsingType *T) { - assert(false && "Don't know how to mangle UnresolvedUsingTypes yet!"); + llvm_unreachable("Don't know how to mangle UnresolvedUsingTypes yet!"); } // <type> ::= <union-type> | <struct-type> | <class-type> | <enum-type> @@ -962,10 +962,10 @@ void MicrosoftCXXNameMangler::mangleExtraDimensions(QualType ElementTy) { Dimensions.push_back(CAT->getSize()); ElementTy = CAT->getElementType(); } else if (ElementTy->isVariableArrayType()) { - assert(false && "Don't know how to mangle VLAs!"); + llvm_unreachable("Don't know how to mangle VLAs!"); } else if (ElementTy->isDependentSizedArrayType()) { // The dependent expression has to be folded into a constant (TODO). - assert(false && "Don't know how to mangle dependent-sized arrays!"); + llvm_unreachable("Don't know how to mangle dependent-sized arrays!"); } else if (ElementTy->isIncompleteArrayType()) continue; else break; } @@ -999,12 +999,12 @@ void MicrosoftCXXNameMangler::mangleType(const MemberPointerType *T) { } void MicrosoftCXXNameMangler::mangleType(const TemplateTypeParmType *T) { - assert(false && "Don't know how to mangle TemplateTypeParmTypes yet!"); + llvm_unreachable("Don't know how to mangle TemplateTypeParmTypes yet!"); } void MicrosoftCXXNameMangler::mangleType( const SubstTemplateTypeParmPackType *T) { - assert(false && + llvm_unreachable( "Don't know how to mangle SubstTemplateTypeParmPackTypes yet!"); } @@ -1045,21 +1045,22 @@ void MicrosoftCXXNameMangler::mangleType(const LValueReferenceType *T) { } void MicrosoftCXXNameMangler::mangleType(const RValueReferenceType *T) { - assert(false && "Don't know how to mangle RValueReferenceTypes yet!"); + llvm_unreachable("Don't know how to mangle RValueReferenceTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const ComplexType *T) { - assert(false && "Don't know how to mangle ComplexTypes yet!"); + llvm_unreachable("Don't know how to mangle ComplexTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const VectorType *T) { - assert(false && "Don't know how to mangle VectorTypes yet!"); + llvm_unreachable("Don't know how to mangle VectorTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const ExtVectorType *T) { - assert(false && "Don't know how to mangle ExtVectorTypes yet!"); + llvm_unreachable("Don't know how to mangle ExtVectorTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const DependentSizedExtVectorType *T) { - assert(false && "Don't know how to mangle DependentSizedExtVectorTypes yet!"); + llvm_unreachable( + "Don't know how to mangle DependentSizedExtVectorTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const ObjCInterfaceType *T) { @@ -1080,45 +1081,45 @@ void MicrosoftCXXNameMangler::mangleType(const BlockPointerType *T) { } void MicrosoftCXXNameMangler::mangleType(const InjectedClassNameType *T) { - assert(false && "Don't know how to mangle InjectedClassNameTypes yet!"); + llvm_unreachable("Don't know how to mangle InjectedClassNameTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const TemplateSpecializationType *T) { - assert(false && "Don't know how to mangle TemplateSpecializationTypes yet!"); + llvm_unreachable("Don't know how to mangle TemplateSpecializationTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const DependentNameType *T) { - assert(false && "Don't know how to mangle DependentNameTypes yet!"); + llvm_unreachable("Don't know how to mangle DependentNameTypes yet!"); } void MicrosoftCXXNameMangler::mangleType( const DependentTemplateSpecializationType *T) { - assert(false && + llvm_unreachable( "Don't know how to mangle DependentTemplateSpecializationTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const PackExpansionType *T) { - assert(false && "Don't know how to mangle PackExpansionTypes yet!"); + llvm_unreachable("Don't know how to mangle PackExpansionTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const TypeOfType *T) { - assert(false && "Don't know how to mangle TypeOfTypes yet!"); + llvm_unreachable("Don't know how to mangle TypeOfTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const TypeOfExprType *T) { - assert(false && "Don't know how to mangle TypeOfExprTypes yet!"); + llvm_unreachable("Don't know how to mangle TypeOfExprTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const DecltypeType *T) { - assert(false && "Don't know how to mangle DecltypeTypes yet!"); + llvm_unreachable("Don't know how to mangle DecltypeTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const UnaryTransformType *T) { - assert(false && "Don't know how to mangle UnaryTransformationTypes yet!"); + llvm_unreachable("Don't know how to mangle UnaryTransformationTypes yet!"); } void MicrosoftCXXNameMangler::mangleType(const AutoType *T) { - assert(false && "Don't know how to mangle AutoTypes yet!"); + llvm_unreachable("Don't know how to mangle AutoTypes yet!"); } void MicrosoftMangleContext::mangleName(const NamedDecl *D, @@ -1138,17 +1139,17 @@ void MicrosoftMangleContext::mangleName(const NamedDecl *D, void MicrosoftMangleContext::mangleThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk, raw_ostream &) { - assert(false && "Can't yet mangle thunks!"); + llvm_unreachable("Can't yet mangle thunks!"); } void MicrosoftMangleContext::mangleCXXDtorThunk(const CXXDestructorDecl *DD, CXXDtorType Type, const ThisAdjustment &, raw_ostream &) { - assert(false && "Can't yet mangle destructor thunks!"); + llvm_unreachable("Can't yet mangle destructor thunks!"); } void MicrosoftMangleContext::mangleCXXVTable(const CXXRecordDecl *RD, raw_ostream &) { - assert(false && "Can't yet mangle virtual tables!"); + llvm_unreachable("Can't yet mangle virtual tables!"); } void MicrosoftMangleContext::mangleCXXVTT(const CXXRecordDecl *RD, raw_ostream &) { @@ -1162,25 +1163,25 @@ void MicrosoftMangleContext::mangleCXXCtorVTable(const CXXRecordDecl *RD, } void MicrosoftMangleContext::mangleCXXRTTI(QualType T, raw_ostream &) { - assert(false && "Can't yet mangle RTTI!"); + llvm_unreachable("Can't yet mangle RTTI!"); } void MicrosoftMangleContext::mangleCXXRTTIName(QualType T, raw_ostream &) { - assert(false && "Can't yet mangle RTTI names!"); + llvm_unreachable("Can't yet mangle RTTI names!"); } void MicrosoftMangleContext::mangleCXXCtor(const CXXConstructorDecl *D, CXXCtorType Type, raw_ostream &) { - assert(false && "Can't yet mangle constructors!"); + llvm_unreachable("Can't yet mangle constructors!"); } void MicrosoftMangleContext::mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type, raw_ostream &) { - assert(false && "Can't yet mangle destructors!"); + llvm_unreachable("Can't yet mangle destructors!"); } void MicrosoftMangleContext::mangleReferenceTemporary(const clang::VarDecl *, raw_ostream &) { - assert(false && "Can't yet mangle reference temporaries!"); + llvm_unreachable("Can't yet mangle reference temporaries!"); } MangleContext *clang::createMicrosoftMangleContext(ASTContext &Context, |