cobc - Man Page

manual page for cobc 3.2.0

Synopsis

cobc [options]... file...

Description

GnuCOBOL compiler for most COBOL dialects with lots of extensions

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

Author

Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Edward Hart Built     Jul 28 2023 19:20:47 Packaged  Jul 28 2023 17:02:56 UTC C version "10.2.1 20210110"

Reporting Bugs

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/>

See Also

The full documentation for cobc is maintained as a Texinfo manual.  If the info and cobc programs are properly installed at your site, the command

info gnucobol

should give you access to the complete manual.

Info

July 2023 GnuCOBOL 3.2.0