Skip to content

Commit 9f75a26

Browse files
committed
[embedded] Error if embedded Swift enables library evolution.
1 parent 4878991 commit 9f75a26

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

include/swift/AST/DiagnosticsFrontend.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,5 +554,8 @@ ERROR(layout_string_instantiation_without_layout_strings,none,
554554
"-enable-layout-string-value-witnesses-instantiation can not be enabled "
555555
"without -enable-layout-string-value-witnesses.", ())
556556

557+
ERROR(evolution_with_embedded,none,
558+
"Library evolution cannot be enabled with embedded Swift.", ())
559+
557560
#define UNDEFINE_DIAGNOSTIC_MACROS
558561
#include "DefineDiagnosticMacros.h"

lib/Frontend/CompilerInvocation.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,6 +1316,11 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
13161316
}
13171317
Opts.BypassResilienceChecks |= Args.hasArg(OPT_bypass_resilience);
13181318

1319+
if (FrontendOpts.EnableLibraryEvolution && Opts.hasFeature(Feature::Embedded)) {
1320+
Diags.diagnose(SourceLoc(), diag::evolution_with_embedded);
1321+
HadError = true;
1322+
}
1323+
13191324
return HadError || UnsupportedOS || UnsupportedArch;
13201325
}
13211326

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// RUN: not %target-swift-frontend -emit-ir %s -enable-library-evolution -enable-experimental-feature Embedded 2>&1 | %FileCheck %s
2+
// RUN: not %target-swift-frontend -emit-ir %s -enable-resilience -enable-experimental-feature Embedded 2>&1 | %FileCheck %s
3+
4+
// CHECK: error: Library evolution cannot be enabled with embedded Swift.

0 commit comments

Comments
 (0)