; Options for the Modula-2 front end. ; ; Copyright (C) 2016-2024 Free Software Foundation, Inc. ; Contributed by Gaius Mulley . ; ; 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 . *) ; 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 Wcase-enum Modula-2 turns on case statement label compile time checking when using an expression of an enum type. 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 Wuninit-variable-checking Modula-2 turns on compile time analysis in the first basic block of a procedure detecting access to uninitialized data. Wuninit-variable-checking= Modula-2 Joined turns on compile time analysis to detect access to uninitialized variables, the checking can be specified by: known,cond,all. 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 one 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 will 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, the libraries may be specified by a comma separated abbreviation: log,min,pim,iso or by directory names: 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-pathname= Modula-2 Joined specify the module mangled prefix name for all modules in the following include paths fm2-pathnameI Modula-2 Joined ; For internal use only: used by the driver to copy the user facing -I option fm2-plugin Modula-2 insert plugin to identify runtime errors at compiletime fm2-prefix= Modula-2 Joined specify the module mangled prefix name 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 dependencies 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 will 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 isysroot 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.