1
2!--------------------------
3! FLANG DRIVER (flang)
4!--------------------------
5! RUN: %flang -help 2>&1 | FileCheck %s --check-prefix=HELP
6! RUN: not %flang -helps 2>&1 | FileCheck %s --check-prefix=ERROR
7
8!----------------------------------------
9! FLANG FRONTEND DRIVER (flang -fc1)
10!----------------------------------------
11! RUN: %flang_fc1 -help 2>&1 | FileCheck %s --check-prefix=HELP-FC1
12! RUN: not %flang_fc1 -helps 2>&1 | FileCheck %s --check-prefix=ERROR
13
14! HELP:USAGE: flang
15! HELP-EMPTY:
16! HELP-NEXT:OPTIONS:
17! HELP-NEXT: -###                   Print (but do not run) the commands to run for this compilation
18! HELP-NEXT: -cpp                   Enable predefined and command line preprocessor macros
19! HELP-NEXT: -c                     Only run preprocess, compile, and assemble steps
20! HELP-NEXT: -D <macro>=<value>     Define <macro> to <value> (or 1 if <value> omitted)
21! HELP-NEXT: -emit-llvm             Use the LLVM representation for assembler and object files
22! HELP-NEXT: -E                     Only run the preprocessor
23! HELP-NEXT: -falternative-parameter-statement
24! HELP-NEXT: Enable the old style PARAMETER statement
25! HELP-NEXT: -fbackslash            Specify that backslash in string introduces an escape character
26! HELP-NEXT: -fcolor-diagnostics    Enable colors in diagnostics
27! HELP-NEXT: -fdefault-double-8     Set the default double precision kind to an 8 byte wide type
28! HELP-NEXT: -fdefault-integer-8    Set the default integer kind to an 8 byte wide type
29! HELP-NEXT: -fdefault-real-8       Set the default real kind to an 8 byte wide type
30! HELP-NEXT: -ffixed-form           Process source files in fixed form
31! HELP-NEXT: -ffixed-line-length=<value>
32! HELP-NEXT: Use <value> as character line width in fixed mode
33! HELP-NEXT: -ffree-form            Process source files in free form
34! HELP-NEXT: -fimplicit-none        No implicit typing allowed unless overridden by IMPLICIT statements
35! HELP-NEXT: -finput-charset=<value> Specify the default character set for source files
36! HELP-NEXT: -fintrinsic-modules-path <dir>
37! HELP-NEXT:                        Specify where to find the compiled intrinsic modules
38! HELP-NEXT: -flarge-sizes          Use INTEGER(KIND=8) for the result type in size-related intrinsics
39! HELP-NEXT: -flogical-abbreviations Enable logical abbreviations
40! HELP-NEXT: -fno-automatic         Implies the SAVE attribute for non-automatic local objects in subprograms unless RECURSIVE
41! HELP-NEXT: -fno-color-diagnostics  Disable colors in diagnostics
42! HELP-NEXT: -fno-integrated-as      Disable the integrated assembler
43! HELP-NEXT: -fopenacc              Enable OpenACC
44! HELP-NEXT: -fopenmp               Parse OpenMP pragmas and generate parallel code.
45! HELP-NEXT: -fxor-operator         Enable .XOR. as a synonym of .NEQV.
46! HELP-NEXT: -help                  Display available options
47! HELP-NEXT: -I <dir>               Add directory to the end of the list of include search paths
48! HELP-NEXT: -mllvm <value>         Additional arguments to forward to LLVM's option processing
49! HELP-NEXT: -mmlir <value>         Additional arguments to forward to MLIR's option processing
50! HELP-NEXT: -module-dir <dir>      Put MODULE files in <dir>
51! HELP-NEXT: -nocpp                 Disable predefined and command line preprocessor macros
52! HELP-NEXT: -o <file>              Write output to <file>
53! HELP-NEXT: -pedantic              Warn on language extensions
54! HELP-NEXT: -print-effective-triple Print the effective target triple
55! HELP-NEXT: -print-target-triple    Print the normalized target triple
56! HELP-NEXT: -P                     Disable linemarker output in -E mode
57! HELP-NEXT: -save-temps=<value>    Save intermediate compilation results.
58! HELP-NEXT: -save-temps            Save intermediate compilation results
59! HELP-NEXT: -std=<value>           Language standard to compile for
60! HELP-NEXT: -S                     Only run preprocess and compilation steps
61! HELP-NEXT: --target=<value>       Generate code for the given target
62! HELP-NEXT: -U <macro>             Undefine macro <macro>
63! HELP-NEXT: --version              Print version information
64! HELP-NEXT: -W<warning>            Enable the specified warning
65! HELP-NEXT: -Xflang <arg>          Pass <arg> to the flang compiler
66
67! HELP-FC1:USAGE: flang
68! HELP-FC1-EMPTY:
69! HELP-FC1-NEXT:OPTIONS:
70! HELP-FC1-NEXT: -cpp                   Enable predefined and command line preprocessor macros
71! HELP-FC1-NEXT: -D <macro>=<value>     Define <macro> to <value> (or 1 if <value> omitted)
72! HELP-FC1-NEXT: -emit-llvm-bc          Build ASTs then convert to LLVM, emit .bc file
73! HELP-FC1-NEXT: -emit-llvm Use the LLVM representation for assembler and object files
74! HELP-FC1-NEXT: -emit-mlir Build the parse tree, then lower it to MLIR
75! HELP-FC1-NEXT: -emit-obj Emit native object files
76! HELP-FC1-NEXT: -E                     Only run the preprocessor
77! HELP-FC1-NEXT: -falternative-parameter-statement
78! HELP-FC1-NEXT: Enable the old style PARAMETER statement
79! HELP-FC1-NEXT: -fbackslash            Specify that backslash in string introduces an escape character
80! HELP-FC1-NEXT: -fcolor-diagnostics     Enable colors in diagnostics
81! HELP-FC1-NEXT: -fdebug-dump-all       Dump symbols and the parse tree after the semantic checks
82! HELP-FC1-NEXT: -fdebug-dump-parse-tree-no-sema
83! HELP-FC1-NEXT:                        Dump the parse tree (skips the semantic checks)
84! HELP-FC1-NEXT: -fdebug-dump-parse-tree Dump the parse tree
85! HELP-FC1-NEXT: -fdebug-dump-parsing-log
86! HELP-FC1-NEXT:                   Run instrumented parse and dump the parsing log
87! HELP-FC1-NEXT: -fdebug-dump-pft        Dump the pre-fir parse tree
88! HELP-FC1-NEXT: -fdebug-dump-provenance Dump provenance
89! HELP-FC1-NEXT: -fdebug-dump-symbols    Dump symbols after the semantic analysis
90! HELP-FC1-NEXT: -fdebug-measure-parse-tree
91! HELP-FC1-NEXT:                         Measure the parse tree
92! HELP-FC1-NEXT: -fdebug-module-writer   Enable debug messages while writing module files
93! HELP-FC1-NEXT: -fdebug-pass-manager    Prints debug information for the new pass manage
94! HELP-FC1-NEXT: -fdebug-pre-fir-tree    Dump the pre-FIR tree
95! HELP-FC1-NEXT: -fdebug-unparse-no-sema Unparse and stop (skips the semantic checks)
96! HELP-FC1-NEXT: -fdebug-unparse-with-symbols
97! HELP-FC1-NEXT:                        Unparse and stop.
98! HELP-FC1-NEXT: -fdebug-unparse        Unparse and stop.
99! HELP-FC1-NEXT: -fdefault-double-8  Set the default double precision kind to an 8 byte wide type
100! HELP-FC1-NEXT: -fdefault-integer-8 Set the default integer kind to an 8 byte wide type
101! HELP-FC1-NEXT: -fdefault-real-8    Set the default real kind to an 8 byte wide type
102! HELP-FC1-NEXT: -ffixed-form           Process source files in fixed form
103! HELP-FC1-NEXT: -ffixed-line-length=<value>
104! HELP-FC1-NEXT: Use <value> as character line width in fixed mode
105! HELP-FC1-NEXT: -ffree-form            Process source files in free form
106! HELP-FC1-NEXT: -fget-definition <value> <value> <value>
107! HELP-FC1-NEXT:                        Get the symbol definition from <line> <start-column> <end-column>
108! HELP-FC1-NEXT: -fget-symbols-sources   Dump symbols and their source code locations
109! HELP-FC1-NEXT: -fimplicit-none        No implicit typing allowed unless overridden by IMPLICIT statements
110! HELP-FC1-NEXT: -finput-charset=<value> Specify the default character set for source files
111! HELP-FC1-NEXT: -fintrinsic-modules-path <dir>
112! HELP-FC1-NEXT:                        Specify where to find the compiled intrinsic modules
113! HELP-FC1-NEXT: -flarge-sizes          Use INTEGER(KIND=8) for the result type in size-related intrinsics
114! HELP-FC1-NEXT: -flogical-abbreviations Enable logical abbreviations
115! HELP-FC1-NEXT: -fno-analyzed-objects-for-unparse
116! HELP-FC1-NEXT:                        Do not use the analyzed objects when unparsing
117! HELP-FC1-NEXT: -fno-automatic         Implies the SAVE attribute for non-automatic local objects in subprograms unless RECURSIVE
118! HELP-FC1-NEXT: -fno-debug-pass-manager Disables debug printing for the new pass manager
119! HELP-FC1-NEXT: -fno-reformat          Dump the cooked character stream in -E mode
120! HELP-FC1-NEXT: -fopenacc              Enable OpenACC
121! HELP-FC1-NEXT: -fopenmp               Parse OpenMP pragmas and generate parallel code.
122! HELP-FC1-NEXT: -fxor-operator         Enable .XOR. as a synonym of .NEQV.
123! HELP-FC1-NEXT: -help                  Display available options
124! HELP-FC1-NEXT: -init-only             Only execute frontend initialization
125! HELP-FC1-NEXT: -I <dir>               Add directory to the end of the list of include search paths
126! HELP-FC1-NEXT: -load <dsopath>        Load the named plugin (dynamic shared object)
127! HELP-FC1-NEXT: -mllvm <value>         Additional arguments to forward to LLVM's option processing
128! HELP-FC1-NEXT: -mmlir <value>         Additional arguments to forward to MLIR's option processing
129! HELP-FC1-NEXT: -module-dir <dir>      Put MODULE files in <dir>
130! HELP-FC1-NEXT: -module-suffix <suffix> Use <suffix> as the suffix for module files (the default value is `.mod`)
131! HELP-FC1-NEXT: -nocpp                 Disable predefined and command line preprocessor macros
132! HELP-FC1-NEXT: -o <file>              Write output to <file>
133! HELP-FC1-NEXT: -pedantic              Warn on language extensions
134! HELP-FC1-NEXT: -plugin <name>         Use the named plugin action instead of the default action (use "help" to list available options)
135! HELP-FC1-NEXT: -P                     Disable linemarker output in -E mode
136! HELP-FC1-NEXT: -std=<value>           Language standard to compile for
137! HELP-FC1-NEXT: -S                     Only run preprocess and compilation steps
138! HELP-FC1-NEXT: -test-io               Run the InputOuputTest action. Use for development and testing only.
139! HELP-FC1-NEXT: -triple <value>        Specify target triple (e.g. i686-apple-darwin9)
140! HELP-FC1-NEXT: -U <macro>             Undefine macro <macro>
141! HELP-FC1-NEXT: -version               Print the compiler version
142! HELP-FC1-NEXT: -W<warning>            Enable the specified warning
143
144! ERROR: error: unknown argument '-helps'; did you mean '-help'
145