Deleted Added
full compact
flags.h (38510) flags.h (50506)
1/* Compilation switch flag definitions for GNU CC.
1/* Compilation switch flag definitions for GNU CC.
2 Copyright (C) 1987, 1988, 1994, 1995 Free Software Foundation, Inc.
2 Copyright (C) 1987, 88, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
3
4This file is part of GNU CC.
5
6GNU CC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10

--- 11 unchanged lines hidden (view full) ---

22extern char *main_input_filename;
23
24enum debug_info_type
25{
26 NO_DEBUG, /* Write no debug info. */
27 DBX_DEBUG, /* Write BSD .stabs for DBX (using dbxout.c). */
28 SDB_DEBUG, /* Write COFF for (old) SDB (using sdbout.c). */
29 DWARF_DEBUG, /* Write Dwarf debug info (using dwarfout.c). */
3
4This file is part of GNU CC.
5
6GNU CC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10

--- 11 unchanged lines hidden (view full) ---

22extern char *main_input_filename;
23
24enum debug_info_type
25{
26 NO_DEBUG, /* Write no debug info. */
27 DBX_DEBUG, /* Write BSD .stabs for DBX (using dbxout.c). */
28 SDB_DEBUG, /* Write COFF for (old) SDB (using sdbout.c). */
29 DWARF_DEBUG, /* Write Dwarf debug info (using dwarfout.c). */
30 DWARF2_DEBUG, /* Write Dwarf v2 debug info (using dwarf2out.c). */
30 XCOFF_DEBUG /* Write IBM/Xcoff debug info (using dbxout.c). */
31};
32
33/* Specify which kind of debugging info to generate. */
34extern enum debug_info_type write_symbols;
35
36enum debug_info_level
37{

--- 9 unchanged lines hidden (view full) ---

47/* Nonzero means use GNU-only extensions in the generated symbolic
48 debugging information. */
49extern int use_gnu_debug_info_extensions;
50
51/* Nonzero means do optimizations. -opt. */
52
53extern int optimize;
54
31 XCOFF_DEBUG /* Write IBM/Xcoff debug info (using dbxout.c). */
32};
33
34/* Specify which kind of debugging info to generate. */
35extern enum debug_info_type write_symbols;
36
37enum debug_info_level
38{

--- 9 unchanged lines hidden (view full) ---

48/* Nonzero means use GNU-only extensions in the generated symbolic
49 debugging information. */
50extern int use_gnu_debug_info_extensions;
51
52/* Nonzero means do optimizations. -opt. */
53
54extern int optimize;
55
56/* Nonzero means optimize for size. -Os. */
57
58extern int optimize_size;
59
55/* Nonzero means do stupid register allocation. -noreg.
56 Currently, this is 1 if `optimize' is 0. */
57
58extern int obey_regdecls;
59
60/* Don't print functions as they are compiled and don't print
61 times taken by the various passes. -quiet. */
62

--- 14 unchanged lines hidden (view full) ---

77/* Nonzero means warn if inline function is too large. */
78
79extern int warn_inline;
80
81/* Nonzero to warn about variables used before they are initialized. */
82
83extern int warn_uninitialized;
84
60/* Nonzero means do stupid register allocation. -noreg.
61 Currently, this is 1 if `optimize' is 0. */
62
63extern int obey_regdecls;
64
65/* Don't print functions as they are compiled and don't print
66 times taken by the various passes. -quiet. */
67

--- 14 unchanged lines hidden (view full) ---

82/* Nonzero means warn if inline function is too large. */
83
84extern int warn_inline;
85
86/* Nonzero to warn about variables used before they are initialized. */
87
88extern int warn_uninitialized;
89
90/* Zero if unknown pragmas are ignored
91 One if the compiler should warn about an unknown pragma not in
92 a system include file.
93 Greater than one if the compiler should warn for all unknown
94 pragmas. */
95
96extern int warn_unknown_pragmas;
97
85/* Nonzero means warn about all declarations which shadow others. */
86
87extern int warn_shadow;
88
89/* Warn if a switch on an enum fails to have a case for every enum value. */
90
91extern int warn_switch;
92

--- 26 unchanged lines hidden (view full) ---

119extern int warn_larger_than;
120extern unsigned larger_than_size;
121
122/* Warn if a function returns an aggregate,
123 since there are often incompatible calling conventions for doing this. */
124
125extern int warn_aggregate_return;
126
98/* Nonzero means warn about all declarations which shadow others. */
99
100extern int warn_shadow;
101
102/* Warn if a switch on an enum fails to have a case for every enum value. */
103
104extern int warn_switch;
105

--- 26 unchanged lines hidden (view full) ---

132extern int warn_larger_than;
133extern unsigned larger_than_size;
134
135/* Warn if a function returns an aggregate,
136 since there are often incompatible calling conventions for doing this. */
137
138extern int warn_aggregate_return;
139
140/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
141
142extern int flag_format_extensions;
143
127/* Nonzero if generating code to do profiling. */
128
129extern int profile_flag;
130
131/* Nonzero if generating code to do profiling on the basis of basic blocks. */
132
133extern int profile_block_flag;
134
144/* Nonzero if generating code to do profiling. */
145
146extern int profile_flag;
147
148/* Nonzero if generating code to do profiling on the basis of basic blocks. */
149
150extern int profile_block_flag;
151
152/* Nonzero if generating code to profile program flow graph arcs. */
153
154extern int profile_arc_flag;
155
156/* Nonzero if generating info for gcov to calculate line test coverage. */
157
158extern int flag_test_coverage;
159
160/* Nonzero indicates that branch taken probabilities should be calculated. */
161
162extern int flag_branch_probabilities;
163
135/* Nonzero for -pedantic switch: warn about anything
136 that standard C forbids. */
137
138extern int pedantic;
139
140/* Temporarily suppress certain warnings.
141 This is set while reading code from a system header file. */
142

--- 55 unchanged lines hidden (view full) ---

198
199extern int flag_unroll_loops;
200
201/* Nonzero enables loop unrolling in unroll.c. All loops are unrolled.
202 This is generally not a win. */
203
204extern int flag_unroll_all_loops;
205
164/* Nonzero for -pedantic switch: warn about anything
165 that standard C forbids. */
166
167extern int pedantic;
168
169/* Temporarily suppress certain warnings.
170 This is set while reading code from a system header file. */
171

--- 55 unchanged lines hidden (view full) ---

227
228extern int flag_unroll_loops;
229
230/* Nonzero enables loop unrolling in unroll.c. All loops are unrolled.
231 This is generally not a win. */
232
233extern int flag_unroll_all_loops;
234
235/* Nonzero forces all invariant computations in loops to be moved
236 outside the loop. */
237
238extern int flag_move_all_movables;
239
240/* Nonzero forces all general induction variables in loops to be
241 strength reduced. */
242
243extern int flag_reduce_all_givs;
244
206/* Nonzero for -fcse-follow-jumps:
207 have cse follow jumps to do a more extensive job. */
208
209extern int flag_cse_follow_jumps;
210
211/* Nonzero for -fcse-skip-blocks:
212 have cse follow a branch around a block. */
213

--- 33 unchanged lines hidden (view full) ---

247
248/* Nonzero allows GCC to violate some IEEE or ANSI rules regarding math
249 operations in the interest of optimization. For example it allows
250 GCC to assume arguments to sqrt are nonnegative numbers, allowing
251 faster code for sqrt to be generated. */
252
253extern int flag_fast_math;
254
245/* Nonzero for -fcse-follow-jumps:
246 have cse follow jumps to do a more extensive job. */
247
248extern int flag_cse_follow_jumps;
249
250/* Nonzero for -fcse-skip-blocks:
251 have cse follow a branch around a block. */
252

--- 33 unchanged lines hidden (view full) ---

286
287/* Nonzero allows GCC to violate some IEEE or ANSI rules regarding math
288 operations in the interest of optimization. For example it allows
289 GCC to assume arguments to sqrt are nonnegative numbers, allowing
290 faster code for sqrt to be generated. */
291
292extern int flag_fast_math;
293
294/* Nonzero means to run loop optimizations twice. */
295
296extern int flag_rerun_loop_opt;
297
298/* Nonzero means to assume that a structure or an array reference at
299 a varying address cannot alias a scalar at a fixed address. */
300
301extern int flag_structure_noalias;
302
255/* Nonzero means make functions that look like good inline candidates
256 go inline. */
257
258extern int flag_inline_functions;
259
260/* Nonzero for -fkeep-inline-functions: even if we make a function
261 go inline everywhere, keep its definition around for debugging
262 purposes. */

--- 23 unchanged lines hidden (view full) ---

286/* flag_schedule_insns means schedule insns within basic blocks (before
287 local_alloc).
288 flag_schedule_insns_after_reload means schedule insns after
289 global_alloc. */
290
291extern int flag_schedule_insns;
292extern int flag_schedule_insns_after_reload;
293
303/* Nonzero means make functions that look like good inline candidates
304 go inline. */
305
306extern int flag_inline_functions;
307
308/* Nonzero for -fkeep-inline-functions: even if we make a function
309 go inline everywhere, keep its definition around for debugging
310 purposes. */

--- 23 unchanged lines hidden (view full) ---

334/* flag_schedule_insns means schedule insns within basic blocks (before
335 local_alloc).
336 flag_schedule_insns_after_reload means schedule insns after
337 global_alloc. */
338
339extern int flag_schedule_insns;
340extern int flag_schedule_insns_after_reload;
341
294/* Nonzero means put things in delayed-branch slots if supported. */
342#ifdef HAIFA
343/* The following flags have effect only for scheduling before register
344 allocation:
295
345
296extern int flag_delayed_branch;
346 flag_schedule_interblock means schedule insns accross basic blocks.
347 flag_schedule_speculative means allow speculative motion of non-load insns.
348 flag_schedule_speculative_load means allow speculative motion of some
349 load insns.
350 flag_schedule_speculative_load_dangerous allows speculative motion of more
351 load insns. */
297
352
298/* Nonzero means to run cleanups after CALL_EXPRs. */
353extern int flag_schedule_interblock;
354extern int flag_schedule_speculative;
355extern int flag_schedule_speculative_load;
356extern int flag_schedule_speculative_load_dangerous;
299
357
300extern int flag_short_temps;
358/* flag_on_branch_count_reg means try to replace add-1,compare,branch tupple
359 by a cheaper branch, on a count register. */
360extern int flag_branch_on_count_reg;
361#endif /* HAIFA */
301
362
363
364/* Nonzero means put things in delayed-branch slots if supported. */
365
366extern int flag_delayed_branch;
367
302/* Nonzero means pretend it is OK to examine bits of target floats,
303 even if that isn't true. The resulting code will have incorrect constants,
304 but the same series of instructions that the native compiler would make. */
305
306extern int flag_pretend_float;
307
308/* Nonzero means change certain warnings into errors.
309 Usually these are warnings about failure to conform to some standard. */
310
311extern int flag_pedantic_errors;
312
313/* Nonzero means generate position-independent code.
314 This is not fully implemented yet. */
315
316extern int flag_pic;
317
368/* Nonzero means pretend it is OK to examine bits of target floats,
369 even if that isn't true. The resulting code will have incorrect constants,
370 but the same series of instructions that the native compiler would make. */
371
372extern int flag_pretend_float;
373
374/* Nonzero means change certain warnings into errors.
375 Usually these are warnings about failure to conform to some standard. */
376
377extern int flag_pedantic_errors;
378
379/* Nonzero means generate position-independent code.
380 This is not fully implemented yet. */
381
382extern int flag_pic;
383
318/* Nonzero means place uninitialized global data in the bss section. */
384/* Nonzero means generate extra code for exception handling and enable
385 exception handling. */
319
386
387extern int flag_exceptions;
388
389/* Nonzero means use the new model for exception handling. Replaces
390 -DNEW_EH_MODEL as a compile option. */
391
392extern int flag_new_exceptions;
393
394/* Nonzero means don't place uninitialized global data in common storage
395 by default. */
396
320extern int flag_no_common;
321
322/* -finhibit-size-directive inhibits output of .size for ELF.
323 This is used only for compiling crtstuff.c,
324 and it may be extended to other effects
325 needed for crtstuff.c on other systems. */
326extern int flag_inhibit_size_directive;
327
397extern int flag_no_common;
398
399/* -finhibit-size-directive inhibits output of .size for ELF.
400 This is used only for compiling crtstuff.c,
401 and it may be extended to other effects
402 needed for crtstuff.c on other systems. */
403extern int flag_inhibit_size_directive;
404
405/* Nonzero means place each function into its own section on those platforms
406 which support arbitrary section names and unlimited numbers of sections. */
407
408extern int flag_function_sections;
409
328/* -fverbose-asm causes extra commentary information to be produced in
329 the generated assembly code (to make it more readable). This option
330 is generally only of use to those who actually need to read the
410/* -fverbose-asm causes extra commentary information to be produced in
411 the generated assembly code (to make it more readable). This option
412 is generally only of use to those who actually need to read the
331 generated assembly code (perhaps while debugging the compiler itself). */
413 generated assembly code (perhaps while debugging the compiler itself).
414 -fno-verbose-asm, the default, causes the extra information
415 to not be added and is useful when comparing two assembler files. */
332
333extern int flag_verbose_asm;
334
416
417extern int flag_verbose_asm;
418
419/* -dA causes debug information to be produced in
420 the generated assembly code (to make it more readable). This option
421 is generally only of use to those who actually need to read the
422 generated assembly code (perhaps while debugging the compiler itself).
423 Currently, this switch is only used by dwarfout.c; however, it is intended
424 to be a catchall for printing debug information in the assembler file. */
425
426extern int flag_debug_asm;
427
335/* -fgnu-linker specifies use of the GNU linker for initializations.
336 -fno-gnu-linker says that collect will be used. */
337extern int flag_gnu_linker;
338
339/* Tag all structures with __attribute__(packed) */
340extern int flag_pack_struct;
341
428/* -fgnu-linker specifies use of the GNU linker for initializations.
429 -fno-gnu-linker says that collect will be used. */
430extern int flag_gnu_linker;
431
432/* Tag all structures with __attribute__(packed) */
433extern int flag_pack_struct;
434
342/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
435/* This flag is only tested if alias checking is enabled.
436 0 if pointer arguments may alias each other. True in C.
437 1 if pointer arguments may not alias each other but may alias
438 global variables.
439 2 if pointer arguments may not alias each other and may not
440 alias global variables. True in Fortran.
441 The value is ignored if flag_alias_check is 0. */
442extern int flag_argument_noalias;
343
443
344extern int flag_format_extensions;
444/* Nonzero if we should do (language-dependent) alias analysis.
445 Typically, this analysis will assume that expressions of certain
446 types do not alias expressions of certain other types. Only used
447 if alias analysis (in general) is enabled. */
448extern int flag_strict_aliasing;
449
450/* Emit code to check for stack overflow; also may cause large objects
451 to be allocated dynamically. */
452extern int flag_stack_check;
453
454/* Do the full regmove optimization pass. */
455extern int flag_regmove;
345
346/* Other basic status info about current function. */
347
348/* Nonzero means current function must be given a frame pointer.
349 Set in stmt.c if anything is allocated on the stack there.
350 Set in reload1.c if anything is allocated on the stack there. */
351
352extern int frame_pointer_needed;

--- 7 unchanged lines hidden (view full) ---

360 from nested functions. */
361
362extern int current_function_has_nonlocal_label;
363
364/* Nonzero if function being compiled has nonlocal gotos to parent
365 function. */
366
367extern int current_function_has_nonlocal_goto;
456
457/* Other basic status info about current function. */
458
459/* Nonzero means current function must be given a frame pointer.
460 Set in stmt.c if anything is allocated on the stack there.
461 Set in reload1.c if anything is allocated on the stack there. */
462
463extern int frame_pointer_needed;

--- 7 unchanged lines hidden (view full) ---

471 from nested functions. */
472
473extern int current_function_has_nonlocal_label;
474
475/* Nonzero if function being compiled has nonlocal gotos to parent
476 function. */
477
478extern int current_function_has_nonlocal_goto;
479
480/* Nonzero if this function has a computed goto.
481
482 It is computed during find_basic_blocks or during stupid life
483 analysis. */
484
485extern int current_function_has_computed_jump;
486
487/* Nonzero if GCC must add code to check memory access (used by Checker). */
488
489extern int flag_check_memory_usage;
490
491/* Nonzero if GCC must prefix function names (used with
492 flag_check_memory_usage). */
493
494extern int flag_prefix_function_name;
495/* Nonzero if the current function is a thunk, so we should try to cut
496 corners where we can. */
497extern int current_function_is_thunk;
498
499/* Value of the -G xx switch, and whether it was passed or not. */
500extern int g_switch_value;
501extern int g_switch_set;