5.1 GPC options besides those of GCC.
The following table lists the command line options GPC understands
in addition to those understood by GCC.
--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 being processed to standard error.
--no-debug-source
- Do not output the source while it is being processed (default).
--disable-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.
--no-progress-bar
- Do not output number of processed lines while compiling (default).
--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).
--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.
--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
- same as --ignore-function-results --pointer-arithmetic --cstrings-as-strings -Wno-absolute (same as {$X+}).
--no-extended-syntax
- Opposite of --extended-syntax (same as {$X-}).
--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).
--pointer-arithmetic
- Enable pointer arithmetic.
--no-pointer-arithmetic
- Disable pointer arithmetic (default).
--cstrings-as-strings
- Treat CStrings as strings.
--no-cstrings-as-strings
- Do not treat CStrings as strings (default).
-Wabsolute
- Warn about variables at absolute adresses and absolute variable with non-constant addresses (default).
-Wno-absolute
- Do not warn about variables at absolute adresses and absolute variable with non-constant addresses.
--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).
--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 "\" (default).
--no-double-quoted-strings
- Do not allow strings enclosed in "\" (default with dialect other than --mac-pascal).
--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).
--nonlocal-exit
- Allow non-local Exit statements (default in --ucsd-pascal and --mac-pascal).
--no-nonlocal-exit
- Do not allow non-local Exit statements (default).
--io-checking
- Check I/O operations automatically (same as {$I+}) (default).
--no-io-checking
- Do not check I/O operations automatically (same as {$I-}).
--pointer-checking-user-defined
- Use user-defined procedure for validating pointers.
--no-pointer-checking-user-defined
- Do not use user-defined procedure for validating pointers (default).
--pointer-checking
- Validate pointers before dereferencing.
--no-pointer-checking
- Do not validate pointers before dereferencing (default).
--object-checking
- Check for valid objects on virtual method calls (default).
--no-object-checking
- Do not check for valid objects on virtual method calls.
--range-checking
- Do automatic range checks') (default).
--no-range-checking
- Do not do automatic range checks (same as {$R-}).
--range-and-object-checking
- Same as --range-checking --object-checking, same as {$R+}.
--no-range-and-object-checking
- Same as --no-range-checking --no-object-checking, same as {$R-}.
--case-value-checking
- Cause a runtime error if a case matches no branch (default in ISO Pascal modes).
--no-case-value-checking
- Do not cause a runtime error if a case matches no branch (default).
--stack-checking
- Enable stack checking (same as {$S+}).
--no-stack-checking
- Disable stack checking (same as {$S-} (default)).
--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
- Optional colon-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.
--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.
--implicit-result
- Enable implicit Result for functions (default only in --delphi).
--no-implicit-result
- Disable implicit Result for functions.
--enable-predefined-identifier
- Enable a predefined identifier, independently of dialect defaults.
--disable-predefined-identifier
- Disable a predefined identifier, independently of dialect defaults.
--assertions
- Enable assertion checking (default).
--no-assertions
- Disable assertion checking.
--setlimit
- Define the range for set of Integer etc..
--gpc-main
- External name for the program's entry point (default: main).
--propagate-units
- Automatically re-export all imported declarations.
--no-propagate-units
- Do not automatically re-export all imported declarations.
--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).
--disable-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-local
- Warn about an identifier written with varying case within one program/module/unit.
-Wno-identifier-case-local
- Same as -Wno-identifier-case.
-Widentifier-case
- Warn about an identifier written with varying case.
-Wno-identifier-case
- Do not warn about an identifier written with varying case (default).
-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).
--methods-always-virtual
- Make all methods virtual (default in --mac-pascal).
--no-methods-always-virtual
- Do not make all methods virtual (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.
-Wobject-assignment
- Warn when when assigning objects or declaring them as value parameters or function results (default).
-Wno-object-assignment
- Do not warn when assigning objects or declaring them as value parameters or function results (default in --borland-pascal).
-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 then, else or do (default).
-Wno-semicolon
- Do not warn about a semicolon after then, else or do.
-Wlocal-external
- Warn about local external declarations.
-Wno-local-external
- Do not warn about local external declarations.
-Wdynamic-arrays
- Warn about arrays whose size is determined at run time (including array slices).
-Wno-dynamic-arrays
- Do not warn about arrays whose size is determined at run time (including array slices).
-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.
--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.