mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Driver: Handle -help earlier in frontend_main
This makes ``swiftc -frontend -help`` print the help instead of erroring out with "no frontend action was selected". Swift SVN r23820
This commit is contained in:
@@ -491,6 +491,20 @@ int frontend_main(ArrayRef<const char *>Args,
|
||||
if (Invocation.parseArgs(Args, Instance.getDiags())) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (Invocation.getFrontendOptions().PrintHelp ||
|
||||
Invocation.getFrontendOptions().PrintHelpHidden) {
|
||||
unsigned IncludedFlagsBitmask = options::FrontendOption;
|
||||
unsigned ExcludedFlagsBitmask =
|
||||
Invocation.getFrontendOptions().PrintHelpHidden ? 0 :
|
||||
llvm::opt::HelpHidden;
|
||||
std::unique_ptr<llvm::opt::OptTable> Options(createSwiftOptTable());
|
||||
Options->PrintHelp(llvm::outs(), displayName(MainExecutablePath).c_str(),
|
||||
"Swift frontend", IncludedFlagsBitmask,
|
||||
ExcludedFlagsBitmask);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (Invocation.getFrontendOptions().RequestedAction ==
|
||||
FrontendOptions::NoneAction) {
|
||||
Instance.getDiags().diagnose(SourceLoc(),
|
||||
@@ -530,19 +544,6 @@ int frontend_main(ArrayRef<const char *>Args,
|
||||
if (Invocation.getDiagnosticOptions().UseColor)
|
||||
PDC.forceColors();
|
||||
|
||||
if (Invocation.getFrontendOptions().PrintHelp ||
|
||||
Invocation.getFrontendOptions().PrintHelpHidden) {
|
||||
unsigned IncludedFlagsBitmask = options::FrontendOption;
|
||||
unsigned ExcludedFlagsBitmask =
|
||||
Invocation.getFrontendOptions().PrintHelpHidden ? 0 :
|
||||
llvm::opt::HelpHidden;
|
||||
std::unique_ptr<llvm::opt::OptTable> Options(createSwiftOptTable());
|
||||
Options->PrintHelp(llvm::outs(), displayName(MainExecutablePath).c_str(),
|
||||
"Swift frontend", IncludedFlagsBitmask,
|
||||
ExcludedFlagsBitmask);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (Invocation.getFrontendOptions().PrintStats) {
|
||||
llvm::EnableStatistics();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user