OS Manuals

/usr/bin/cobc

compiler from COBOL to C

From gnucobol 3.2-r9 (os), captured 2026-11-05 by running cobc --help (exit 0). permalink

GnuCOBOL compiler for most COBOL dialects with lots of extensions

Usage: /usr/bin/cobc [options]... file...

Options:
  -h, --help            display this help and exit
  -V, --version         display compiler version information and exit
  -dumpversion          display compiler version and exit
  -i, --info            display compiler information (build/environment)
                        and exit
  -v, --verbose         verbose mode, display additional information;
                        multiple -v options increase the verbosity,
                        the maximum is 3 as follows:
                        (1) display compiler version and the commands
                        invoked by the compiler,
                        (2) pass verbose option to assembler/compiler
                        (3) pass verbose option to linker
  -q, --brief           reduced displays, commands invoked not shown
  -###                  like -v but commands not executed
  -x                    build an executable program
  -m                    build a dynamically loadable module (default)
  -j [<args>], --job[=<args>]	run program after build, passing <args>
  -std=<dialect>        warnings/features for a specific dialect
                        <dialect> can be one of:
                        default, cobol2014, cobol2002, cobol85, xopen,
                        ibm-strict, ibm, mvs-strict, mvs,
                        mf-strict, mf, bs2000-strict, bs2000,
                        acu-strict, acu, rm-strict, rm, gcos-strict,
                        gcos;
                        see configuration files in directory config
  -F, --free            use free source format (alias for -fformat=free)
  --fixed               use fixed source format (default; alias for
                        -fformat=fixed)
  -O, -O2, -O3, -Os     enable optimization
  -O0                   disable optimization
  -g                    enable C compiler debug and stack check
  -d, --debug           enable all run-time error checking,
                        equal to -fstack-check -fec=EC-ALL
  -fec=<exception-name>	enable code generation for <exception-name>,
                        see --list-exceptions for the possible values,
                        sets -fsource-location
  -fno-ec=<exception-name>	disable code generation for <exception-name>
  -o <file>             place the output into <file>
  -b                    combine all input files into a single
                        dynamically loadable module
  -E                    preprocess only; do not compile or link
  -C                    translation only; convert COBOL to C
  -S                    compile only; output assembly file
  -c                    compile and assemble, but do not link
  -T <file>             generate and place a wide program listing into <file>
  -t <file>             generate and place a program listing into <file>
  --tlines=<lines>      specify lines per page in listing, default = 55
  -P[=<dir or file>]    generate preprocessed program listing (.lst)
  -X, --Xref            specify cross reference in listing
  -I <directory>        add <directory> to copy/include search path
  -L <directory>        add <directory> to library search path
  -l <lib>              link the library <lib>
  -K <entry>            generate CALL to <entry> as static
  -D <define>           define <define> for COBOL compilation
  -A <options>          add <options> to the C compile phase
  -Q <options>          add <options> to the C link phase
  --coverage            instrument generated binaries for coverage
  --conf=<file>         user-defined dialect configuration; see -std
  --list-reserved       display reserved words
  --list-intrinsics     display intrinsic functions
  --list-mnemonics      display mnemonic names
  --list-exceptions     display exception names
  --list-system         display system routines
  --save-temps[=<dir>]  save intermediate files
                        * default: current directory
  -MT <target>          set/add target file used in dependency list
  -MF <file>            place dependency list into <file>
  -ext <extension>      add file extension for resolving COPY

Warning options:
  -Wall                 enable most warnings (all except as noted below)
  -Wextra               like -Wall but enable some extra warning flags
  -w                    disable all warnings
  -Wno-<warning>        disable warning enabled by default, -Wall or -Wextra
  -Wadditional          additional warnings only raised with -Wall
  -Wno-unfinished       do not warn if unfinished features are used
                        * ALWAYS active
  -Wno-pending          do not warn if pending features are used
                        * ALWAYS active
  -Wno-repository-checks	do not warn/check for program/function/external signature mismatch
                        * ALWAYS active
  -Wno-ignored-error    do not warn about errors in code parts which are unreachable and so normally ignored
                        * ALWAYS active
  -Wobsolete            warn if obsolete features are used
  -Warchaic             warn if archaic features are used
  -Wredefinition        warn about non-referenced ambiguous data items
  -Wtruncate            warn about field truncation from constant assignments
  -Wpossible-truncate   warn about possible field truncation
                        * NOT set with -Wall
  -Woverlap             warn about overlapping MOVE of items
  -Wpossible-overlap    warn about MOVE of items that may overlap depending on variables
                        * NOT set with -Wall
  -Wparentheses         warn if parentheses are omitted around AND within OR
  -Wstrict-typing       warn strictly about type mismatch, even when same size
                        * NOT set with -Wall
  -Wtyping              warn about type mismatch
  -Wimplicit-define     warn whenever data items are implicitly defined
                        * NOT set with -Wall
  -Wno-corresponding    do not warn about CORRESPONDING with no matching items
                        * ALWAYS active
  -Winitial-value       warn if initial VALUE clause is ignored
  -Wprototypes          warn about missing FUNCTION prototypes/definitions
  -Warithmetic-osvs     warn if arithmetic expression precision has changed
  -Wcall-params         warn about non 01/77 items for CALL parameters
                        * NOT set with -Wall
  -Wconstant-expression  warn about expressions that always resolve to true/false
  -Wconstant-numlit-expression	warn about numeric expressions that always resolve to true/false
  -Wlarger-01-redefines  warn about larger redefines allowed by COBOL standards
  -Wcolumn-overflow     warn about text after program-text area, FIXED format
                        * NOT set with -Wall
  -Wterminator          warn about lack of scope terminator END-XXX
                        * NOT set with -Wall
  -Wlinkage             warn about dangling LINKAGE items
                        * NOT set with -Wall
  -Wunreachable         warn about likely unreachable statements
                        * NOT set with -Wall
  -Wno-dialect          do not warn about dialect specific issues
                        * ALWAYS active
  -Wno-goto-section     do not warn about GO TO section-name
                        * ALWAYS active
  -Wgoto-different-section	warn about GO TO a praragraph defined in a different section
  -Wsuspicious-perform-thru	warn if PERFORM THRU references procedures not in ascending order or multiple sections
                        * ALWAYS active
  -Wdangling-text       warn about source text after program-area
                        * NOT set with -Wall
  -Wno-missing-newline  do not warn about missing newlines
                        * ALWAYS active
  -Wno-others           do not warn about different issues
                        * ALWAYS active
  -Wno-unsupported      do not warn if runtime does not support a feature used
  -fdiagnostics-plain-output	make diagnostic output as plain as possible
  -Werror               treat all warnings as errors
  -Wno-error            don't treat warnings as errors
  -Werror=<warning>     treat specified <warning> as error
  -Wno-error=<warning>  don't treat specified <warning> as error

Compiler options:
  -fsign=[ASCII|EBCDIC]	define display sign representation
                        * default: machine native
  -ffold-copy=[UPPER|LOWER]	fold COPY subject to value
                        * default: no transformation
  -ffold-call=[UPPER|LOWER]	fold PROGRAM-ID, CALL, CANCEL subject to value
                        * default: no transformation
  -fmax-errors=<number>	maximum number of errors to report before
                        compilation is aborted
                        * default: 128
  -fintrinsics=[ALL|intrinsic function name(,name,...)]
                        intrinsics to be used without FUNCTION keyword
  -fdump=<scope>        dump data fields on abort, <scope> may be
                        a combination of: ALL, WS, LS, RD, FD, SC, LO
  -fcallfh=<name>       specifies <name> to be used for I/O
                        as external provided EXTFH interface module
  -febcdic-table=<cconv-table>/<file>	EBCDIC/ASCII translation table
                        * e.g. default, ebcdic500_latin1...
  -fdefault-colseq=[ASCII|EBCDIC|NATIVE]	define default collating sequence
                        * default: NATIVE
  -fstack-extended      store origin of entrypoints and PERFORM
                        * turned on by --debug/-fdump
  -fno-remove-unreachable	disable remove of unreachable code
                        * turned off by -g
  -ftrace               generate trace code
                        * scope: executed SECTION/PARAGRAPH
  -ftraceall            generate trace code
                        * scope: executed SECTION/PARAGRAPH/STATEMENTS
  -fsyntax-only         syntax error checking only; don't emit any output
  -fdebugging-line      enable debugging lines
                        * 'D' in indicator column or floating >>D
  -fsource-location     generate source location code
                        * turned on by --debug/-ftraceall/-fec/-fdump
  -fimplicit-init       automatic initialization of the COBOL runtime system
  -fno-recursive-check  disable check of recursive program call;
                        effectively compiling as RECURSIVE program
  -fstack-check         PERFORM stack checking
                        * turned on by --debug/-g
  -fmemory-check=<scope>     checks for invalid writes to internal storage,
                        <scope> may be one of: all, pointer, using, none
                        * default: none, set to all by --debug
  -fsection-exit-check  check that code execution does not leave the scope of SECTIONs
  -fimplicit-goback-check	check that code execution does not end implicit at end of PROCEDURE DIVISION
  -fwrite-after         use AFTER 1 for WRITE of LINE SEQUENTIAL
                        * default: BEFORE 1
  -fmfcomment           '*' in column 1 treated as comment with listing suppression
                        * FIXED/COBOL85/VARIABLE format only
  -facucomment          '$' in indicator area treated as '*',
                        '|' treated as floating comment
  -fno-trunc            allow numeric field overflow
                        * non-ANSI behaviour
  -fsingle-quote        use a single quote (apostrophe) for QUOTE
                        * default: double quote
  -foptional-file       treat all files as OPTIONAL
                        * unless NOT OPTIONAL specified
  -fstatic-call         output static function calls for the CALL statement
  -fno-gen-c-decl-static-call	disable generation of C function declarations
                        for subroutines with static CALL
  -fgen-c-line-directives	generate source location directives in C code;
                        * turned on by -g/--coverage
  -fgen-c-labels        generate extra labels in C sources;
                        * turned on by -g
  -fno-theaders         suppress all headers from listing while keeping
                        page breaks
  -fno-tsource          suppress source from listing
  -fno-tmessages        suppress warning and error summary from listing
  -ftsymbols            specify symbols in listing
  -ftcmd                specify command line in listing
  -fno-ttimestamp       suppress timestamp in listing headers
  -fttitle=<title>      set listing title with '_' replaced by spaces;
                        defaults to package name and version
  -fno-diagnostics-show-option	suppress output of option that directly
                        controls the diagnostic
  -fno-diagnostics-show-caret	do not display source context on warning/error diagnostic
  -fno-diagnostics-show-line-numbers	suppress display of line numbers in diagnostics

Compiler dialect configuration options:
  -freserved-words=<value>	use of complete/fixed reserved words
  -ftab-width=1..12      number of spaces that are assumed for tabs
  -ftext-column=72..255  right margin column number for fixed-form reference-format
  -fpic-length=<number>  maximum number of characters allowed in the PICTURE character-string
  -fword-length=1..63    maximum word-length for COBOL (= programmer defined) words
  -fliteral-length=<number>	maximum literal size in general
  -fnumeric-literal-length=1..38	maximum numeric literal size
  -fdefaultbyte=<value>  default initialization for fields without VALUE, may be one of
                         * character in quotes
                         * decimal 0..255 representing a character
                         * "init" to initialize to PICTURE/USAGE
                         * "none" to do no explicit initialization
                         * default: "init"
  -fformat=<value>       default reference-format, may be one of: FIXED, FREE, COBOL85, VARIABLE, XOPEN, XCARD, CRT, TERMINAL, COBOLX
  -fbinary-size=<value>  binary byte size - defines the allocated bytes according to PIC, may be one of: 2-4-8, 1-2-4-8, 1--8
  -fbinary-byteorder=<value>	binary byte order, may be one of: native, big-endian
  -fassign-clause=<value>	how to interpret 'ASSIGN word': as 'ASSIGN EXTERNAL word' or 'ASSIGN DYNAMIC word', may be one of: dynamic, external, ibm (= external), mf (= dynamic)
  -fscreen-section-rules=<value>	which compiler's rules to apply to SCREEN SECTION item clauses, may be one of: acu, gc, mf, rm, std, xopen
  -fdpc-in-data=<value>  whether DECIMAL-POINT IS COMMA has effect in XML/JSON GENERATE, may be one of: none, xml, json, all
  -fsubscript-check=<value>	checking for subscript (only done with EC-BOUND-SUBSCRIPT active), may be one of: full, max, record
  -ffilename-mapping     resolve file names at run time using environment variables
  -fpretty-display       alternate formatting of numeric fields
  -fbinary-truncate      numeric truncation according to ANSI
  -fcomplex-odo          allow non-standard OCCURS DEPENDING ON syntax
  -fodoslide             adjust items following OCCURS DEPENDING (implies complex-odo)
  -finit-justify         applies JUSTIFY with VALUE clause
  -findirect-redefines   allow REDEFINES to other than last equal level number
  -frelax-syntax-checks  allow certain syntax variations (e.g. REDEFINES position)
  -fref-mod-zero-length  allow zero length reference-modification (only changed with EC-BOUND-REF-MOD active)
  -frelax-level-hierarchy	allow non-matching level numbers
  -fselect-working       require ASSIGN USING items to be in WORKING-STORAGE
  -flocal-implies-recursive	LOCAL-STORAGE SECTION implies RECURSIVE attribute
  -fsticky-linkage       LINKAGE SECTION items remain allocated between invocations
  -fmove-ibm             MOVE operates as on IBM (left to right, byte by byte)
  -fperform-osvs         exit point of any currently executing perform is recognized if reached
  -farithmetic-osvs      limit precision in intermediate results to precision of final result (less accurate)
  -fconstant-folding     evaluate constant expressions at compile time
  -fhostsign             allow hexadecimal value 'F' for NUMERIC test of signed PACKED DECIMAL field
  -fprogram-name-redefinition	program names don't lead to a reserved identifier
  -faccept-update        set WITH UPDATE clause as default for ACCEPT dest-item, instead of WITH NO UPDATE
  -faccept-auto          set WITH AUTO clause as default for ACCEPT dest-item, instead of WITH TAB
  -fconsole-is-crt       assume CONSOLE IS CRT if not set otherwise
  -fno-echo-means-secure	NO-ECHO hides input with asterisks like SECURE
  -fline-col-zero-default	assume a field DISPLAY starts at LINE 0 COL 0 (i.e. at the cursor), not LINE 1 COL 1
  -fdisplay-special-fig-consts	special behaviour of DISPLAY SPACE/ALL X'01'/ALL X'02'/ALL X'07'
  -fbinary-comp-1        COMP-1 is a 16-bit signed integer
  -fnumeric-pointer      POINTER is a 64-bit unsigned integer
  -fmove-non-numeric-lit-to-numeric-is-zero	imply zero in move of non-numeric literal to numeric items
  -fimplicit-assign-dynamic-var	implicitly define a variable if an ASSIGN DYNAMIC does not match any data item
  -fdevice-mnemonics     specifying device by mnemonic
  -fxml-parse-xmlss      XML PARSE XMLSS
  -fareacheck            check contents of Area A (when reference format supports Area A enforcement),
                         enabled checks include:
                         * division, section, paragraph names, level indicators (FD, SD, RD, and CD),
                           and toplevel numbers (01 and 77) must start in Area A;
                         * statements must not start in Area A; and
                         * separator periods must not be within Area A
  -fcomment-paragraphs=<support>	comment paragraphs in IDENTIFICATION DIVISION (AUTHOR, DATE-WRITTEN, ...)
  -fcontrol-division=<support>	CONTROL DIVISION
  -fpartial-replace-when-literal-src=<support>	apply partial replacing with literal source operand even when it replaces with spaces only;
                         * "skip" prevents such replacements
  -fmemory-size-clause=<support>	MEMORY-SIZE clause
  -fmultiple-file-tape-clause=<support>	MULTIPLE-FILE-TAPE clause
  -flabel-records-clause=<support>	LABEL-RECORDS clause
  -fvalue-of-clause=<support>	VALUE-OF clause
  -fdata-records-clause=<support>	DATA-RECORDS clause
  -ftop-level-occurs-clause=<support>	OCCURS clause on top-level
  -fsame-as-clause=<support>	SAME AS clause
  -ftype-to-clause=<support>	TYPE TO clause
  -fusage-type=<support>	USAGE type-name
  -fsynchronized-clause=<support>	SYNCHRONIZED clause
  -fsync-left-right=<support>	LEFT/RIGHT phrases in SYNCHRONIZED clause
  -fspecial-names-clause=<support>	SPECIAL-NAMES clause
  -fgoto-statement-without-name=<support>	GO TO statement without name
  -fstop-literal-statement=<support>	STOP-literal statement
  -fstop-identifier-statement=<support>	STOP-identifier statement
  -fstop-error-statement=<support>	STOP ERROR statement
  -fdebugging-mode=<support>	DEBUGGING MODE and debugging indicator
  -fuse-for-debugging=<support>	USE FOR DEBUGGING
  -fpadding-character-clause=<support>	PADDING CHARACTER clause
  -fnext-sentence-phrase=<support>	NEXT SENTENCE phrase
  -flisting-statements=<support>	listing-directive statements EJECT, SKIP1, SKIP2, SKIP3
  -ftitle-statement=<support>	listing-directive statement TITLE
  -fentry-statement=<support>	ENTRY statement
  -fmove-noninteger-to-alphanumeric=<support>	move noninteger to alphanumeric
  -fmove-figurative-constant-to-numeric=<support>	move figurative constants to numeric
  -fmove-figurative-space-to-numeric=<support>	move figurative constant SPACE to numeric
  -fmove-figurative-quote-to-numeric=<support>	move figurative constant QUOTE to numeric
  -fodo-without-to=<support>	OCCURS DEPENDING ON without to
  -fsection-segments=<support>	section segments
  -falter-statement=<support>	ALTER statement
  -fcall-overflow=<support>	OVERFLOW clause for CALL
  -fnumeric-boolean=<support>	boolean literals (B'1010')
  -fhexadecimal-boolean=<support>	hexadecimal-boolean literals (BX'A')
  -fnational-literals=<support>	national literals (N'UTF-16 string')
  -fhexadecimal-national-literals=<support>	hexadecimal-national literals (NX'265E')
  -fnational-character-literals=<support>	non-standard national literals (NC'UTF-16 string')
  -fhp-octal-literals=<support>	HP COBOL octal literals (%377)
  -facu-literals=<support>	ACUCOBOL-GT literals (#B #O #H #X)
  -febcdic-symbolic-characters	EBCDIC symbolic characters in literals (" "135,151,151"bar"195, 194"Z" for " foobarBAZ")
  -fword-continuation=<support>	continuation of COBOL words
  -fnot-exception-before-exception=<support>	NOT ON EXCEPTION before ON EXCEPTION
  -faccept-display-extensions=<support>	extensions to ACCEPT and DISPLAY
  -frenames-uncommon-levels=<support>	RENAMES of 01-, 66- and 77-level items
  -flarger-redefines=<support>	allow larger REDEFINES items
  -fsymbolic-constant=<support>	constants defined in SPECIAL-NAMES
  -fconstant-78=<support>	constant with level 78 item (note: has left to right precedence in expressions)
  -fconstant-01=<support>	constant with level 01 CONSTANT AS/FROM item
  -fperform-varying-without-by=<support>	PERFORM VARYING without BY phrase (implies BY 1)
  -freference-out-of-declaratives=<support>	references to sections not in DECLARATIVES from within DECLARATIVES
  -fprogram-prototypes=<support>	CALL/CANCEL with program-prototype-name
  -fcall-convention-mnemonic=<support>	specifying call-convention by mnemonic
  -fcall-convention-linkage=<support>	specifying call-convention by WITH ... LINKAGE
  -fusing-optional=<support>	support for PROCEDURE DIVISION USING OPTIONAL
  -fnumeric-value-for-edited-item=<support>	numeric literals in VALUE clause of numeric-edited items
  -fincorrect-conf-sec-order=<support>	incorrect order of CONFIGURATION SECTION paragraphs
  -fdefine-constant-directive=<support>	allow >> DEFINE CONSTANT var AS literal
  -ffree-redefines-position=<support>	REDEFINES clause not following entry-name in definition
  -frecords-mismatch-record-clause=<support>	record sizes does not match RECORD clause
  -frecord-delimiter=<support>	RECORD DELIMITER clause
  -fsequential-delimiters=<support>	BINARY-SEQUENTIAL and LINE-SEQUENTIAL phrases in RECORD DELIMITER
  -frecord-delim-with-fixed-recs=<support>	RECORD DELIMITER clause on file with fixed-length records
  -fmissing-statement=<support>	missing statement (e.g. empty IF / PERFORM)
  -fmissing-period=<support>	missing period in PROCEDURE DIVISION (when reference format supports Area A enforcement)
  -fzero-length-literals=<support>	zero-length literals, e.g. '' and ""
  -fxml-generate-extra-phrases=<support>	XML GENERATE's phrases other than COUNT IN
  -fcontinue-after=<support>	AFTER phrase in CONTINUE statement
  -fgoto-entry=<support>	ENTRY FOR GO TO and GO TO ENTRY statements
  -fassign-variable=<support>	ASSIGN [TO] variable in SELECT
  -fassign-using-variable=<support>	ASSIGN USING/VARYING variable in SELECT
  -fassign-ext-dyn=<support>	ASSIGN EXTERNAL/DYNAMIC in SELECT
  -fassign-disk-from=<support>	ASSIGN DISK FROM variable in SELECT
  -fvsam-status=<support>	VSAM status in FILE STATUS
  -fself-call-recursive=<support>	CALL to own PROGRAM-ID implies RECURSIVE attribute
  -frecord-contains-depending-clause=<support>	DEPENDING clause in RECORD CONTAINS
  -fpicture-l=<support>  PICTURE string with 'L' character
	where <support> is one of the following:
	'ok', 'warning', 'archaic', 'obsolete', 'skip', 'ignore', 'error', 'unconformable'
  -fnot-reserved=<word>  word to be taken out of the reserved words list
  -freserved=<word>      word to be added to reserved words list
  -freserved=<word>:<alias>	word to be added to reserved words list as alias
  -fnot-register=<word>  special register to disable
  -fregister=<word> or <word>:<definition>, where definition uses backslash esca	special register to enable


Report bugs to: bug-gnucobol@gnu.org
or (preferably) use the issue tracker via the home page.
GnuCOBOL home page: <https://www.gnu.org/software/gnucobol/>
General help using GNU software: <https://www.gnu.org/gethelp/>
Options (261)
OptionDescriptionSource
-h, --helpdisplay this help and exithelp + man
-V, --versiondisplay compiler version information and exithelp + man
-dumpversiondisplay compiler version and exithelp + man
-i, --infodisplay compiler information (build/environment) and exithelp + man
-v, --verboseverbose mode, display additional information;help + man
-q, --briefreduced displays, commands invoked not shownhelp + man
-###like -v but commands not executedhelp + man
-xbuild an executable programhelp + man
-mbuild a dynamically loadable module (default)help + man
-j, --job argsrun program after build, passing <args>help
-std dialectwarnings/features for a specific dialect <dialect> can be one of: default, cobol2014, cobol2002, cobol85, xopen, ibm-strict, ibm, mvs-strict, mvs, mf-strict, mf, bs2000-strict, bs2000, acu-strict,…help + man
-F, --freeuse free source format (alias for -fformat=free)help + man
--fixeduse fixed source format (default;help + man
-O, -O2, -O3, -Osenable optimizationhelp + man
-O0disable optimizationhelp + man
-genable C compiler debug and stack checkhelp + man
-d, --debugenable all run-time error checking, equal to -fstack-check -fec=EC-ALLhelp + man
-fec exception-nameenable code generation for <exception-name>, see --list-exceptions for the possible values, sets -fsource-locationhelp + man
-fno-ec exception-namedisable code generation for <exception-name>help + man
-o fileplace the output into <file>help + man
-bcombine all input files into a single dynamically loadable modulehelp + man
-Epreprocess only;help + man
-Ctranslation only;help + man
-Scompile only;help + man
-ccompile and assemble, but do not linkhelp + man
-T filegenerate and place a wide program listing into <file>help + man
-t filegenerate and place a program listing into <file>help + man
--tlines linesspecify lines per page in listing, default = 55help + man
-P dirgenerate preprocessed program listing (.lst)help
-X, --Xrefspecify cross reference in listinghelp + man
-I directoryadd <directory> to copy/include search pathhelp + man
-L directoryadd <directory> to library search pathhelp + man
-l liblink the library <lib>help + man
-K entrygenerate CALL to <entry> as statichelp + man
-D definedefine <define> for COBOL compilationhelp + man
-A optionsadd <options> to the C compile phasehelp + man
-Q optionsadd <options> to the C link phasehelp + man
--coverageinstrument generated binaries for coveragehelp + man
--conf fileuser-defined dialect configuration;help + man
--list-reserveddisplay reserved wordshelp + man
--list-intrinsicsdisplay intrinsic functionshelp + man
--list-mnemonicsdisplay mnemonic nameshelp + man
--list-exceptionsdisplay exception nameshelp + man
--list-systemdisplay system routineshelp + man
--save-temps dirsave intermediate files * default: current directoryhelp
-MT targetset/add target file used in dependency listhelp + man
-MF fileplace dependency list into <file>help + man
-ext extensionadd file extension for resolving COPYhelp + man
-Wallenable most warnings (all except as noted below)help + man
-Wextralike -Wall but enable some extra warning flagshelp + man
-wdisable all warningshelp + man
-Wno- warningdisable warning enabled by default, -Wall or -Wextrahelp + man
-Wadditionaladditional warnings only raised with -Wallhelp + man
-Wno-unfinisheddo not warn if unfinished features are used * ALWAYS activehelp + man
-Wno-pendingdo not warn if pending features are used * ALWAYS activehelp + man
-Wno-repository-checksdo not warn/check for program/function/external signature mismatch * ALWAYS activehelp + man
-Wno-ignored-errordo not warn about errors in code parts which are unreachable and so normally ignored * ALWAYS activehelp + man
-Wobsoletewarn if obsolete features are usedhelp + man
-Warchaicwarn if archaic features are usedhelp + man
-Wredefinitionwarn about non-referenced ambiguous data itemshelp + man
-Wtruncatewarn about field truncation from constant assignmentshelp + man
-Wpossible-truncatewarn about possible field truncation * NOT set with -Wallhelp + man
-Woverlapwarn about overlapping MOVE of itemshelp + man
-Wpossible-overlapwarn about MOVE of items that may overlap depending on variables * NOT set with -Wallhelp + man
-Wparentheseswarn if parentheses are omitted around AND within ORhelp + man
-Wstrict-typingwarn strictly about type mismatch, even when same size * NOT set with -Wallhelp + man
-Wtypingwarn about type mismatchhelp + man
-Wimplicit-definewarn whenever data items are implicitly defined * NOT set with -Wallhelp + man
-Wno-correspondingdo not warn about CORRESPONDING with no matching items * ALWAYS activehelp + man
-Winitial-valuewarn if initial VALUE clause is ignoredhelp + man
-Wprototypeswarn about missing FUNCTION prototypes/definitionshelp + man
-Warithmetic-osvswarn if arithmetic expression precision has changedhelp + man
-Wcall-paramswarn about non 01/77 items for CALL parameters * NOT set with -Wallhelp + man
-Wconstant-expressionwarn about expressions that always resolve to true/falsehelp + man
-Wconstant-numlit-expressionwarn about numeric expressions that always resolve to true/falsehelp + man
-Wlarger-01-redefineswarn about larger redefines allowed by COBOL standardshelp + man
-Wcolumn-overflowwarn about text after program-text area, FIXED format * NOT set with -Wallhelp + man
-Wterminatorwarn about lack of scope terminator END-XXX * NOT set with -Wallhelp + man
-Wlinkagewarn about dangling LINKAGE items * NOT set with -Wallhelp + man
-Wunreachablewarn about likely unreachable statements * NOT set with -Wallhelp + man
-Wno-dialectdo not warn about dialect specific issues * ALWAYS activehelp + man
-Wno-goto-sectiondo not warn about GO TO section-name * ALWAYS activehelp + man
-Wgoto-different-sectionwarn about GO TO a praragraph defined in a different sectionhelp + man
-Wsuspicious-perform-thruwarn if PERFORM THRU references procedures not in ascending order or multiple sections * ALWAYS activehelp + man
-Wdangling-textwarn about source text after program-area * NOT set with -Wallhelp + man
-Wno-missing-newlinedo not warn about missing newlines * ALWAYS activehelp + man
-Wno-othersdo not warn about different issues * ALWAYS activehelp + man
-Wno-unsupporteddo not warn if runtime does not support a feature usedhelp + man
-fdiagnostics-plain-outputmake diagnostic output as plain as possiblehelp + man
-Werrortreat all warnings as errorshelp + man
-Wno-errordon't treat warnings as errorshelp + man
-fsign ASCII|EBCDICdefine display sign representation * default: machine nativehelp
-ffold-copy UPPER|LOWERfold COPY subject to value * default: no transformationhelp
-ffold-call UPPER|LOWERfold PROGRAM-ID, CALL, CANCEL subject to value * default: no transformationhelp
-fmax-errors numbermaximum number of errors to report before compilation is aborted * default: 128help + man
-fdump scopedump data fields on abort, <scope> may be a combination of: ALL, WS, LS, RD, FD, SC, LOhelp + man
-fcallfh namespecifies <name> to be used for I/O as external provided EXTFH interface modulehelp + man
-febcdic-table cconv-table>/<fileEBCDIC/ASCII translation table * e.g. default, ebcdic500_latin1...help + man
-fdefault-colseq ASCII|EBCDIC|NATIVEdefine default collating sequence * default: NATIVEhelp
-fstack-extendedstore origin of entrypoints and PERFORM * turned on by --debug/-fdumphelp + man
-fno-remove-unreachabledisable remove of unreachable code * turned off by -ghelp + man
-ftracegenerate trace code * scope: executed SECTION/PARAGRAPHhelp + man
-ftraceallgenerate trace code * scope: executed SECTION/PARAGRAPH/STATEMENTShelp + man
-fsyntax-onlysyntax error checking only;help + man
-fdebugging-lineenable debugging lines * 'D' in indicator column or floating >>Dhelp + man
-fsource-locationgenerate source location code * turned on by --debug/-ftraceall/-fec/-fdumphelp + man
-fimplicit-initautomatic initialization of the COBOL runtime systemhelp + man
-fno-recursive-checkdisable check of recursive program call;help + man
-fstack-checkPERFORM stack checking * turned on by --debug/-ghelp + man
-fmemory-check scopechecks for invalid writes to internal storage, <scope> may be one of: all, pointer, using, none * default: none, set to all by --debughelp + man
-fsection-exit-checkcheck that code execution does not leave the scope of SECTIONshelp + man
-fimplicit-goback-checkcheck that code execution does not end implicit at end of PROCEDURE DIVISIONhelp + man
-fwrite-afteruse AFTER 1 for WRITE of LINE SEQUENTIAL * default: BEFORE 1help + man
-fmfcomment'*' in column 1 treated as comment with listing suppression * FIXED/COBOL85/VARIABLE format onlyhelp + man
-facucomment'$' in indicator area treated as '*', '|' treated as floating commenthelp + man
-fno-truncallow numeric field overflow * non-ANSI behaviourhelp + man
-fsingle-quoteuse a single quote (apostrophe) for QUOTE * default: double quotehelp + man
-foptional-filetreat all files as OPTIONAL * unless NOT OPTIONAL specifiedhelp + man
-fstatic-calloutput static function calls for the CALL statementhelp + man
-fno-gen-c-decl-static-calldisable generation of C function declarations for subroutines with static CALLhelp + man
-fgen-c-line-directivesgenerate source location directives in C code;help + man
-fgen-c-labelsgenerate extra labels in C sources;help + man
-fno-theaderssuppress all headers from listing while keeping page breakshelp + man
-fno-tsourcesuppress source from listinghelp + man
-fno-tmessagessuppress warning and error summary from listinghelp + man
-ftsymbolsspecify symbols in listinghelp + man
-ftcmdspecify command line in listinghelp + man
-fno-ttimestampsuppress timestamp in listing headershelp + man
-fttitle titleset listing title with '_' replaced by spaces;help + man
-fno-diagnostics-show-optionsuppress output of option that directly controls the diagnostichelp + man
-fno-diagnostics-show-caretdo not display source context on warning/error diagnostichelp + man
-fno-diagnostics-show-line-numberssuppress display of line numbers in diagnosticshelp + man
-freserved-words valueuse of complete/fixed reserved wordshelp + man
-ftab-width 1..12number of spaces that are assumed for tabshelp + man
-ftext-column 72..255right margin column number for fixed-form reference-formathelp + man
-fpic-length numbermaximum number of characters allowed in the PICTURE character-stringhelp + man
-fword-length 1..63maximum word-length for COBOL (= programmer defined) wordshelp + man
-fliteral-length numbermaximum literal size in generalhelp + man
-fnumeric-literal-length 1..38maximum numeric literal sizehelp + man
-fdefaultbyte valuedefault initialization for fields without VALUE, may be one of * character in quotes * decimal 0..255 representing a character * "init" to initialize to PICTURE/USAGE * "none" to do no explicit…help + man
-fformat valuedefault reference-format, may be one of: FIXED, FREE, COBOL85, VARIABLE, XOPEN, XCARD, CRT, TERMINAL, COBOLXhelp + man
-fbinary-size valuebinary byte size - defines the allocated bytes according to PIC, may be one of: 2-4-8, 1-2-4-8, 1--8help + man
-fbinary-byteorder valuebinary byte order, may be one of: native, big-endianhelp + man
-fassign-clause valuehow to interpret 'ASSIGN word': as 'ASSIGN EXTERNAL word' or 'ASSIGN DYNAMIC word', may be one of: dynamic, external, ibm (= external), mf (= dynamic)help + man
-fscreen-section-rules valuewhich compiler's rules to apply to SCREEN SECTION item clauses, may be one of: acu, gc, mf, rm, std, xopenhelp + man
-fdpc-in-data valuewhether DECIMAL-POINT IS COMMA has effect in XML/JSON GENERATE, may be one of: none, xml, json, allhelp + man
-fsubscript-check valuechecking for subscript (only done with EC-BOUND-SUBSCRIPT active), may be one of: full, max, recordhelp + man
-ffilename-mappingresolve file names at run time using environment variableshelp + man
-fpretty-displayalternate formatting of numeric fieldshelp + man
-fbinary-truncatenumeric truncation according to ANSIhelp + man
-fcomplex-odoallow non-standard OCCURS DEPENDING ON syntaxhelp + man
-fodoslideadjust items following OCCURS DEPENDING (implies complex-odo)help + man
-finit-justifyapplies JUSTIFY with VALUE clausehelp + man
-findirect-redefinesallow REDEFINES to other than last equal level numberhelp + man
-frelax-syntax-checksallow certain syntax variations (e.g. REDEFINES position)help + man
-fref-mod-zero-lengthallow zero length reference-modification (only changed with EC-BOUND-REF-MOD active)help + man
-frelax-level-hierarchyallow non-matching level numbershelp + man
-fselect-workingrequire ASSIGN USING items to be in WORKING-STORAGEhelp + man
-flocal-implies-recursiveLOCAL-STORAGE SECTION implies RECURSIVE attributehelp + man
-fsticky-linkageLINKAGE SECTION items remain allocated between invocationshelp + man
-fmove-ibmMOVE operates as on IBM (left to right, byte by byte)help + man
-fperform-osvsexit point of any currently executing perform is recognized if reachedhelp + man
-farithmetic-osvslimit precision in intermediate results to precision of final result (less accurate)help + man
-fconstant-foldingevaluate constant expressions at compile timehelp + man
-fhostsignallow hexadecimal value 'F' for NUMERIC test of signed PACKED DECIMAL fieldhelp + man
-fprogram-name-redefinitionprogram names don't lead to a reserved identifierhelp + man
-faccept-updateset WITH UPDATE clause as default for ACCEPT dest-item, instead of WITH NO UPDATEhelp + man
-faccept-autoset WITH AUTO clause as default for ACCEPT dest-item, instead of WITH TABhelp + man
-fconsole-is-crtassume CONSOLE IS CRT if not set otherwisehelp + man
-fno-echo-means-secureNO-ECHO hides input with asterisks like SECUREhelp + man
-fline-col-zero-defaultassume a field DISPLAY starts at LINE 0 COL 0 (i.e. at the cursor), not LINE 1 COL 1help + man
-fdisplay-special-fig-constsspecial behaviour of DISPLAY SPACE/ALL X'01'/ALL X'02'/ALL X'07'help + man
-fbinary-comp-1COMP-1 is a 16-bit signed integerhelp + man
-fnumeric-pointerPOINTER is a 64-bit unsigned integerhelp + man
-fmove-non-numeric-lit-to-numeric-is-zeroimply zero in move of non-numeric literal to numeric itemshelp + man
-fimplicit-assign-dynamic-var implicitlyimplicitly define a variable if an ASSIGN DYNAMIC does not match any data itemhelp + man
-fdevice-mnemonicsspecifying device by mnemonichelp + man
-fxml-parse-xmlssXML PARSE XMLSShelp + man
-fareacheckcheck contents of Area A (when reference format supports Area A enforcement), enabled checks include: * division, section, paragraph names, level indicators (FD, SD, RD, and CD), and toplevel numbers…help + man
-fcomment-paragraphs supportcomment paragraphs in IDENTIFICATION DIVISION (AUTHOR, DATE-WRITTEN, ...)help + man
-fcontrol-division supportCONTROL DIVISIONhelp + man
-fpartial-replace-when-literal-src supportapply partial replacing with literal source operand even when it replaces with spaces only;help + man
-fmemory-size-clause supportMEMORY-SIZE clausehelp + man
-fmultiple-file-tape-clause supportMULTIPLE-FILE-TAPE clausehelp + man
-flabel-records-clause supportLABEL-RECORDS clausehelp + man
-fvalue-of-clause supportVALUE-OF clausehelp + man
-fdata-records-clause supportDATA-RECORDS clausehelp + man
-ftop-level-occurs-clause supportOCCURS clause on top-levelhelp + man
-fsame-as-clause supportSAME AS clausehelp + man
-ftype-to-clause supportTYPE TO clausehelp + man
-fusage-type supportUSAGE type-namehelp + man
-fsynchronized-clause supportSYNCHRONIZED clausehelp + man
-fsync-left-right supportLEFT/RIGHT phrases in SYNCHRONIZED clausehelp + man
-fspecial-names-clause supportSPECIAL-NAMES clausehelp + man
-fgoto-statement-without-name supportGO TO statement without namehelp + man
-fstop-literal-statement supportSTOP-literal statementhelp + man
-fstop-identifier-statement supportSTOP-identifier statementhelp + man
-fstop-error-statement supportSTOP ERROR statementhelp + man
-fdebugging-mode supportDEBUGGING MODE and debugging indicatorhelp + man
-fuse-for-debugging supportUSE FOR DEBUGGINGhelp + man
-fpadding-character-clause supportPADDING CHARACTER clausehelp + man
-fnext-sentence-phrase supportNEXT SENTENCE phrasehelp + man
-flisting-statements supportlisting-directive statements EJECT, SKIP1, SKIP2, SKIP3help + man
-ftitle-statement supportlisting-directive statement TITLEhelp + man
-fentry-statement supportENTRY statementhelp + man
-fmove-noninteger-to-alphanumeric supportmove noninteger to alphanumerichelp + man
-fmove-figurative-constant-to-numeric supportmove figurative constants to numerichelp + man
-fmove-figurative-space-to-numeric supportmove figurative constant SPACE to numerichelp + man
-fmove-figurative-quote-to-numeric supportmove figurative constant QUOTE to numerichelp + man
-fodo-without-to supportOCCURS DEPENDING ON without tohelp + man
-fsection-segments supportsection segmentshelp + man
-falter-statement supportALTER statementhelp + man
-fcall-overflow supportOVERFLOW clause for CALLhelp + man
-fnumeric-boolean supportboolean literals (B'1010')help + man
-fhexadecimal-boolean supporthexadecimal-boolean literals (BX'A')help + man
-fnational-literals supportnational literals (N'UTF-16 string')help + man
-fhexadecimal-national-literals supporthexadecimal-national literals (NX'265E')help + man
-fnational-character-literals supportnon-standard national literals (NC'UTF-16 string')help + man
-fhp-octal-literals supportHP COBOL octal literals (%377)help + man
-facu-literals supportACUCOBOL-GT literals (#B #O #H #X)help + man
-febcdic-symbolic-charactersEBCDIC symbolic characters in literals (" "135,151,151"bar"195, 194"Z" for " foobarBAZ")help + man
-fword-continuation supportcontinuation of COBOL wordshelp + man
-fnot-exception-before-exception supportNOT ON EXCEPTION before ON EXCEPTIONhelp + man
-faccept-display-extensions supportextensions to ACCEPT and DISPLAYhelp + man
-frenames-uncommon-levels supportRENAMES of 01-, 66- and 77-level itemshelp + man
-flarger-redefines supportallow larger REDEFINES itemshelp + man
-fsymbolic-constant supportconstants defined in SPECIAL-NAMEShelp + man
-fconstant-78 supportconstant with level 78 item (note: has left to right precedence in expressions)help + man
-fconstant-01 supportconstant with level 01 CONSTANT AS/FROM itemhelp + man
-fperform-varying-without-by supportPERFORM VARYING without BY phrase (implies BY 1)help + man
-freference-out-of-declaratives supportreferences to sections not in DECLARATIVES from within DECLARATIVEShelp + man
-fprogram-prototypes supportCALL/CANCEL with program-prototype-namehelp + man
-fcall-convention-mnemonic supportspecifying call-convention by mnemonichelp + man
-fcall-convention-linkage supportspecifying call-convention by WITH ...help + man
-fusing-optional supportsupport for PROCEDURE DIVISION USING OPTIONALhelp + man
-fnumeric-value-for-edited-item supportnumeric literals in VALUE clause of numeric-edited itemshelp + man
-fincorrect-conf-sec-order supportincorrect order of CONFIGURATION SECTION paragraphshelp + man
-fdefine-constant-directive supportallow >> DEFINE CONSTANT var AS literalhelp + man
-ffree-redefines-position supportREDEFINES clause not following entry-name in definitionhelp + man
-frecords-mismatch-record-clause supportrecord sizes does not match RECORD clausehelp + man
-frecord-delimiter supportRECORD DELIMITER clausehelp + man
-fsequential-delimiters supportBINARY-SEQUENTIAL and LINE-SEQUENTIAL phrases in RECORD DELIMITERhelp + man
-frecord-delim-with-fixed-recs supportRECORD DELIMITER clause on file with fixed-length recordshelp + man
-fmissing-statement supportmissing statement (e.g. empty IF / PERFORM)help + man
-fmissing-period supportmissing period in PROCEDURE DIVISION (when reference format supports Area A enforcement)help + man
-fzero-length-literals supportzero-length literals, e.g. '' and ""help + man
-fxml-generate-extra-phrases supportXML GENERATE's phrases other than COUNT INhelp + man
-fcontinue-after supportAFTER phrase in CONTINUE statementhelp + man
-fgoto-entry supportENTRY FOR GO TO and GO TO ENTRY statementshelp + man
-fassign-variable supportASSIGN [TO] variable in SELECThelp + man
-fassign-using-variable supportASSIGN USING/VARYING variable in SELECThelp + man
-fassign-ext-dyn supportASSIGN EXTERNAL/DYNAMIC in SELECThelp + man
-fassign-disk-from supportASSIGN DISK FROM variable in SELECThelp + man
-fvsam-status supportVSAM status in FILE STATUShelp + man
-fself-call-recursive supportCALL to own PROGRAM-ID implies RECURSIVE attributehelp + man
-frecord-contains-depending-clause supportDEPENDING clause in RECORD CONTAINShelp + man
-fpicture-l supportPICTURE string with 'L' character where <support> is one of the following: 'ok', 'warning', 'archaic', 'obsolete', 'skip', 'ignore', 'error', 'unconformable'help + man
-fnot-reserved wordword to be taken out of the reserved words listhelp + man
-freserved wordword to be added to reserved words listhelp + man
-fnot-register wordspecial register to disablehelp + man
-fregister wordspecial register to enablehelp + man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.