[frontend] Added temporary support for setting MainInputFilename, Triple, and OutputFilename in IRGenOptions.

MainInputFilename and OutputFilename are pulled from the FrontendOptions, while Triple is parsed directly from the ArgList.
Eventually, MainInputFilename and OutputFilename should likely be removed from IRGenOptions, in favor of the values in FrontendOptions, while Triple will be in a separate TargetOptions class.

Swift SVN r11455
This commit is contained in:
Connor Wakamo
2013-12-18 23:42:53 +00:00
parent 0f6c51dd5b
commit 53a0acad66
2 changed files with 14 additions and 8 deletions

View File

@@ -273,7 +273,8 @@ static bool ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args,
}
static bool ParseIRGenArgs(IRGenOptions &Opts, ArgList &Args,
DiagnosticEngine &Diags) {
DiagnosticEngine &Diags,
const FrontendOptions &FrontendOpts) {
using namespace options;
if (Args.hasArg(OPT_g)) {
@@ -326,6 +327,15 @@ static bool ParseIRGenArgs(IRGenOptions &Opts, ArgList &Args,
Opts.EnableDynamicValueTypeLayout = true;
}
// TODO: investigate whether these should be removed, in favor of definitions
// in other classes.
Opts.MainInputFilename = FrontendOpts.InputFilenames[0];
Opts.OutputFilename = FrontendOpts.OutputFilename;
if (const Arg *A = Args.getLastArg(OPT_target)) {
Opts.Triple = A->getValue();
}
return false;
}
@@ -391,7 +401,7 @@ bool CompilerInvocation::parseArgs(ArrayRef<const char *> Args,
return true;
}
if (ParseIRGenArgs(IRGenOpts, *ParsedArgs, Diags)) {
if (ParseIRGenArgs(IRGenOpts, *ParsedArgs, Diags, FrontendOpts)) {
return true;
}