diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index 62759d0e6e5fb..c7d77d8c428e1 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -1575,7 +1575,7 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args, HadError = true; } - if (!FrontendOpts.InputsAndOutputs.isWholeModule()) { + if (!FrontendOpts.InputsAndOutputs.isWholeModule() && FrontendOptions::doesActionGenerateSIL(FrontendOpts.RequestedAction)) { Diags.diagnose(SourceLoc(), diag::wmo_with_embedded); HadError = true; } diff --git a/test/embedded/wmo-with-embedded-diag.swift b/test/embedded/wmo-with-embedded-diag.swift index 383ce0c73e057..c76a1d341595c 100644 --- a/test/embedded/wmo-with-embedded-diag.swift +++ b/test/embedded/wmo-with-embedded-diag.swift @@ -1,8 +1,8 @@ -// RUN: %target-swift-frontend -typecheck -parse-stdlib %s -enable-experimental-feature Embedded -// RUN: not %target-swift-frontend -typecheck -parse-stdlib %s -primary-file %s -enable-experimental-feature Embedded 2>&1 | %FileCheck %s +// RUN: %target-swift-frontend -c %s -o %t -module-name wmowithembedded -parse-stdlib -enable-experimental-feature Embedded +// RUN: not %target-swift-frontend -c %s -o %t -module-name wmowithembedded -parse-stdlib -primary-file %s -enable-experimental-feature Embedded 2>&1 | %FileCheck %s -// RUN: %target-swiftc_driver -typecheck -parse-stdlib %s -Xfrontend -disable-objc-interop -enable-experimental-feature Embedded -wmo -// RUN: not %target-swiftc_driver -typecheck -parse-stdlib %s -Xfrontend -disable-objc-interop -enable-experimental-feature Embedded 2>&1 | %FileCheck %s +// RUN: %target-swiftc_driver -c %s -o %t -module-name wmowithembedded -parse-stdlib -Xfrontend -disable-objc-interop -enable-experimental-feature Embedded -wmo +// RUN: not %target-swiftc_driver -c %s -o %t -module-name wmowithembedded -parse-stdlib -Xfrontend -disable-objc-interop -enable-experimental-feature Embedded 2>&1 | %FileCheck %s // REQUIRES: swift_in_compiler