libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / m2 / lang.opt
blob3fc84a12d94d9fbab3f9be97c31d38efec6a04af
1 ; Options for the Modula-2 front end.
3 ; Copyright (C) 2016-2024 Free Software Foundation, Inc.
4 ; Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
6 ; This file is part of GNU Modula-2.
8 ; GNU Modula-2 is free software; you can redistribute it and/or modify
9 ; it under the terms of the GNU General Public License as published by
10 ; the Free Software Foundation; either version 3, or (at your option)
11 ; any later version.
13 ; GNU Modula-2 is distributed in the hope that it will be useful, but
14 ; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 ; General Public License for more details.
18 ; You should have received a copy of the GNU General Public License
19 ; along with GNU Modula-2; see the file COPYING.  If not,
20 ; see <https://www.gnu.org/licenses/>.  *)
22 ; See the GCC internals manual for a description of this file's format.
24 ; There are two sections:
25 ;  1. Options specific to Modula-2
26 ;  2. Options shared with C or the Driver.
27 ; Please keep any new additions for either case in the relevant section.
28 ; Please try to keep this file in ASCII collating order.
30 Language
31 Modula-2
33 Wcase-enum
34 Modula-2
35 turns on case statement label compile time checking when using an expression of an enum type.
37 Wpedantic-param-names
38 Modula-2
39 compiler checks to force definition module procedure parameter names with their implementation module counterpart
41 Wpedantic-cast
42 Modula-2
43 compiler warns if a cast is being used on types of differing sizes
45 Wverbose-unbounded
46 Modula-2
47 inform user which parameters will be passed by reference
49 Wstyle
50 Modula-2
51 extra compile time semantic checking, typically tries to catch poor programming style
53 Wuninit-variable-checking
54 Modula-2
55 turns on compile time analysis in the first basic block of a procedure detecting access to uninitialized data.
57 Wuninit-variable-checking=
58 Modula-2 Joined
59 turns on compile time analysis to detect access to uninitialized variables, the checking can be specified by: known,cond,all.
61 fauto-init
62 Modula-2
63 automatically initializes all pointers to NIL
65 fbounds
66 Modula-2
67 turns on runtime subrange, array index and indirection via NIL pointer checking
69 fcase
70 Modula-2
71 turns on runtime checking to check whether a CASE statement requires an ELSE clause when one was not specified
73 fcpp
74 Modula-2
75 use cpp to preprocess the module
77 fcpp-end
78 Modula-2
79 passed to the preprocessor if -fcpp is used (internal switch)
81 fcpp-begin
82 Modula-2
83 passed to the preprocessor if -fcpp is used (internal switch)
85 fdebug-builtins
86 Modula-2
87 call a real function, rather than the builtin equivalent
90 Modula-2
91 turn on internal debugging of the compiler (internal switch)
93 fdebug-function-line-numbers
94 Modula-2
95 turn on tracing of procedure line numbers (internal switch)
97 fdef=
98 Modula-2 Joined
99 recognize the specified suffix as a definition module filename
101 fdump-system-exports
102 Modula-2
103 display all inbuilt system items
105 fextended-opaque
106 Modula-2
107 allows opaque types to be implemented as any type (a GNU Modula-2 extension)
109 ffloatvalue
110 Modula-2
111 turns on runtime checking to check whether a floating point number will exceed range
113 fgen-module-list=
114 Modula-2 Joined
115 create a topologically sorted module list from all dependent modules used in the application
117 findex
118 Modula-2
119 turns on all range checking for numerical values
121 fiso
122 Modula-2
123 use ISO dialect of Modula-2
125 flibs=
126 Modula-2 Joined
127 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.
129 flocation=
130 Modula-2 Joined
131 set all location values to a specific value (internal switch)
133 fm2-debug-trace=
134 Modula-2 Joined
135 turn on internal debug tracing for quad,token,line,all (internal switch)
137 fm2-dump=
138 Modula-2 Joined
139 dump Modula-2 internal intemediate representation specified by: all,quad,decl,gimple
141 fm2-dump-decl=
142 Modula-2 Joined
143 dump Modula-2 decls to the filename stem specified
145 fm2-dump-gimple=
146 Modula-2 Joined
147 dump Modula-2 gimple to the filename stem specified
149 fm2-dump-quad=
150 Modula-2 Joined
151 dump Modula-2 quads to the filename stem specified
153 fm2-dump-filter=
154 Modula-2 Joined
155 filter the language dump using a comma separated list of procedures and modules
157 fm2-g
158 Modula-2
159 generate extra nops to improve debugging, producing an instruction for every code related keyword
161 fm2-lower-case
162 Modula-2
163 generate error messages which render keywords in lower case
165 fm2-pathname=
166 Modula-2 Joined
167 specify the module mangled prefix name for all modules in the following include paths
169 fm2-pathnameI
170 Modula-2 Joined
171 ; For internal use only: used by the driver to copy the user facing -I option
173 fm2-plugin
174 Modula-2
175 insert plugin to identify runtime errors at compiletime
177 fm2-prefix=
178 Modula-2 Joined
179 specify the module mangled prefix name
181 fm2-statistics
182 Modula-2
183 display statistics about the amount of source lines compiled and symbols used
185 fm2-strict-type
186 Modula-2
187 experimental flag to turn on the new strict type checker
189 fm2-whole-program
190 Modula-2
191 compile all implementation modules and program module at once
193 fmod=
194 Modula-2 Joined
195 recognize the specified suffix as implementation and module filenames
197 fnil
198 Modula-2
199 turns on runtime checking to detect accessing data through a NIL value pointer
201 fpim
202 Modula-2
203 use PIM [234] dialect of Modula-2
205 fpim2
206 Modula-2
207 use PIM 2 dialect of Modula-2
209 fpim3
210 Modula-2
211 use PIM 3 dialect of Modula-2
213 fpim4
214 Modula-2
215 use PIM 4 dialect of Modula-2
217 fpositive-mod-floor-div
218 Modula-2
219 force positive result from MOD and DIV result floor
221 fpthread
222 Modula-2
223 link against the pthread library (default on)
226 Modula-2
227 internal compiler debugging information, dump the list of quadruples
229 frange
230 Modula-2
231 turns on all range checking for numerical values
233 freturn
234 Modula-2
235 turns on runtime checking for functions which finish without executing a RETURN statement
237 fruntime-modules=
238 Modula-2 Joined
239 specify the list of runtime modules and their initialization order
241 fscaffold-dynamic
242 Modula-2
243 the modules initialization order is dynamically determined by M2RTS and application dependencies
245 fscaffold-c
246 Modula-2
247 generate a C source scaffold for the current module being compiled
249 fscaffold-c++
250 Modula-2
251 generate a C++ source scaffold for the current module being compiled
253 fscaffold-main
254 Modula-2
255 generate the main function
257 fscaffold-static
258 Modula-2
259 generate static scaffold initialization and finalization for every module inside main
261 fshared
262 Modula-2
263 generate a shared library from the module
265 fsoft-check-all
266 Modula-2
267 turns on all software runtime checking (an abbreviation for -fnil -frange -findex -fwholediv -fcase -freturn -fwholevalue -ffloatvalue)
269 fsources
270 Modula-2
271 display the location of module source files as they are compiled
273 fswig
274 Modula-2
275 create a swig interface file for the module
277 funbounded-by-reference
278 Modula-2
279 optimize non var unbounded parameters by passing it by reference, providing it is not written to within the callee procedure.
281 fuse-list=
282 Modula-2 Joined
283 orders the initialization/finalizations for scaffold-static or force linking of modules if scaffold-dynamic
285 fversion
286 Modula-2
287 ; Documented in common.opt
289 fwholediv
290 Modula-2
291 turns on all division and modulus by zero checking for ordinal values
293 fwholevalue
294 Modula-2
295 turns on runtime checking to check whether a whole number will exceed range
297 static-libgm2
298 Driver
299 Link the standard Modula-2 libraries statically in the compilation.
301 ; Here are C options that we also recognize, either within the compiler
302 ; or to build the preprocessor command lines.
304 Wall
305 Modula-2
306 ; Documented in c.opt
308 Wpedantic
309 Modula-2
310 ; Documented in common.opt
312 Wreturn-type
313 Modula-2
314 ; Documented in common.opt
316 Wunused-variable
317 Modula-2
318 ; Documented in c.opt
320 Wunused-parameter
321 Modula-2
322 ; Documented in c.opt
325 Modula-2
326 ; Documented in c.opt
329 Modula-2
330 ; Documented in c.opt
333 Modula-2
334 ; Documented in c.opt
337 Modula-2 Joined Separate
338 ; Documented in c.opt
341 Modula-2 Joined Separate
342 ; Not documented
345 Modula-2
346 ; Documented in c.opt
349 Modula-2
350 ; Documented in c.opt
353 Modula-2
354 ; Documented in c.opt
357 Modula-2
358 ; Documented in c.opt
361 Modula-2
362 ; Documented in c.opt
365 Modula-2
366 ; Documented in c.opt
368 Mmodules
369 Modula-2
370 ; Documented in c.opt
372 Mno-modules
373 Modula-2
374 ; Documented in c.opt
377 Modula-2
378 ; Documented in c.opt
381 Modula-2
382 ; Documented in c.opt
385 Modula-2
386 ; Documented in c.opt
389 Modula-2
390 ; Documented in c.opt
392 ansi
393 Modula-2
394 ; Documented in c.opt
397 Modula-2
398 ; Documented in c.opt
400 fexceptions
401 Modula-2
402 ; Documented in common.opt
404 fobjc-std=objc1
405 Modula-2
406 ; Documented in c.opt
408 fpreprocessed
409 Modula-2
410 ; Documented in c.opt
412 fworking-directory
413 Modula-2
414 ; Documented in c.opt
416 iprefix
417 Modula-2
418 ; Documented in c.opt
420 iquote
421 Modula-2
422 ; Documented in c.opt
424 isysroot
425 Modula-2
426 ; Documented in c.opt
428 isystem
429 Modula-2
430 ; Documented in c.opt
432 idirafter
433 Modula-2
434 ; Documented in c.opt
436 imultilib
437 Modula-2
439 -save-temps
440 Modula-2 Alias(save-temps)
442 save-temps
443 Modula-2
444 save temporary preprocessed files
446 save-temps=
447 Modula-2 Joined
448 save temporary preprocessed files
450 traditional-cpp
451 Modula-2
452 ; Documented in c.opt
454 ; This comment is to ensure we retain the blank line above.