diff --git a/flang/test/Driver/help.f90 b/flang/test/Driver/help.f90 new file mode 100644 --- /dev/null +++ b/flang/test/Driver/help.f90 @@ -0,0 +1,9 @@ +! RUN: %f18 -help 2>&1 | FileCheck %s +! RUN: %f18 --help 2>&1 | FileCheck %s +! RUN: %f18 -? 2>&1 | FileCheck %s + +! CHECK: f18: LLVM Fortran compiler + +! CHECK: -help print this again +! CHECK: Unrecognised options are passed through to the external compiler +! CHECK: set by F18_FC (see defaults). diff --git a/flang/tools/f18/f18.cpp b/flang/tools/f18/f18.cpp --- a/flang/tools/f18/f18.cpp +++ b/flang/tools/f18/f18.cpp @@ -605,6 +605,19 @@ driver.byteswapio = true; // TODO: Pass to lowering, generate call } else if (arg == "-help" || arg == "--help" || arg == "-?") { llvm::errs() + << "f18: LLVM Fortran compiler\n" + << "\n" + << "Usage: f18 [options] \n" + << "\n" + << "Defaults:\n" + << " When invoked with input files, and no options to tell\n" + << " it otherwise, f18 will unparse its input and pass that on to an\n" + << " external compiler to continue the compilation.\n" + << " The external compiler is specified by the F18_FC environment\n" + << " variable. The default is 'gfortran'.\n" + << " If invoked with no input files, f18 reads source code from\n" + << " stdin and runs with -fdebug-measure-parse-tree -funparse.\n" + << "\n" << "f18 options:\n" << " -Mfixed | -Mfree | -ffixed-form | -ffree-form force the " "source form\n" @@ -638,7 +651,8 @@ << " -fget-symbols-sources\n" << " -v -c -o -I -D -U have their usual meanings\n" << " -help print this again\n" - << "Other options are passed through to the compiler.\n"; + << "Unrecognised options are passed through to the external compiler\n" + << "set by F18_FC (see defaults).\n"; return exitStatus; } else if (arg == "-V") { llvm::errs() << "\nf18 compiler (under development)\n";