Skip to content

Commit bd5490a

Browse files
committed
[region-isolation] Ensure that some NDEBUG code is properly guarded.
(cherry picked from commit e9e5c4e)
1 parent 051c7d2 commit bd5490a

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

include/swift/SILOptimizer/Analysis/RegionAnalysis.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ namespace regionanalysisimpl {
3434
extern bool AbortOnUnknownPatternMatchError;
3535
#endif
3636

37+
static inline bool shouldAbortOnUnknownPatternMatchError() {
38+
#ifndef NDEBUG
39+
return AbortOnUnknownPatternMatchError;
40+
#else
41+
return false;
42+
#endif
43+
}
44+
3745
using TransferringOperandSetFactory = Partition::TransferringOperandSetFactory;
3846
using Element = PartitionPrimitives::Element;
3947
using Region = PartitionPrimitives::Region;

lib/SILOptimizer/Analysis/RegionAnalysis.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1205,7 +1205,7 @@ struct PartitionOpBuilder {
12051205
}
12061206

12071207
void addUnknownPatternError(SILValue value) {
1208-
if (AbortOnUnknownPatternMatchError) {
1208+
if (shouldAbortOnUnknownPatternMatchError()) {
12091209
llvm::report_fatal_error(
12101210
"RegionIsolation: Aborting on unknown pattern match error");
12111211
}

lib/SILOptimizer/Mandatory/TransferNonSendable.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ class UseAfterTransferDiagnosticEmitter {
677677
}
678678

679679
void emitUnknownPatternError() {
680-
if (AbortOnUnknownPatternMatchError) {
680+
if (shouldAbortOnUnknownPatternMatchError()) {
681681
llvm::report_fatal_error(
682682
"RegionIsolation: Aborting on unknown pattern match error");
683683
}
@@ -1094,7 +1094,7 @@ void TransferNonSendableImpl::emitUseAfterTransferDiagnostics() {
10941094
// tells the user to file a bug. This importantly ensures that we can
10951095
// guarantee that we always find the require if we successfully compile.
10961096
if (!didEmitRequireNote) {
1097-
if (AbortOnUnknownPatternMatchError) {
1097+
if (shouldAbortOnUnknownPatternMatchError()) {
10981098
llvm::report_fatal_error(
10991099
"RegionIsolation: Aborting on unknown pattern match error");
11001100
}
@@ -1157,7 +1157,7 @@ class TransferNonTransferrableDiagnosticEmitter {
11571157
}
11581158

11591159
void emitUnknownPatternError() {
1160-
if (AbortOnUnknownPatternMatchError) {
1160+
if (shouldAbortOnUnknownPatternMatchError()) {
11611161
llvm::report_fatal_error(
11621162
"RegionIsolation: Aborting on unknown pattern match error");
11631163
}
@@ -1647,7 +1647,7 @@ struct DiagnosticEvaluator final
16471647
}
16481648

16491649
void handleUnknownCodePattern(const PartitionOp &op) const {
1650-
if (AbortOnUnknownPatternMatchError) {
1650+
if (shouldAbortOnUnknownPatternMatchError()) {
16511651
llvm::report_fatal_error(
16521652
"RegionIsolation: Aborting on unknown pattern match error");
16531653
}

0 commit comments

Comments
 (0)