FreeBSD Manual Pages
COBC(1) User Commands COBC(1) NAME cobc - 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 op- tions increase the verbosity, the maximum is 3 as follows: (1) display compiler version and the commands invoked by the com- piler, (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 configu- ration 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-lo- cation -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 mod- ule -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 mis- match * 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 or- der 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 --de- bug/-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/STATE- MENTS -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 --de- bug/-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 PROCE- DURE 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 pack- age 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 charac- ter-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 ac- tive), 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 cur- sor), 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, para- graph 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 DECLARA- TIVES -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 DELIM- ITER -frecord-delim-with-fixed-recs=<support> RECORD DELIMITER clause on file with fixed-length records -fmissing-statement=<support> missing statement (e.g. empty IF / PER- FORM) -fmissing-period=<support> missing period in PROCEDURE DIVISION (when reference format sup- ports 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', 'ar- chaic', '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 back- slash esca special register to enable AUTHOR Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Ed- ward Hart Built Apr 12 2025 10:34:29 Packaged Apr 12 2025 10:34:07 UTC C version "FreeBSD Clang 18.1.6 (https://github.com/llvm/llvm-project.git llv- morg-18.1.6-0-g1118c2e05e67)" 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/> COPYRIGHT Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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. GnuCOBOL 3.2.0 April 2025 COBC(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | AUTHOR | REPORTING BUGS | COPYRIGHT | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=cobc&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>