forked from OSchip/llvm-project
[flang][driver] Add checks for missing option arguments
With this patch, the following invocation of the frontend driver will return an error: ``` flang-new -fc1 input-file.f90 -o ``` Similar logic applies to other options that require arguments. Similar checks are already available in the compiler driver, flang-new (that's implemented in clangDriver). Differential Revision: https://reviews.llvm.org/D103554
This commit is contained in:
parent
f03f4944cf
commit
2b4c9bc4d4
|
@ -501,6 +501,13 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &res,
|
|||
llvm::opt::InputArgList args = opts.ParseArgs(
|
||||
commandLineArgs, missingArgIndex, missingArgCount, includedFlagsBitmask);
|
||||
|
||||
// Check for missing argument error.
|
||||
if (missingArgCount) {
|
||||
diags.Report(clang::diag::err_drv_missing_argument)
|
||||
<< args.getArgString(missingArgIndex) << missingArgCount;
|
||||
success = false;
|
||||
}
|
||||
|
||||
// Issue errors on unknown arguments
|
||||
for (const auto *a : args.filtered(clang::driver::options::OPT_UNKNOWN)) {
|
||||
auto argString = a->getAsString(args);
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
! Make sure that frontend driver options that require arguments are
|
||||
! correctly rejected when the argument value is missing.
|
||||
|
||||
! REQUIRES: new-flang-driver
|
||||
|
||||
!-----------
|
||||
! RUN lines
|
||||
!-----------
|
||||
! RUN: not %flang_fc1 -E %s -o 2>&1 | FileCheck %s
|
||||
! RUN: not %flang_fc1 -E %s -U 2>&1 | FileCheck %s
|
||||
! RUN: not %flang_fc1 -E %s -D 2>&1 | FileCheck %s
|
||||
! RUN: not %flang_fc1 -E %s -I 2>&1 | FileCheck %s
|
||||
! RUN: not %flang_fc1 -E %s -J 2>&1 | FileCheck %s
|
||||
! RUN: not %flang_fc1 -E %s -module-dir 2>&1 | FileCheck %s
|
||||
! RUN: not %flang_fc1 -E %s -module-suffix 2>&1 | FileCheck %s
|
||||
! RUN: not %flang_fc1 -E %s -fintrinsic-modules-path 2>&1 | FileCheck %s
|
||||
|
||||
!-----------------------
|
||||
! EXPECTED OUTPUT
|
||||
!-----------------------
|
||||
! CHECK: error: argument to '-{{.*}}' is missing (expected 1 value)
|
Loading…
Reference in New Issue