Skip to content

Commit ad3ea02

Browse files
authored
Merge pull request swiftlang#31627 from compnerd/unreachable-coverage
sprinkle `llvm_unreachable` for covered switches (NFC)
2 parents 4c4b452 + 09975d1 commit ad3ea02

27 files changed

+40
-0
lines changed

include/swift/AST/Decl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7187,6 +7187,7 @@ class OperatorDecl : public Decl {
71877187
case DeclKind::PostfixOperator:
71887188
return OperatorFixity::Postfix;
71897189
}
7190+
llvm_unreachable("inavlid decl kind");
71907191
}
71917192

71927193
SourceLoc getOperatorLoc() const { return OperatorLoc; }

include/swift/AST/EvaluatorDependencies.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ inline DependencyScope getScopeForAccessLevel(AccessLevel l) {
9494
case AccessLevel::Open:
9595
return DependencyScope::Cascading;
9696
}
97+
llvm_unreachable("invalid access level kind");
9798
}
9899

99100
// A \c DependencySource is currently defined to be a parent source file and
@@ -258,6 +259,7 @@ struct DependencyCollector {
258259
case Mode::ExperimentalPrivateDependencies:
259260
return false;
260261
}
262+
llvm_unreachable("invalid mode");
261263
}
262264
};
263265
} // end namespace evaluator

include/swift/AST/Stmt.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,6 +1015,7 @@ class CaseStmt final
10151015
return SourceRange(getLoc(), getLoc());
10161016
}
10171017
}
1018+
llvm_unreachable("invalid parent kind");
10181019
}
10191020

10201021
bool isDefault() { return getCaseLabelItems()[0].isDefault(); }

lib/AST/ASTDemangler.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,7 @@ getParameterDifferentiability(ImplParameterDifferentiability diffKind) {
452452
case ImplParameterDifferentiability::NotDifferentiable:
453453
return SILParameterDifferentiability::NotDifferentiable;
454454
}
455+
llvm_unreachable("unknown differentiability kind");
455456
}
456457

457458
static ResultConvention getResultConvention(ImplResultConvention conv) {

lib/AST/AutoDiff.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ NormalDifferentiableFunctionTypeComponent::getAsDerivativeFunctionKind() const {
6262
case VJP:
6363
return {AutoDiffDerivativeFunctionKind::VJP};
6464
}
65+
llvm_unreachable("invalid derivative kind");
6566
}
6667

6768
LinearDifferentiableFunctionTypeComponent::
@@ -93,6 +94,7 @@ DifferentiabilityWitnessFunctionKind::getAsDerivativeFunctionKind() const {
9394
case Transpose:
9495
return None;
9596
}
97+
llvm_unreachable("invalid derivative kind");
9698
}
9799

98100
void SILAutoDiffIndices::print(llvm::raw_ostream &s) const {
@@ -375,6 +377,7 @@ Type TangentSpace::getType() const {
375377
case Kind::Tuple:
376378
return value.tupleType;
377379
}
380+
llvm_unreachable("invalid tangent space kind");
378381
}
379382

380383
CanType TangentSpace::getCanonicalType() const {

lib/AST/ClangTypeConverter.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ const clang::Type *ClangTypeConverter::getFunctionType(
155155
case AnyFunctionType::Representation::Thin:
156156
llvm_unreachable("Expected a C-compatible representation.");
157157
}
158+
llvm_unreachable("invalid representation");
158159
}
159160

160161
clang::QualType ClangTypeConverter::convertMemberType(NominalTypeDecl *DC,

lib/AST/Decl.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,7 @@ static_assert(sizeof(checkSourceLocType(&ID##Decl::getLoc)) == 2, \
645645
case FileUnitKind::DWARFModule:
646646
return SourceLoc();
647647
}
648+
llvm_unreachable("invalid file kind");
648649
}
649650

650651
Expr *AbstractFunctionDecl::getSingleExpressionBody() const {
@@ -6297,6 +6298,7 @@ bool ParamDecl::hasCallerSideDefaultExpr() const {
62976298
case DefaultArgumentKind::EmptyDictionary:
62986299
return true;
62996300
}
6301+
llvm_unreachable("invalid default argument kind");
63006302
}
63016303

63026304
Expr *ParamDecl::getTypeCheckedDefaultExpr() const {

lib/AST/ModuleDependencies.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ ModuleDependenciesCache::getDependenciesMap(ModuleDependenciesKind kind) {
106106
case ModuleDependenciesKind::Clang:
107107
return ClangModuleDependencies;
108108
}
109+
llvm_unreachable("invalid dependency kind");
109110
}
110111

111112
const llvm::StringMap<ModuleDependencies> &
@@ -117,6 +118,7 @@ ModuleDependenciesCache::getDependenciesMap(ModuleDependenciesKind kind) const {
117118
case ModuleDependenciesKind::Clang:
118119
return ClangModuleDependencies;
119120
}
121+
llvm_unreachable("invalid dependency kind");
120122
}
121123

122124
bool ModuleDependenciesCache::hasDependencies(

lib/AST/Type.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2969,6 +2969,7 @@ static bool canSubstituteTypeInto(Type ty, const DeclContext *dc,
29692969

29702970
return typeDecl->getEffectiveAccess() > AccessLevel::Internal;
29712971
}
2972+
llvm_unreachable("invalid subsitution kind");
29722973
}
29732974

29742975
Type ReplaceOpaqueTypesWithUnderlyingTypes::

lib/Driver/Compilation.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,6 +1079,7 @@ namespace driver {
10791079
forRanges, "file is up-to-date and output exists");
10801080
return false;
10811081
}
1082+
llvm_unreachable("invalid job condition");
10821083
}
10831084

10841085
bool isCascadingJobAccordingToCondition(
@@ -1092,6 +1093,7 @@ namespace driver {
10921093
case Job::Condition::CheckDependencies:
10931094
return false;
10941095
}
1096+
llvm_unreachable("invalid job condition");
10951097
}
10961098

10971099
void forEachOutOfDateExternalDependency(

0 commit comments

Comments
 (0)