blob: b6ef8161d90d7b671e81622ac2521cd503635af6 [file] [log] [blame]
; Options for the Modula-2 front end.
;
; Copyright (C) 2016-2023 Free Software Foundation, Inc.
; Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
;
; This file is part of GNU Modula-2.
;
; GNU Modula-2 is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 3, or (at your option)
; any later version.
;
; GNU Modula-2 is distributed in the hope that it will be useful, but
; WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
; General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GNU Modula-2; see the file COPYING. If not,
; see <https://www.gnu.org/licenses/>. *)
; See the GCC internals manual for a description of this file's format.
; There are two sections:
; 1. Options specific to Modula-2
; 2. Options shared with C or the Driver.
; Please keep any new additions for either case in the relevant section.
; Please try to keep this file in ASCII collating order.
Language
Modula-2
Wpedantic-param-names
Modula-2
compiler checks to force definition module procedure parameter names with their implementation module counterpart
Wpedantic-cast
Modula-2
compiler warns if a cast is being used on types of differing sizes
Wverbose-unbounded
Modula-2
inform user which parameters will be passed by reference
Wstyle
Modula-2
extra compile time semantic checking, typically tries to catch poor programming style
fauto-init
Modula-2
automatically initializes all pointers to NIL
fbounds
Modula-2
turns on runtime subrange, array index and indirection via NIL pointer checking
fcase
Modula-2
turns on runtime checking to check whether a CASE statement requires an ELSE clause when on was not specified
fcpp
Modula-2
use cpp to preprocess the module
fcpp-end
Modula-2
passed to the preprocessor if -fcpp is used (internal switch)
fcpp-begin
Modula-2
passed to the preprocessor if -fcpp is used (internal switch)
fdebug-builtins
Modula-2
call a real function, rather than the builtin equivalent
fd
Modula-2
turn on internal debugging of the compiler (internal switch)
fdebug-trace-quad
Modula-2
turn on quadruple tracing (internal switch)
fdebug-trace-api
Modula-2
turn on the Modula-2 api tracing (internal switch)
fdebug-function-line-numbers
Modula-2
turn on the Modula-2 function line number generation (internal switch)
fdef=
Modula-2 Joined
recognise the specified suffix as a definition module filename
fdump-system-exports
Modula-2
display all inbuilt system items
fextended-opaque
Modula-2
allows opaque types to be implemented as any type (a GNU Modula-2 extension)
ffloatvalue
Modula-2
turns on runtime checking to check whether a floating point number is about to exceed range
fgen-module-list=
Modula-2 Joined
create a topologically sorted module list from all dependent modules used in the application
findex
Modula-2
turns on all range checking for numerical values
fiso
Modula-2
use ISO dialect of Modula-2
flibs=
Modula-2 Joined
specify the library order, currently legal entries include: log, min, pim, iso or their directory name equivalent m2log, m2min, m2pim, m2iso.
flocation=
Modula-2 Joined
set all location values to a specific value (internal switch)
fm2-g
Modula-2
generate extra nops to improve debugging, producing an instruction for every code related keyword
fm2-lower-case
Modula-2
generate error messages which render keywords in lower case
fm2-plugin
Modula-2
insert plugin to identify runtime errors at compiletime (default on)
fm2-statistics
Modula-2
display statistics about the amount of source lines compiled and symbols used
fm2-strict-type
Modula-2
experimental flag to turn on the new strict type checker
fm2-whole-program
Modula-2
compile all implementation modules and program module at once
fmod=
Modula-2 Joined
recognise the specified suffix as implementation and module filenames
fnil
Modula-2
turns on runtime checking to detect accessing data through a NIL value pointer
fpim
Modula-2
use PIM [234] dialect of Modula-2
fpim2
Modula-2
use PIM 2 dialect of Modula-2
fpim3
Modula-2
use PIM 3 dialect of Modula-2
fpim4
Modula-2
use PIM 4 dialect of Modula-2
fpositive-mod-floor-div
Modula-2
force positive result from MOD and DIV result floor
fpthread
Modula-2
link against the pthread library (default on)
fq
Modula-2
internal compiler debugging information, dump the list of quadruples
frange
Modula-2
turns on all range checking for numerical values
freturn
Modula-2
turns on runtime checking for functions which finish without executing a RETURN statement
fruntime-modules=
Modula-2 Joined
specify the list of runtime modules and their initialization order
fscaffold-dynamic
Modula-2
the modules initialization order is dynamically determined by M2RTS and application dependancies
fscaffold-c
Modula-2
generate a C source scaffold for the current module being compiled
fscaffold-c++
Modula-2
generate a C++ source scaffold for the current module being compiled
fscaffold-main
Modula-2
generate the main function
fscaffold-static
Modula-2
generate static scaffold initialization and finalization for every module inside main
fshared
Modula-2
generate a shared library from the module
fsoft-check-all
Modula-2
turns on all software runtime checking (an abbreviation for -fnil -frange -findex -fwholediv -fcase -freturn -fwholevalue -ffloatvalue)
fsources
Modula-2
display the location of module source files as they are compiled
fswig
Modula-2
create a swig interface file for the module
funbounded-by-reference
Modula-2
optimize non var unbounded parameters by passing it by reference, providing it is not written to within the callee procedure.
fuse-list=
Modula-2 Joined
orders the initialization/finalializations for scaffold-static or force linking of modules if scaffold-dynamic
fversion
Modula-2
; Documented in common.opt
fwholediv
Modula-2
turns on all division and modulus by zero checking for ordinal values
fwholevalue
Modula-2
turns on runtime checking to check whether a whole number is about to exceed range
static-libgm2
Driver
Link the standard Modula-2 libraries statically in the compilation.
; Here are C options that we also recognise, either within the compiler
; or to build the preprocessor command lines.
Wall
Modula-2
; Documented in c.opt
Wpedantic
Modula-2
; Documented in common.opt
Wreturn-type
Modula-2
; Documented in common.opt
Wunused-variable
Modula-2
; Documented in c.opt
Wunused-parameter
Modula-2
; Documented in c.opt
B
Modula-2
; Documented in c.opt
D
Modula-2
; Documented in c.opt
E
Modula-2
; Documented in c.opt
I
Modula-2 Joined Separate
; Documented in c.opt
L
Modula-2 Joined Separate
; Not documented
M
Modula-2
; Documented in c.opt
MD
Modula-2
; Documented in c.opt
MF
Modula-2
; Documented in c.opt
MG
Modula-2
; Documented in c.opt
MM
Modula-2
; Documented in c.opt
MMD
Modula-2
; Documented in c.opt
Mmodules
Modula-2
; Documented in c.opt
Mno-modules
Modula-2
; Documented in c.opt
MP
Modula-2
; Documented in c.opt
MQ
Modula-2
; Documented in c.opt
MT
Modula-2
; Documented in c.opt
P
Modula-2
; Documented in c.opt
ansi
Modula-2
; Documented in c.opt
c
Modula-2
; Documented in c.opt
fexceptions
Modula-2
; Documented in common.opt
fobjc-std=objc1
Modula-2
; Documented in c.opt
fpreprocessed
Modula-2
; Documented in c.opt
fworking-directory
Modula-2
; Documented in c.opt
iprefix
Modula-2
; Documented in c.opt
iquote
Modula-2
; Documented in c.opt
isystem
Modula-2
; Documented in c.opt
idirafter
Modula-2
; Documented in c.opt
imultilib
Modula-2
-save-temps
Modula-2 Alias(save-temps)
save-temps
Modula-2
save temporary preprocessed files
save-temps=
Modula-2 Joined
save temporary preprocessed files
traditional-cpp
Modula-2
; Documented in c.opt
; This comment is to ensure we retain the blank line above.