mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge pull request #40189 from gottesmm/pr-aeffd0309402b8c9a744770c71ce40ca6f0459ff
[move-operator] Specify if LexicalLifetimes is enabled using an enum instead of a bool.
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "swift/AST/SILOptions.h"
|
||||
#include "swift/Frontend/Frontend.h"
|
||||
|
||||
#include "ArgsToFrontendOptionsConverter.h"
|
||||
@@ -1430,12 +1431,22 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
|
||||
// -Ounchecked might also set removal of runtime asserts (cond_fail).
|
||||
Opts.RemoveRuntimeAsserts |= Args.hasArg(OPT_RemoveRuntimeAsserts);
|
||||
|
||||
Opts.EnableExperimentalLexicalLifetimes |=
|
||||
Args.hasArg(OPT_enable_experimental_lexical_lifetimes);
|
||||
// If experimental move only is enabled, always enable lexical lifetime as
|
||||
// well. Move only depends on lexical lifetimes.
|
||||
Opts.EnableExperimentalLexicalLifetimes |=
|
||||
bool enableExperimentalLexicalLifetimes =
|
||||
Args.hasArg(OPT_enable_experimental_lexical_lifetimes) ||
|
||||
Args.hasArg(OPT_enable_experimental_move_only);
|
||||
// Error if both experimental lexical lifetimes and disable lexical lifetimes
|
||||
// are both set.
|
||||
if (enableExperimentalLexicalLifetimes &&
|
||||
Args.hasArg(OPT_disable_lexical_lifetimes)) {
|
||||
return true;
|
||||
} else {
|
||||
if (enableExperimentalLexicalLifetimes)
|
||||
Opts.LexicalLifetimes = LexicalLifetimesOption::ExperimentalLate;
|
||||
if (Args.hasArg(OPT_disable_lexical_lifetimes))
|
||||
Opts.LexicalLifetimes = LexicalLifetimesOption::Off;
|
||||
}
|
||||
|
||||
Opts.EnableCopyPropagation |= Args.hasArg(OPT_enable_copy_propagation);
|
||||
Opts.DisableCopyPropagation |= Args.hasArg(OPT_disable_copy_propagation);
|
||||
|
||||
Reference in New Issue
Block a user