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 CString
s 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.