Node:GPC Command Line Options,
Next:GPC Options,
Up:Invoking GPC
GPC options besides those of GCC.
The following table lists the command line options GPC understands
in addition to those understood by GCC.
--classic-pascal-level-0
- Reject conformant arrays and anything besides ISO 7185 Pascal.
--standard-pascal-level-0
- Synonym for
--classic-pascal-level-0.
--classic-pascal
- Reject anything besides ISO 7185 Pascal.
--standard-pascal
- Synonym for
--classic-pascal.
--extended-pascal
- Reject anything besides ISO 10206 Extended Pascal.
--object-pascal
- Reject anything besides (the implemented parts of) ANSI draft Object Pascal.
--ucsd-pascal
- Try to emulate UCSD Pascal.
--borland-pascal
- Try to emulate Borland Pascal, version 7.0.
--delphi
- Try to emulate Borland Pascal, version 7.0, with some Delphi extensions.
--pascal-sc
- Be strict about the implemented Pascal-SC extensions.
--vax-pascal
- Support (a few features of) VAX Pascal.
--sun-pascal
- Support (a few features of) Sun Pascal.
--mac-pascal
- Support (some features of) traditional Macintosh Pascal compilers.
--gnu-pascal
- Undo the effect of previous dialect options, allow all features again.
--debug-tree
- (For GPC developers.) Show the internal representation of a given tree node (name or address).
--debug-gpi
- (For GPC developers.) Show what is written to and read from GPI files (huge output!).
--debug-automake
- (For GPC developers.) Give additional information about the actions of automake.
--debug-source
- Output the source while it is processed.
--no-debug-info
- Inhibit
-g options (temporary work-around, this option may disappear in the future).
--progress-messages
- Output source file names and line numbers while compiling.
--no-progress-messages
- Do not output source file names and line numbers while compiling (default).
--progress-bar
- Output number of processed lines while compiling.
--progress-bar
- Do not output number of processed lines while compiling (default).
--autolink
- Automatically link object files provided by units/modules or
{$L ...} (default).
--no-autolink
- Do not automatically link object files provided by units/modules/
{$L ...}.
--automake
- Automatically compile changed units/modules/
{$L ...} files and link the object files provided.
--no-automake
- Same as
--no-autolink.
--autobuild
- Automatically compile all units/modules/
{$L ...} files and link the object files provided.
--no-autobuild
- Same as
--no-autolink.
--automake-gpc
- Set the Pascal compiler invoked by automake.
--automake-gcc
- Set the C compiler invoked by automake.
--automake-g++
- Set the C++ compiler invoked by automake.
--amtmpfile
- (Internal switch used for automake).
--maximum-field-alignment
- Set the maximum field alignment in bits if
pack-struct is in effect.
--ignore-packed
- Ignore
packed in the source code (default in --borland-pascal).
--no-ignore-packed
- Do not ignore
packed in the source code (default).
--ignore-garbage-after-dot
- Ignore anything after the terminating
. (default in --borland-pascal).
--no-ignore-garbage-after-dot
- Complain about anything after the terminating
. (default).
--extended-syntax
- Enable certain
dangerous features such as ignoring function results, pointer arithmetic or using CStrings as strings (same as {$X+}).
--no-extended-syntax
- Disable the dangerous features enabled by
--extended-syntax (default; same as {$X-}).
--short-circuit
- Guarantee short-circuit Boolean evaluation (default; same as
{$B-}).
--no-short-circuit
- Do not guarantee short-circuit Boolean evaluation (same as
{$B+}).
--mixed-comments
- Allow comments like
{ ... *) as required in ISO Pascal (default in ISO 7185/10206 Pascal mode).
--no-mixed-comments
- Ignore
{ and } within (* ... *) comments and vice versa (default).
--nested-comments
- Allow nested comments like
{ { } } and (* (* *) *).
--no-nested-comments
- Do not allow nested comments (default).
--delphi-comments
- Allow Delphi style
// comments (default).
--no-delphi-comments
- Do not allow Delphi style
// comments.
--macros
- Expand macros (default).
--no-macros
- Do not expand macros (default with
--ucsd-pascal, --borland-pascal or --delphi).
--ignore-function-results
- Do not complain when a function is called like a procedure.
--no-ignore-function-results
- Complain when a function is called like a procedure (default).
--truncate-strings
- Truncate strings being assigned to other strings of too short capacity..
--no-truncate-strings
- Treat string assignments to other strings of too short capacity as errors..
--exact-compare-strings
- Do not blank-pad strings for comparisons.
--no-exact-compare-strings
- Blank-pad strings for comparisons.
--double-quoted-strings
- Allow strings enclosed in "\"..
--no-double-quoted-strings
- Do not allow strings enclosed in "\"..
--longjmp-all-nonlocal-labels
- Use
longjmp for all nonlocal labels.
--no-longjmp-all-nonlocal-labels
- Use
longjmp only for nonlocal labels in the main program (default).
--io-checking
- Do automatic run-time checks after I/O operations (same as
{$I+}).
--no-io-checking
- Do not check I/O operations automatically (same as
{$I-}).
--read-base-specifier
- In read statements, allow input base specifier
n# (default).
--no-read-base-specifier
- In read statements, do not allow input base specifier
n# (default in ISO 7185 Pascal).
--read-hex
- In read statements, allow hexadecimal input with
$ (default).
--no-read-hex
- In read statements, do not allow hexadecimal input with
$ (default in ISO 7185 Pascal).
--read-white-space
- In read statements, require whitespace after numbers.
--no-read-white-space
- In read statements, do not require whitespace after numbers (default).
--write-clip-strings
- In write statements, truncate strings exceeding their field width (
Write (SomeLongString : 3)).
--no-write-clip-strings
- Do not truncate strings exceeding their field width.
--write-real-blank
- Output a blank in front of positive reals in exponential form (default).
--no-write-real-blank
- Do not output a blank in front of positive reals in exponential form.
--write-capital-exponent
- Write real exponents with a capital
E.
--no-write-capital-exponent
- Write real exponents with a lowercase
e.
--transparent-file-names
- Derive external file names from variable names.
--no-transparent-file-names
- Do not derive external file names from variable names (default).
--field-widths
- Comma-separated list of default field widths for Integer, Real, Boolean, LongInt, LongReal.
--no-field-widths
- Reset the default field widths.
--pedantic
- Reject everything not allowed in some dialect, e.g. redefinition of its keywords.
--no-pedantic
- Don't give pedantic warnings.
--stack-checking
- Enable stack checking (same as
{$S+}).
--no-stack-checking
- Disable stack checking (same as
{$S-}).
--typed-address
- Make the result of the address operator typed (same as
{$T+}, default).
--no-typed-address
- Make the result of the address operator an untyped pointer (same as
{$T-}).
--enable-keyword
- Enable a keyword, independently of dialect defaults.
--disable-keyword
- Disable a keyword, independently of dialect defaults.
--assert
- Enable assertion checking (default).
--no-assert
- Disable assertion checking.
--setlimit
- Define the range for
set of Integer etc..
--gpc-main
- External name for the program's entry point (default:
main).
--interface-only
- Compile only the interface part of a unit/module and exit (creates
.gpi file, no .o file.
--implementation-only
- Do not produce a GPI file; only compile the implementation part.
--executable-file-name
- Name for the output file, if specified; otherwise derive from main source file name.
--unit-path
- Directories where to look for unit/module sources.
--no-unit-path
- Forget about directories where to look for unit/module sources.
--object-path
- Directories where to look for additional object (and source) files.
--no-object-path
- Forget about directories where to look for additional object (and source) files.
--executable-path
- Path where to create the executable file.
--no-executable-path
- Create the executable file in the directory where the main source is (default).
--unit-destination-path
- Path where to create object and GPI files of Pascal units.
--no-unit-destination-path
- Create object and GPI files of Pascal units in the current directory (default).
--object-destination-path
- Path where to create additional object files (e.g. of C files, not Pascal units).
--no-object-destination-path
- Create additional object files (e.g. of C files, not Pascal units) in the current directory (default).
--no-default-paths
- Do not add a default path to the unit and object path.
--gpi-destination-path
- (Internal switch used for automake).
--uses
- Add an implicit
uses clause.
--init-modules
- Initialize the named modules in addition to those imported regularly; kind of a kludge.
--cidefine
- Define a case-insensitive macro.
--csdefine
- Define a case-sensitive macro.
--big-endian
- Tell GPC that the system is big-endian (for those targets where it can vary).
--little-endian
- Tell GPC that the system is little-endian (for those targets where it can vary).
--print-needed-options
- Print the needed options.
-Wwarnings
- Enable warnings (same as
{$W+}).
-Wno-warnings
- Disable all warnings (same as
{$W-}).
-Widentifier-case
- Warn about an identifier written with varying case.
-Wno-identifier-case
- Do not warn about an identifier written with varying case (default).
-Widentifier-case-local
- Warn about an identifier written with varying case within one program/module/unit.
-Wno-identifier-case-local
- Same as
-Wno-identifier-case.
-Winterface-file-name
- Warn when a unit/module interface differs from the file name.
-Wno-interface-file-name
- Do not warn when a unit/module interface differs from the file name (default).
-Wimplicit-abstract
- Warn when an object type not declared
abstract contains an abstract method (default).
-Wno-implicit-abstract
- Do not warn when an object type not
declared abstract contains an abstract method.
-Winherited-abstract
- Warn when an abstract object type inherits from a non-abstract one (default).
-Wno-inherited-abstract
- Do not warn when an abstract object type inherits from a non-abstract one.
-Wimplicit-io
- Warn when
Input or Output are used implicitly.
-Wno-implicit-io
- Do not warn when
Input or Output are used implicitly (default).
-Wfloat-equal
- Warn about
= and <> comparisons of real numbers.
-Wno-float-equal
- Do not warn about
= and <> comparisons of real numbers.
-Wtyped-const
- Warn about misuse of typed constants as initialized variables (default).
-Wno-typed-const
- Do not warn about misuse of typed constants as initialized variables.
-Wnear-far
- Warn about use of useless
near or far directives (default).
-Wno-near-far
- Do not warn about use of useless
near or far directives.
-Wunderscore
- Warn about double/leading/trailing underscores in identifiers.
-Wno-underscore
- Do not warn about double/leading/trailing underscores in identifiers.
-Wsemicolon
- Warn about a semicolon after @samp{then}, @samp{else} or @samp{do} (default).
-Wno-semicolon
- Do not warn about a semicolon after @samp{then}, @samp{else} or @samp{do}.
-Wlocal-external
- Warn about local
external declarations.
-Wno-local-external
- Do not warn about local
external declarations.
-Wmixed-comments
- Warn about mixed comments like
{ ... *).
-Wno-mixed-comments
- Do not warn about mixed comments.
-Wnested-comments
- Warn about nested comments like
{ { } }.
-Wno-nested-comments
- Do not warn about nested comments.