|
|
1.1 root 1: /* Compilation switch flag definitions for GNU CC. 1.1.1.7 ! root 2: Copyright (C) 1987, 1988, 1994 Free Software Foundation, Inc. 1.1 root 3: 4: This file is part of GNU CC. 5: 6: GNU CC is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU CC is distributed in the hope that it will be useful, 12: but WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14: GNU General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU CC; see the file COPYING. If not, write to 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ 19: 20: /* Name of the input .c file being compiled. */ 21: extern char *main_input_filename; 22: 23: enum debug_info_type 24: { 25: NO_DEBUG, /* Write no debug info. */ 26: DBX_DEBUG, /* Write BSD .stabs for DBX (using dbxout.c). */ 27: SDB_DEBUG, /* Write COFF for (old) SDB (using sdbout.c). */ 1.1.1.2 root 28: DWARF_DEBUG, /* Write Dwarf debug info (using dwarfout.c). */ 29: XCOFF_DEBUG /* Write IBM/Xcoff debug info (using dbxout.c). */ 1.1 root 30: }; 31: 32: /* Specify which kind of debugging info to generate. */ 33: extern enum debug_info_type write_symbols; 34: 35: enum debug_info_level 36: { 37: DINFO_LEVEL_NONE, /* Write no debugging info. */ 38: DINFO_LEVEL_TERSE, /* Write minimal info to support tracebacks only. */ 39: DINFO_LEVEL_NORMAL, /* Write info for all declarations (and line table). */ 40: DINFO_LEVEL_VERBOSE /* Write normal info plus #define/#undef info. */ 41: }; 42: 43: /* Specify how much debugging info to generate. */ 44: extern enum debug_info_level debug_info_level; 45: 1.1.1.4 root 46: /* Nonzero means use GNU-only extensions in the generated symbolic 47: debugging information. */ 48: extern int use_gnu_debug_info_extensions; 1.1 root 49: 50: /* Nonzero means do optimizations. -opt. */ 51: 52: extern int optimize; 53: 54: /* Nonzero means do stupid register allocation. -noreg. 55: Currently, this is 1 if `optimize' is 0. */ 56: 57: extern int obey_regdecls; 58: 59: /* Don't print functions as they are compiled and don't print 60: times taken by the various passes. -quiet. */ 61: 62: extern int quiet_flag; 63: 64: /* Don't print warning messages. -w. */ 65: 66: extern int inhibit_warnings; 67: 68: /* Do print extra warnings (such as for uninitialized variables). -W. */ 69: 70: extern int extra_warnings; 71: 72: /* Nonzero to warn about unused local variables. */ 73: 74: extern int warn_unused; 75: 1.1.1.5 root 76: /* Nonzero means warn if inline function is too large. */ 77: 78: extern int warn_inline; 79: 1.1 root 80: /* Nonzero to warn about variables used before they are initialized. */ 81: 82: extern int warn_uninitialized; 83: 84: /* Nonzero means warn about all declarations which shadow others. */ 85: 86: extern int warn_shadow; 87: 88: /* Warn if a switch on an enum fails to have a case for every enum value. */ 89: 90: extern int warn_switch; 91: 92: /* Nonzero means warn about function definitions that default the return type 93: or that use a null return and have a return-type other than void. */ 94: 95: extern int warn_return_type; 96: 97: /* Nonzero means warn about pointer casts that increase the required 98: alignment of the target type (and might therefore lead to a crash 99: due to a misaligned access). */ 100: 101: extern int warn_cast_align; 102: 1.1.1.5 root 103: /* Nonzero means warn that dbx info for template class methods isn't fully 104: supported yet. */ 105: 106: extern int warn_template_debugging; 107: 1.1 root 108: /* Nonzero means warn about any identifiers that match in the first N 109: characters. The value N is in `id_clash_len'. */ 110: 111: extern int warn_id_clash; 1.1.1.7 ! root 112: extern unsigned id_clash_len; ! 113: ! 114: /* Nonzero means warn about any objects definitions whose size is larger ! 115: than N bytes. Also want about function definitions whose returned ! 116: values are larger than N bytes. The value N is in `larger_than_size'. */ ! 117: ! 118: extern int warn_larger_than; ! 119: extern unsigned larger_than_size; 1.1 root 120: 121: /* Warn if a function returns an aggregate, 122: since there are often incompatible calling conventions for doing this. */ 123: 124: extern int warn_aggregate_return; 125: 126: /* Nonzero if generating code to do profiling. */ 127: 128: extern int profile_flag; 129: 130: /* Nonzero if generating code to do profiling on the basis of basic blocks. */ 131: 132: extern int profile_block_flag; 133: 134: /* Nonzero for -pedantic switch: warn about anything 135: that standard C forbids. */ 136: 137: extern int pedantic; 138: 139: /* Temporarily suppress certain warnings. 140: This is set while reading code from a system header file. */ 141: 142: extern int in_system_header; 143: 144: /* Nonzero for -dp: annotate the assembly with a comment describing the 145: pattern and alternative used. */ 146: 147: extern int flag_print_asm_name; 148: 149: /* Now the symbols that are set with `-f' switches. */ 150: 151: /* Nonzero means `char' should be signed. */ 152: 153: extern int flag_signed_char; 154: 155: /* Nonzero means give an enum type only as many bytes as it needs. */ 156: 157: extern int flag_short_enums; 158: 159: /* Nonzero for -fcaller-saves: allocate values in regs that need to 160: be saved across function calls, if that produces overall better code. 161: Optional now, so people can test it. */ 162: 163: extern int flag_caller_saves; 164: 165: /* Nonzero for -fpcc-struct-return: return values the same way PCC does. */ 166: 167: extern int flag_pcc_struct_return; 168: 169: /* Nonzero for -fforce-mem: load memory value into a register 170: before arithmetic on it. This makes better cse but slower compilation. */ 171: 172: extern int flag_force_mem; 173: 174: /* Nonzero for -fforce-addr: load memory address into a register before 175: reference to memory. This makes better cse but slower compilation. */ 176: 177: extern int flag_force_addr; 178: 179: /* Nonzero for -fdefer-pop: don't pop args after each function call; 180: instead save them up to pop many calls' args with one insns. */ 181: 182: extern int flag_defer_pop; 183: 184: /* Nonzero for -ffloat-store: don't allocate floats and doubles 185: in extended-precision registers. */ 186: 187: extern int flag_float_store; 188: 189: /* Nonzero enables strength-reduction in loop.c. */ 190: 191: extern int flag_strength_reduce; 192: 193: /* Nonzero enables loop unrolling in unroll.c. Only loops for which the 194: number of iterations can be calculated at compile-time (UNROLL_COMPLETELY, 195: UNROLL_MODULO) or at run-time (preconditioned to be UNROLL_MODULO) are 196: unrolled. */ 197: 198: extern int flag_unroll_loops; 199: 200: /* Nonzero enables loop unrolling in unroll.c. All loops are unrolled. 201: This is generally not a win. */ 202: 203: extern int flag_unroll_all_loops; 204: 205: /* Nonzero for -fcse-follow-jumps: 206: have cse follow jumps to do a more extensive job. */ 207: 208: extern int flag_cse_follow_jumps; 209: 1.1.1.3 root 210: /* Nonzero for -fcse-skip-blocks: 211: have cse follow a branch around a block. */ 212: 213: extern int flag_cse_skip_blocks; 214: 1.1 root 215: /* Nonzero for -fexpensive-optimizations: 216: perform miscellaneous relatively-expensive optimizations. */ 217: extern int flag_expensive_optimizations; 218: 219: /* Nonzero for -fwritable-strings: 220: store string constants in data segment and don't uniquize them. */ 221: 222: extern int flag_writable_strings; 223: 224: /* Nonzero means don't put addresses of constant functions in registers. 225: Used for compiling the Unix kernel, where strange substitutions are 226: done on the assembly output. */ 227: 228: extern int flag_no_function_cse; 229: 230: /* Nonzero for -fomit-frame-pointer: 231: don't make a frame pointer in simple functions that don't require one. */ 232: 233: extern int flag_omit_frame_pointer; 234: 235: /* Nonzero to inhibit use of define_optimization peephole opts. */ 236: 237: extern int flag_no_peephole; 238: 239: /* Nonzero means all references through pointers are volatile. */ 240: 241: extern int flag_volatile; 242: 1.1.1.5 root 243: /* Nonzero means treat all global and extern variables as global. */ 244: 245: extern int flag_volatile_global; 246: 1.1.1.3 root 247: /* Nonzero allows GCC to violate some IEEE or ANSI rules regarding math 248: operations in the interest of optimization. For example it allows 249: GCC to assume arguments to sqrt are nonnegative numbers, allowing 250: faster code for sqrt to be generated. */ 251: 252: extern int flag_fast_math; 253: 1.1 root 254: /* Nonzero means make functions that look like good inline candidates 255: go inline. */ 256: 257: extern int flag_inline_functions; 258: 259: /* Nonzero for -fkeep-inline-functions: even if we make a function 1.1.1.5 root 260: go inline everywhere, keep its definition around for debugging 1.1 root 261: purposes. */ 262: 263: extern int flag_keep_inline_functions; 264: 265: /* Nonzero means that functions declared `inline' will be treated 266: as `static'. Prevents generation of zillions of copies of unused 267: static inline functions; instead, `inlines' are written out 268: only when actually used. Used in conjunction with -g. Also 269: does the right thing with #pragma interface. */ 270: 271: extern int flag_no_inline; 272: 273: /* Nonzero if we are only using compiler to check syntax errors. */ 274: 275: extern int flag_syntax_only; 276: 1.1.1.2 root 277: /* Nonzero means we should save auxiliary info into a .X file. */ 1.1 root 278: 279: extern int flag_gen_aux_info; 280: 281: /* Nonzero means make the text shared if supported. */ 282: 283: extern int flag_shared_data; 284: 285: /* flag_schedule_insns means schedule insns within basic blocks (before 286: local_alloc). 287: flag_schedule_insns_after_reload means schedule insns after 288: global_alloc. */ 289: 290: extern int flag_schedule_insns; 291: extern int flag_schedule_insns_after_reload; 292: 293: /* Nonzero means put things in delayed-branch slots if supported. */ 294: 295: extern int flag_delayed_branch; 296: 1.1.1.7 ! root 297: /* Nonzero means to run cleanups after CALL_EXPRs. */ ! 298: ! 299: extern int flag_short_temps; ! 300: 1.1 root 301: /* Nonzero means pretend it is OK to examine bits of target floats, 302: even if that isn't true. The resulting code will have incorrect constants, 303: but the same series of instructions that the native compiler would make. */ 304: 305: extern int flag_pretend_float; 306: 307: /* Nonzero means change certain warnings into errors. 308: Usually these are warnings about failure to conform to some standard. */ 309: 310: extern int flag_pedantic_errors; 311: 312: /* Nonzero means generate position-independent code. 313: This is not fully implemented yet. */ 314: 315: extern int flag_pic; 316: 317: /* Nonzero means place uninitialized global data in the bss section. */ 318: 319: extern int flag_no_common; 320: 321: /* -finhibit-size-directive inhibits output of .size for ELF. 322: This is used only for compiling crtstuff.c, 323: and it may be extended to other effects 324: needed for crtstuff.c on other systems. */ 325: extern int flag_inhibit_size_directive; 326: 1.1.1.3 root 327: /* -fverbose-asm causes extra commentary information to be produced in 328: the generated assembly code (to make it more readable). This option 329: is generally only of use to those who actually need to read the 330: generated assembly code (perhaps while debugging the compiler itself). */ 331: 332: extern int flag_verbose_asm; 333: 1.1 root 334: /* -fgnu-linker specifies use of the GNU linker for initializations. 335: -fno-gnu-linker says that collect will be used. */ 336: extern int flag_gnu_linker; 337: 338: /* Other basic status info about current function. */ 339: 340: /* Nonzero means current function must be given a frame pointer. 341: Set in stmt.c if anything is allocated on the stack there. 342: Set in reload1.c if anything is allocated on the stack there. */ 343: 344: extern int frame_pointer_needed; 345: 346: /* Set nonzero if jump_optimize finds that control falls through 347: at the end of the function. */ 348: 349: extern int can_reach_end; 350: 351: /* Nonzero if function being compiled receives nonlocal gotos 352: from nested functions. */ 353: 354: extern int current_function_has_nonlocal_label; 355: 1.1.1.6 root 356: /* Nonzero if function being compiled has nonlocal gotos to parent 357: function. */ 358: 359: extern int current_function_has_nonlocal_goto;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.